Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shp.doc
Скачиваний:
17
Добавлен:
18.09.2019
Размер:
5.46 Mб
Скачать

5.Условный оператор и оператор выбора вариантов в языке Паскаль. Структурная схема. Примеры использования.

Условный оператор имеет общие формы записи:

IF b THEN a;

или IF b THEN a1 ELSE a2;

Где b – логическое выражение; a, a1,a2 – операторы.

Первая форма записи позволяет организовать вычисление оператора а, если логическое выражение имеет значение TRUE, в противном случае выполняется не оператор а, а оператор, стоящий за условием. В качестве операторов а, а1, а2 используется любой простой или составной оператор.

Примеры записи:

IF T>6.5 Then GOTO 10;

IF X<0 then P:=X*X;

IF D>0 THEN BEGIN x1:=R+I; x2:=R-I; END;

Вторая форма записи оператора позволяет выбирать одно из двух возможных направлений вычислений. Если логическое выражение принимает значение TRUE, то выполняется оператор а1, иначе выполняется оператор а2.

Примеры записи.

If y>0 then D:=SQRT (Y) else D:=y;

If D>0 then begin x1:=R+I; x2:=R-I end else begin F:=R; E:=I end;

IF…Then может содержать в себе некоторое число других условных операторов If…Then , а также операторные скобки. Для оператора IF справедливо: условия –могут быть сложные математические выражения; после then или после else опять может стоять if ..then; составной оператор может содержать внутри себя другой составной оператор: условные операторы могут быть вложены.

Оператор выбора (CASE .. of).

Обеспечивает организацию разветвлений путем выбора одного из нескольких операторов. Селектором в операторе выбора является выражение, значение которого может принадлежать типам целого, литерного, логического либо типу, определяемому пользователем, а также перечисленному и интервальному. Оператор выбора имеет список с элементами, представляющий собой операторы, перед которыми записывается одна или несколько констант, отделяемых двоеточием. Выбор оператора определяется совпадением значений селектора и константы, стоящей перед оператором. Порядковая переменная (селектор) не только разделяет ветки, но и дает возможность их объединить. Объединенные ветки задаются через запятую (2,7,9), а в случае, если от..до (8..15), то они указываются через две точки. (Н-Р. Программа, запрашивающая номер месяца и выводящая время года. Если указать недопустимое число, то выводится ошибка.

Program God;

Var m:integer;

Begin

Writeln (‘Введите номер месяца’);

Readln (m);

Case m of

1,2,12:Writeln (‘’);

3..5:Writeln (‘’);

6..8:Writeln (‘’);

9..11:Writeln (‘’)

ELSE Writeln (‘’);

End;

Readln;

End.

6 Структурные типы данных. Массивы. Записи, вариантные, вложенные.

К сложным типам данных относятся: записи, множества, массивы, файлы.

Массивы - это сложная структура данных, которая представляет собой однородную по типу, фиксированную по размеру совокупность элементов упорядоченных по номерам. Массив отражает следующие математические понятия: 1) вектор (одномерный массив), 2) матрица (двумерный массив), пространство (n мерный массив). Для объявления массива необходимо: 1) указать размерность – количество индексов необходимых при обращении к одному элементу, 2) Указать размер массива – количество элементов в массиве. Каждый элемент массива имеет некоторое число индексов, определяющих его положение. Элементы массива упорядочены по индексам. Мощность индекса определяется количеством элементов по данному измерению. Массив определяется именем (индексатором) и количеством индексов. Имя массива является единым для всех его элементов. Элементами массива могут быть переменные простых и составных типов. Тип индексов должен быть простым. Предположение описания одномерного массива имеет вид:

Var имя_массива: array [начальный индекс..конечный индекс] of тип данных;

Array – зарезервированное слово, указывающее, что имя относится к массиву.

Запись. В практике программирования иногда приходится иметь дело с данными, которые представляют собой объединение разнотипных данных. Запись – это совокупность конечного числа разнородных (разнотипных) элементов, называемых полями. Описание записи выглядит так:

Type имя_записи = record

имя поля1: тип поля1;

имя поля2: тип поля2;

имя поляN: тип поля N;

end;

Пример описания записи, содержащей сведения об адресате:

Type Address=record

K:Integer;

City:String;

Street:String;

Flat:Integer;

End;

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

Каждое поле записи можно считать обычной переменной, которой можно присвоить имя, ввести или вывести ее значение. Обращаться к полю нужно по составному имени: имя_записи.имя_поля. С другой стороны, запись можно рассматривать в программе и как единое целое. Пусть: var A:Address; , тогда присваивание A.city:=’Кривой Рог’;. Запись могут быть элементами массивов. Отдельные поля записей тоже могут быть записями. За счет этого в Паскале можно создавать сложные структуры данных. Для сокращения текста программы и увеличения ее наглядности в Паскале используется оператор присоединения with. Его формат: with имя_записи do оператор;. Этот оператор полезно использовать при обращении к нескольким полям записи либо при многократном обращении к какому то полю.

Фиксированная запись. Она представляет собой структуру с постоянным количеством полей. Элементами могут быть простые типы, множества, файлы. Для объявления необходимо: Type: TAB=Record; A,B:real; end;.

Вариантные записи. Записи переменной структуры. Она состоит из двух частей. Первая – фиксированная, вторая – вариантная. Ограничения: 1) В описании может быть только одна вариантная часть, 2)Все идентификаторы списка полей должны быть различны. Но на разных уровнях вложения полей допускаются одинаковые имена, 3)Вариантная часть должна быть последней в записи, 4) Вариантная часть может содержать другие вариантные части. Описание переменной части может быть двумя способами: a) TYPE SEL=тип; Case SEL of метка1: (список полей); метка2: (список полей); … END; б) TYPE SEL=тип; CASE PR: SEL of метка1: (список полей); метка2: (список полей); END;

SEL- тип ключа, PR – имя переменной селектора (ключа) для выбора варианта.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]