Давайте разберем условный оператор и его выполнение для каждого из заданных случаев.
Оператор, который мы анализируем, выглядит следующим образом:
if j > k then
j := k - 2
else
k := k - 2;
if j > k then
j := k - 2
else
dec(k, 2);
Для каждого случая определим значения j
и k
после выполнения этих операторов.
а) j = 3, k = 5
Первый условный оператор: if j > k then j := k - 2 else k := k - 2;
- Здесь
j = 3
и k = 5
. Поскольку j
не больше k
, выполняется else
-ветка: k := k - 2
, то есть k = 5 - 2 = 3
.
Второй условный оператор: if j > k then j := k - 2 else dec(k, 2);
- Теперь
j = 3
и k = 3
. Поскольку j
не больше k
, опять выполняется else
-ветка: dec(k, 2)
, что означает уменьшение k
на 2. Таким образом, k = 3 - 2 = 1
.
Итоговые значения: j = 3
, k = 1
.
б) j = 3, k = 3
Первый условный оператор: if j > k then j := k - 2 else k := k - 2;
- Здесь
j = 3
и k = 3
. Поскольку j
не больше k
, выполняется else
-ветка: k := k - 2
, то есть k = 3 - 2 = 1
.
Второй условный оператор: if j > k then j := k - 2 else dec(k, 2);
- Теперь
j = 3
и k = 1
. Поскольку j
больше k
, выполняется then
-ветка: j := k - 2
, что означает j = 1 - 2 = -1
.
Итоговые значения: j = -1
, k = 1
.
в) j = 3, k = 2
Первый условный оператор: if j > k then j := k - 2 else k := k - 2;
- Здесь
j = 3
и k = 2
. Поскольку j
больше k
, выполняется then
-ветка: j := k - 2
, то есть j = 2 - 2 = 0
.
Второй условный оператор: if j > k then j := k - 2 else dec(k, 2);
- Теперь
j = 0
и k = 2
. Поскольку j
не больше k
, выполняется else
-ветка: dec(k, 2)
, что означает уменьшение k
на 2. Таким образом, k = 2 - 2 = 0
.
Итоговые значения: j = 0
, k = 0
.
Таким образом, итоговые значения переменных j
и k
после выполнения условного оператора для каждого случая будут:
а) j = 3
, k = 1
б) j = -1
, k = 1
в) j = 0
, k = 0