====== سوال ۴ ====== تکه کد زیر را در نظر بگیرید: #include #include #include using namespace std; int main() { char c, s[10]; int x, *p; long long m; /* code here! */ return 0; } قرار است هر کدام از شبه‌کد های زیر را در قسمت مشخص شده ‎(''/ * code here! * /'')‎ قرار داده و تا جای ممکن به جواب برسیم. به‌طور دقیق‌تر، برای هر یک از کدهایی زیر * در صورتی که کد کامپایل نمی‌شود، محل و علّت خطای کامپایل (Compilation Error) را مشخّص کرده و معلوم کنید که چگونه باید این خطا را رفع کرد. * سپس (بعد از رفع خطای کامپایل در صورت موجود) اگر برنامه در هنگام اجرا دچار خطای زمان اجرا (Runtime Error‎) می‌شود، محل و علّت آن خطا را مشخّص کرده و مشخّص کنید که چگونه می‌توان از این خطا اجتناب کرد. * در غیر این صورت اگر برنامه به‌درستی کامپایل می‌شود اما به هر دلیلی (اعم از پایان نپذیرفتن به‌خاطر افتادن در حلقه‌ی نامتناهی، فرمت اشتباه خروجی و ‎غیره‎ خواسته‌ی برنامه‌نویس را برآورده نمی‌کند، این مورد را به همراه محل و علّت دقیق و نحوه‌ی رفع مشکل بنویسید. * سپس (بعد از رفع اشکال اجرایی) اگر برنامه ناکارآمد است (برای مثال، پیچیدگی زمانی آن به سادگی قابل کاهش است)، با ذکر نحوه‌ی بهبود کد به این مهم اشاره کنید. * نهایتاً مقدار متغیرها در هر خط از اجرای برنامه و خروجی برنامه را نیز تا حد امکان با ذکر دلیل بنویسید. ===== کد شماره یک ===== c = 1000 / float(10) - 35; cout << c << endl; ‎ ===== کد شماره دو ===== x = (1 << 32) - 1; cout << x << endl; ===== کد شماره سه ===== strcpy(s, "hello0\n"); s[1] = 'A' / 1LL + 0X00; p = (int *)(s + 1); if (*p == 'A') cout << c << endl; ===== کد شماره چهار ===== ‎ char c2 = -1; c2++; if (c2 == 0) cout << "Yes!" << endl; ===== کد شماره پنج ===== strcpy(s, "welcome"); x = s[strlen(s)]; x++; x++; p = &x; if (x & (*p == 2)) cout << "Bah Bah!" << 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; ===== کد شماره هفت ===== int &q = x; x = 5; *p = q; x++; x = *(&q); cout << x << " " << p << " " << &q << endl; ===== کد شماره هشت ===== x = 1; do { c = -2; for ( ; ; x++,c++) if (x == 10) break; else continue; } while (c < -1); cout << "akheysh! " << x << endl; * [[سوال ۵|سوال بعد]] * [[سوال ۳|سوال قبل]]