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

Глава 5 операторы

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

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

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

Простые операторы – операторы, которые не содержат в себе друих операторов.

Оператор присваивания состоит из идентификатора переменной или пользовательской функции, символа присваивания “:=” и выражения. Выполнение оператора присваивания приводит к вычислению значения, определяемого выражением, и присваиванию этого значения переменной, идентифицируемой именем, стоящим слева от символа присваивания.

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

Формат: <идентификатор> := <выражение>;

Пример: pr := 1;

Ruh := 1.72;

A:=sin(b) + cos(c);

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

Формат: <имя процедуры> ( <список параметров> );

Пример: clrscr;

Raschet(a,b,k);

Оператор безусловного перехода означает “перейти к” и применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой-либо другой отмеченный меткой оператор.обязательным является требование, чтобы метка, указанная в операторе перехода, располагалась в том же блоке или модуле, что и оператор перехода. Это означает, что передача управления посредствомоператорапереходавнутрь процедуры (функции), а также из нее в окружающую среду запрещена.

Формат: goto <метка> ;

Пример: …….

Label m1, m2;

……….

m1: goto m2;

……….

m2: goto m1;

………..

При использовании оператора необходимо помнить:

  • метка, на которую передается управление, должна быть описана в разделе меток того блока, процедуры или функции, основной программы, в которой она используется;

  • областью действия является тот блок, в котором она описана.

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

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

Формат: ;

5.2. Операторы ввода и вывода

Для выполнения операций ввода и вывода в Паскале предусмотрены операторы READ, READLN и WRITE, WRITELN.

READ – обеспечивает ввод числовых данных, символов, строк и т. д. После ввода переменных курсор остается в той же строке.

Формат: READ (Х1,Х2,…,Хп) ;

Хi - только переменные.

READLN аналогичен оператору READ. Отличие в том, что после считывания последней в списке переменной, курсор переходит на следующую строку.

Формат: READLN (Х1,Х2,…,Хп) ;

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

Формат: WRITE (Y1,Y2,…,Yn) ;

Yi – выражения разных типов.

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

Формат: WRITELN (Y1,Y2,…,Yn) ;

Представление чисел при выводе.

Вывод результатов счета для величин целого (integer) типа не представляет проблем. Однако, изображение вещественных (real) чисел нередко вызывает затруднения при чтении. Например, сумма на выплату, представленная в виде 4.9700000000Е+02, вряд ли приведет кого-либо в восторг.

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

Чтобы вещественное число оказалось отпечатанным в форме с фиксированной точкой, в предложении WRITELN необходимо указать две характеристики: ширину поля вывода (т.е. количество позиций, отводимых для изображения данного числа) и количество позиций в дробной части (т.е. цифр, печатаемых справа от десятичной точки). Позиция, необходимая для размещения самой точки, должна быть учтена в первой из названных характеристик. В том случае, если значение дробной части выходит за рамки указанного формата, лишние десятичные разряды округляются. Если ширина поля превышает размер выводимого числа, то число выравнивается по правой границе (избыточные позиции слева заполняются пробелами).

Если размер числа превышает ширину поля (либо она вообще не задана), Паскаль для вывода вещественного числа отводит поле шириной 18 позиций и выводит число в экспоненциальной форме; указанное число позиций учитывает один пробел слева (называемый лидирующим и предусмотренный для гарантированного отделения числа от соседнего, напечатанного в той же строке) и позицию для знака минус (если число окажется отрицательным).

Ширину поля вывода можно указывать не только для данных типа real, но и для данных типа integer. Указывается одна характеристика - число позиций, отводимых для печати. Если размер поля не указан, то для печати будет выделено столько позиций, сколько цифр содержит число (не добавляя пробелов ни с одной, ни с другой стороны).

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

Формат: WRITE (Yi : <mf> : <dg>) ;

mf – минимальная ширина поля вывода большая нуля;

dg – число десятичных знаков после десятичной точки.

Пример: var d : real;

f : integer;

……….

d :=3.45; f := -1;

Writeln ( ‘Вывод ланных’);

Writeln ( d:5:3);

Writeln ( f:3);

……..

В результате работы программы произойдет следующий вывод данных при заданных исходных значениях переменных:

Вывод данных

3.450

-1

5.3. Структурированные операторы

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

