Разветвляющийся алгоритм применяется, когда в зависимости от условия необходимо выполнить либо одно, либо другое действие. Эти действия могут быть составным оператором. При словесном способе описания разветвления, последовательность такова:
1.Если выполняется условие, то выполняется оператор1
2. Если условие не выполняется, то выполняется оператор2.
В TP имеются два условных оператора: if и case
Условный оператор if
Формат записи: 1 вариант: if <условие> then <оператор1> else <оператор2>
{ если <условие> то <оператор1> иначе <оператор2>}
2 вариант: if <условие> then <оператор1>
{ если <условие> то <оператор1>}
Принцип действия: сначала проверяется или вычисляется условие. В результате получается значение булевского типа. Если значение условия True (Истина), то выполняется <оператор1> (стоящий после then); если значение условия False (Ложь) – выполняется <оператор2> (стоящий после else).
Задача.
Задано число х. Вычислить S.
В качестве <оператора1> и <оператора2 > могут использоваться и составные операторы. Тогда необходимо их объединять с помощью операторных скобок (begin и end).
Формат записи: if <условие> then
begin
<оператор1>
<оператор2>
….
<операторN>
end
else
begin
<оператор1>
<оператор2>
….
<операторM>
end;
Задачи.
1. Составить блок-схему и написать программу, которая будет определять наибольшее из двух (трех) чисел, вводимых с клавиатуры.
2. Составить блок-схему и написать программу, которая проверяет, является ли введенное число четным (или нечетным)
3. Составить блок-схему и написать программу, которая определяет, пройдет ли график функции y=5x2-7x+2 через заданную точку (a, b)
4. Составить блок-схему и написать программу, которая вычисляет частное от деления двух чисел, вводимых с клавиатуры. Проверить, не является ли делитель 0.
Операторы if могут быть вложенными (составными).
Например: if <условие> then
if <условие> then <оператор1> else <оператор2>
Оператор выбора case
Оператор case позволяет сделать выбор из произвольного числа имеющихся вариантов. Оператор состоит из выражения-селектора (selection – выбор альтернативы), относительно которого выбирается вариант, и списка параметров, каждому из которых константа или список констант.
Принцип действия: сначала вычисляется значение <выражения-селектора>, затем выполняется тот оператор, константа которого равна значению <выражения-селектора>. Если ни одна константа не равна значению <выражения-селектора>, то выполняется оператор, стоящий за else.
Если слово else отсутствует, то выполняется оператор, стоящий после слова end, т.е. находящийся за пределами оператора case.
<Выражение-селектор> должен относиться к одному из целочисленных типов, булевскому, символьному или пользовательскому. Список констант состоит из произвольного количества значений или диапазона. Границы диапазона записываются следующим образом: a..b, где a – начальное значение диапазона, b – конечное значение.
Тип констант обязательно должен совпадать с типом <выражения>. <операторы>, идущие после констант могут быть составными операторами.
Формат записи: case <выражение-селектор>of
<константа1>:
begin
<оператор1>;
<оператор2>;
……………..
<операторM>;
end;
…………………………
<константаN>: <операторN>;
else <оператор>;
end.
Задачи.
1. Написать программу - калькулятор, которая выполняет простые действия: -, +, /, * с числами, введенными с клавиатуры
2. Написать программу, которая определяет день недели,
т.е. 1-6 – будни, 7-суббота, 8-воскресенье.
Нужно выдать соответствующее сообщение.
3. Написать программу для вычисления дней в месяце, если даны:
номер месяца N – целое число от 1 до 12, целое число A –
равное 1 для високосного года и 0 в противном случае.
Program solution;
var a:integer; x,s:real;
begin
writeln(‘Введите x’);
readln (x);
writeln(‘Введите a’);
readln (a);
case a of
1: s:=x+1;
5: s:=x+2;
7: s:=x+3;
11: s:=x+10;
else s:=x;
end;
writeln(‘s =’,s);
end.
Задача. Вычислить
Операторы цикла
Цикл – это многократно повторяемая последовательность действий (операторов).
Применение циклов в программе позволяет эффективно использовать ПК, приводит к уменьшению объема программы к уменьшению времени на ее составление и отладку. Программы с циклом называются циклическими.
Особенность операторов цикла: повторяющиеся записи записываются один раз.
В TP существует 3 вида операторов цикла:
1. Цикл с параметром (счетчик)
Используется тогда, когда точно известно сколько раз должна повторяться циклическая часть.
Формат записи: for i:=a to b do <тело цикла>;
где i – параметр цикла, a – начальное значение, b – конечное значение, <тело цикла> - последовательность повторяющихся действий.
Условие: a<b или a≤i≤b, I должно быть стандартного типа, кроме real; a,b должны быть одного типа.
Направление изменения значения параметра цикла определяется с помощью зарезервированных слов to – возрастание, downto – убывание.
Принцип действия: Переменная i последовательно принимает значения от a до b с шагом 1. Для каждого из значений i выполняется тело цикла, которое может быть составным оператором.
Цикл с параметром может быть реализован 2 способами:
I способ.
i:=a;
1: if i≤b then
begin
<тело цикла>;
i:=i+1;
end;
goto 1;
2: <операторы>;