سوالات المپیاد:دوره ی تابستان:دوره ی ۲۰:برنامه نویسی:سوال ۱
موردی
به سؤالات زیر، هر مورد در حدّ یک جمله پاسخ دهید.
مفاهیم Human Readablity و Code Dead را در هر کدام حد یک جمله تعریف کنید.
دو دلیل عمده استفاده از توابع در برنامهنویسی را ذکر کنید.
میدانیم در زبان $C$ میتوانیم یک آرایه به طول ۱۰۰ نظیر int a[100]
تعریف کنیم و در متن برنامه متغیرهایa[-5]
یا a[101]
داشته باشیم. آیا این کار الزاماً همیشه باعث خطای کامپایل میشود؟ (هرگز؟ همیشه؟ گاهی (توضیح دهید)؟) آیا این کار الزاماً همیشه باعث خطای زمان اجرا میشود؟ (هرگز؟ همیشه؟ گاهی (توضیح دهید)؟)
دو مورد از مزایا و دو مورد از معایب آزادی عمل در کار با آرایهها (نظیر مثال قبلی) که در زبان C
داریم را بیان کنید.
اصلیترین ریشهی اشتباهات برنامهنویسی در چیست؟ دو مثال از مواردی بزنید که این علّت باعث رخدادن اشتباهات برنامهنویسی (bug) میشود. (هر مثال در حدّ یک جمله فارسی)
میدانیم گرایش به برنامههای آزاد (Free Softwares) در دهه اخیر بهشدت اوج گرفته است. یک سؤال پایه در زمینه برنامههای آزاد این است که «نویسندگان این برنامهها از کجا پول در میآورند؟!». دو مورد از منابع درآمد نویسندگان و سازندگان برنامههای آزاد و متنباز را ذکر کنید.
«محلیسازی» یا Localization به تغییر و بهبود یک برنامه برای یک موقعیت [جغرافیایی] خاص گفته میشود. برای مثال پشتیبانی از تقویم فارسی و زبان فارسی، میتواند یک نمونه محلیسازی برای یک برنامه کامپیوتری باشد.از بین یک برنامه آزاد و متن باز محلیسازی شده و یک برنامه نوشته شده توسّط برنامهنویسان بومی (که باید با هزینه متوسطی خریداری شود) شما کدام را ترجیح میدهید؟ دو مورد از مزایای تهیه و استفاده هر کدام از این دو سبک برنامه را ذکر کنید.