В Borland Pascal структурными операторами являются:

  1. Составной оператор;

  2. Условный оператор IF (или оператор альтернативы);

  3. Оператор выбора CASE;

  4. Операторы цикла;

  5. Оператор присоединения.

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

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

Формат: BEGIN

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

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

………..

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

END;

      1. Управляющие конструкции разветвляющихся структур

Условный оператор IF. Условные операторы обеспечивают выполнение или невыполнение некоторого оператора, группы операторов или блока в зависимости от заданных условий.

Оператор условия IF является одним из самых популярных средств, изменяющих естественный порядок выполнения операторов программы. Он может принимать одну из следующих форм:

1) IF <условие> THEN <оператор 1> ELSE <оператор 2>;

2) IF <условие> THEN <оператор>;

Здесь ключевые слова IF, THEN, ELSE обозначают соответственно - если то иначе.

1 ) 2)

Нет IF Да Нет IF Да

ELSE условие THEN условие THEN

Эти операторы Эти операторы Эти операторы

выполняются выполняются выполняются

если условие если условие при истинном

ложно истинно условии

Рис. 5.1 Блок-схемы оператора IF

В первом случае, если значение выражения истинно, выполняет­ся <оператор 1>, если ложно <оператор 2>.

Пример: A:=2; B:=8;

If A>B then writeln('A больше B')

else writeln('A меньше или равно B');

В данном примере значение выражения A>B ложно, следовательно, появится сообщение 'A меньше или равно B'.

Основная идея конструкции if-then-else состоит в том, чтобы выполнять только один из пунктов then (если условие истинно) или else (если оно ложно), но никогда не выполнять оба.

Во втором варианте, если значение выражения истинно, выполняется <оператор>, если ложно - оператор, следующий сразу за оператором IF.

Пример: A:=2; B:=8; C:=0;

IF A>B THEN C:=A+B;

C:=C+12;

WRITELN('C=',C);

В результате появится сообщение С=12, так как выражение A>B ложно и наращивания C:=A+B не произойдет.

Количество операторов, входящих в оператор IF и выполняемых в зависимости от значения логического выражения, не ограничено. В этом случае мы имеем дело с составным оператором.

Пример

If A<B then begin

writeln('A меньше B');

d:=a*b;

end

else begin

writeln ('A больше или равно b');

d:=a/b

end;

d:=d+1;

Оператор выбора CASE. Оператор выбора является обобщением оператора IF и поз­воляет сделать выбор из произвольного числа имеющихся вариантов. Он состоит из выражения, называемого селектором, и списка параметров, каждому из которых предшествует список констант выбора (список может состоять и из одной константы). Как и в операторе IF, здесь может присутствовать слово ELSE, имеющее тот же смысл.

Формат: CASE <выражение-селектор> OF

<список 1> : <оператор 1;>

<список 2> : <оператор 2;>

.....

<список n> : <оператор n> ELSE <оператор n+1>

END;

Оператор CASE работает следующим образом. Сначала вычисляется значение выражения селектора, затем обеспечивается реализация того оператора, константа выбора которого равна текущему значению селектора. Если ни одна из констант не равна текущему значению селектора, выполняется оператор, стоящий за словом ELSE. Если слово ELSE отсутствует, активизируется оператор, находящийся за словом END, то есть первый оператор за границей CASE. Выражение-селектор может иметь любой скалярный тип, как правило, это integer или char и ни в коем случае не real. Выражение и константы должны принадлежать одному типу. Список констант выбора состоит из произвольного количества значений или диапазонов, отделенных друг от друга запятыми. Границы диапазона записываются двумя константами через разграничитель.

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

Пример

CASE i OF

1..9: y:=x;

10..99: y:=x/10;

100..999:y:=x/100

ELSE writeln ('Число вне пределов контроля')

END;

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

Пример

CASE i OF

0: writeln('нуль');

1,3,5: writeln('нечет');

2,4,6: writeln('чет')

END;

CASE i OF

1: x:=sin(x);

2: x:=cos(x);

3: x:=exp(x);

4: x:=ln(x);

END;

5.3.2. Составление программ с ветвлением

Пример: Дано 3 вещественных числа. Найти наибольшее.

Program Ex3;

Var a,b,c,max:real;

Begin

Write('Задайте три числа '); Readln(a,b,c);

If a>b then max:=a else max:=b;

If c>max then max:=c;

Writeln ('Максимальное ', max)

