Какое значение примет переменная х после выполнения фрагмента программы

Обновлено: 04.05.2024

Условие a <= b не выполняется, поэтому действие then x = a + b будет пропущено. Присвоение будет выполнено так, как указано в части else:

x:= 2 * a – 4 * b = 2 * 53 - 4 * 14 = 106 - 56 = 50.

Ответ: после выполнения фрагмента программы значение переменной х будет равно указанному в варианте d) 50.


Помогите пожалуйста, срочно надо.

Для того, чтобы определить какое значение будет принимать переменная Х, после выполнения фрагмента исходной программы, пройдем по этой программе вручную следующим образом:

1) а: =4, b: = 5, с: = 3.

2) If a > b then x: = a + b

4 > 5 - не верно, значит переходим на следующий шаг программы после ключевого слова else:

a: = b + c = 5 + 3 = 8; получили, что значение a теперь равняется 8.

x:= а - 3 * b = 8 - 3 * 5 = 8 - 15 = -7.

4) Поскольку следующим идет команда end, значит программа завершает и получаем значение x: = -7.

При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор. Его общий вид:

Для записи неполных ветвлений используется неполная форма условного оператора:

Слова if — then — else переводятся с английского языка на русский как если — то — иначе, что полностью соответствует записи ветвления на алгоритмическом языке.

Перед else знак «;» не ставится.

В качестве условий используются логические выражения:

  • простые — записанные с помощью операций отношения;
  • сложные — записанные с помощью логических операций.


Пример 1. Запишем на языке Паскаль рассмотренный в п. 2.4.2 (пример 8) алгоритм определения принадлежности точки х отрезку [а, b].

program n_9;
var х, a, b: real;
begin
writeln ('Определение принадлежности точки отрезку');
write ('Введите а, b>>');
readln (а, b) ;
write ('Введите х»');
readln (х);

if (х>=а) and (x<=b) then
writeln ('Точка принадлежит отрезку')
else writeln ('Точка не принадлежит отрезку')
end.


Пример 2. Воспользуемся неполным условным оператором для записи на языке Паскаль рассмотренного в п. 2.4.2 (пример 9) алгоритма присваивания переменной у значения наибольшей из трёх величин а, b и с.

program n_10;
var у, a, b, с: integer;
begin
writeln ('Нахождение наибольшей из трёх величин');
write ('Введите а, b, с>>');
readln (а, b, с) ;
у:=а;

if (b>y) then y:=b;
if (с>у) then у:=с;
writeln ('у=', у)
end.


Дополните эту программу так, чтобы её выполнение приводило к присваиванию переменной у значения большей из четырёх величин а, b, с и d.

Оператор ветвления на Паскале

image

В языке Паскаль имеется оператор ветвления. Другое его название — условный оператор.

Формат полного оператора ветвления следующий:

if <логическое выражение> then <оператор1> else <оператор2>

Здесь if — «если», then — «то», else — «иначе».

Программирование полного и неполного ветвления

Сравните запись алгоритма БИД 1 на алгоритмическом языке с соответствующей программой на Паскале.

image

Очень похоже на перевод с русского языка на английский. Обратите внимание на следующее отличие: в программе нет специального служебного слова, обозначающего конец ветвления. Здесь признаком конца оператора ветвления является точка с запятой. (Разумеется, оставлять в программе пустую строку совсем не обязательно. Здесь это сделано только ради наглядности.)

Простой формой логического выражения является операция отношения. Как и в АЯ, в Паскале допускаются все виды отношений (ниже указаны их знаки):

image

А теперь запрограммируем на Паскале алгоритм БИД2, в котором использовано неполное ветвление.

image

Опять всё очень похоже. Ветвь else в операторе ветвления может отсутствовать.

Запишем на Паскале программу определения большего из трех чисел, блок-схема которой показана на рис. 2.6. Структура этого алгоритма — вложенные ветвления. Алгоритм на АЯ (БИТ2) приведен в предыдущем параграфе.

image

Обратите внимание на то, что перед else символ «;» не ставится, так как этот символ является разделителем операторов. Вся ветвящаяся часть структуры алгоритма заканчивается на точке с запятой после оператора D:=С.

Составим программу упорядочения значений двух переменных.

image

Этот пример иллюстрирует следующее правило Паскаля: если на какой-то из ветвей оператора ветвления находится несколько последовательных операторов, то их нужно записывать между служебными словами begin и end. Конструкция такого вида:

begin <последовательность операторов> end

называется составным оператором. Следовательно, в описанной выше общей форме ветвления <оператор1> и <оператор2> могут быть простыми и составными операторами.

Читайте также: