Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Структурные операторы




Структурные операторы — это конструкции, построенные по опреде­ленным правилам из других операторов. К структурным операторам относятся:

o составной оператор;

o условный оператор;

o операторы выбора;

o операторы цикла;

o оператор доступа with.

Составной оператор представляет собой группу из произвольного числа лю­бых последовательно выполняемых операторов, отделенных друг от друга точкой с запятой, и ограничен­ную операторными скобками begin и end. Формат составного оператора:

begin

<оператор_1>;

<оператор_2>;

...

<оператор_ n >;

end;

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

Составные операторы могут вкладываться друг в друга, при этом на глубину вложенности составных операторов ограничений не накладывается.

Условный оператор обеспечивает выполнение или невыполнение некоторых операторов в зависимости от соблюдения определенных условий. Условный оператор в общем случае предназначен для организации разветвления про­граммы. Формат условного оператора:

if <условие> then <оператор_1> [ else <оператор_2>];

Условие представляет собой выражение логического типа. Оператор работа­ет следующим образом: если условие истинно (имеет значение true), то вы­полняется оператор_1, в противном случае выполняется оператор_2. Оба опе­ратора могут быть составными.

Условный оператор может быть записан в сокращенной форме, когда слово else и оператор после него отсутствуют.

Для организации разветвлений на три направления и более можно исполь­зовать несколько условных операторов, вложенных друг в друга. При этом каждое else соответствует тому then, которое непосредственно ему предше­ствует. Из-за возможных ошибок следует избегать большой вложенности условных операторов друг в друга.

Задание 7. Составить программу, которая вводит с клавиатуры три целых числа и, если сумма первых двух больше третьего, но меньше 10, выводит на экран первые 2 числа; в противном случае выводит на экран третье число.

Оператор выбора является обобщением условного оператора и позволяет сделать выбор из произвольного числа имеющихся вариантов, то есть орга­низовать разветвления на произвольное число направлений. Этот оператор состоит из выражения, называемого селектором, списка вариантов и необя­зательной ветви else, имеющей тот же смысл, что и в условном операторе. Формат оператора выбора:

case <Выражение-селектор> of

<Список_1>: <0ператор_1>;

...

<Список­_ N >: <Оператор_ N >

else <Оператор>;

end;

Выражение-селектор должно быть порядкового типа. Каждый вариант представляет собой список констант, отделенных двоеточием от относящегося к данному варианту оператора, возможно, составного. Список констант выбора стоит из произвольного количества значений и диапазонов, отделенных друг от друга запятыми. Границы диапазона записываются двумя константами через разделитель «..». Тип констант должен соответствовать типу выражения-селектора.

Оператор выбора выполняется следующим образом:

1. вычисляется значение выражения селектора;

2. производится последовательный просмотр вариантов на предмет совпадения значения селектора с константами и значениями из диапазонов соответствующего списка;

3. если для очередного варианта этот поиск успешный, то выполняется оператор этого варианта. После этого выполнение оператора выбора заканчивается;

4. если все проверки оказались безуспешными, то выполняется оператор, стоящий после слова else (при его наличии).

Примеры.

а) case i of б) case NumberDay of

1: z:= i+10; 1..5: strDay:=’Work’;

2: z:= i+100; 6, 7: strDay:=’Rest’

3: z:= i+100; else strDay:=’ ‘;

end; end;

Задание 8. Составить программу, которая при вводе с клавиатуры номера месяца выводит на экран сообщение: «Ученье – свет!» для всех месяцев, кроме июля и августа. Для июля и августа сообщение должно быть: «Ура! Каникулы!». При вводе числа за пределами диапазона 1..12 должно появляться сообщение: «В году 12 месяцев!».

Указание: использовать селектор интервального типа.

Операторы цикла используются для организации циклов (повторов). Цикл представляет собой последовательность операторов, которая может выполняться более одного раза. Группу повторяемых операторов называют телом цикла. Всего имеется три вида операторов цикла:

o с параметром;

o с предусловием;

o с постусловием.

Обычно, если количество повторов известно заранее, то применяется оператор цикла с параметром, в противном случае – оператор с пост- или предусловием. Выполнение оператора цикла любого вида может быть прервано с помощи оператора перехода goto или предназначенной для этих целей процедуры Break, которая передает управление на оператор, следующий за оператором цикла. С помощью процедуры Continue можно задать досрочно t завершение очередного повторения тела цикла, что равносильно передач t управления в конец тела цикла.

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

Оператор цикла с параметром

Оператор цикла с параметром имеет два формата:

for <Параметр>:= <Выражение1> to <Выражение2> do <0ператор>;

и

for <Параметр>:= <Выражение1> downto <Выражение2> do <0ператор>;

Параметр цикла представляет собой переменную порядкового типа, которая должна быть определена в том же блоке, где находится оператор цикла; вы­ражение1 и выражение2 являются, соответственно, начальным и конечным значениями параметра цикла и должны иметь тип, совместимый с типом параметра цикла.

Оператор цикла обеспечивает выполнение тела цикла, которым является оператор, расположенный после слова do, до полного перебора всех значе­ний параметра цикла от начального до конечного с соответствующим ша­гом. Шаг параметра всегда равен 1 для первого формата цикла и -1 – для второго формата. То есть значение параметра последовательно увеличивает­ся или уменьшается на единицу при каждом повторении цикла.

Цикл может не выполниться ни разу, если для цикла for... to значение начального выражения больше конечного, а для цикла for... downto значение начального выражения меньше конечного.

Примеры. var i, j: integer; ch: char;

begin

for i:=10 to 14 do write(i:4); writeln;

for j:=14 downto 10 do write(j:4); writeln;

for ch:=’a’ to ‘e’ do write(ch:3);

end;

Результат: 10 11 12 13 14

14 13 12 11 10

a b c d e

Оператор цикла с постусловием

Оператор цикла с постусловием целесообразно использовать в тех случаях, когда тело цикла необходимо выполнить не менее одного раза и заранее не­известно общее количество повторений цикла. Формат оператора:

Repeat

<0ператор1>;

...

<0ператор N >;

until <условие>;

Условие – это выражение логического типа. Операторы, заключенные между словами repeat и until, составляют тело цикла и выполняются до тех пор, пока логическое выражение не примет значение true. То есть тело цикла повторяется при значении логического выражения, равном false. Посколь­ку условие проверяется в конце цикла, то операторы тела цикла выполняют­ся, как минимум, один раз.

В теле цикла может находиться произвольное число операторов без опера­торных скобок begin и end. По крайней мере, один из операторов тела цик­ла должен влиять на значение условия, в противном случае произойдет зацикливание.

Примеры.

а) d:=1; s:=0; б) d:=1; s:=0;

repeat repeat

s:=s+d s:=s+d;

until (d >100); d:= d +1;

//бесконечный цикл until (d >100);

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...