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

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

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

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

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

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

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

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

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

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

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

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

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

پایگاه داده‌ای که توسط روترها در پروتکل‌های Link-State برای ذخیره اطلاعات وضعیت لینک‌ها استفاده می‌شود.

ظرفیت حداکثر داده‌ای که می‌تواند از یک مسیر ارتباطی عبور کند، معمولاً بر حسب بیت بر ثانیه یا واحدهای مشابه اندازه‌گیری می‌شود.

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

یادگیری ماشین (ML) به روش‌های آماری گفته می‌شود که به ماشین‌ها این امکان را می‌دهد که از داده‌ها یاد بگیرند و پیش‌بینی‌های دقیقی انجام دهند.

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

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

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

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

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

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

پروتکلی که برای ارتباطات بی‌سیم در شبکه‌های LAN استفاده می‌شود.

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

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

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

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

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

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

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

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

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

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

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

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

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

نوع داده‌ای است که فقط دو مقدار true یا false را می‌تواند ذخیره کند و معمولاً در شرایط منطقی به کار می‌رود.

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

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

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

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