В этой статье расскажем о ветвлениях в языке программирования Паскаль:
- условный оператор
if
- оператор безусловного перехода
goto
- оператор выбора
case
Условный оператор if
В решении задач ветвление позволяет выполнять цепочку действий в зависимости от поставленного условия.
Конструкция условного оператора в полной форме
if условие then оператор1 else оператор2;
Перевод служебных слов с англ. яз.:
- if - если
- then - тогда
- else - иначе
Как работает условный оператор
Если условие принимает значение ИСТИНА (TRUE), то выполняется оператор1, иначе (условие принимает значение ЛОЖЬ - FALSE) выполняется оператор2.
Конструкция условного оператора в краткой форме
if условие then оператор;
Оператор ветвления в краткой форме имеет только ветвь ИСТИНА.
Задача. С клавиатуры вводится целое число. Если оно четно, то увеличить его в три раза, иначе уменьшить на 5.
Исходные данные: целое число N (тип integer)
Выходные данные: измененное число N (тип integer)
Как будем решать задачу
- Поставим условие проверки на четность: вычислим остаток от деления на 2 операцией mod:
N mod 2
. - Если остаток от деления на 2 равен 0, то число N увеличим в три раза
N:=N*3
, иначе уменьшим число на 5:N:=N-5
.
Программа решения на языке Паскаль
var N:integer;
begin
write('Введите целое число N=');
readln(N);
if N mod 2 = 0 then N:=N*3 else N:=N-5;
writeln('Измененное число N=',N);
end.
Результат выполнения программы
Оператор безусловного перехода goto
goto метка;
Пример использования: проверка формата введенного числа.
Задача. Ввести натуральное число не более 100.
Исходные данные: n - число (тип integer)
Выходные данные: сообщение "Введено корректное число" или "Неверное число. Повторите ввод"
Программа решения на языке Паскаль
label vvod;
var n:integer;
begin
vvod:readln(n);
if (n<1) or (n>100) then
begin
writeln('Неверное число. Повторите ввод');
goto vvod;
end
else
writeln('Введено корректное число');
end.
Для описания меток используется раздел label
.
Примеры правильных меток:
- 10 (число)
- t2 (строка)
- ch (строка)
Как работает оператор безусловного перехода
Когда выполняется оператор goto
, происходит безусловный переход к оператору, обозначенному меткой (через знак двоеточие)
метка: оператор;
Например:
vvod: readln(n);
Переход к метке vvod вызывает выполнение оператора readln(n), а затем следующих за ним операторов.
Таким образом, оператор goto
меняет порядок выполнения операторов в программе.
Оператор выбора case
Приведем в пример задачу, которую можно решить с использованием оператора выбора case
.
Задача. Пользователь вводит свой год рождения. Программа сообщает, сколько полных лет пользователю.
Разберемся с окончаниями и русским языком.
1 год, 2 года, 3 года, 4 года, 5-20 лет, 21 год, 22-24 года, 25-30 лет
Исходные данные:
n - год рождения пользователя (тип integer)
t - текущий год (тип integer)
Выходные данные:
сообщение о возрасте с окончанием год, года, лет
Как будем решать задачу
- вычислим последнюю цифру числа (возраста)
- организуем выбор значения последней цифры из вариантов 1, 2-4, прочих
Если последняя цифра числа:
1: программа должна вывести окончание год
2-4: года
иначе: лет
Программа решения на языке Паскальvar n,t:integer;
begin
writeln('Введи свой год рождения');
readln(n);
t:=2022;
case (t-n) mod 10 of
1: writeln('Тебе в этом году ',t-n,' год');
2..4: writeln('Тебе в этом году ',t-n,' года');
else
writeln('Тебе в этом году ',t-n,' лет');
end;
end.
Формат оператора выбора
case выражение of
константа 1: оператор 1;
константа 2: оператор 2;
константа 3: оператор 3;
...
константа N: оператор N
else оператор
end;
Как работает оператор выбора
Если значение выражения равно значению Константы N, то выполняется Оператор N, в противном случае выполняется Оператор после слова else, если же ветка else отсутствует, то действие переходит к следующему оператору в программе. В качестве выражения и константы должны выступать значения порядкового типа (например, integer, char). В качестве константы можно использовать список (например, 1,2,3) или диапазон (например, 10..99).
А что, если пользователь введет не положительное число?
Задан проходной балл. Запрашиваются оценки абитуриента на трех экзаменах и сообщается о результате приема в институт. Читать |
Определить, делителем каких целых чисел из А, В и С является целое число N. Читать |
Дано трехзначное число. Определить, является ли сумма его цифр двузначным числом Читать |
Является ли число двузначным Читать |
Известен рост трех человек. Определить, одинаков ли их рост? Читать |
То пользователю будет больше 2022 года?
ОтветитьУдалить2022 и больше
Удалить