Мегаобучалка Главная | О нас | Обратная связь  


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




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

Циклы принадлежат к числу управляющих операторов. Внимательный ученик мог заметить, что до сих пор вы использовали два вида операторов. Одни из них (Read, Write, оператор присваивания) только выполняли какие-либо действия, другие же управляли ходом выполнения программы (например, условный оператор). Последние и называются управляющими операторами.

Способ использования циклов в программах на Паскале. Рассмотрим задачу на вычисление суммы большого числа слагаемых:

1 + 2 + 3 + 4 + .. + n

Можно было бы выбрать простое решение и записать вычисление данной суммы в строчку, употребив n операций сложения. Ну а если число элементов суммы равно 1000? Представьте себе программу с оператором, который занимает несколько страниц и содержит 999 сложений! Очевидно, простое решение здесь уже не подходит. Можно заметить, что при вычислении суммы повторяются всего две операции, причем в определенном порядке:

1. Увеличить значение переменной цикла на 1

2. Прибавить к ранее полученной сумме.

В языке программирования Паскаль имеется три разновидности цикла:

  • Цикл с предусловием (цикл “пока” – whi1е);
  • Цикл с постусловием (цикл “до тех пор, пока” repeat...until);
  • Цикл с параметром (со счетчиком) (цикл “для” – for ... to / downto… do);

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

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

1.

o параметр (переменная цикла) – величина, с изменением значения которой связано многократное выполнение цикла;

o начальное и конечное значения параметра цикла;

o шаг цикла - значение, но которое изменяется параметр цикла при каждом повторении;

Действия, повторяющиеся в цикле, называются телом цикла.

Цикл организуют по определенным правилам. Цикл состоит из следующих блоков:

  • подготовки цикла;
  • тела цикла;
  • условия продолжения цикла.

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

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

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

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

FOR i:=M1 TO M2 DO оператор1

FOR i:=M1 TO M2 DO

BEGIN

операторы циклической части

END;

 

 

FOR i:=M1 DOWNTO M2 DO

BEGIN

операторы циклической части

END;

ГДЕ i - параметр цикла, М1 и М2 - начальное и конечное значение параметра цикла. DOWNTO изменяет параметр с шагом -1.

Блок-схема цикла с параметром:

 

Пример программы (цикл с параметром):

Вычислить сумму S=1+2+3+…+N:

Program zadacha;

Uses crt;

var n,s, i : integer;

Begin

Clrscr;

write(‘введите число N ’); readln(n);

s:=0;

for i:=1 to n do

s:=s+i;

writeln(‘сумма чисел равна’, s);

readln;

End.

Алгоритм циклической структуры - это алгоритм, в котором происходит многократное повторение одного и того же участка программы. Такие повторяемые участки вычислительного процесса называются циклами. Программа циклической структуры содержит один или несколько циклов. Различают детерминированные циклы с заранее известным числом повторений и итерационные циклы, в которых число повторений заранее неизвестно. Изменяющаяся в цикле переменная называется параметром цикла.

Для организации цикла необходимо выполнить следующие действия:
1) задать перед циклом начальное значение параметра цикла;
2) изменять параметр перед каждым новым повторением цикла;
3) проверять условие повторения цикла;
4) управлять циклом, т.е. переходить к его началу, если он не закончен, или выходить из него по окончании.

В языке Паскаль существует 3 вида циклов:

1) цикл с параметром или цикл типа for,

2) цикл с предусловием или цикл типа while,

3) цикл с постусловием или цикл типа repeat ... until.

В цикле типа for число повторений известно заранее, в циклах типа while и repeat ... until число повторений цикла заранее неизвестно, производится проверка условия повторения цикла: в цикле типа while - перед циклом, в цикле типа repeat ... until - после его окончания.
В циклах типов for и while повторяющяся часть (тело цикла) состоит из одного оператора, если требуется выполнить в цикле несколько операторов, они заключаются в операторные скобки begin ... end, образуя составной оператор. В цикле типа repeat ... until тело цикла помещается между зарезервированными словами языка (лексемами) repeat и until, операторные скобки не требуются, в названии цикла его тело условно обозначается тремя точками.
С помощью цикла типа for удобно находить суммы, произведения, искать максимальные и минимальные значения и т.п. При нахождении суммы некоторой переменной, например S присваивается значение 0, затем в цикле к этой переменной прибавляется соответствующий член заданной последовательности. При нахождении произведения переменной присваивается значение 1, затем в цикле эта переменная умножается на общий член последовательности.

Пример цикла типа for

Вычисление n чисел Фибоначчи:
F1=1; F2=1;…; Fn=Fn-1+Fn-2 ,
например F3=F2+F1=1 + 1 = 2; F4 = 2 + 1 = 3 и т.д.

program fib; {Нахождение чисел Фибоначчи}
var x, y, z, i, n : integer;
begin
writeln (‘Введите n’); read (n);
x:=1; y:=0;
for i:=1 to n do
begin
z:=x ; x:=x+y ; y:=z ;
write (' ', x ) ;
end;
readln;
end.




Читайте также:



©2015-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (3263)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.004 сек.)