سئوال اول - با توجه به تعریف روبرو کدام عملیات زیر صحیح می باشد؟
c: (red,green,blue);
1-write (red);
2-write (pred(ord(red)));
3-write (succ(pred(pred(red))));
4- write (succ (c));
--------------------------------------------------------------------------------------------------------------------------------------------------------
سئوال دوم - خروجی دستور زیر چیست؟
type
D=(A,B,C,E,F);
begin
writeln(ord(C)+Succ(A)+pred(F));
۶-۱
۳-۲
۵-۳
۴ -خطا دارد
--------------------------------------------------------------------------------------------------------------------------------------------------------
سئوال سوم - خروجی برنامه زیر چیست؟
type
color =(red,green,blue,yellow)
var
c:color;
begin
c:=red;
write (chr(succ(c)+'A'); end;
1- green A
2- 1A
3-'A'
4- خطا دارد
اگه میشه لطفا اینو برام توضیح بدین که کدوم گزینه میشه به چه دلیل؟
خوب این کد ها رو تو pascal بنویس اجرا کن ببین چیه خروجیش!
زیاد پاسکال یادم نمونده مخصوصا enumerationهاش رو! منابع پاسکالم هم دست این و اونه. در نتیجه مطمئن نیستم جوابهام درست باشه! حتی احتمال داره هر 3 جواب غلط باشه!
سوال 1: 2
سوال 2: 4
سوال 3: 4
در کل تا جایی که یادم هست با توابع pred و succ نمیشد چاپ کرد و اگر حتی میخواستیم succ(yellow) رو چاپ کنیم باید به صورت ord(succ(yellow)) این کار رو می کردیم. یعنی عمل چاپ فقط با تابع ord مجاز بود.
در مورد گزینه 2 سوال اول که درست هست (به نظر من) ord(red) برابر 0 هست در نتیجه pred اون، برابر -1 می شه و چاپ خواهد شد!
بعضی از این موارد از یک کامپایلر تا کامپالیر دیگه متفاوته و نمیشه حکم کلی صادر کرد. با توجه به چیزی که توی دانشگاهها خواسته میشه باید دید چه جوابی مد نظر هست!
شرمنده، من از این سوال و جواب ها چیزی سر نیاوردم !!، D: