Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоргалка / спо / СПО 2(госы).doc
Скачиваний:
21
Добавлен:
26.01.2019
Размер:
165.38 Кб
Скачать

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

Цикл - это такой оператор, который заставляет компьютер многократно повторять некоторые действия.

В Паскале есть три оператора цикла: For, While, Repeat (для, пока и повторять)

Формат записи оператора цикла For:

For <переменная цикла>:=<нач. знач.> to <кон. знач.> do

begin

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

end

В зависимости от начального и конечного значения параметра цикла, которые задаются в заголовке, цикл может выполнится то или иное количество раз. Например, если начальное и конечное значения совпадают, то цикл выполнится только один раз. Если же начальное значение превышает конечное, то цикл не выполнится ни разу!

Существует ещё одна разновидность цикла For, в котором вместо служебного слова to используется downto. В этом случае переменная цикла будет каждый раз уменьшать своё значение, а не увеличивать. Например, цикл

For i := 5 downto 1 do

begin

write (i, ’ ’);

end ;

напечатает:

5 4 3 2 1

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

Формат записи:

While <условие> do

begin

<Операторы цикла>;

end

Цикл работает так. Сначала проверяется <условие>. Если оно верно, то выполняется <Операторы цикла>. Затем <условие> проверяется ещё раз, если оно опять верно, то снова выполняется <Операторы>. Так продолжается до тех пор, пока <условие> верно. Если <условие> с самого начала было ложно, то <Оператор> не выполнится ни разу. Пример:

Program NaborChetnyxChisel;

Var i : integer;

Begin

i := 2;

while i <= 20 do

begin

writeln (i);

i := i + 2; { переход к следующему чётному числу }

end;

end.

While бывает удобнее чем For, т.к. не требует перебирать каждое число подряд.

Цикл Repeat ... Until. Формат записи этого цикла:

Repeat

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

...

<операторN>

Until <условие выхода>;

Цикл Repeat (повторять) очень похож на цикл While. Но работает немного по-другому: Сначала выполняется последовательность операторов после Repeat, затем проверяется <условие выхода> записанное после Until. Если оно ложно, цикл выполняеттся заново. Если же оно истинно, то цикл заканчивает свою работу.

То есть тело цикла Repeat всегда выполнится хотя бы один раз. Потому можно сказать, что цикл While сначала думает, а потом делает, а Repeat наоборот: сначала делает, а потом думает. Ещё раз обратите внимание, что цикл Repeat повторяется только тогда, когда условие после Until ложно, потому это условие и называется “условием выхода”.

Также заметьте, что в цикле Repeat не использованы операторные скобки begin - end (они ему просто не нужны!), а также по разному записаны условия цикла, в цикле Repeat записано условие выхода: когда оно выполнится, цикл завершит работу.

13. Массивы. Действия над массивами. Действия над элементами массива

1. Инициализация (присвоение начальных значений), при чем это значение одинаково для всех элементов массива. Присвоить каждому элементу массива одно и тоже значение вручную или при помощи оператора цикла с известным числом повтора for:

A[1]:.= 1; А[2]:= 1; А[3]:=1; for i:=1 to 3 do A[i]:=1;

2. Ввод и вывод элементов массива. Ввод/вывод элементов массива осуществляется при помощи цикла for

Ввод:

for i: = 1 to 10 do

Read(a[i]);

Вывод:

for i:=l to 10 do

Write (a[i]);

3. Копирование массивов (присвоение значений всех элементов одного массива соответствующим элементам другого массива).

For i:= 1 to 10 do

A[i]:=B[i];

4. Перестановка элементов массива осуществляется при помощи дополнительной переменной.

Пример: В массиве А нужно поменять местами второй и пятый элементы.

buffer:=а[2];

а[2]:=а[5];

а[5]: = buffer;

Переменной buffer присваивается значение второго элемента массива А. Затем второму элементу присваивается значение пятого элемента массива А. Последняя операция присваивает пятому элементу значение второго элемента, который мы записали в переменную buffer.

Соседние файлы в папке спо