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 و مقالات محمد سعید صفایی استفاده کنید.

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

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

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

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

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

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

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

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

الگوریتم‌های هوش جمعی به استفاده از رفتار گروهی موجودات هوش مصنوعی برای حل مسائل پیچیده اشاره دارد.

دروازه منطقی NOR که عملیات معکوس دروازه OR را انجام می‌دهد.

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

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

حلقه do-while مشابه با while است، با این تفاوت که ابتدا دستورالعمل‌ها اجرا می‌شود و سپس شرط بررسی می‌شود. بنابراین این حلقه حداقل یک بار اجرا می‌شود.

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

روشی برای هدایت بسته‌ها در شبکه‌های IP که از برچسب‌های خاص برای مسیریابی استفاده می‌کند.

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

VLAN‌ای که بدون Tagging از طریق پورت‌های Trunk عبور می‌کند.

روش‌هایی که دستگاه‌ها در یک شبکه برای دسترسی به رسانه انتقال (مانند کابل یا امواج رادیویی) استفاده می‌کنند.

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

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

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

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

شبکه‌های مولد رقابتی (GANs) دو شبکه عصبی را برای تولید داده‌های جدید از داده‌های واقعی به کار می‌گیرد.

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

پروتکلی که برای تبدیل آدرس IP به آدرس MAC در شبکه‌های محلی استفاده می‌شود.

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

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

کلمه کلیدی const در زبان‌های برنامه‌نویسی برای تعریف متغیرهایی استفاده می‌شود که مقدار آن‌ها ثابت است و نمی‌توان در طول اجرای برنامه تغییر داد.

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

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

فردی که مسئول راه‌اندازی، پیکربندی و نگهداری شبکه‌های کامپیوتری است.

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

اتوماتیک‌سازی فرآیندهای رباتیک (RPA) به استفاده از ربات‌ها برای انجام وظایف تکراری در محیط‌های تجاری اشاره دارد.

حلقه do while مشابه با حلقه while است، با این تفاوت که ابتدا دستور اجرا می‌شود و سپس شرط بررسی می‌شود.

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

تحقیقات دیجیتال به تجزیه و تحلیل و بازیابی داده‌ها از سیستم‌های دیجیتال برای تحقیقات قضائی و قانونی اطلاق می‌شود.

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

عملگر مودولو برای به‌دست آوردن باقی‌مانده یک تقسیم استفاده می‌شود. به عنوان مثال، 7 % 3 برابر با 1 است.

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

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

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