آرگومان (Argument) در برنمه نویسی

آرگومان (Argument) در برنمه نویسی
فهرست مقاله [نمایش]

    در این مقاله به بررسی آرگومان در برنامه‌نویسی می‌پردازیم و تفاوت‌ها و کاربردهای پارامتر و آرگومانn  را توضیح می‌دهیم. ابتدا یک تعریف ساده از برنامه‌نویسی ارائه می‌کنیم و سپس به توضیح آرگومان و پارامتر می‌پردازیم.

    برنامه نویسی چیست؟

    برنامه‌نویسی فرآیندی است که طی آن دستورات و توالی‌های منطقی برای کامپیوتر تعریف می‌شود تا وظایف خاصی را انجام دهد. این فرآیند به کمک زبان‌های برنامه‌نویسی انجام می‌شود و از طریق توابع، کلاس‌ها و ساختارهای مختلف، به کدها تبدیل می‌شود که توسط کامپیوتر قابل فهم هستند.
      برای آشنایی با 100اصطلاح  که برای هر برنامه نویس ضروری است این مقاله را مطالعه نمایی. 

    آرگومان در برنامه نویسی چیست؟

    آرگومان یا Argument مقدار واقعی است که هنگام فراخوانی تابع به آن ارسال می‌شود تا عملیات مشخصی انجام شود. برای مثال، اگر تابعی برای جمع دو عدد داشته باشیم، مقادیر واقعی که هنگام فراخوانی به تابع می‌دهیم، آرگومان‌ها هستند. این مقادیر همان ورودی‌هایی هستند که تابع برای کار کردن به آن‌ها نیاز دارد. آرگومان‌ها به توابع کمک می‌کنند تا با ورودی‌های مختلف کار کرده و داده‌ها را پردازش کنند.

    تابع در برنامه نویسی چیست؟

    تابع یا Function به قطعه کدی گفته می‌شود که برای انجام یک کار مشخص طراحی شده است. برای مثال، فرض کنید تابعی به نام PrintMessage داریم که وظیفه آن چاپ یک پیام خاص است:

    void PrintMessage(string message) {
        Console.WriteLine(message);
    }

    این تابع می‌تواند برای چاپ هر پیامی که به آن ارسال می‌شود، استفاده شود. با این روش، نیازی نیست برای هر پیام جدید یک کد جداگانه بنویسیم. تابع‌ها قابلیت بازاستفاده شدن دارند، به این معنا که می‌توانند بارها و بارها در برنامه‌ها مورد استفاده قرار بگیرند. توابع می‌توانند ورودی‌هایی (آرگومان‌ها) دریافت کنند و خروجی‌هایی تولید کنند.
    برای آشنایی با تابع مقاله تابع در برنامه نویسی چیست؟را مطالعه نمایید.

    پارامتر در برنامه نویسی چیست و با آرگومان چه تفاوتی دارد؟

    پارامتر (Parameter) به متغیرهایی گفته می‌شود که در تعریف یک تابع مشخص می‌شوند. این متغیرها مشخص می‌کنند که تابع چه ورودی‌هایی می‌تواند دریافت کند. پارامترها این متغیرها به عنوان ورودی‌های مورد نیاز در تعریف تابع در نظر گرفته می‌شوند و زمانی که تابع فراخوانی می‌شود، آرگومان‌ها جایگزین آن‌ها می‌شوند. به عبارت دیگر، پارامترها مشخص می‌کنند که تابع به چه داده‌هایی نیاز دارد و آرگومان‌ها همان مقادیر واقعی هستند که هنگام اجرای تابع به آن ارسال می‌شوند.

    مثلاً در تابع زیر:

    void PrintMessage(string message) {
        Console.WriteLine(message);
    }

    در این مثال، message یک پارامتر است. زمانی که این تابع فراخوانی می‌شود، باید مقداری به این پارامتر داده شود که به آن آرگومان می‌گوییم.

    انواع پارامترها در برنامه نویسی چیست؟

    پارامترها انواع مختلفی دارند که هر کدام کاربرد خاص خود را دارند:

    پارامترهای اجباری: این نوع پارامترها هنگام تعریف تابع تعیین می‌شوند و هنگام فراخوانی تابع باید حتماً آرگومان به آن‌ها داده شود.

    پارامترهای اختیاری: پارامترهایی که می‌توانند مقداری پیش‌فرض داشته باشند و اگر هنگام فراخوانی تابع مقداری برای آن‌ها تعیین نشود، از مقدار پیش‌فرض استفاده می‌شود.

    پارامترهای مرجع (ref): پارامترهایی که به صورت مرجع به تابع ارسال می‌شوند و تغییرات روی آن‌ها در خارج از تابع نیز منعکس می‌شود.

    تفاوت پارامتر و آرگومان در برنامه نویسی چیست؟

    به زبان ساده، پارامترها و آرگومان‌ها در برنامه‌نویسی نقش‌های متفاوتی دارند، اما همیشه با هم کار می‌کنند. پارامترها به عنوان متغیرهایی در تعریف تابع هستند که نقش آن‌ها تعیین ورودی‌هایی است که تابع می‌تواند دریافت کند. وقتی تابعی تعریف می‌شود، تنها مشخص می‌کنیم که چه نوع اطلاعاتی را از خارج از تابع می‌پذیرد، این‌ها پارامترها هستند.

    آرگومان‌ها اما در هنگام فراخوانی تابع به کار می‌روند و مقادیر واقعی هستند که برای پر کردن پارامترهای تعریف شده به تابع ارسال می‌شوند. زمانی که تابع را فراخوانی می‌کنید، باید مقادیری را به آن بدهید که این مقادیر همان آرگومان‌ها هستند. این مقادیر برای اجرای دستوراتی که داخل تابع نوشته شده‌اند به کار می‌روند.

    مثلاً اگر تابعی داشته باشیم که یک پیام را چاپ کند:

    void PrintMessage(string message) {
        Console.WriteLine(message);
    }

    در اینجا، message یک پارامتر است. وقتی این تابع را فراخوانی می‌کنیم:

    PrintMessage("سلام به همه!");

    مقدار "سلام به همه!" آرگومانی است که برای این پارامتر ارسال می‌شود. این فرآیند به تابع اجازه می‌دهد تا با داده‌های مختلف کار کند و نتیجه‌های متفاوتی را تولید کند.

    به طور خلاصه می‌توان گفت:

    پارامتر، متغیری است که هنگام تعریف یک تابع مشخص می‌شود.

    آرگومان، مقداری است که هنگام فراخوانی یک تابع به آن پارامتر تخصیص داده می‌شود.

    این دو مفهوم مکمل یکدیگر هستند و در واقع پارامترها و آرگومان‌ها با هم کار می‌کنند تا ورودی‌های مورد نیاز توابع را فراهم کنند.

    مثالی برای درک بهتر تفاوت پارامتر و آرگومان

    فرض کنید تابع زیر را داریم:

    int AddNumbers(int a, int b) {
        return a + b;
    }

    در این تابع، a و b پارامترهای تابع هستند. حالا زمانی که این تابع را فراخوانی می‌کنیم:

    int result = AddNumbers(5, 10);

    اعداد 5 و 10 آرگومان‌هایی هستند که به تابع ارسال شده‌اند تا جای پارامترها قرار بگیرند.

    آرگومان در زبان‌های برنامه‌نویسی مختلف

    برای اینکه بهتر با مفهوم آرگومان در زبان‌های برنامه‌نویسی مختلف آشنا شویم، بیایید نگاهی دقیق‌تر به چند زبان برنامه‌نویسی بیندازیم و بررسی کنیم که چگونه این زبان‌ها با آرگومان‌ها کار می‌کنند. در ادامه توضیحات بیشتری ارائه می‌شود تا متوجه شویم چگونه هر زبان برنامه‌نویسی این مفهوم را پیاده‌سازی می‌کند و چه جزئیاتی در مورد آن وجود دارد.

    سی شارپ (C#): در زبان سی شارپ، آرگومان‌ها می‌توانند به صورت اجباری یا اختیاری باشند. پارامترهای اختیاری به شما این امکان را می‌دهند که برای برخی از پارامترها مقادیر پیش‌فرض تعیین کنید تا هنگام فراخوانی تابع نیازی به ارسال آن آرگومان نباشد. همچنین، می‌توان از پارامترهای مرجع (ref) یا پارامترهای out استفاده کرد که امکان ارسال متغیرها به صورت مرجع را فراهم می‌کنند. به این معنا که تغییرات روی این پارامترها در خارج از تابع نیز اعمال می‌شوند.
    برای یادگیری بیشتر در مورد آرگومان‌ها در زبان سی شارپ می‌توانید به لینک زیر مراجعه کنید:

    آرگومان در سی شارپ

    به عنوان مثال:

    void CalculateSum(int a, int b, out int result) {
        result = a + b;
    }
    
    int x = 5;
    int y = 10;
    int sum;
    CalculateSum(x, y, out sum);
    Console.WriteLine(sum); // خروجی: 15

    در این مثال، از out استفاده شده تا مقدار نهایی از تابع به خارج منتقل شود. همچنین برای استفاده از پارامتر مرجع (ref) می‌توان به شکل زیر عمل کرد:

    void Increment(ref int number) {
        number++;
    }
    
    int value = 10;
    Increment(ref value);
    Console.WriteLine(value); // خروجی: 11

    این مثال نشان می‌دهد که با استفاده از ref می‌توان مستقیماً مقدار متغیر اصلی را در داخل تابع تغییر داد.

    پایتون (Python): در پایتون، می‌توانید از آرگومان‌های مختلفی مانند آرگومان‌های موقعیتی (Positional Arguments) استفاده کنید که ترتیب آن‌ها اهمیت دارد. همچنین می‌توانید از آرگومان‌های کلیدی (Keyword Arguments) استفاده کنید که به شما این امکان را می‌دهد تا نام پارامترها را مشخص کنید و مقادیر را به صورت دلخواه به آن‌ها اختصاص دهید. علاوه بر این، پایتون از آرگومان‌های نامحدود (*args و **kwargs) نیز پشتیبانی می‌کند که به شما امکان می‌دهد تعداد متغیری از آرگومان‌ها را به توابع ارسال کنید.

    به عنوان مثال:

    def greet(name, greeting="Hello"):
        print(f"{greeting}, {name}!")
    
    greet("Ali")            # خروجی: Hello, Ali!
    greet("Sara", "Hi")     # خروجی: Hi, Sara!

    در این مثال، name یک آرگومان موقعیتی است و greeting یک آرگومان اختیاری با مقدار پیش‌فرض است. همچنین می‌توان از آرگومان‌های نامحدود استفاده کرد:

    def sum_numbers(*args):
        result = 0
        for num in args:
            result += num
        return result
    
    print(sum_numbers(1, 2, 3, 4))  # خروجی: 10

    در این مثال، از *args برای دریافت تعداد نامشخصی از آرگومان‌ها استفاده شده است که به تابع امکان جمع کردن تعداد زیادی از ورودی‌ها را می‌دهد.

    جاوا (Java): در جاوا، پارامترها به صورت پیش‌فرض به صورت مقداری (by value) ارسال می‌شوند، به این معنا که هرگونه تغییری که روی پارامترها در تابع صورت گیرد، در خارج از تابع منعکس نمی‌شود. به عنوان مثال:

    public class Main {
        public static void main(String[] args) {
            int num = 10;
            modifyValue(num);
            System.out.println(num); // خروجی: 10
        }
    
        static void modifyValue(int n) {
            n = n + 5;
        }
    }

    در این مثال، مقدار num به تابع modifyValue ارسال می‌شود، اما تغییرات روی n در خارج از تابع منعکس نمی‌شود. برای ارسال به صورت مرجع می‌توان از اشیاء استفاده کرد:

    public class Main {
        public static void main(String[] args) {
            int[] numbers = {10};
            modifyArray(numbers);
            System.out.println(numbers[0]); // خروجی: 15
        }
    
        static void modifyArray(int[] nums) {
            nums[0] = nums[0] + 5;
        }
    }

    در این مثال، از آرایه استفاده شده تا تغییرات در خارج از تابع نیز اعمال شود. همچنین در جاوا نمی‌توان به سادگی از پارامترهای مرجع مانند سی شارپ استفاده کرد، اما می‌توان از آرایه‌ها یا اشیاء برای ارسال داده‌ها به صورت مرجع بهره برد.

    این توضیحات دقیق‌تر به شما کمک می‌کند تا بهتر متوجه شوید که هر زبان چگونه با آرگومان‌ها برخورد می‌کند و چه روش‌هایی برای ارسال داده‌ها به توابع استفاده می‌شود.

     

    در این مقاله سعی کردیم تفاوت‌ها و کاربردهای پارامتر و آرگومان را به خوبی توضیح دهیم و با ارائه مثال‌های متنوع، درک بهتری از این موضوعات برای شما فراهم کنیم. امیدواریم که این مقاله به شما در درک بهتر این مفاهیم کمک کند.

     

    اطلاعات نویسنده
    • نویسنده: روشن احمدی

    ارسال دیدگاه

    برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربری‌تان شوید


    دیدگاه کاربران