Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Краткие теоретические сведения. В языке ПАСКАЛЬ имеется два оператора, позволяющих выполнять действия в зависимости от результата вычисления выражения (“разветвлять” программу).




В языке ПАСКАЛЬ имеется два оператора, позволяющих выполнять действия в зависимости от результата вычисления выражения (“разветвлять” программу).

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

Оператор if, реализующий алгоритмическую конструкцию “Развилка”, изменяет порядок выполнения операторов в зависимости от истинности (ложности) некоторого условия. Его общий вид:

if S then A else B;

или

if S then A;

где S – некоторое логическое выражение, истинность которого проверяется;

A – любой оператор (простой или составной)) языка ПАСКАЛЬ, который выполняется, если выражение S истинно;

B – любой оператор (простой или составной)) языка ПАСКАЛЬ, который выполняется, если выражение S ложно.

Оператор условия if (ЕСЛИ) выполняется следующим образом. Сначала вычисляется выражение, записанное в условии. В результате его вычисления получается значение булевского типа. В первом случае, если значение выражения есть истина (True), выполняется оператор A, указанный после слова then (ТО), а если результат вычисления выражения в условии есть ложь (False), то выполняется оператор B, указанный после слова else (ИНАЧЕ).

Во втором - если результат выражения True, выполняется оператор A, если False - оператор, то оператор, следующий сразу за оператором if, конечно, если таковой имеется.

Операторы if могут быть вложенными.

Примечание:

При использовании вложенных условных операторов может возникнуть синтаксическая неоднозначность, иллюстрируемая следующей схемой:

if S1 then if S2 then A else B;

Возникающая двусмысленность, к какому оператору if принадлежит часть else B, разрешается тем, что служебное слово else всегда ассоциируется (связывается) с ближайшим по тексту служебным словом if, которое еще не связано со служебным словом else, то есть в рассматриваемом примере со вторым.

В связи с этим следует проявлять аккуратность при записи вложенных операторов условия.

 

Оператор ветвления case

При помощи этого оператора можно выбрать действие из любого количества вариантов. Он состоит из выражения, называемого селектором (selection - выбор альтернативы), и списка параметров, каждому из которых предшествует список констант выбора (список может состоять и из одной константы). Структура этого оператора имеет вид:

Case S of

C1: instruction1;

C2: instruction2;

CN: instructionN

else default_instruction_list;

end;

где S – выражение порядкового типа, значение которого как‑то вычисляется;

C1, C2, … CN – списки констант, того же типа, с которыми сравнивается выражение S, константы в списке разделяются символом “,” (запятая);

instruction1, instruction2, …, instructionN – любые операторы (простые или составные) языка ПАСКАЛЬ, из которых выполняется только тот, с константой которого совпадет вычисленное значение выражения S;

default_instruction_list – последовательность операторов, разделенных символом “;”(точка с запятой), которая выполняется, если вычисленное значение выражения S не совпадает ни с одной из констант C1, C2, … CN.

Примечание:

1) Значение выражения S и констант C1, C2, … CN должны быть одного и того же скалярного типа, кроме real.

2) Константы C1, C2, … CN метками не являются, следовательно, их не требуется описывать в разделе меток label и на них нельзя переходить при помощи оператора перехода goto.

3) Все константы в альтернативах должны быть уникальны в пределах оператора варианта, то есть повторения констант в альтернативах не допускаются; диапазоны не должны пересекаться и не должны содержать констант, указанных в данной или других альтернативах.

4) Секция «else default_instruction_list;» может отсутствовать.

Ниже приведены типичные формы записи оператора case.

Селектор интервального типа:

Case I of

1..10: Writeln ('число ', I:4, ' в диапазоне 1 - 10');

11..20: Writeln ('число ', I:4, ' в диапазоне 11 - 20');

21..30: Writeln ('число ', I:4, ' в диапазоне 21 - 30')

else Writeln ('число ', I:4, ' вне пределов контроля')

end;

Селектор целочисленного типа:

Case I of

1: Z:= I + 10;

2: Z:= I + 100;

3: Z:= I + 1000

end;

Селектор перечисляемого пользовательского типа:

Var Season: (Winter, Spring, Summer, Autumn);

begin

Case Season of

Winter: Writeln ('Winter');

Spring: Writeln ('Spring');

Summer: Writeln ('Summer');

Autumn: Writeln ('Autumn')

end;

end;

Задача №1

Написать программу, которая запрашивает у пользователя координаты точки на плоскости
(x, y) и сообщает ему, попадает ли эта точка в заданную область. Проверку сложных условий производить в одном операторе ветвления, записывая условие в виде логического выражения.

Задача №2

Написать программу, которая запрашивает у пользователя координаты точки на плоскости
(x, y) и сообщает ему, попадает ли эта точка в заданную область. Проверку сложных условий производить последовательностью операторов ветвления.





Поделиться с друзьями:


Дата добавления: 2016-11-18; Мы поможем в написании ваших работ!; просмотров: 806 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Если вы думаете, что на что-то способны, вы правы; если думаете, что у вас ничего не получится - вы тоже правы. © Генри Форд
==> читать все изречения...

2282 - | 2212 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.