====== سوال ۹ ======
تکه کد زیر را در نظر بگیرید:
#include
#include
#include
#include
#include
#include
قرار است هر کدام از شبهکد های زیر را در قسمت مشخص شده (''/ * code here! * /'') قرار داده و تا جای ممکن به جواب برسیم. بهطور دقیقتر، برای هر یک از کدهایی زیر
* در صورتی که کد کامپایل نمیشود، محل و علّت خطای کامپایل (Compilation Error) را مشخّص کرده و معلوم کنید که چگونه باید این خطا را رفع کرد.
* سپس (بعد از رفع خطای کامپایل در صورت موجود) اگر برنامه در هنگام اجرا دچار خطای زمان اجرا (Runtime Error) میشود، محل و علّت آن خطا را مشخّص کرده و مشخّص کنید که چگونه میتوان از این خطا اجتناب کرد.
* در غیر این صورت اگر برنامه بهدرستی کامپایل میشود اما به هر دلیلی (اعم از پایان نپذیرفتن بهخاطر افتادن در حلقهی نامتناهی، فرمت اشتباه خروجی و غیره خواستهی برنامهنویس را برآورده نمیکند، این مورد را به همراه محل و علّت دقیق و نحوهی رفع مشکل بنویسید.
* سپس (بعد از رفع اشکال اجرایی) اگر برنامه ناکارآمد است (برای مثال، پیچیدگی زمانی آن به سادگی قابل کاهش است)، با ذکر نحوهی بهبود کد به این مهم اشاره کنید.
* نهایتاً مقدار متغیرها در هر خط از اجرای برنامه و خروجی برنامه را نیز تا حد امکان با ذکر دلیل بنویسید.
===== کد شماره یک =====
char ns[] = "chituz";
int lb = lower_bound(ns, ns+strlen(ns), 'a') - ns;
int me = min_element(ns, ns+string(ns).length()) - ns;
cout << lb << " " << me << endl;
===== کد شماره دو =====
for (int i=0; i<20; i++)
myv.push_back(make_pair(2*i,2*i+1));
pii = *lower_bound(myv.begin(), myv.end(),
make_pair(11,12));
cout << pii.second << endl;
===== کد شماره سه =====
Point p; p.x = p.y = 020/0.2;
Line line; line.p[0] = p; p.x++; line.p[1] = p;
polygon.push_back(line);
polygon.resize(10);
cout << polygon.begin()->p[1].x << endl;
===== کد شماره چهار =====
strcpy(s, '010101010');
int i = 0, j = 0;
do {
x = s[i] + 0XFF;
c = ++x;
s[i++] = c;
j += 1 && str[i] ^ str[i+1];
} while (j < 5)
cout << s << endl;
===== کد شماره پنج =====
m = 0;
x = (int)&m;
for (int i=0; i<8; i++)
m = (m << 8) + 120 + i;
x = (int)*(char *)x;
cout << (x & 254) << endl;
===== کد شماره شش =====
x = 0;
strcpy(s,"1234567890");
for (c = s[8]; c != 0; c++)
x += c;
cout << x << endl;
for (c = s[8]; c != '0'; c++)
x += c;
cout << x << endl;
* [[سوال ۱۰|سوال بعد]]
* [[سوال ۸|سوال قبل]]