50080

Циклические программы

Лабораторная работа

Информатика, кибернетика и программирование

Операторов цикла в Паскале три: for repet while. Оператор For Оператор состоит из заголовка в котором определяется порядок изменения переменной параметра цикла и тела цикла являющегося многократно повторяющимся алгоритмом. Общий вид оператора: For – параметр цикла : = начальное значение to конечное значение do оператор; {тело цикла}. Этот оператор применяется если начальное значение конечного значения; For – параметр цикла:= начальное значение downto конечное значение do оператор; применяется если начальное значение конечного значения.

Русский

2014-01-15

47.5 KB

5 чел.

PAGE  3

Лабораторная работа № 7

Циклические программы

Наиболее часто в практике программирования встречаются циклические программы. В циклических программах какой-либо алгоритм повторяется многократно, при этом один из параметров изменяется. Операторов цикла в Паскале три: for, repeat, while.

Оператор For

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

Общий вид оператора:

For – <параметр цикла>: = <начальное значение> to <конечное значение> do оператор; {тело цикла}.

Этот оператор применяется, если начальное значение < конечного значения;

For – параметр цикла:= начальное значение downto конечное значение do оператор; применяется, если начальное значение > конечного значения.

Пример: найти сумму квадратов целых чисел от 8 до 24.

Program Prim;

Var     i,s:integer;

BEGIN   s:=0;

for i:= 8 to 24 do

s:=s+sqr(i);  

writeln('s=',s);  

END.

Работа программы. В разделе Var выделяется ячейка памяти с именем i и s для хранения величин. Поскольку в S мы должны накапливать сумму, то вначале занесем в S ноль. Затем заголовок цикла присваивает i=8. далее выполняется тело цикла: извлекается содержимое ячейки S (а там у нас 0) и к этому содержимому прибавляется sgr(i), т.е. i2=82. Результат присваивается ячейке S, т.е. в S теперь 82.

Проверяется, не стал ли параметр цикла больше конечного значения параметра 24. Это не произошло, поэтому i присваивается следующее значение равное 9 и вновь выполняется тело цикла, т.е. S:=82+92. Можно сказать так: S присвоить тому S, которое было раньше, + следующее i2. Так как цикл еще не закончился, то i станет равным 10, а S присвоится тому S, которое было раньше, т.е. 82+92, и к нему прибавится еще текущее i2, т.е. 102. Этот процесс повторяется до тех пор, пока параметр цикла не станет равным 24. Тогда в последний раз 242 прибавляется к накапливаемой сумме.

Итак:  выполнение цикла значения i  значения S

  1   8   82

   2   9  82+92

   3   10   82+92+102

При i=25 происходит выход из цикла и переход к оператору writeln ('S=' ,S);

Правила применения оператора цикла For

  1.  Тело цикла – всегда один оператор. Если нужно, чтобы тело цикла состояло из нескольких операторов, то их объединяют в один с помощью операторных скобок begin, end.

For i:=l to n do

Begin

S:=S+sin(x)/cos(x);

x=x+0.01;

writeln('S=' ,S)

end.

Операторы, взятые в операторные скобки begin, end, считаются одним составным оператором.

  1.  Начальное и конечное значения параметра цикла в общем случае являются выражениями. Тип этих выражений и тип параметра цикла должны совпадать. Здесь допускается применение любых типов, которые упорядочены с каким-либо фиксированным шагом, это может быть любой скалярный тип, кроме вещественного, т.е. байтовый, целый, символьный, перечисляемый, интервальный, булевский. На практике чаще всего применяют целочисленный тип.
  2.  В теле цикла параметр цикла не должен изменяться.
  3.  Нельзя с помощью оператора перехода goto войти в тело цикла, минуя заголовок.
  4.  Выйти из тела цикла в программу можно по if..goto, не дожидаясь полного перебора параметров цикла.

 

Оператор Repeat.

Общий вид. В отличие от for, оператор repeat (а также while) применяют тогда, когда неизвестно точно, сколько раз будет выполняться тело цикла. Общий вид оператора

Repeat

оператор;

оператор;

 – – – – – – – –

until <булевское выражение>;

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

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

Замечания:

  1.  Тело оператора repeat выполняется по меньшей мере один раз. Оператор repeat еще называют циклом с послеусловием.
  2.  Перед until ';' не ставится.

Пример: найти сумму четных чисел в интервале от 0 до 100.

Program Prim;

Var i,s:integer;

BEGIN   i:=0;    s:=0;

Repeat

