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

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

سعید صفایی
آشنایی با مفهوم Call by Value

Call by Value

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

Saeid Safaei Call by Value

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

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

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

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

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

در زبان Python نیز از روش Call by Value استفاده می‌شود. با این حال، در Python، چون تمام داده‌ها به‌صورت اشیاء مدیریت می‌شوند، گاهی ممکن است به نظر برسد که برخی متغیرها به‌طور غیرمستقیم تغییر می‌کنند، به‌ویژه زمانی که با ساختارهای داده‌ای مانند لیست‌ها کار می‌کنیم. به این معنا که تغییرات روی انواع داده‌های تغییرپذیر (مثل لیست‌ها و دیکشنری‌ها) بر داده‌های اصلی تأثیر می‌گذارد، اما برای انواع داده‌های غیرتغییرپذیر (مثل اعداد و رشته‌ها) همچنان از روش Call by Value استفاده می‌شود.

 def add(a, b):
a = a + b # تغییرات در داخل تابع
print("Sum inside function:", a) x = 5 y = 10 add(x, y) print("Value of x after function call:", x) # x تغییری نکرده است

در این مثال، همانطور که در C مشاهده کردیم، مقدار متغیر x پس از فراخوانی تابع تغییر نمی‌کند، زیرا تابع فقط با کپی مقادیر کار می‌کند.

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

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

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

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

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

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

مدیریت استثنا به فرآیند شناسایی و مدیریت خطاهای غیرمنتظره در حین اجرای برنامه گفته می‌شود. در C++ می‌توان از دستورات try, catch و throw برای مدیریت استثناها استفاده کرد.

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

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

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

زمانی که روترها پیام‌های Hello را برای شناسایی همسایگان OSPF ارسال می‌کنند.

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

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

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

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

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

مقداردهی اولیه آرایه به معنای اختصاص مقادیر اولیه به اعضای آرایه هنگام تعریف آن است.

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

روش دسترسی به رسانه که در آن از برخورد جلوگیری می‌شود، به‌ویژه در شبکه‌های بی‌سیم مانند Wi-Fi.

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

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

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

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

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

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

عمق بازگشت به تعداد دفعاتی اطلاق می‌شود که یک تابع بازگشتی خود را فراخوانی می‌کند. هرچه عمق بازگشتی بیشتر باشد، خطر بروز stack overflow بیشتر خواهد بود.

اولین و مهم‌ترین سوئیچ در شبکه که مسئول تعیین بهترین مسیرها برای ارسال داده‌ها است.

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

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

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

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

ویرانگر یا دِسکتراکتور تابعی است که هنگام از بین بردن شیء از حافظه فراخوانی می‌شود و وظیفه آزادسازی منابع را دارد.

الگوریتمی که برای محاسبه کوتاه‌ترین مسیر از یک گره به سایر گره‌ها استفاده می‌شود، معمولاً در پروتکل‌های Link-State.

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

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

نرخ بیت متغیر که در آن نرخ انتقال داده‌ها بسته به نیاز و پیچیدگی داده‌ها تغییر می‌کند.

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

واقعیت مجازی (VR) تجربه‌ای است که در آن کاربر به طور کامل در یک محیط دیجیتال غوطه‌ور می‌شود.

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

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

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

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