ЯЗЫК ПАСКАЛЬ

ГЛАВНАЯ

КАРТА САЙТА

ГОСТЕВАЯ КНИГА

ОБРАТНАЯ СВЯЗЬ

Циклы

Конструкция цикла.

Пример . Найти сумму N - последовательных чисел, то есть найти сумму следующего ряда: 1+2+3+....+N.

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


Ввести N

S=0

Для всех i от 1 до N делать

Начало цикла

S=S+i

Конец цикла

Вывести S



фрагмент Паскаль-программы будет выглядеть следующим образом:



read(N);

s:=0;

for i:=1 to n do

s:=s+i;

write(s);



* Примечания
Никогда, пожалуйста, не забывайте, что параметр цикла изменяется с шагом единица. После служебного слова DO можно записать только один оператор, и только он будет исполняться циклически. Как сделать так, чтобы циклически исполнялась группа операторов, мы рассмотрим позже, когда будем говорить о сложном операторе. Еще одно очень важное замечание: параметр цикла обязательно является целым числом, начальное и конечное значения параметра цикла также целые числа. Особенность заключается в том, что целое число в языке программирования совсем не тоже самое, что целое число в математике.

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

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

for i:=1 to 10 do

i:=i*i;

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

Данный вид оператора цикла (
Цикл for)не единственный возможный в языке Паскаль. Во-первых, возможна запись цикла с параметром, в которой параметр изменяется от большего к меньшему, уменьшаясь на каждом шаге на единицу. Наша программа с таким оператором цикла будет выглядеть следующим образом:

read(N);

s:=0;

for i:=n downto 1 do

s:=s+i;

write(s);

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

1) read(N); 2) read(N);

s:=0;i:=1; s:=0;i:=1

while i<=n do repeat

begin s:=s+i;i:=i+1;

s:=s+i; until i>n;

i:=i+1; write(s);

end;

write(s);

Вариант 1:
Цикл while do

После слова "while" записывается условие, а после слова "do"" записывается выполняемый оператор, который, конечно, может быть сложным. Данный цикл исполняет оператор, записанный после слова "do", до тех пор, пока истинно условие. В таком цикле сначала проверяется условие, а затем выполняется оператор, поэтому такая конструкция называется циклом с предусловием.

Вариант 2:
Цикл repeat .... until

После слова "until" записывается условие. Операторы, записанные между словом "repeat" и словом "until", исполняются до тех пор, пока условие не станет истинным. В данном типе цикла сначала выполняются действия, а затем проверяется условие, поэтому такая конструкция называется циклом с постусловием.

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

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

Параметр "Цикла по параметру" увеличивается только на 1. Прибавить 1 к числу проще, чем произвольное число, поэтому операция +1 обрабатывается компилятором быстрее, чем произвольное сложение, и, следовательно, цикл по параметру работает быстрее, чем циклы по условию.

История языка Типы данных Алфавит Программа Операци и операторы
Циклы Процедуры и функции Сообщения об ошибках Примеры программ Гостевая книга

© МосквичЁв

Hosted by uCoz