Задание
Определить без компьютера, что будет напечатано при выполнении следующих фрагментов программ:
1. k:=20; k:=k+10; if k+10<>30 then k:=8 else k:=k-1; WriteLn (k)
Ответ:
2. k:=20; k:=k+10; if k+10 = 30 then k:=8 else k:=k-1; WriteLn (k)
Ответ:
3. p:=1; if p>0 then p:=p+5; Write (p); if p>10 then p:=p+1; Write (p)
Ответ:
4. p:=5; if p>0 then p:=p*2 else p:=12; if p>5 then p:=p-1 else p:=p+1; WriteLn(p);
Ответ:
5. p:=0;p:=p+1; if p=0 then p:=5 else p:=p-1; WriteLn(p);
Ответ:
6*. p:=5;p:=p*2; if p mod 2=0 then WriteLn(p) else WriteLn(0);
Ответ:
Ответы
Слева - значения переменной на момент их вывода.
1. k=20
k=20+10=30
k=30=>k:=k-1=>
k=29.
2. k=20
k=30
k+10<>30=>k:=k-1=>
k=29.
3. p=1
p>0=>p:=p+5=>
p=6
p<10=>p не изменяется
p=6
4. p=5
p>0=>p=5*2=10
p>5=>p=10-1=9
p=9
5. p=0
p=1
p<>0=>p=1-1=0
p=0
6. p=5
p=5*2=10
p mod 2=0=>выводим p
p=10
1.k=20; k:=k+10;// k=30
if k+10<>30 then k:=8 // k=40 оно не равно 30 =>ответ: k=8
2. r=39
3. p=6
4.p=9
5. p=0
6. p=10