i:=i+2;  s:=s+i

until i>100;

writeln('s=',s);

END.

Оператор While

While – оператор цикла с предусловием.

Общий вид оператора: While  <булевское выражение> do

тело цикла.

Работа оператора. Вначале вычисляется булевское выражение, и если оно истинно, то выполняется тело цикла; если оно ложно, то происходит выход из цикла.

Тело цикла – один оператор, как правило, составной. Мы должны позаботиться о том, чтобы булевское выражение в теле цикла на каком-то этапе стало ложным, иначе цикл никогда не закончится. Цикл можно сделать умышленно бесконечным, написав: while true do оператор;

Пример: найти сумму четных чисел в интервале от 0 до 100.

Program Prim;

Var i,s:integer;

BEGIN  

i:=0; s:=0;

while i<100 do

Begin  i:=i+2;   s:=s+i; end;

writeln('s=',s);

END.

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

Program Prim;

Var

i,j:integer;

  BEGIN

for i:=1 to 5 do

   Begin       

   writeln;

       for j:=20 to 23 do

            write('i=',i,' j=',j);

     end;

END.

Для цикла

for i:=1 to 5 do

телом цикла является

begin for j:=20 to 23 do

write('  i= ', i, ' ,  j = ', j);

writeln;     

end;

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


 

А также другие работы, которые могут Вас заинтересовать

58416. Культура XVI-XVII вв 52.5 KB
  Памятники культуры: Церковь Вознесения в Коломенском Храм Покрова Богородицы на Рву Московский Кремль Смоленский Кремль Успенский собор Московского Кремля Благовещенский собор Московского Кремля Архангельский собор...
58417. Пожарная безопасность шахт. Виды горения 42 KB
  Материалы по степени возгораемости классифицируются на: негорючие; трудногорючие; горючие. Негорючие материалы под действием огня или высокой температуры не воспламеняются не тлеют и не обугливаются. К искусственным – цемент бетон железобетон кирпич стекло металл...
58419. Образний зміст музики. Характер людини в музичному образі. Вступ. Образний зміст музики 431.5 KB
  Музичні образи у творчості М. Лисенка Музичні образи втілюють засобами різних жанрів фортепіанної хорової симфонічної чи оперної музики. Пригадайте які образи створив Микола Лисенко у таких знайомих вам творах: Рапсодія № 2 для фортепіано увертюра до опери Тарас Бульба€.
58420. АВТОКОРЕЛЯЦІЙНІ МОДЕЛІ ДИСКРЕТНИХ ДЖЕРЕЛ ІНФОРМАЦІЇ 74.5 KB
  На даній лабораторній роботі ми навчились будувати автокореляційні моделі дискретних джерел інформації на основі Знакової функції ,полярної функції,нормованої функції, структурної функції ,модульної функції автокореляції.
58421. Ломаная. Замкнутая ломаная. Треугольник 86.5 KB
  – Как получить последующее число На сколько последующее число больше предыдущего Как получить предыдущее число Пройдите по числам вперед и назад. Запишите сколько здесь кривых линий. Сколько замкнутых Сколько незамкнутых Сколько всего кривых Запишите.
58422. Инфинитив и причастие как дополнение. Союзы either … or, neither … nor. Возвратные и усилительные местоимения 81.5 KB
  I want you to translate the text. Я хочу, чтобы вы перевели текст. We knew him to be busy. Мы знали, что он занят. I heard him speak. Я слышал, как он говорил. We did not see him come in. Мы не видели, как он вошел. В аналогичную конструкцию может входить не только инфинитив, но и причастие...
58423. Определение геометрических размеров проточной части компрессора, числа ступеней, геометрии лопаточных венцов 826.5 KB
  Для расчёта заданы частота вращения ротора КНД 7800 об/мин, КВД 8600 об/мин, расход рабочего тела 86,7 кг/с, полные давление и температура перед КНД 101,33 кПа, 288 К, перед КВД 423,3 кПа, 454,1 К степень повышения давления в КНД 4,26 в КВД 5,16.
58424. ПРОЕКТ СОЗДАНИЯ ТУРИСТСКОГО ПРОДУКТА «НАРОДНАЯ МЕДИЦИНА ЯКУТОВ» ДЛЯ «ИНТЕРКРОСС+» 630 KB
  Медицинский туризм интересен тем, что помимо релаксирующего отдыха и развлечений, турист получает не только занимательную историю народа и города в целом, но и качественное лечение, с использованием традиционных и нетрадиционных методик...