Ветвления
Условный оператор. Условный оператор обеспечивает выполнение или невыполнение некоторых операторов в зависимости от соблюдения определенных условий.
Формат условного оператора:
i f <Условие> then <0ператор1>
else <0ператор2>;
Условие представляет собой выражение логического типа. Оператор if выполняется следующим образом: если условие истинно (имеет значение true), то выполняется оператор 1, в противном случае выполняется оператор2. Оба опeратора могут быть составными.
Условный оператор может быть записан в сокращенной форме, когда слово else и оператор после него отсутствуют.
Для организации разветвлений на три направления и более можно использовать несколько условных операторов, вложенных друг в друга. При этом каждое else соответствует тому then, которое непосредственно ему предшествует. Из-за возможных ошибок следует избегать большой
вложенности условных операторов друг в друга.
Пример 5.5. Применение условного оператора.
if х>0 then x:=2*x+l else x:=1;
Оператор варианта. Оператор варианта является обобщением условного оператора и позволяет делать выбор из произвольного числа имеющихся вариантов, то есть организовать разветвления на произвольное число направлений. Этот оператор состоит из выражения, называемого селектором, списка вариантов и необязательной ветви else, имеющей тот же смысл, что и в условном операторе.
Формат оператора выбора:
Case <Выражение-селектор> of
<Список1> : <Оператор1>;
. . .
<Список> : <Оператор N>
else <Оператор>;
end;
Выражение-селектор должно быть порядкового типа. Каждый вариант представляет собой список констант, отделенных двоеточием от относящегося к данному варианту оператора, возможно, составного. Список констант состоит из произвольного количества значений и диапазонов, отделенных друг от друга запятыми. Границы диапазона записываются двумя константами через разделитель «..» . Тип констант должен соответствовать типу выражения-
селектора. Оператор варианта выполняется следующим образом:
1) вычисляется значение выражения селектора
2) производится последовательный просмотр вариантов на предмет
совпадения значения селектора с константами и значениями из диапазонов
соответствующего списка.
3) если для очередного варианта этот поиск успешный, то выполняется
оператор этого варианта. После этого выполнение оператора выбора заканчивается.
4) если все проверки оказались безуспешными, то выполняется оператор, стоящий после слова else (при его наличии).
Пример 5.6. Программа вывода дня недели по его номеру.
program den;
Var
day:byte;
Begin
write (‘введите число 1-7’);
readln (day);
case day of
1:writeln(‘понедельник’);
2.writeln(‘вторник’);
3:writeln(‘среда’);
4:writeln(‘четверг’);
5:writeln(‘пятница’);
6:writeln(‘суббота’);
7.writeln(‘воскресенье”);
end;
End.
В зависимости от значения целочисленной переменной day, содержащей номер дня недели, выводится на экран соответствующее значение.
Циклы
Операторы цикла используются для организации циклов (повторов). Цикл представляет собой многократное повторение последовательности операторов. Группу повторяемых операторов называют телом цикла. Всего имеется три вида операторов цикла: с параметром,c предусловием ,c постусловием.
Если количество повторов заранее известно, то применяется оператор цикла с параметром for.
Если число повторов заранее неизвестно и определяется самим ходом вычисления, то используются циклы с предусловием while и постусловием
repeat. Примером являются вычисления с заданной точностью, поиск в массиве или в файле.
Оператор цикла с параметром (цикл for). Оператор цикла for имеет два формата:
For счетчик_цикла:=начальное_значение_счетчика to конечное_значение счетчика do
Begin
{ оператор}
End;
Счетчик_цикла – имя переменной счетчика циклов (целого, символьного,
булевого или перечислимого типа).
Начальное_значение_счетчика и конечное_значение счетчика - выражение, имеющие тип, совместимый с счетчиком_цикла,
Оператор - одиночный или составной оператор. Счетчик цикла увеличивается на 1 после каждого прохождения цикла. При уменьшении счетчика цикла нужно заменить ключевое слово to на downto.
В обычном случае набор операторов выполняется фиксированное число раз, пока счетчик_цикла принимает значения из указанного диапазона.
Пример 5.7. Программа вычисления суммы чисел а1,…,аnвведенных с
клавиатуры.
Programprog5_7;
usesWinCrt;
Var
i: integer; // Счетчик цикла
n:integer; // Конечное значение счетчика
s:integer; //Сумма
Begin
s:=0;
read(n); // Ввод конечного значения счетчика цикла
for i:=1 to n do
Begin
read(a};
s:=s+a;
End;
Write (s);
end.
Цикл с постусловием(repeat..until). Цикл с постусловием целесообразно использовать в программе, если надо выполнить многократно некоторое число операторов а число повторов заранее не известно и определяется самим ходом вычисления. Часть программы между repeat и until выполняется до тех пор, пока выражение после untilне приметзначение True.
Дата добавления: 2015-01-13; просмотров: 926;