برنامهنویسی شیگرا روشی است که بر اساس آن دادهها و توابع به صورت واحدهای شیء سازماندهی میشوند. این روش به طراحی نرمافزارهای مقیاسپذیر و قابل نگهداری کمک میکند.
Dereferencing یک عملیات در برنامهنویسی است که به وسیله آن میتوان به مقدار ذخیرهشده در آدرس حافظهای که یک اشارهگر به آن اشاره میکند، دسترسی پیدا کرد. این عمل با استفاده از عملگر * در زبانهای برنامهنویسی مانند C، C++ و Python انجام میشود. در واقع، dereferencing به معنای "دسترسی به دادهها از طریق اشارهگر" است.
اشارهگرها متغیرهایی هستند که آدرسهای حافظه را ذخیره میکنند، به این معنا که آنها خود دادهها را ذخیره نمیکنند، بلکه به مکانهای خاصی در حافظه اشاره دارند. برای دسترسی به دادههای موجود در آن مکانها، باید از عملگر dereference استفاده کرد.
بهعنوان مثال، در زبان C برای دسترسی به مقدار یک متغیر از طریق اشارهگر، از عملگر * استفاده میکنیم. به عبارت دیگر، عملگر * به سیستم این امکان را میدهد که "مقدار" موجود در آدرس حافظهای که اشارهگر به آن اشاره دارد، را بدست آورد:
#include <stdio.h> int main() {
int num = 10;
int *ptr = # // اشارهگر به آدرس متغیر num
// دسترسی به مقدار از طریق dereferencing
printf("%d\n", *ptr); // 10
return 0; } در این مثال، ابتدا اشارهگر ptr به آدرس متغیر num اختصاص داده میشود. سپس با استفاده از عملگر * به مقدار 10 که در آدرس ptr ذخیره شده است، دسترسی پیدا میکنیم.
در زبانهای برنامهنویسی دیگر مانند Python نیز میتوان از مشابهی به این عملیات استفاده کرد، هرچند که در Python اشارهگرها بهطور مستقیم به این شکل قابل دسترسی نیستند، اما مفهوم مشابهی از طریق نوع دادهای مانند لیستها و استفاده از آنها بهطور غیرمستقیم به وجود میآید.
استفاده از dereferencing در زبانهای سطح پایین مانند C و C++ برای دسترسی به دادهها در حافظه بسیار رایج است. این عملیات در بسیاری از الگوریتمهای پیچیده، به ویژه در مواردی که نیاز به دسترسی سریع و مستقیم به حافظه باشد، استفاده میشود.
با این حال، dereferencing باید با احتیاط انجام شود، زیرا اگر اشارهگر به یک آدرس نادرست یا حافظهای که به آن تخصیص داده نشده است اشاره کند، منجر به بروز مشکلاتی مانند خطای دسترسی به حافظه (Segmentation Fault) یا حافظه از دست رفته (Memory Leaks) میشود.
در نهایت، dereferencing یکی از مهمترین و اساسیترین عملیاتها در کار با اشارهگرها است که برای دسترسی به دادهها و مدیریت حافظه بهطور مستقیم استفاده میشود. این عملیات میتواند در بسیاری از الگوریتمها و ساختارهای دادهای مانند لیستهای پیوندی و درختها بهطور مؤثری به کار رود.
در این جلسه، به منطق آرایهها و انواع مقداردهی به آنها پرداخته میشود. همچنین، برخی خطاهای رایج در استفاده از آرایهها مورد بررسی قرار میگیرد. در انتها، به تعریف آرایههای چندبعدی پرداخته شده و چند مثال کاربردی برای تسهیل درک بهتر این مفاهیم حل میشود. هدف این جلسه، تقویت توانایی شما در استفاده از آرایهها و جلوگیری از خطاهای متداول در برنامهنویسی است.
برنامهنویسی شیگرا روشی است که بر اساس آن دادهها و توابع به صورت واحدهای شیء سازماندهی میشوند. این روش به طراحی نرمافزارهای مقیاسپذیر و قابل نگهداری کمک میکند.
فلش در فلوچارت برای نشان دادن جریان فرایندها و ترتیب انجام مراحل مختلف استفاده میشود.
فرآیندی که در آن دادهها از هر لایه دریافت شده و سرآیندها حذف میشود تا دادههای اصلی به مقصد برسند.
دروازه منطقی NOR که عملیات معکوس دروازه OR را انجام میدهد.
روش مکمل دو برای نشان دادن اعداد منفی در سیستمهای دودویی است که با معکوس کردن بیتها و اضافه کردن یک انجام میشود.
آرایه دو بعدی آرایهای است که از سطرها و ستونها تشکیل شده و برای ذخیره دادههایی مانند جدولها استفاده میشود.
لجستیک هوشمند به استفاده از فناوریهای نوین مانند IoT، هوش مصنوعی و رباتها برای بهینهسازی عملیات حمل و نقل و ذخیرهسازی اشاره دارد.
سیستمهای پشتیبانی تصمیمگیری تقویتشده با هوش مصنوعی به سیستمهایی اطلاق میشود که با استفاده از دادهها و تحلیلهای هوش مصنوعی تصمیمات بهینهتری اتخاذ میکنند.
لایهای که بهطور مستقیم با برنامههای کاربردی کار میکند و خدمات شبکهای برای آنها فراهم میکند.
بهینهسازی مسیرها و استفاده از منابع شبکه برای بهبود عملکرد کلی شبکه.
لایهای که مسئول انتقال سیگنالهای الکتریکی یا نوری از طریق رسانههای فیزیکی مانند کابلها و امواج رادیویی است.
یادگیری تقویتی عمیق به استفاده از الگوریتمهای یادگیری برای بهبود تصمیمگیری سیستمها در محیطهای پیچیده گفته میشود.
روش ارتباطی یک به چند که در آن یک دستگاه دادهها را به گروهی از دستگاهها ارسال میکند.
نتایج فرآیندهای انجامشده در سیستم که به طور معمول به کاربر یا سیستم دیگری ارسال میشوند. خروجیها میتوانند دادهها، گزارشها یا سیگنالهای مختلف باشند.
فناوری پوشیدنی به دستگاههایی اطلاق میشود که به کاربران امکان میدهند تا بهطور پیوسته دادهها را جمعآوری و تجزیه و تحلیل کنند.
پورتهایی که به دلیل جلوگیری از ایجاد حلقههای شبکه غیرفعال شدهاند.
VLANای که بدون Tagging از طریق پورتهای Trunk عبور میکند.
زندگی مصنوعی به مطالعه و شبیهسازی فرآیندهای زیستی گفته میشود که به ساخت موجودات مصنوعی شبیه به موجودات زنده میپردازد.
توانایی یک سیستم در پاسخدهی به تغییرات مقیاس در بار کاری و افزایش ظرفیت به طور مؤثر.
گره یک عنصر در گراف است که میتواند دادهای را ذخیره کند و با یالها به سایر گرهها متصل باشد.
مدیریت استثنا به فرآیند شناسایی و مدیریت خطاهای غیرمنتظره در حین اجرای برنامه گفته میشود. در C++ میتوان از دستورات try, catch و throw برای مدیریت استثناها استفاده کرد.
بازنویسی تابع به معنای تعریف مجدد تابع در یک کلاس مشتقشده با همان نام و امضای تابع در کلاس پایه است. این ویژگی در برنامهنویسی شیگرا برای تغییر رفتار توابع به کار میرود.
شبکهای که در محدودهای جغرافیایی محدود مانند یک ساختمان یا اداره قرار دارد و به اشتراکگذاری منابع بین دستگاهها میپردازد.
شبکهای که در آن دادهها به صورت حلقوی و با استفاده از یک علامت (Token) منتقل میشود.
دستگاه ساده در شبکه که دادهها را بدون توجه به آدرس مقصد به تمام دستگاههای متصل ارسال میکند.
محاسبات کوانتومی برای هوش مصنوعی به استفاده از رایانههای کوانتومی برای تسریع در پردازش و تحلیل دادهها در الگوریتمهای هوش مصنوعی اطلاق میشود.
یکی از نخستین شبکههای کامپیوتری که به عنوان پیشگام توسعه اینترنت شناخته میشود.
بیورباتیک به طراحی و ساخت رباتهایی گفته میشود که از ویژگیهای بیولوژیکی برای انجام کارها استفاده میکنند.
شرط به معنای مقایسهای است که باید در حلقهها یا دستورات شرطی بررسی شود. شرط اگر درست باشد، عمل خاصی اجرا خواهد شد.
دستگاههای ورودی مانند موس و کیبورد که اطلاعات را به کامپیوتر وارد میکنند.
بلاکچین در زنجیره تأمین به استفاده از فناوری بلاکچین برای ردیابی و تأمین شفافیت در فرآیندهای زنجیره تأمین اطلاق میشود.
کشف دادههای افزوده به فرآیند تجزیه و تحلیل و استخراج الگوهای جدید از دادههای موجود به کمک هوش مصنوعی گفته میشود.
فرایند همگرا شدن توپولوژی شبکه پس از تغییرات در شبکه و انتخاب مسیرهای مناسب برای انتقال دادهها.
متغیر سراسری متغیری است که در خارج از توابع و بلوکهای کد تعریف میشود و در سراسر برنامه قابل دسترسی است.
ارسال اطلاعات به گروهی از شبکههای مقصد که بر اساس موقعیت جغرافیایی شناسایی میشوند.