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