مجموعهای از دادهها است که به صورت ساختار یافته ذخیره شده و به راحتی میتوان به آنها دسترسی داشت.
مرجع (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++ و درک ساختار برنامهها و نحوه مدیریت دادهها است.
مجموعهای از دادهها است که به صورت ساختار یافته ذخیره شده و به راحتی میتوان به آنها دسترسی داشت.
روشی برای هدایت بستهها در شبکههای IP که از برچسبهای خاص برای مسیریابی استفاده میکند.
سیستمهای چندعاملی به سیستمهایی گفته میشود که از چندین عامل خودمختار برای انجام وظایف بهطور همزمان استفاده میکنند.
هوش مصنوعی نسل بعدی به پیشرفتها و روشهای جدید در هوش مصنوعی گفته میشود که بهطور خاص برای حل مسائل پیچیده طراحی شدهاند.
یادگیری انتقالی به روشی برای استفاده از مدلهای آموزشدیده در یک دامنه بهمنظور بهبود عملکرد در دامنههای دیگر گفته میشود.
پروتکلی در لایه 2 برای جلوگیری از حلقههای شبکهای و مدیریت مسیرهای انتقال دادهها.
محاسبات مه (Fog) به پردازش دادهها در لبه شبکه (بسیار نزدیک به کاربر) اطلاق میشود که باعث کاهش تأخیر و پهنای باند میشود.
نماد مستطیل در فلوچارت که برای نمایش انجام محاسبات یا فرایندهای مختلف مانند جمع، تفریق و انتساب استفاده میشود.
عملیاتهای شیفت که در آنها موقعیت بیتها در دادهها به سمت چپ یا راست حرکت میکنند.
کابلی که شامل چندین سیم مسی عایقدار است و به صورت جفت به هم تابیده شدهاند تا نویز الکتریکی کاهش یابد.
IDE یا محیط توسعه یکپارچه، نرمافزاری است که برای کمک به برنامهنویسان و توسعهدهندگان طراحی شده و شامل ویرایشگر کد، کامپایلر و ابزارهای دیگر برای نوشتن و اصلاح کدهای برنامه است.
دسترسی به عناصر آرایه به معنای استفاده از اندیسها برای دستیابی به مقادیر ذخیرهشده در خانههای مختلف آرایه است.
یادگیری ماشین برای امور مالی به استفاده از الگوریتمهای یادگیری ماشین برای پیشبینی روندهای بازار و مدیریت ریسک در صنعت مالی اطلاق میشود.
لیست پیوندی ساختار دادهای است که هر عنصر آن شامل داده و اشارهگری به عنصر بعدی است. این ساختار برای ذخیره و دسترسی سریع به دادهها استفاده میشود.
Hyperledger یک پلتفرم منبع باز برای توسعه راهحلهای بلاکچین است که توسط Linux Foundation حمایت میشود.
دستکاری رشتهها به مجموعه عملیاتهایی اطلاق میشود که میتوان روی رشتهها انجام داد، مانند الحاق، تقسیم، جستجو و تغییر مقادیر.
مجموعهای از گرهها یا دستگاهها که با استفاده از اتصالات مختلف (سیمی یا بیسیم) به یکدیگر متصل شدهاند و به تبادل دادهها میپردازند.
عملگر مودولو برای بهدست آوردن باقیمانده یک تقسیم استفاده میشود. به عنوان مثال، 7 % 3 برابر با 1 است.
مدلهای مولد به سیستمهایی اطلاق میشود که قادر به ایجاد دادهها یا محتوای جدید مشابه دادههای واقعی هستند.
استاندارد شبکههای اترنت که سرعتهای مختلف انتقال داده را از جمله 10Mbps، 100Mbps و 1000Mbps تعریف میکند.
سیستمعامل نرمافزاری است که به مدیریت منابع سختافزاری و نرمافزاری کامپیوتر پرداخته و برنامهها را اجرا میکند.
ابعاد آرایه به تعداد محورهایی گفته میشود که دادهها در آنها سازماندهی شدهاند. آرایهها میتوانند یکبعدی، دوبعدی، یا چندبعدی باشند.
سیستمهای فیزیکی-مجازی (CPS) به سیستمهایی اطلاق میشود که با استفاده از دستگاههای دیجیتال برای نظارت و کنترل دنیای فیزیکی طراحی شدهاند.
حافظههای دینامیک (DRAM) که نیاز به رفرش مداوم دارند، برای حافظههای اصلی به کار میروند. این نوع حافظهها ظرفیت بیشتری نسبت به SRAM دارند.
روش تقسیمبندی ثابت زیربخشهای شبکه که در آن تمامی زیربخشها از اندازه یکسان برخوردارند.
حافظه کش یک نوع حافظه سریع است که برای نگهداری دادههای پرکاربرد و دستورالعملهایی که به طور مکرر استفاده میشوند، طراحی شده است. دسترسی به کش سریعتر از حافظه اصلی است.
زبانهای برنامهنویسی سطح پایین به زبانهایی اطلاق میشوند که به کد ماشین نزدیکترند و معمولاً برای تعامل مستقیم با سختافزار استفاده میشوند.
عملیات ماشین یادگیری (MLOps) شامل توسعه و استقرار مدلهای یادگیری ماشین به صورت مقیاسپذیر و کارآمد است.
سیگنالی که به صورت پیوسته تغییر میکند و معمولاً به صورت موج سینوسی نمایش داده میشود.
کدی که برای گسترش دادهها در سیستمهای CDMA استفاده میشود تا از تداخل جلوگیری کرده و دادهها را از یکدیگر تفکیک کند.
سیستم عددی دودویی است که تنها از دو رقم 0 و 1 برای نمایش اطلاعات استفاده میکند.
درخت یک ساختار دادهای است که شامل گرهها و پیوندهایی است که به صورت سلسلهمراتبی سازماندهی شدهاند و برای جستجو و ذخیره دادهها استفاده میشود.
سوییچهایی که در لایه 2 مدل OSI کار میکنند و برای هدایت بستهها از آدرسهای MAC استفاده میکنند.
عملگر افزایش پس از عملگر ()++ است که ابتدا مقدار متغیر را میخواند و سپس آن را افزایش میدهد.
گردوغبار هوشمند به سنسورها و دستگاههای ریز اشاره دارد که در مقیاس میکرو برای جمعآوری اطلاعات از محیط اطراف استفاده میشوند.