Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Составной оператор и пустой оператор

Поиск

Составной оператор – это последовательность произвольных операторов программы, заключенная в операторные скобки – зарезервированные слова BEGIN … END. Составные операторы – важный инструмент Pascal, дающий возможность писать программы по современной технологии структурного программирования (без операторов перехода GOTO).

Pascal допускает произвольную глубину вложенности составных операторов:

BEGIN

……

BEGIN

……

BEGIN

……

END;

……

END;

……

END.

Поскольку BEGIN и END представляют собой структурные скобки, то после BEGIN и перед END ставить знак «;» не обязательно.

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

Метка и оператор перехода

Метка – это произвольный идентификатор, позволяющий именовать некоторый оператор программы и таким образом ссылаться на него. В Паскале метка – это целое без знака. Метка располагается непосредственно перед помеченным оператором и отделяется от него двоеточием. Описание меток состоит из зарезервированного слова Label.

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

Структура оператора перехода имеет вид:

GOTO < метка >,

где GOTO – зарезервированное слово(«перейти на метку») < метка >- произвольный идентификатор.

Циклическая структура (повторение)

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

Определение 1. Группа многократно повторяющихся операторов называется циклом, а содержащая их программа – циклической.

Количество повторений цикла определяется значением некоторой управляющей переменной.

Определение 2. Переменная, управляющая повторением цикла, называется параметром цикла.

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

 
 
Рисунок 4.3- Общая схема цикла
 
 


По типу параметра и условию окончания циклы делятся на:

1) циклы с параметром;

2) итерационные:

- цикл с постусловием;

- цикл с предусловием.

 

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

Для реализации циклического процесса с известным числом повторений целесообразно использовать оператор цикла с параметром. Для их организации в Паскале используется оператор For (для), который в общем виде записывается так:

For Параметр:= НачальноеЗначение to КонечноеЗначение do

Оператор1;

или

For Параметр:= НачальноеЗначение Downto КонечноеЗначение do

Оператор1;

Параметром цикла в этом операторе может служить переменная так называемого перечисляемого типа:

1) целого;

2) символьного.

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

В операторе 2 использовано слово Downto. При этом значения параметра убывают (изменяются от большего – начального значения – до меньшего с шагом -1). Работу оператора иллюстрирует схема рис. 4.4,б.

Рис. 4.4 - Схема работы оператора For
 
 

Если начальное значение равно конечному, то в обоих случаях (при То и Downto) оператор выполняется один раз.

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

 

Например: {к величине S прибавляется 10 чисел от 1 до 10}

For i:= 1 To 10 Do

S:= S+i;

Если многократно нужно выполнить несколько операторов, то они помещаются в блок операторов – между служебными словами Begin и End.

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

1) Параметр цикла, начальное и конечное значение должны быть одного типа;

2) Запрещено изменять внутри цикла (в теле цикла) значения <имя>, <выражение 1>, <выражение 2>;

3) Запрещено передавать управление в тело цикла извне минуя заголовок for, так как начальное и конечное значение вычисляются один раз при первоначальном входе в цикл;

4) Тело цикла не выполняется, если начальное значение <имя> не определено и не может быть использовано в дальнейших вычислениях;

5) После выхода из цикла for значение <имя> не определено и не может быть использовано в дальнейших вычислениях;

6) После служебного слова do может быть записан только один оператор, поэтому в случае, когда в теле цикла содержится несколько операторов, их необходимо заключать в операторные скобки begin и end, организуя, составной оператор.

Пример 4.4 Ввести в ЭВМ 10 трёхзначных чисел и распечатать их цифры в обратном порядке, т.е. начиная с младшей.

 

Program Dig;

Const

D=10;

Var

Num,C1,C2,C3: Integrer; {исходное число и цифры}

i: Integrer; {номер числа }

Begin

For I:= 1 To D Do

Begin

Readln(Num);

C1:=Num Mod D;

Num:=Num Div D;

C2:=Num Mod D;

C3:=Num Div D;

Writeln(C1:2,C2:2,C3:2)

End;

End.

Пример 4.5 Определение номера буквы в латинском алфавите.

Program Lett;

Var

Bukva, ch:char;

K:integer;

Begin

Write(‘введите букву: ’);

Read(bukva);

K:=0;

For ch:=’A’ to bukva do

K:=k+1;

Writeln(‘буква ’,bukva, ‘ имеет номер ’,k,’ в латинском алфавите’);

End.

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

Program BOOL;

Var

F,a:Boolean;

Z,y: integer;

Begin

Write(‘Z= ‘);

Read(z);

Write(‘Y= ‘);

Read(y);

Writeln(‘Z= ‘,z,’Y= ‘, y);

For a:= true downto false do

Begin

F:=not a and (y>0) or (y>z);

Writeln(‘A=’,a,’F=’,f)

End

End.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-17; просмотров: 210; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.201.29 (0.005 с.)