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




Операторы языка

Простые операторы

Простые операторы – это операторы, не содержащие других операторов. К ним относятся:

o оператор присваивания;

o оператор (безусловного) перехода;

o пустой оператор;

o оператор вызова процедуры.

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

<имя переменной> =: <выражение>;

Вместо имени переменной можно указывать элемент массива или поле записи. Отметим, что знак присваивания := отличается от знака равенства = и имеет другой смысл. Знак присваивания означает, что сначала вычисляется значение выражения, а затем оно присваивается указанной переменной. Поэтому при условии, что х является числовой переменной, имеющей оп ределенное значение, допустима следующая конструкция: х:=х+1;

Примеры. var x, a, b, c, root: real; box: Boolean; name: string;

...

x:=x+5.3; root:= sqrt(b*b-4*a*c);

box:= False; name:=’ Ann ’;

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

Напомним, что меткой может быть идентификатор или целое число без знака в диапазоне 0—9999, причем все метки должны быть предварительно объявлены в разделе объявления меток того блока процедуры, функции или программы, в котором эти метки используются. Формат оператора перехода:

goto <Метка>;

Пример. Label m 1;

...

goto m1;

...

m1: writeln(‘…’);

Передавать управление с помощью оператора перехода можно на операто­ры, расположенные в блоке программы выше или ниже оператора перехода. Запрещается передавать управление операторам, находящимся внутри струк­турных операторов, а также операторам, находящимся в других бло­ках (процедурах или функциях).

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

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

Оператор вызова процедуры служит для активизации стандартной или предва­рительно описанной пользователем процедуры. Он представляет собой имя этой процедуры со списком передаваемых ей параметров. Более подробно этот оператор будет рассмотрен позже.

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

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

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: