- •Конспект лекций
- •1.4 Общая структура программы
- •1.5 Стандартные процедуры и функции
- •1.6 Процедуры ввода/вывода
- •2. Простые типы данных
- •2.1 Целые типы
- •2.2 Вещественные типы
- •2.3 Cимвольный тип данных
- •2.4 Логический тип данных.
- •2.5 Ограниченные типы
- •2.6 Перечислимые типы
- •2.7 Описание типов
- •2.8 Преобразование типов
- •2.9 Порядок вычисления выражений
- •3. Операторы языка Паскаль
- •3.1 Оператор присваивания
- •3.2 Составной оператор
- •3.3 Условный оператор
- •3.4 Оператор выбора case
- •3.5 Оператор цикла с параметром (цикл for)
- •3.6 Оператор цикла с предусловием (цикл while)
- •1 Вариант:
- •2 Вариант:
- •3 Вариант:
- •3.7 Оператор цикла с постусловием (цикл repeat)
- •3.8 Вложенные циклы
- •3.9 Оператор перехода goto
- •4. Массивы
- •4.2 Сортировка элементов массива
- •4.3 Многомерные массивы
- •5. Подпрограммы (процедуры и функции)
- •5.1 Процедуры
- •5.2 Функции
- •5.3 Области действия имен
- •5.4 Параметры процедур и функций
- •5.5 Побочные эффекты при использовании подпрограмм
- •5.6 Передача массивов в подпрограммы
- •5.7 Параметры-костанты
- •5.8 Массивы открытого типа
- •5.9 Рекурсия в подпрограммах
- •6. Строковый тип данных
- •6.1 Описание строк
- •6.2 Операции со строками
- •6.3 Процедуры и функции для работы со строками
- •7. Стандартные модули Турбо-Паскаля
- •7.1 Модули турбо3 и graph3
- •7.2 Модуль overlay
- •7.3 Модуль dos
- •7.4 Модуль system
- •7.5 Модуль printer
- •7.6 Модуль crt
- •7.7 Модуль graph
- •8. Записи
- •8.1 Определение записи
- •8.2 Оператор над записями
- •8.3 Вложенные записи
- •8.4 Массив записей
- •8.5 Записи с вариантами
- •9. Файлы
- •9.1 Определение файла
- •9.2 Процедуры и функции для работы с файлами
- •9.3 Нетипизированные файлы
- •10. Интегрированная среда Турбо Паскаля
- •10.1 Как начать работу с Турбо Паскалем
- •10.2 Ваша первая программа
3.3 Условный оператор
Реализует алгоритмическую конструкцию «развилка».
Условный оператор позволяет выполнить один из двух возможных операторов в зависимости от некоторого условия. Структура условного оператора следующая:
if <условие> then <оператор 1> else <оператор 2>;
Условие должно иметь логический тип. Если значение условия равно true, то выполняется Оператор 1, если условие равно false, то Оператор 2. Перед else точка с запятой не ставится.
if a>b then max:=a else max:=b;
Например, если a=3, b=7, то выполнится оператор max:=a; в противном случае, т.е.
если a=7, b=3, то выполнится оператор max:=b; .
Часть условного оператора, начинающаяся со слова else, может отсутствовать. Тогда, если условие истинно, выполняется оператор1, если ложно, то выполняется оператор, следующий за условным.
if x=0 then writeln(‘ошибка’);
Если при выполнении или невыполнении условия необходимо выполнить несколько действий, то организуется составной оператор.
if a>b then
begin max:=a; min:=b; end
else begin min:=a; max:=b; end;
Например, если a=3, b=7, то выполнятся операторы max:=a; min:=b; в противном случае, т.е.
если a=7, b=3, то выполнятся операторы min:=a; max:=b; .
Для схематической записи алгоритмов решения задач существует язык блок-схем. Приведем основные элементы блок-схемы:
Действие |
Блок |
Начало процесса | |
Ввод данных | |
Присваивание | |
Проверка условия | |
Заголовок цикла | |
Вывод результатов | |
Конец процесса |
Блок-схема нахождения корней квадратного уравнения
Схемы условного оператора:
полного сокращенного
вложенного:
if <условие 1> then <оператор 1> else if <условие 2> then <оператор 2> else <оператор 3>
|
if <условие 1> then if <условие 2> then <оператор 1> else <оператор 2>;
|
Условные операторы могут быть вложенными друг в друга. В этом случае else связывается с ближайшим к нему if:
if (a>b) and (a>c) then max:=a
else if (b>c) then max:=b
else max:=c;
Например, если a=7, b=2, c=4, то выполнится оператор max:=a; , т.к. (a>b) and (a>c)=True (истина);
в противном случае, т.е. если (a>b) and (a>c)=False (ложь), выполнится оператор
if (b>c) then max:=b
else max:=c;
если, например, a=2, b=7, c=4, то выполнится оператор max:=b;
если, например, a=2, b=4, c=7, то выполнится оператор max:=с;.
Пример:
var i,j: integer;
ok: boolean;
begin
writeln(‘Введите i и j > 0’);
readln(i,j);
ok:=(i>0) and (j>0);
if (not ok) then begin
writeln(‘Неверный ввод’);
halt;
end;
end.