مفسر برنامهای است که کدهای نوشته شده را به صورت خط به خط اجرا میکند.
گراف وزنی (Weighted Graph) نوعی گراف است که در آن هر یال (Edge) دارای یک وزن یا هزینه خاص است. این وزنها معمولاً به معنای هزینه، فاصله، زمان یا هر مقدار عددی دیگری هستند که نمایانگر هزینه یا مقدار مرتبط با آن یال میباشد. گرافهای وزنی در مسائل مختلفی مانند مسیریابی، برنامهریزی و شبیهسازی شبکهها کاربرد دارند، بهویژه زمانی که بخواهیم کمترین هزینه یا بهترین مسیر را بین دو گره پیدا کنیم.
یک گراف وزنی شامل مجموعهای از گرهها (Nodes) و یالها (Edges) است که هر یال بهطور خاص به یک وزن یا مقدار عددی مرتبط است. این وزنها میتوانند نمایانگر فاصله، هزینه یا هر ویژگی دیگری باشند. در یک گراف وزنی، هر یال بهطور معمول به صورت (گره مبدا, گره مقصد, وزن) تعریف میشود. این گرافها میتوانند جهتدار یا بدون جهت باشند.
در اینجا یک مثال ساده از نحوه پیادهسازی یک گراف وزنی جهتدار در زبان Python آورده شده است. در این پیادهسازی، گراف بهصورت دیکشنری از یالها و وزنها ذخیره میشود:
class WeightedGraph:
def __init__(self):
self.graph = {}
def add_edge(self, node1, node2, weight):
if node1 not in self.graph:
self.graph[node1] = []
if node2 not in self.graph:
self.graph[node2] = []
self.graph[node1].append((node2, weight)) # افزودن یال با وزن
self.graph[node2].append((node1, weight)) # افزودن یال برای گراف بدون جهت
def display(self):
for node in self.graph:
print(node, ":", self.graph[node]) # استفاده از گراف وزنی g = WeightedGraph() g.add_edge("A", "B", 5) g.add_edge("A", "C", 10) g.add_edge("B", "C", 2) g.add_edge("C", "D", 7) g.display() # خروجی: # A : [('B', 5), ('C', 10)] # B : [('A', 5), ('C', 2)] # C : [('A', 10), ('B', 2), ('D', 7)] # D : [('C', 7)] در این مثال، از یک دیکشنری برای ذخیره یالها و وزنهای مرتبط با آنها استفاده شده است. در هر بار افزودن یال جدید، یالها با وزنهای مشخص به هر دو گره مربوطه اضافه میشوند.
گرافهای وزنی در بسیاری از زمینهها کاربرد دارند، از جمله:
در نهایت، گرافهای وزنی ابزارهای قدرتمندی برای مدلسازی روابط پیچیده و انجام محاسبات بهینهسازی هستند که در مسائل مختلفی از جمله مسیریابی و شبیهسازیهای شبکهای بهکار میروند. برای آشنایی بیشتر با مفاهیم گرافهای وزنی و دیگر ساختارهای دادهای، میتوانید به سایت saeidsafaei.ir مراجعه کنید و از اسلایدهای محمد سعید صفایی بهرهمند شوید.
در این مبحث، به شناخت، انواع و طرز استفاده از آرایهها پرداخته میشود و چندین مثال عملی با استفاده از فلوچارت و آرایهها رسم خواهیم کرد. همچنین، با توجه به اهمیت فلوچارت در طراحی الگوریتمها، در بخش دوم اسلایدها، چندین تمرین مهم با رسم فلوچارت در اختیار شما قرار خواهد گرفت تا مهارتهای عملی شما در این زمینه تقویت شود.
مفسر برنامهای است که کدهای نوشته شده را به صورت خط به خط اجرا میکند.
نوع دادهای است که برای ذخیرهسازی یک کاراکتر مانند حرفها یا نشانهها استفاده میشود.
نتایج فرآیندهای انجامشده در سیستم که به طور معمول به کاربر یا سیستم دیگری ارسال میشوند. خروجیها میتوانند دادهها، گزارشها یا سیگنالهای مختلف باشند.
محاسبات الهام گرفته از بیولوژی به استفاده از اصول و الگوهای موجود در طبیعت برای طراحی سیستمهای محاسباتی اطلاق میشود.
هوش محیطی به استفاده از فناوریهایی گفته میشود که به محیطها امکان درک و پاسخ به نیازهای کاربران خود را میدهند.
نوعی سیستم که اطلاعات کامل از جزئیات عملکرد آن در دسترس است و به کاربر اجازه میدهد تا عملکرد درونی آن را بررسی و تحلیل کند.
هوش مصنوعی برای امنیت سایبری به کاربرد هوش مصنوعی برای شناسایی تهدیدات سایبری و حفاظت از شبکهها و دادهها اشاره دارد.
تابع لامبدا تابعی است که به صورت مستقیم و بدون نیاز به نامگذاری و در داخل کد به صورت لحظهای تعریف میشود. این توابع معمولاً در مواقعی که توابع ساده و کوتاه نیاز است، استفاده میشوند.
توابع ریاضی توابعی هستند که عملیاتهای ریاضی مانند جمع، تفریق، ضرب، تقسیم، ریشهگیری و لگاریتمگیری را انجام میدهند. این توابع معمولاً در کتابخانههای استاندارد مانند cmath در C++ موجود هستند.
پهنای باند به میزان دادههایی اطلاق میشود که در یک واحد زمانی بین سیستمها یا اجزای مختلف سیستم منتقل میشود.
نوع دادهای است که فقط دو مقدار true یا false را میتواند ذخیره کند و معمولاً در شرایط منطقی به کار میرود.
مدت زمانی که طول میکشد تا یک بسته از مبدأ به مقصد برسد. این تأخیر میتواند انواع مختلفی مانند تأخیر پردازش، تأخیر انتقال و تأخیر انتشار داشته باشد.
سلامت دیجیتال به استفاده از فناوریهای نوین برای نظارت و مدیریت سلامت افراد بهطور آنلاین اطلاق میشود.
تابع اصلی در برنامههای C++ است که برنامه از آن شروع به اجرا میکند. این تابع به طور معمول به صورت int main تعریف میشود.
کامپایلر برنامهای است که کدهای نوشته شده در زبانهای سطح بالا را به زبان ماشین ترجمه میکند.
پروتکلی که هر روتر اطلاعات دقیق درباره توپولوژی شبکه را جمعآوری کرده و بر اساس آن مسیرهای بهینه را محاسبه میکند.
آزادسازی حافظه به فرآیند آزاد کردن حافظه اختصاصیافته به برنامه یا دادهها پس از پایان استفاده از آنها اطلاق میشود.
حافظه دسترسی تصادفی (RAM) دادهها و دستورالعملها را به طور موقت ذخیره میکند و زمانی که پردازنده به آنها نیاز دارد، میتواند به سرعت به آنها دسترسی پیدا کند.
دادههای بزرگ (Big Data) به مجموعههای دادهای اطلاق میشود که حجم و پیچیدگی آنها به قدری زیاد است که نمیتوان با استفاده از ابزارهای سنتی آنها را مدیریت کرد.
دوقلوهای دیجیتال به مدلسازی دقیق سیستمهای فیزیکی بهصورت دیجیتال برای شبیهسازی، نظارت و پیشبینی رفتار آنها گفته میشود.
چرخه ساعت معادل یک واحد زمانی است که پردازنده برای انجام عملیاتهای مختلف نیاز دارد.
مهندسی تقویتشده توسط هوش مصنوعی به استفاده از الگوریتمهای هوش مصنوعی برای بهبود و تسهیل فرآیندهای مهندسی و طراحی اطلاق میشود.
محاسبات ژنومی به استفاده از تکنیکهای محاسباتی برای تجزیه و تحلیل دادههای ژنتیکی و ژنومیک اطلاق میشود.
عملگرهای ریاضی برای انجام عملیاتهایی مانند جمع، تفریق، ضرب و تقسیم روی دادهها استفاده میشوند.
بازنویسی تابع به معنای تعریف مجدد تابع در یک کلاس مشتقشده با همان نام و امضای تابع در کلاس پایه است. این ویژگی در برنامهنویسی شیگرا برای تغییر رفتار توابع به کار میرود.
توابع هش رمزنگاری به توابع ریاضی اطلاق میشود که دادهها را به یک رشته ثابت طول تبدیل میکنند و برای امنیت دادهها استفاده میشوند.
یک بایت معادل 8 بیت است و برای ذخیرهسازی یک کاراکتر در نظر گرفته میشود.
سیستمهای شناسایی بیومتریک به استفاده از ویژگیهای بیولوژیکی و رفتاری افراد برای شناسایی و تأیید هویت آنها اطلاق میشود.
پایگاه دادهای که توسط روترها در پروتکلهای Link-State برای ذخیره اطلاعات وضعیت لینکها استفاده میشود.
شبکههای نرمافزار تعریفشده (SDN) به معماری شبکهای اطلاق میشود که در آن کنترل شبکه از بخشهای فیزیکی جدا شده است.
بینایی رباتها به فناوریهایی اطلاق میشود که به رباتها امکان شبیهسازی دید انسان را میدهند تا محیط اطرافشان را درک کنند.
آرایه چندبعدی آرایهای است که بیش از یک بعد دارد. به عنوان مثال، آرایههای دو بعدی یا سه بعدی برای ذخیره دادههای پیچیدهتر استفاده میشود.
زمان دسترسی به حافظه که مدت زمانی است که پردازنده نیاز دارد تا دادهای را از حافظه بخواند یا در آن بنویسد.
جدولی که برای تبدیل اعداد از یک سیستم عددی به سیستم عددی دیگر استفاده میشود، مانند تبدیل از مبنای دو به هشت یا شانزده.
تبدیل عدد از مبنای هشت به مبنای ده که شامل محاسبه وزن هر رقم و جمع آنها است.