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

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

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

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

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

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

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

مراکز داده لبه به مراکز داده‌ای اطلاق می‌شود که در نزدیکی لبه شبکه قرار دارند و به پردازش داده‌ها نزدیک به کاربران کمک می‌کنند.

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

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

اخلاق هوش مصنوعی به بررسی چالش‌ها و مسائل اخلاقی مرتبط با استفاده از AI می‌پردازد.

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

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

لایه‌ای که مسئول مسیریابی بسته‌ها و مدیریت آدرس‌دهی در شبکه‌های مختلف است.

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

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

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

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

حافظه ثانویه که شامل هارد دیسک‌ها، دیسک‌های SSD و دیگر سیستم‌های ذخیره‌سازی طولانی‌مدت است.

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

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

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

تبدیل به معنای تغییر یک عدد از یک سیستم عددی به سیستم عددی دیگر است، مانند تبدیل مبنای ده به دودویی یا برعکس.

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

پروتکل مسیریابی Distance Vector که به روترها کمک می‌کند تا مسیرهای بهترین را بر اساس تعداد هاپ‌ها پیدا کنند.

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

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

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

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

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

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

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

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

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

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

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

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

دستگاه‌های ورودی مانند موس و کیبورد که اطلاعات را به کامپیوتر وارد می‌کنند.

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

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

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

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