
- •Содержание
- •Предисловие научного редактора
- •Введение
- •1. Понятие алгоритма. Способы представления алгоритмов
- •В виде компьютерной программы:
- •2. Свойства алгоритмов
- •Язык графического представления алгоритмов
- •4. Общие принципы построения программ
- •5. Структура программы на языке паскаль
- •6. Классификация типов данных, используемых в языке паскаль
- •6.1. Символьный тип
- •6.2. Числовые типы
- •6.2.1. Целые типы
- •6.2.2. Вещественные типы
- •6.3. Логический тип
- •6.4. Типы данных, определяемые программистом
- •7. Основные операторы языка паскаль.
- •7.1. Операторы (процедуры) ввода – вывода
- •7.2. Оператор присваивания
- •7.3. Условный оператор
- •Первый вариант условного оператора:
- •If условие then оператор1 else оператор2;
- •Второй вариант условного оператора (сокращенная форма):
- •If условие then оператор1;
- •If условие1 then
- •If условие2 then оператор21 else
- •If условие3 then оператор31 else
- •7.4. Оператор выбора case
- •7.5. Операторы цикла
- •7.5.1. Оператор цикла с параметром
- •Параметр цикла I меняет свои значения только автоматически, при переходе к следующему шагу цикла. Изменения параметра цикла I в теле цикла запрещены.
- •7.5.2 Оператор цикла с предусловием оператор цикла с предусловием имеет структуру:
- •7.5.3. Оператор цикла с постусловием
- •8. Структурированные типы данных
- •8.1. Массивы
- •8.2. Записи
- •8.3. Файлы
- •2.Связать файловую переменную с именем файла на диске с помощью процедуры Assign(фп, ‘имя_файла_на диске’).
- •3. Открыть файл:
- •4. Выполнить работу с файлом.
- •Закрыть файл при окончании работы: Сlose(фп);
- •9. Процедуры и функции
- •9.1. Процедуры
- •Var I:integer; {I – локальная переменная}
- •9.2. Функции
- •2)Имя функции входит составной частью (как переменная) в некоторое выражение.
- •Задание к лабораторной работе №2.
- •Часть 1. Тема: вычисление по формулам и представление результатов с учетом форматного вывода.
- •Часть 2. Тема: Циклические вычисления с учетом диапазона типа данных и выдача результатов вычислений по шагам.
- •Задание к лабораторной работе №3.
- •Часть 1 .
- •Часть 2.
- •Задание к лабораторной работе №4.
- •Лабораторная работа №5.
7.3. Условный оператор
УСЛОВНЫЙ ОПЕРАТОР IF – проверяет некоторое условие, которое может принимать одно из двух значений (False, True), и определяет, в соответствии с этим значением, одно из двух возможных направлений выполнения программы. В качестве условия в операторе IF может использоваться либо логическая переменная, либо выражение типа «отношение», принимающее после вычисления одно из логических значений ИСТИНА (True) или ЛОЖЬ (False). Существует два варианта структуры условного оператора.
Первый вариант условного оператора:
If условие then оператор1 else оператор2;
Здесь оператор1, оператор2 – простые или составные операторы. Оператор1 выполняется при значении условия True, после чего программа переходит к оператору, следующему за знаком «;». Если условие принимает значение False, то выполняется оператор2 и программа также переходит к оператору за знаком ‘;’ (точка с запятой).
Второй вариант условного оператора (сокращенная форма):
If условие then оператор1;
Здесь если условие истинно, то есть условие принимает значение True, то выполняется оператор1, иначе, при значении условия False, никаких действий не производится и программа переходит к оператору, следующему за знаком ‘;’.
Как отмечалось в определении вариантов условного оператора IF, оператор1 и оператор2 – любые операторы (простые или составные), в том числе может быть и условный оператор. Тогда возможно появление структуры условного оператора, содержащего также условный оператор:
IF условие1 THEN {следующая строчка – оператор 1 – условный оператор:} If условие2 then оператор21 else оператор22
ELSE оператор2;
Однако наличие сокращенной формы условного оператора в этом случае требует большой осторожности и аккуратности программиста [см. также 5], так как, например, условный оператор вида if условие1 then
if условие2 then
оператор1
else оператор2
допускает две разные трактовки: как полный условный оператор
if условие1 then
begin if условие2 then оператор1
end else оператор2;
и как сокращенный условный оператор
if условие1 then
begin if условие2 then оператор1 else оператор2
end;
По правилам языка Паскаль верной считается вторая трактовка [5]: каждое слово Else соответствует первому предшествующему ему слову Then. Для избежания ошибок и недоразумений, связанных с отмеченным обстоятельством, рекомендуется желаемую форму условного оператора выделять, заключая в операторные скобки оператор, предшествующий слову Else:
If условие1 then
Begin{начало оператора 11:}
If условие2 then оператор21 else
Begin {начало оператора 22:}
If условие3 then оператор31 else
оператор32
End {конец оператора 22:}
Еnd{конец оператора 11:}
ELSE оператор12;
Ниже рассмотрены примеры применения условного оператора.
Пример1. (Применение полной формы условного оператора). Пусть требуется вычислить функциюY, принимающую значение –3(Х+2) при Х<0 и значение 5X при Х>=0. Такое вычисление можно выполнить с помощью одного условного оператора:
IF X<=0 THEN Y:= -3*(X+2) ELSE Y:= 5*X;
Пример2. (Применение составного оператора). Пусть требуется вычислить площадь круга S и длину окружности L по заданному радиусу R при выполнении некоторого условия А > D:
IF A>D THEN {далее – составной оператор, включающий два простых оператора:}
Begin S:=pi*R*R; L:=2*pi*R End;
Примечание. Этот оператор записан синтаксически правильно, так как в языке Паскаль допускается произвольное расположение операторов по строкам. Однако в соответствии с принципами структурирования программ (см. главу 4) для наглядности лучше записать так:
IF A>D THEN
Begin
S:=pi*R*R; L:=2*pi*R
{перед End знак «точка с запятой» в Паскале можно не cтавить}
End;
Очевидно, что для корректного вычисления S и L необходимо провести проверку еще одного условия “R>=0” и в случае невыполнения его выдать на монитор соответствующее сообщение.
Ниже приводится два варианта программирования этой задачи:
{ Вариант первый: два условия объединены в одно логической операцией And(И), которая означает «одновременно, и то и другое»:}
IF (A>D) and (R>=0) THEN
Begin
S:=pi*R*R; L:=2*pi*R
End
ELSE write(‘Вычисления невозможны, так как условие
ложно’);{объединение двух условий в одно не позволяет выявить точную причину невозможности вычисления, так как результатом логического умножения будет значение False при получении значения False любым из сомножителей, то есть при нарушении любого из отдельных условий, входящих в логическое произведение, или при нарушении обоих условий одновременно }
{ Вариант второй: условия разделены и проверяются разными условными операторами:}
IF (A>D) THEN
BEGIN
If (R>0) then
Begin
S:=pi*R*R; L:=2*pi*R
End
Else write(‘Вычисления невозможны, так как радиус R<=0’)
END
ELSE write(‘Вычисления невозможны, так как условие A>D не выполнено’);
ОПЕРАТОР БЕЗУСЛОВНОГО ПЕРЕХОДА (по метке) – имеет структуру GOTO metka; и служит для безусловного (обязательного) изменения направления последовательности выполнения операторов программы. Здесь metka – код (целое без знака) или слово, указывающие на оператор, который будет выполняться после оператора GOTO metka.
Примечание. Согласно принципам структурного программирования оператор безусловного перехода использовать не рекомендуется.