- •Лекция 1 Тема: Организация линейной программы. Цель: Ознакомиться с алфавитом языка Паскаль, операторами присваивания и ввода-вывода.
- •Общие сведения
- •Алфавит языка Паскаль
- •Константы
- •Целые Действительные
- •Символьные константы
- •Переменные
- •Перечисляемые типы данных
- •Выражения
- •Оператор присваивания
- •Организация программы
- •Комментарии
- •Операторы ввода-вывода
- •Операторы ввода
- •Операторы вывода
- •Стандартная форма вывода данных
- •Управление формой вывода данных
- •Оператор условного перехода
- •Оператор варианта.
- •Логические отношения
- •Лекция 3 Тема: Операторы цикла. Цель: Познакомиться с операторами цикла, научиться применять их при составлении программ.
- •Понятие циклического процесса.
- •Операторы цикла с присваиванием.
- •Оператор цикла с предусловием.
- •Оператор цикла с постусловием.
- •Вложенные циклы.
Оператор условного перехода
Разветвляющийся вычислительный процесс, содержащий две ветви, схематично может быть изображен с помощью структуры выбора (структуры разветвления), которая содержит три элемента: логическое условие, ветвь ДА и ветвь НЕТ. Общий вид структуры представлен на рис.1.
После вычислений, общих для обеих ветвей (блок 1), проверяется некоторое условие (блок 2). Если оно выполняется, то осуществляется переход к первой ветви – ветви ДА (блок 3), в противном случае – ко второй ветви – ветви НЕТ (блок 4). После выполнения вычислений в любой из ветвей осуществляется переход к общему участку 2 (блок 5). Структура выбора в языке Паскаль реализуется с помощью условного оператора (оператора условного перехода), который позволяет выполнять один из двух входящих в него операторов в зависимости от значения некоторого логического выражения. Оператор имеет следующий вид:
ΙF < логическое выражение >
THEN < оператор 1 >
ELSE < оператор 2 >; где IF (если), THEN (то), ELSE (иначе) – служебные слова; оператор 1, оператор 2 – любые операторы языка.
Рис.1.
Порядок выполнения условного оператора поясняется рис. 2. Если значение логического выражения равно true (истинно), то выполняется оператор 1 (оператор 2 пропускается), если значение логического выражения равно false (ложно), то выполняется оператор 2 (оператор 1 пропускается). Далее в любом случае выполняется оператор, стоящий в программе непосредственно за оператором if (оператор 3).
Значение true и false получают обычно в результате выполнения операций сравнения (отношения):
< - меньше;
<= - меньше или равно;
> - больше;
>= - больше или равно;
= - равно;
< > - не равно.
Операнды этих операций (константы, переменные, функции, выражения, не содержащие отношений) могут быть вещественного, целого или логического типа.
Простейшим примером использования условного оператора является вычисление значения функции по одной из двух предложенных формул в зависимости от значения аргумента:
Оператор, реализующий выражение для некоторого значения аргумента Х, выглядит следующим образом:
IF X>0
THEN Y: =LN (X)
ELSE Y: =EXP (X);
Здесь логическое выражение – отношение Х>0, оператор 1, оператор 2 – операторы присвоения Y: =LN (X) и Y: =EXP (X).
Примером, когда логическое выражение в операторе имеет более сложную структуру, может служить задача определения, можно ли построить треугольник из отрезков заданной длины: x,y,z (x>0, y>0, z>0).
Условный оператор имеет вид:
IF (X+Y>Z) AND (X+Z>Y) AND (Y+Z>X)
THEN WRITELN (‘треугольник построить нельзя’);
ELSE WRITELN (‘треугольник построить нельзя’);
Условный оператор может не иметь конструкции ELSE, такая форма оператора называется сокращенной:
IF <логическое выражение> THEN <оператор>;
Порядок выполнения оператора IF в сокращенной форме поясняется рис. 3.
Рис. 3
Если логическое выражение принимает значение FALSE , то сразу выполняется оператор, следующий за оператором IF.
Например,
IF X>0 THEN WRITELN (X);
Z: =SQR (X);
Условные операторы могут иметь вложенную конструкцию, когда после THEN или FALSE используется так же условный оператор. При этом справедливо следующее правило: ELSE всегда относится к ближайшему слева оператору IF. Например, требуется вычислить значение функции по одной из предложенных форму:
Для программной реализации используется вложенная конфигурация условного оператора:
IF X>=1
THEN Y: =SQRT (X)
ELSE IF X>0
THEN Y: =LN (X)
ELSE Y: =EXP (X);
В состав условного оператора может входить только один оператор. Если какую либо ветвь разветвления требуется вставить несколько операторов, то они объединяются в один, составной оператор, для чего в начале группы этих операторов записывается слово BEGIN, а в конце – служебное слово END:
BEGIN
<оператор 1>;
<оператор 2>;
……………..
<оператор N>;
END;
Элементами составного оператора могут быть любые операторы языка, в том числе условные и другие составные операторы.
Пример: Вычислить корни квадратного уравнения общего вида а <>0, ax2+bx+c=0 в области действительных чисел. Введем следующие обозначения: A, B, C – коэффициенты уравнения;
D – дискриминант;
X1, X2 – корни;
E – допустимая погрешность вычислений.
{ОПРЕДЕЛЕНИЕ КОРНЕЙ КВАДРАТНОГО УРАВНЕНИЯ}
PROGRAM KU;
CONST
E=1E-4; {погрешность вычислений}
VAR
A, B, C, X1, X2, D: REAL;
BEGIN
READ (A, B, C);
WRITELN (‘A=’, A,’B=’, B,’C=’, C);
D: =SQR (B)-4*A*C;
IF D <0
THEN WRITELN (‘корни мнимые’)
ELSE BEGIN
IF ABS (D)<E
THEN BEGIN
X1: =-B/(2*A);
X2: =X1;
END
ELSE BEGIN
X1: =(-B+SQRT (D))/(2*A);
X2: =(-B-SQRT (D))/(2*A);
END;
WRITELN (‘X1=’, X1, ’X2=’, X2);
END;
END.
Для каждого условного оператора конструкции THEN, ELSE записаны под соответствующим IF; операторы, ограниченные операторными скобками BEGIN – END, записаны так же друг под другом и смещены вправо относительно BEGIN и END.
В примере структура выбора входит составной частью в одну из ветвей (ветвь - НЕТ) другой структуры выбора, такие ветвления называются сложными.