End.

Условия, рассмотренные здесь, есть просто сравнения двух величин. Допускаются и более сложные условия, включающие логические операции AND, OR, NOT.

Например,

If(initial>='E')and(initial<'L') THEN write('Смотри в каталоге между 'Е' и 'L');

где initial - переменная типа CHAR, в которой записана начальная буква фамилии. Результат TRUE будет означать, что в телефонной книге фамилия находится между 'Е' и 'L'.

Значение логического выражения можно присвоить логической переменной и лишь затем проанализировать:

keen:= (x=y) OR (z>=3);

If not keen then ...

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

П ример: Вычислить значение функции

x, если x<-5

Y = x*x, если –5>=x<=0

2*x , если 0<x<5

Program Ex4;

Var x,y:real;

Begin

Write ('Задайте x'); Readln(x);

If x<-5 then y:=x else

if x<=0 then y:=sqr(x) else

if x<5 then y:=2*x else y:=5;

Writeln ('x= ',x,'y= ',y)

End.

Будьте внимательны при использовании вложенных операторов IF. Предпочтительнее пользоваться схемой ELSE-IF, нежели THEN-IF, заставляющей хранить в уме соответствующее ELSE. Общее правило таково: каждый ELSE относится к ближайшему предшествующему THEN, еще не имеющему парного ELSE.

Пример: Тест. Деловой ли Вы человек?

program Ex5;

Uses crt;

var d:integer; var g:char;

begin

Clrscr; d:=20;

writeln (' ТЕСТ: Деловой ли вы человек?');

writeln (' 1.Вы собиpаетесь закончить давно начатое дело. ');

writeln ('И вдpуг вам звонит милый человек пpотивоположного пола, ');

writeln ('котоpый вам симпатичен, и пpосит о встpече; ');

writeln;

writeln (' а)Вы говоpите:"Попозже солнышко" и, сжав зубы, быстpенько пpиканчиваете свою pаботу. ');

writeln (' b)Пpоизнося:"Иду, любовь моя!",вы, послав к чеpту все свои дела, мчитесь на свидание. ');

writeln (' c)Вы посылаете к чеpту свою симпатию и с легким сеpдцем занимаетесь делами. ');

writeln (' Hажмите клавишу a,b или с');

readln(g);Clrscr;

case g of

'a':d:=d+10;

'b':d:=d+30;

'c':d:=d+50;

end;

case d of

60..80: begin

writeln ('У Вас просто талант! ');

writeln('Человека подобных деловых качеств надо поискать. Всю жизнь');

writeln('вы отдаете работе и видите в ней смысл жизни. Но не пора ли');

writeln('остановиться? Может наступить страшная минута, когда Вы');

writeln('совсем одиноки! Это неудивительно, ведь о своих близких Вы');

writeln('думаете, а друзей цените только как деловых партнеров.'); end;

35..59: begin

writeln ('Вам удается быть самим собой и при этом не оставаться за');

writeln('кормой жизни. Вашим близким с Вами хорошо. Вы заботливы и');

writeln('внимательны, но также и не пускаете на самотек свои дела,');

writeln('предпочитая за всем следить лично. Очень хорошо, что Ваша');

writeln('работа не поглотила Вас целиком и не стала самоцелью.');

writeln('Продолжайте ей заниматься, но не забывайте и о тех, ');

writeln('кто Вас любит, и все будет в порядке');

end;

4..34: begin

writeln ('Вы слишком легкомысленны. Нельзя же доверяться случаю и');

writeln('так безудержно предаваться развлечениям. Нет слов, Вы');

writeln('приятный человек, но о работе забывать нельзя.');

writeln('Надо стать немного серьезнее.');

end;

end; end.

5.3.3. Управляющие конструкции циклических структур

В жизни мы часто сталкиваемся с необходимостью выполнять много раз одни и те же действия. Пусть, например, нам требуется получить значение функции y=sin (ax)/x в точке x=53 при a=const. Нет ничего проще. Мы уже умеем программировать на Паскале вычисления по различным математическим формулам. Теперь несколько усложним задачу: вычислить и напечатать таблицу значений функции y=sin(ax)/x для всех целых значений x от 1 до 100. Нам придется 100 раз задать различные исходные данные и 100 раз произвести вычисления по одной и той же формуле. Предложенный способ решения задачи крайне неэффективен. Люди ненавидят такую работу. Компьютер же ненависти к повторяющимся операциям не испытывает. В некотором смысле он ничего так не любит, как делать одно и то же снова и снова.

Как заставить компьютер выполнять повторяющиеся рутинные операции за нас? Ответ на этот вопрос тесно связан с идеей цикла - одного из мощнейших средств любого языка программирования.

Цикл - это последовательность операторов, которая может выполняться более одного раза. Для организации циклов в программах используют операторы повтора.

Оператор цикла с параметром FOR. Если количество повторений заранее известно, то цикл называют арифметическим и в программе используют оператор FOR. Одним из наиболее распространенных примеров, требующих организации арифметического цикла является вычисление значений функции при различных значениях аргумента (табуляция функции).

Оператор FOR может быть представлен в двух форматах:

FOR <параметр цикла>:=<S1> to <S2> do <оператор>;

FOR <параметр цикла>:=<S1> downto <S2> do <оператор>;

S1 - начальное значение; S2 - конечное значение;

<оператор> - тело цикла.

Параметр цикла (переменная цикла), его начальное и конечное значение могут быть любого упорядоченного типа (обычно - типа integer и ни в коем случае не real), обязательно все одного и того же. При каждом повторе значение параметра цикла увеличивается на 1 (при FOR ... TO) или уменьшается на 1 (при FOR ... DOWNTO).

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

For i:=1 to 20 do write('*');

For i:=14 downto 10 do write(i:3); {14 13 12 11 10}

Выражения S1 и S2 вычисляются перед выполнением операторов цикла; впоследствии они не перевычисляются. Если эти выражения отвечают невозможной последовательности, то цикл вообще не выполняется.

Вернемся к нашей задаче и вспомним последовательность действий циклического процесса по блок-схеме алгоритма.

Начало

Проверка

условия

Да окончания цикла Нет

x<=100

Конец

Рис. 5.2 Блок-схема циклического процесса

Всякое изменение переменной цикла является ошибкой. Среди таких некорректных изменений - присваивание переменной цикла и чтение в нее значений:

Пример

for i:=1 to 3 do

begin

i:=i-1;

read(i);

end;

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

Пример

For i:=1 to 3 do write (i:4); { 1 2 3 }

writeln(i); {тут может быть, что угодно}

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

Для выхода из цикла до момента достижения параметром цикла конечного значения можно воспользоваться оператором goto

Пример

For i:=1 to 45 do

begin

f:=f+i; if f>100 then goto m1

end;

m1: ...

Пример

Составим теперь программу для вычисления и печати таблицы значений функции:

program Ex6;

{Вычисление значений функции y=sin(ax)/x для всех х от 1 до 100}

var x:integer; a,y:real;

begin

read(a);

writeln (' ТАБЛИЦА ЗHАЧЕHИЙ ФУHКЦИИ F(x)=sin(ax)/x');

writeln (' a=',a:8:3);

writeln (' x y');

for x:=1 to 100 do

begin

y:=sin(a*x)/x;

writeln (x:3, y:15:5);

end

end.

Параметром цикла может служить переменная типа CHAR

Пример

For ch:='a' to 'e' do write (ch:2); { a b c d e}

For ch:='e' downto 'a' do write (ch:2); { e d c b a }

или переменная перечисляемого типа

var sort:(s1,s2,s3);

..............

for sort:=s1 to s3 do ...

или for sort:=s3 downto s1 do ...

В операторе For Паскаль не допускает изменения параметра цикла на величину, отличную от 1.

Оператор цикла с постусловием REPEAT. В практических задачах, как правило, число повторений заранее неизвестно, а определяется по ходу реализации этого циклического процесса. (Если условием окончания вычислений достижение заданной точности, то такие циклы называют итерационными.)

Такие циклы можно построить при помощи оператора повтора с предусловием Repeat.

Формат: repeat {повторить}

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

........

<оператор N>

until <условие>; { пока}

Условие - выражение булевского типа. При наличии условия допустимы булевские операции и операции отношения. Операторы, заключенные между словами repeat и until, являются телом цикла. Вначале выполняется тело цикла, затем проверяется условие выхода из цикла. Если результат булевского выражения FALSE, тело цикла активизируется еще раз, если результат TRUE - происходит выход из цикла.

Оператор REPEAT имеет три характерные особенности:

  • выполняется по крайней мере один раз, т.к. условие повторяется после выполнения тела цикла;

  • тело цикла выполняется, пока условие равно FALSE;

  • в теле может находиться произвольное число операторов без операторных скобок begin...end, т.к. два зарезервированных слова Repeat и Until уже играют роль скобок.

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

D:=1; S:=0; ¦ D:=1; S:=0; { Бесконечный цикл,так}

Repeat {Изменение } ¦ Repeat { как нет изменения D}

S:=S+D; {переменной,} ¦ S:=S+D;

D:=D+1; {влияющей } ¦ Until d<100;

Until d<100;{на условие } ¦

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

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

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

Формат: WHILE <условие> DO <тело цикла>;

Условие - булевское выражение, а тело цикла - простой или составной оператор. Перед каждым выполнением тела цикла вычисляется значение выражения условия. Если результат равен TRUE, тело цикла выполняется и снова вычисляется выражение условия. Если результат равен FALSE, происходит выход из цикла и переход к первому после WHILE оператору. Если перед первым выполнением цикла значение выражения было FALSE, тело цикла вообще не выполняется и происходит переход на следующий оператор.

Пример: i:=30;

while i<0 do i:=i+1;

write (i);

В данном случае наращивания i не произойдет, т.к. условие с самого начала имеет значение false.

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

Пример

While i<100 do

begin

...

i:=i+1; { Изменение переменной управления циклом}

...

read (k,t);

if t>1000 then i:=100+1 { Установка признака выхода}

end;

В ряде случаев цикл изначально предполагается как бесконечный. Тогда в условии записывается константа TRUE или очевидный факт, который в любой ситуации возвращает значение TRUE

while true do write ('Бесконечный цикл');

Пример: Рассчитать траекторию полета снаряда, заданного параметрическими уравнениями:

D = Vo T cos(a) ; H = Ho + Vo T sin (a)  - g T 2 /2

при  a =45 , Vo= 650 м/с, Ho = 10м,  Dt=2c

Таблица 5.1 Идентификаторы программы

Название и математическое описание

Идентификатор

Значение

Входные

Vo - начальная скорость

V0

650 м/с

Ho - высота установки орудия

H0

10 м

a - угол ствола

A

45

T - текущее время

T

Dt - приращение (шаг)

TD

2

Выходные

H - высота

H

D - дальность

D

program Ex7;

{Рассчитать траекторию полета снаряда, заданного параметрическими уравнениями D=V0*T*cos(a); H=H0+V0*T*sin(a)-g*sqr(T)/2}

const pi=3.1415; g=9.81;

var v0,h0,a,t,td,h,d:real;

begin

writeln(' Задайте исходные данные');

write ('Hачальная скоpость='); readln(v0);

write ('Высота установки оpудия='); readln(h0);

write ('Угол ствола='); readln(a); a:=a*pi/180;

write ('Шаг пpиpащения по вpемени='); readln(td);

writeln (' ТАБЛИЦА ТРАЕКТОРИИ СHАРЯДА');

writeln (' ВРЕМЯ ДАЛЬHОСТЬ ВЫСОТА');

writeln (' c м м');

t:=0; h:=h0; d:=0;

while h>=0 do

begin

writeln(t:7:2, d:10:2,h:10:2);

t:=t+td; d:=v0*t*cos(a);

h:=h0+v0*t*sin(a)-g*sqr(t)/2;

end; writeln;

end.

Из рассмотренных операторов цикла, оператор цикла с предусловием (WHILE) является наиболее универсальным, им можно заменить операторы цикла с параметром и постусловием.

Все операторы организации циклов могут быть вложены один в другой. Перекрытие циклов запрещено. Переход внутрь цикла извне запрещен.

Оператор присоединения подробно будет рассматриваться в главе 7.

Вопросы для самоконтроля:

  1. Какой оператор называется составным?

  2. Какие операторы в Паскале реализуют ветвящийся процесс?

  3. Какие виды условного оператора вы знаете?

  4. .В каких случаях используется оператор выбора?

  5. Какой тип может иметь выражение - селектор?

  6. Понятие цикла в языке PASCAL.

  7. Формат оператора цикла с параметром FOR.

  8. Форматы операторов цикла с предусловием WHILE.

  9. Форматы операторов цикла с постусловием REPEAT.

  10. Особенности применения оператора цикла REPEAT при составлении программ циклической структуры.