Saeid Safaei Loader Logo Saeid Safaei Loader Animated
لطفا شکیبا باشید
0

سعیدصفایی سعیدصفایی

سعید صفایی
آشنایی با مفهوم Parameter Passing

Parameter Passing

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

Saeid Safaei Parameter Passing

Parameter Passing به روشی گفته می‌شود که مقادیر ورودی به یک تابع منتقل می‌شوند تا تابع بتواند از آن‌ها برای انجام عملیات‌های مختلف استفاده کند. در زبان‌های برنامه‌نویسی مانند C، C++ و Java، دو روش اصلی برای ارسال پارامتر به توابع وجود دارد: Call by Value و Call by Reference.

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

به‌عنوان مثال، در زبان C، زمانی که از Call by Value استفاده می‌کنیم، یک کپی از مقدار به تابع ارسال می‌شود:

 #include <stdio.h>  void modifyValue(int a) {
a = a + 5; // تغییر مقدار پارامتر در داخل تابع
printf("Value inside function: %d\n", a); } int main() {
int x = 10;
modifyValue(x); // فراخوانی تابع
printf("Value in main after function call: %d\n", x); // مقدار اصلی تغییر نمی‌کند
return 0; }

در این مثال، تغییرات در داخل تابع modifyValue فقط روی کپی مقدار x اعمال می‌شود و مقدار اصلی در main تغییری نمی‌کند.

در روش Call by Reference، به جای ارسال کپی از مقدار، آدرس حافظه پارامتر به تابع ارسال می‌شود. در این روش، تغییرات در داخل تابع مستقیماً بر روی داده‌های اصلی تاثیر می‌گذارد. این روش برای زمانی که بخواهیم داده‌های اصلی را تغییر دهیم، مفید است.

به‌عنوان مثال، در زبان C++، برای ارسال پارامترها به صورت Call by Reference، از عملگر & استفاده می‌شود:

 #include <iostream> using namespace std;  void modifyValue(int &a) {
a = a + 5; // تغییر مقدار پارامتر در داخل تابع } int main() {
int x = 10;
modifyValue(x); // فراخوانی تابع
cout << "Value in main after function call: " << x << endl; // مقدار اصلی تغییر می‌کند
return 0; }

در اینجا، چون آدرس حافظه متغیر x به تابع ارسال شده است، تغییرات در داخل تابع مستقیماً روی مقدار اصلی تأثیر می‌گذارد.

علاوه بر این، در زبان‌هایی مانند Java، پارامترهای از نوع شیء (Objects) به صورت Call by Reference ارسال می‌شوند، در حالی که پارامترهای نوع پایه مانند int یا float به صورت Call by Value ارسال می‌شوند. این بدان معناست که اگر یک شیء به تابع ارسال شود، تغییرات در آن شیء در داخل تابع بر روی شیء اصلی تاثیر می‌گذارد.

 class Person {
String name;
Person(String name) {
this.name = name;
} } public class Main {
public static void modifyName(Person p) {
p.name = "John"; // تغییر ویژگی شیء در داخل تابع
}
public static void main(String[] args) {
Person person = new Person("Alice");
modifyName(person); // فراخوانی تابع
System.out.println("Name after modification: " + person.name); // خروجی: John
} }

در اینجا، چون شیء Person به صورت Call by Reference به تابع modifyName ارسال شده است، تغییرات در داخل تابع بر روی شیء اصلی تأثیر می‌گذارد.

در نهایت، انتخاب روش مناسب برای Parameter Passing (ارسال پارامترها) بستگی به نیازهای خاص برنامه و نوع داده‌ها دارد. Call by Value معمولاً برای زمانی که نیاز به تغییر داده‌های اصلی نداریم مفید است، در حالی که Call by Reference زمانی که بخواهیم داده‌های اصلی را تغییر دهیم، مناسب‌تر است. برای یادگیری مفاهیم مشابه و مطالعه مقالات بیشتر، می‌توانید از سایت saeidsafaei.ir و مقالات محمد سعید صفایی استفاده کنید.

اسلاید آموزشی

بخش پنجم برنامه نویسی مقدماتی (توابع-قسمت اول)

بخش پنجم برنامه نویسی مقدماتی (توابع-قسمت اول)
مبانی کامپیوتر و برنامه سازی

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

مقالات آموزشی برای آشنایی با اصطلاحات دنیای کامپیوتر

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

