Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
0911136_3EEB9_volkov_m_a_informatika_kurs_lekci...doc
Скачиваний:
7
Добавлен:
13.11.2019
Размер:
618.5 Кб
Скачать

12. Основные логические конструкции языков программирования

Для всех универсальных языков программирования существуют типичные логические конструкции, имеющие одинаковую структуру и отличающиеся, как правило, лишь синтаксисом, который зависит от конкретного языка. К таким операторам относят операторы условия, цикла, множественного выбора и ряд других.

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

Условный оператор IF часто называют оператором ветвления, так как он делить программу на несколько ветвей. Ход выполнения программы в этой случае зависит от выполнения заданного условия. Конструкция условного оператора представлена в таблице 5.

Таблица 5

Конструкция оператора IF

Блок-схема

Pascal

IF условие THEN

BEGIN

инструкции 1;

END

ELSE

BEGIN

инструкции 2;

END;

Работа условного оператора состоит в следующем. Если (IF) условие возвращает логическое значение «1» (то есть «истина»), то (THEN) выполняются инструкции 1 идущие за служебным словом THEN, иначе (ELSE) выполняются инструкции 2 в блоке ELSE (т.е, если условие возвращает логическое значение «0»). Если используется одна инструкция, то операторные скобки BEGIN…END можно опустить. Инструкции в списке разделяются оператором «,» (запятая) или «;» (точка с запятой). Если условие не выполняется (дает логическое значение «0», «ложь»), то инструкции также не выполняются.

Эта конструкция допускает несколько частных вариантов и в простейшем случае выглядит так: IF условие THEN инструкции; .

Условия записываются в следующем виде:

Выражение_1 оператор_отношения выражение_2,

причем, в качестве операторов_отношения используются следующие операторы: ==, <, >, <=, >= или ~=. Все эти операторы представляют собой пары символов без пробелов между ними.

Пример 12.1. Задача: написать программу деления двух чисел и сделать вывод ошибки при вводе в качестве делителя «0». Алгоритм решения в виде блок-схемы и текста программы на Turbo Pascal представлен в таб. 6.

Таблица 6

Алгоритм решения задачи примера 12.1

Блок-схема

Текст программы

var a, b,c: real

begin

writeln(‘a=’);

readln(a);

writeln(‘b=’);

readln(b);

if b<>0 then

begin

c:=a/b;

writeln(‘c=’, c:3:3);

end

else

writeln(‘деление на ноль’);

end.

12.2. Операторы цикла

Для организации циклов используются операторы FOR, REPEAT и WHILE. Первый тип используется обычно для организации вычислений с заданным числом повторяющихся циклов. Конструкция такого цикла представлена в таблице 7.

Таблица 7

Конструкция оператора FOR

Блок-схема

Pascal

FOR var:=start TO final DO

BEGIN

инструкции;

END;

Работу оператора FOR можно описать следующим образом: для (FOR) счётчика цикла var при изменении её от начального значения start до (TO) конечного значения final на каждом шаге её изменения выполнять инструкции. Приращение значения переменной var считается равно «1». Счётчик цикла может изменяться в противоположном направлении – убывать. Для этого место слова TO используется DOWNTO.

Цикл REPEAT…UNTIL является разновидностью циклической конструкции. Общая форма записи выглядит так:

REPEAT операторы;

UNTIL условие;

В этом случае, последовательность операторов, входящих в тело цикла REPEAD…UNTIL выполняется один раз, после чего проверяется условие. Если условие выполняется, то цикл завершается.

Последним типом цикл является конструкция WHILE, представленная в таб.8. Работает этот оператор следующим образом: до тех пор, пока (WHILE) условие верно, выполняются инструкции.

Таблица 8

Конструкция оператора WHILE

Блок-схема

Pascal

WHILE условие DO

BEGIN

инструкции;

END;

Пример 12.2. Задача: написать программу нахождения суммы первых n чисел натурального ряда 1,2,3,…, n. Алгоритм решения в виде блок-схемы и текста программы на Turbo Pascal представлен в таб. 9.

Таблица 9

Алгоритм решения задачи примера 12.2

Блок-схема

Текст программы

var s,i,n:integer

begin

writeln(‘n=’); {посл. чл. ряда}

readln(n);

s:=0;

for i:=1 to n do

s:=s+i;

writeln(‘s=’);

end.

Пример 12.3. Задача: написать программу, позволяющую проверить, является ли введенная строка целым числом. Алгоритм решения в виде блок-схемы и текста программы на Turbo Pascal представлен в таб. 10.

Таблица 10

Алгоритм решения задачи примера 12.3

Блок-схема

Текст программы

var st:string[40];

n,s: integer;

begin

writeln(‘Введите число’);

readln(st);

n:=1; s:=0;

while n<=length(st) do

begin

if (st[n]>=’0’) and (st[n]<=’9’) then

s:=s+1;

n:=n+1;

end;

if s<length(st) then

begin

writeln(‘строка не число’);

end

else

writeln(‘строка явл. числом’);

readln;

end.