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

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

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

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

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

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

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

محاسبات مه (Fog) به پردازش داده‌ها در لبه شبکه (بسیار نزدیک به کاربر) اطلاق می‌شود که باعث کاهش تأخیر و پهنای باند می‌شود.

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

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

مکانیزمی در زبان‌های برنامه‌نویسی مانند C++ که به شما اجازه می‌دهد تا به آدرس‌های حافظه اشاره کنید.

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

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

تابع بازگشتی تابعی است که خود را در درون بدنه خود فراخوانی می‌کند. این نوع توابع معمولاً برای مسائل بازگشتی مانند محاسبه فاکتوریل یا دنباله فیبوناچی استفاده می‌شود.

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

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

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

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

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

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

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

عملگرهایی هستند که برای انجام عملیات منطقی مانند AND, OR, NOT و XOR بر روی داده‌ها به کار می‌روند.

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

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

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

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

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

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

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

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

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

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

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

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

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

آدرس‌های IP که از subnet mask استاندارد کلاس‌های A، B و C استفاده می‌کنند.

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

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

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

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

اینترنت اشیاء پزشکی (IoMT) به شبکه‌ای از دستگاه‌ها و حسگرهای پزشکی متصل به اینترنت اطلاق می‌شود که داده‌ها را برای نظارت بر بیماران ارسال می‌کنند.

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