13.02.2022

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

В этой статье расскажем о ветвлениях в языке программирования Паскаль:

  • условный оператор if
  • оператор безусловного перехода goto
  • оператор выбора case

Условный оператор if

В решении задач ветвление позволяет выполнять цепочку действий в зависимости от поставленного условия. 

Конструкция условного оператора в полной форме

if условие then оператор1 else оператор2;

Перевод служебных слов с англ. яз.:

  • if - если
  • then - тогда
  • else - иначе

Как работает условный оператор

Если условие принимает значение ИСТИНА (TRUE), то выполняется оператор1, иначе (условие принимает значение ЛОЖЬ - FALSE) выполняется оператор2.

Конструкция условного оператора в краткой форме

if условие then оператор;

Оператор ветвления в краткой форме имеет только ветвь ИСТИНА.

Задача. С клавиатуры вводится целое число. Если оно четно, то увеличить его в три раза, иначе уменьшить на 5.

Исходные данные: целое число N (тип integer)

Выходные данные: измененное число N (тип integer)

Как будем решать задачу

  1. Поставим условие проверки на четность: вычислим остаток от деления на 2 операцией mod: N mod 2.
  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. организуем выбор значения последней цифры из вариантов 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.

Читать

Дано трехзначное число. Определить, является ли сумма его цифр двузначным числом

Читать

Является ли число двузначным

Читать

Известен рост трех человек. Определить, одинаков ли их рост?

Читать

2 комментария: