Оператор присваивания и ветвления (ЕГЭ Задание 22)

Что нужно знать:

  • переменная – это величина, которая имеет имя, тип и значение; переменная может изменяться во время выполнения программы
  • оператор присваивания служит для записи значения в переменную
  • если в переменную записывают новое значение, старое стирается
  • знаки +, , *, / используются для обозначения операций сложения, вычитания, умножения и деления
  • запись вида a div b означает результат целочисленного деления a на b (остаток отбрасывается)
  • запись вида a mod b означает остаток от деления a на b
  • запись вида a := b + 2*c + 3; означает «вычислить значения выражения справа от знака присваивания := и записать результат в переменную a»; при этом значения других переменных (кроме a) не изменяются
  • для многократного выполнения одинаковых операций используют циклы;
  • цикл с переменной выполняется N раз, в этом примере переменная i принимает последовательно все значения от 1 до N с шагом 1

for i:=1 to N do begin

  { что-то делаем }

end;

  • цикл с условием выполняется до тех пор, пока условие в заголовке цикла не нарушится;

while { условие } do begin

  { что-то делаем }

end;

  • главная опасность при использовании цикла с условием – зацикливание; эта такая ситуация, когда цикл работает бесконечно долго из-за того, что условие все время остается истинным

Возможные ошибки

  • нельзя забывать про знак переменных и про то, что «минус на минус дает плюс»
  • нужно не забыть, что умножение и деление имеют одинаковый приоритет, то есть выполняются по порядку слева направо (если нет скобок)
  • нужно уметь анализировать работу алгоритма, «прокручивать» его в уме

Тренировочные задания

  1. Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

a := 3 + 8*4;

b := (a div 10) + 14;

a := (b mod 10) + 2;

2. Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

a := 1819;

b := (a div 100)*10+9;

a := (10*b–a) mod 100;

3. Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

a := 42;

b := 14;

a := a div b;

b := a*b;

a := b div a;

4. Определите значение целочисленных переменных x, y и t после выполнения фрагмента программы:

x := 5;

y := 7;

t := x;

x := y mod x;

y := t;

5. Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

а :=6*12 + 3;

b :=(a div 10)+ 5;

a :=(b mod 10)+ 1;

6. Определите значение целочисленных переменных x и y после выполнения фрагмента программы:

x := 336

У := 8;

x := x div y;

y := х mod у;

 7. Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

а :=1686;

b :=(a div 10) mod 5;

а := а – 200*b;

8. Определите значение целочисленных переменных x и y после выполнения фрагмента программы:

х := 11;

у := 5;

t := y;

у := х mod у;

x := t;

у := у + 2*t;

9. Определите значение целочисленных переменных x и y после выполнения фрагмента программы:

х := 19;

у := 3;

z := у*2;

у := х mod у;

х := х – z;

у := у + z;

10. Определите значение целочисленных переменных x, y и z после выполнения фрагмента программы:

х := 13;

у := 3;

z := x;

x := z div у;

у := х;

11. В результате выполнения фрагмента программы

while n <> 0 do begin

  write ( 2*(n mod 5 + 3) );

  n := n div 10;

end;

на экран выведено число 10614. Какое число хранилось до этого в переменной n, если известно, что все цифры в нем нечетные?

12. Определите значение переменной b после выполнения следующего фрагмента программы, где a и b – вещественные (действительные) переменные:

a := -5;

b := 5 + 7 * a;

b := b / 2 * a;

13. Определите значение переменной b после выполнения следующего фрагмента программы, где a и b – вещественные (действительные) переменные:

a := 5;

b := 5 3 * a;

b := b / 2 * a;

14. Определите значение переменной b после выполнения следующего фрагмента программы, где a и b – вещественные (действительные) переменные:

a := 5;

b := 5 + 5 * a;

b := b / 2 * a;

15. Определите значение переменной b после выполнения следующего фрагмента программы, где a и b – вещественные (действительные) переменные:

a := 7;

b := 7 + 3 * a;

b := b / 2 * a;

16. Определите значение переменной c после выполнения следующего фрагмента программы:

a := 100;

b := 30;

a := a – b*3;

if a > b then

     c := a – b

else c := b – a;

17. Определите значение переменных a и b после выполнения следующего фрагмента программы:

a := 2468;

b := (a mod 1000)*10;

a := a div 1000 + b;

18. Определите значение переменной c после выполнения следующего фрагмента программы:

a := 6;

b := 15;

a := b – a*2;

if a > b then

     c := a + b

else c := b – a;

19. Определите значение переменной c после выполнения следующего фрагмента программы:

a := -5;

b := 14;

b := b + a*2;

if a > b then

     c := a + b

else c := b – a;

20. Определите значение переменной c после выполнения следующего фрагмента программы:

a := -5;

b := 3;

a := a – b*2;

if a > b then

     c := b – a

else c := a – b;

21. Определите значение переменной c после выполнения следующего фрагмента программы:

a := -5;

b := -3;

a := a – b*3;

if a > b then

     c := b + a

else c := a – b;

22. Определите значение переменной c после выполнения следующего фрагмента программы:

