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

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

سعید صفایی
آشنایی با مفهوم Reference

Reference

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

مرجع (Reference) در برنامه‌نویسی به یک شیء یا متغیر گفته می‌شود که به یک مکان خاص در حافظه اشاره می‌کند. به عبارت دیگر، مرجع نوعی از متغیر است که به جای نگهداری مقدار داده‌ها، آدرس حافظه آن‌ها را ذخیره می‌کند. استفاده از مراجع در برنامه‌نویسی این امکان را می‌دهد که به داده‌ها به‌طور غیرمستقیم دسترسی داشته باشیم و آن‌ها را به اشتراک بگذاریم بدون اینکه نیازی به کپی کردن داده‌ها باشد.

در زبان‌های برنامه‌نویسی مانند C++ و Python، مراجع به روش‌های مختلف استفاده می‌شوند. در C++، مراجع یکی از ویژگی‌های مهم است که امکان تغییر داده‌های موجود در متغیرهای مختلف را به‌طور مستقیم فراهم می‌آورد، بدون آنکه نیازی به کپی کردن داده‌ها باشد. در Python، هر متغیر به‌طور پیش‌فرض یک مرجع به شیء‌ها در حافظه است.

در زبان C++، مرجع‌ها با استفاده از عملگر & تعریف می‌شوند. در اینجا مثالی از نحوه استفاده از مرجع‌ها در C++ آورده شده است:

#include <iostream> using namespace std;  void updateValue(int &ref) {
ref = 20; // تغییر مقدار داده از طریق مرجع } int main() {
int x = 10;
updateValue(x); // به جای ارسال مقدار، مرجع x ارسال می‌شود
cout << "Updated value of x: " << x << endl; // خروجی: Updated value of x: 20
return 0; }

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

در زبان Python، مراجع به‌طور غیرمستقیم مدیریت می‌شوند. در واقع، همه متغیرهای Python به‌طور پیش‌فرض به مراجع به اشیاء در حافظه اشاره می‌کنند. برای مثال، وقتی یک لیست به یک تابع ارسال می‌شود، تغییرات بر روی آن لیست در داخل تابع، در خارج از آن نیز اعمال خواهد شد. در اینجا مثالی از رفتار مراجع در Python آورده شده است:

def update_list(lst):
lst[0] = 100 # تغییر اولین عنصر لیست my_list = [1, 2, 3] update_list(my_list) print(my_list) # خروجی: [100, 2, 3]

در این مثال، لیست my_list به عنوان مرجع به تابع update_list ارسال می‌شود. تغییرات بر روی لیست در داخل تابع به‌طور مستقیم بر روی لیست اصلی اعمال می‌شود، زیرا لیست‌ها به‌صورت مرجع به توابع ارسال می‌شوند.

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

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

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

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

برنامه نویسی به زبان C++ بخش اول

برنامه نویسی به زبان C++ بخش اول
مبانی کامپیوتر و برنامه سازی

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

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

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

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

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

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

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

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

اتصالات با پهنای باند پایین که سرعت انتقال داده کمی دارند.

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

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

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

قسمت اعشاری یا کسری یک عدد که در سیستم‌های عددی به خصوص در مبنای 10 یا 2 نمایش داده می‌شود.

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

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

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

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

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

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

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

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

نویز ناشی از حرکت الکترون‌ها در مواد نیمه‌هادی یا فلزات که در اثر حرارت ایجاد می‌شود.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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