You are not allowed to perform this action

کوتاه پاسخ

به سؤالات زیر، هر مورد در حدّ یک جمله‌یا یک پارگراف پاسخ دهید.

  1. اصطلاحات Null-Terminated و Stack$ $overflow و Prototype را تعریف کنید.
  2. روش‌های ارسال پارامتر به تابع به دو دسته کلّی تقسیم می‌شوند. یکی از این دسته‌ها دسته روش‌های Call By Reference است. $a$)روش دوم چیست؟ $b$) تفاوت این دو روش در چیست؟ (دو مورد ذکر کنید) $c$) دو روش پیاده‌سازی Call By Reference با توجه به آموخته‌های شما در درس کدامند؟ $d$) تفاوت این دو روش پیاده‌سازی در چیست؟ (دو مورد ذکر کنید).
  3. توصیه می‌شود که طول آرایه‌های یک برنامه MAXN به‌صورت پارامتریک (یک پارامتر ثابت) تعریف شود. $a$)دو روش مناسب برای این کار (تعریف و ذخیره کردن MAXN با توجه به آموخته‌های شما در درس کدامند؟ $b$) آیا این دو روش از نظر سرعت در زمان اجرا با هم تفاوت دارند؟ $c$) شما چه روشی را توصیه می‌کنید؟ چرا؟
  4. مفهوم Capacity در یک vector به چه معناست؟ آیا امکان دارد در حالتی .size() یک vector بیش‌تر از .capacity() بشود؟
  5. فرض کنید می‌خواهیم یک vector به‌طول ۱۰۰ بسازیم که اعداد صفر تا ۹۹ در آن قرار بگیرد. برای این منظور دو راه مختلف (دو نحوه مختلف وارد کردن اعداد به vector) را پیشنهاد کنید. آیا این دو روش از نظر پیچیدگی زمان اجرا (اصطلاحاً Order) با هم تفاوت دارند؟ از نظر زمان اجرای دقیق چه طور؟
  6. می‌خواهیم برنامه‌ای بنویسیم که گراف‌های تصادفی تولید کند. این برنامه پارامترهایی برای ساخت گراف نظیر تعداد رئوس، درصد وقوع یال‌ها، تعداد مؤلفه‌های همبندی، میانگین وزن یال‌ها، حداقل و حداکثر وزن یال‌ها و … دارد. با کمک این برنامه قرارست ۱۰۰ گراف تصادفی با مقادیر مختلف پارامترها ساخته شود.

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