روش ارتباطی یک به چند که در آن یک دستگاه داده‌ها را به گروهی از دستگاه‌ها ارسال می‌کند.

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

پروتکلی مشابه با OSPF که برای مسیریابی در لایه ۲ مدل OSI طراحی شده است.

یادگیری عمیق نوعی از یادگیری ماشین است که از شبکه‌های عصبی با چندین لایه برای شبیه‌سازی عملکرد مغز انسان استفاده می‌کند.

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

سیستم‌های فیزیکی-مجازی (CPS) به سیستم‌هایی اطلاق می‌شود که با استفاده از دستگاه‌های دیجیتال برای نظارت و کنترل دنیای فیزیکی طراحی شده‌اند.

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

مقداری ثابت که به عنوان مرجع برای محاسبه هزینه لینک در پروتکل‌های OSPF استفاده می‌شود.

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

سیگنالی که به صورت پیوسته تغییر می‌کند و معمولاً به صورت موج سینوسی نمایش داده می‌شود.

در فلوچارت، مرحله تصمیم‌گیری به لوزی گفته می‌شود که در آن بر اساس شرایط خاص، الگوریتم مسیر متفاوتی را انتخاب می‌کند.

نوع داده‌ای است که برای ذخیره‌سازی اعداد اعشاری و محاسبات دقیق‌تری استفاده می‌شود.

رشته باریک و شفاف از شیشه یا پلاستیک که قادر است اطلاعات را از طریق نور با سرعت بالا منتقل کند.

رابط مغز-کامپیوتر به سیستم‌هایی اطلاق می‌شود که به انسان‌ها امکان می‌دهند تا از طریق ذهن خود با دستگاه‌ها ارتباط برقرار کنند.

سیستم اولیه ورودی و خروجی است که وظیفه بوت کردن سیستم را به عهده دارد و مراحل ابتدایی راه‌اندازی سیستم را کنترل می‌کند.

پردازش سیگنال دیجیتال (DSP) به استفاده از الگوریتم‌ها برای تجزیه و تحلیل و پردازش سیگنال‌های دیجیتال برای کاربردهای مختلف اطلاق می‌شود.

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

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

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

سلامت دیجیتال به استفاده از فناوری‌های نوین برای نظارت و مدیریت سلامت افراد به‌طور آنلاین اطلاق می‌شود.

بخش‌هایی از کد هستند که یک وظیفه خاص را انجام می‌دهند و می‌توانند در نقاط مختلف برنامه فراخوانی شوند.

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

روش دسترسی به رسانه که در آن یک توکن به‌صورت مداوم در شبکه میان دستگاه‌ها جابه‌جا می‌شود و تنها دستگاهی که توکن را در اختیار دارد می‌تواند داده ارسال کند.

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

پروتکلی که برای شبکه‌های سیسکو طراحی شده است و از معیارهای مختلف مانند پهنای باند و تأخیر برای انتخاب بهترین مسیر استفاده می‌کند.

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

بلاکچین 2.0 به نسخه‌ای پیشرفته از بلاکچین گفته می‌شود که ویژگی‌هایی مانند قراردادهای هوشمند و مقیاس‌پذیری بهتر را ارائه می‌دهد.

لایه‌ای که ارتباطات بین دستگاه‌ها را مدیریت می‌کند و تضمین می‌کند که داده‌ها به درستی به مقصد برسند.

پشته ساختار داده‌ای است که داده‌ها را به صورت FILO (First In, Last Out) ذخیره می‌کند. اولین داده وارد شده، آخرین داده‌ای است که از پشته برداشته می‌شود.

طراحی مولد به استفاده از الگوریتم‌های هوش مصنوعی برای ایجاد طرح‌ها و ساختارهای جدید از داده‌ها اطلاق می‌شود.

نوع داده به دسته‌بندی داده‌ها اطلاق می‌شود که می‌تواند مشخص کند یک متغیر چه نوع داده‌ای را می‌تواند ذخیره کند مانند عدد صحیح، اعشاری یا رشته.

نوع داده‌ای است که برای ذخیره‌سازی اعداد صحیح بدون بخش اعشاری استفاده می‌شود.

محدوده‌ای از شبکه که در آن اگر دو دستگاه به طور همزمان داده ارسال کنند، برخورد (Collision) رخ می‌دهد.

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

بکشید مشاهده بستن پخش
Saeid Safaei Scroll Top
0%