Задача Задача №1597146
А
А
Привет! Давай разберемся с задачей вместе.
У нас есть следующий фрагмент кода:
Var A, B, C: integer;
Begin
A := 4; B := 3;
For i := 1 to 5 do
BEGIN
If B > 2*A Then A := A + B;
If B > 2*A Then A := A + B;
C := 2*A;
B := A + 2;
If B = 2*A Then A := B - 2;
C := A + B;
END;
C := A + B;
Writeln (C , C);
End.
Давай разберем, что происходит.
- A и B инициализируются значениями 4 и 3 соответственно.
- В цикле For от 1 до 5:
- Условие
If B > 2*Aникогда не будет истинным, так как B значительно меньше 2*A в ходе всей программы. - Значит, первая и вторая проверки
If B > 2*Aпропускаются. - Переменная C принимает значения:
- C = 2*A (так как первые 2 проверки
Ifпропущены).
- C = 2*A (так как первые 2 проверки
- В следующей строке:
- B становится равным
A + 2.
- B становится равным
- Следующая проверка
If B = 2*Aснова пропускается, потому что условие не выполнится (B будет A + 2). - C становится
A + B.
- Условие
Теперь посмотрим, что происходит на каждом шаге цикла:
- i = 1:
- C = 2*4 = 8
- B = 4 + 2 = 6
- C = 4 + 6 = 10
- i = 2 (после обновления A и B из предыдущей итерации):
- C = 2*4 = 8
- B = 4 + 2 = 6
- C = 4 + 6 = 10 (и так далее для всех итераций, потому что значения A и B стабильно остаются 4 и 6 соответственно)
После выполнения цикла значение C будет равно 10.
Наконец, программа выводит значение C дважды, поэтому на экране напечатается "10 10".