a := -2;

b := -3;

a := b + a*3;

if a < b then

     c := a – b

else c := b – a;

23. Определите значение переменной c после выполнения следующего фрагмента программы:

a := 40;

b := 10;

b := a – 2*b;

if a < 2*b then

     c := a

else c := b;

24. Определите значение переменной c после выполнения следующего фрагмента программы, в котором a, b и с – переменные вещественного (действительного) типа:

a := 120;

b := 100;

a := a + b / 2;

if b < a / 2 then

     c := b + a

else c := b + a / 2;

25. Определите значение переменной S после выполнения следующего фрагмента программы:

S:=1; i:=1;

while i < 5 do begin

  S := S + i*(i+1);

  i := i + 1;

end;

26. Определите значение переменной S после выполнения следующего фрагмента программы:

S:=0; i:=7;

while i > 1 do begin

  S := S + i div 2;

  i := i – 1;

end;

27. Определите значение переменной P после выполнения следующего фрагмента программы:

P:=1; i:=3;

while i <= 9 do begin

  P := P * (i div 3);

  i := i + 1;

end;

28. Определите значение переменной с после выполнения следующего фрагмента программы:

a:= 7;

a:= a – 4;

b:= -a;

c:= -a + 2*b;

29. Определите значение переменной с после выполнения следующего фрагмента программы:

a:= 5;

a:= 12 – a*a;

b:= -a;

c:= 10*a – b;

30. Определите значение переменной с после выполнения следующего фрагмента программы:

x:= 2.5E+02;        { 2.5E+02 = 2.5·10+02 = 250}       

x:= x + 0.5E+02;    { 0.5E+02 = 0.5·10+02 = 50}

y:= -x;

c:= -2*y – x;

31. Определите значение переменной с после выполнения следующего фрагмента программы:

m:= 67;

m:= m + 13;

n:= m/4 – m/2;

c:= m – n;

32. Определите значение переменной с после выполнения следующего фрагмента программы:

x:= 8 + 2*5;

y:= (x mod 10) + 14;

x:= (y div 10) + 3;

c:= x – y;

33. Определите значение переменной с после выполнения следующего фрагмента программы:

a := 30;

b := 6;

a := a / 2 * b;

if a > b then

     c := a – 3 * b

else c := a + 3 * b;

34. Определите значение переменной с после выполнения следующего фрагмента программы:

a := 30;

b := 6;

a := a / 5 * b;

if a > b then

     c := a – 4 * b

else c := a + 4 * b;

35. Определите значение переменной с после выполнения следующего фрагмента программы:

a := 6*12 + 3;

b := a div 10 + 5;

a := b mod 10 + 1;

c := a*a + b*b – a / 2 * b;

36. Определите значение переменной с после выполнения следующего фрагмента программы:

a := 30;

b := 14;

a := a – 2 * b;

if a > b then

  c := b + 2 * a

else

  c := b – 2 * a;

37. Определите значение переменной с после выполнения следующего фрагмента программы:

a := 40;

b := 6;

a := a * 3 / b;

if a > b then

  c := a + 5 * b

else

  c := a – 5 * b;

38. Определите значение переменной с после выполнения следующего фрагмента программы:

a:= 30; 

b:= 6;  

a:= a * 3 / b;    

if a < b then

  с:= 2*a – 10     * b

else    

  с:= 2*a + 10     * b;

39. Определите значение переменной с после выполнения следующего фрагмента программы:

a:= 30;

b:= 6;

a:= a * 3 / b;

if a > b then

  с:= 2*a – 5*(b+2)

else

  с:= 2*a + 5*(b+2);

40. Определите значение переменной s после выполнения следующего фрагмента программы:

  n := 1;

  s := 0;

  while n <= 101 do begin

    s := s + 7;

    n := n + 1

  end;

41. Определите значение переменной s после выполнения следующего фрагмента программы:

  n := 4;

  s := 0;

  while n <= 8 do begin

    s := s + 15;

    n := n + 1

  end;

42.  Определите значение переменной n после выполнения следующего фрагмента программы:

  n := 0;

  s := 512;

  while s >= 0 do begin

    s := s – 20;

    n := n + 1

  end;

43.  Определите значение переменной s после выполнения следующего фрагмента программы:

  n := 14;

  s := 0;

  while n <= 18 do begin

    s := s + 25;

    n := n + 1

  end;

44.  Определите значение переменной с после выполнения следующего фрагмента программы:

a:= 30;

b:= 6;

a:= a/5 – (b – 3);

if 2*a > b then

  с:= a – 5*b + 2;

else

  с:= a + 5*b + 2;

45. Определите значение переменной с после выполнения следующего фрагмента программы:

a := 30;

b := 6;

a := a * 3 / b;

if a < b then

  c := 3*a – 5 *(b+3)

else

  c := 3*a + 5 * (b+3);

46. Определите значение переменной с после выполнения следующего фрагмента программы:

a := 56;

b := 2;

k := 5;

a := a/8 – b;

if a > b then

  c := 10*a – k*b

else

  c := 10*a + k*b;