Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемМарфа Яшенькина
1 ЦИКЛИЧЕСКИЙ АЛГОРИТМ Цели: -Познакомиться с понятием циклического алгоритма. -Освоить языковые средства для реализации циклических алгоритмов.
2 Цикл - это последовательность операторов, которая может выполняться один или более раз. Циклический алгоритм - это алгоритм, содержащий один или несколько циклов. Если циклический алгоритм содержит несколько циклов, то такие циклы называются вложенными. Последовательность операторов, которые выполняются в цикле, называется телом цикла. Количество операторов в теле цикла зависит от контекста задачи и может быть любым.
3 Виды циклов Существует две разновидности циклических алгоритмов: с предусловием и с постусловием. Циклический алгоритм с предусловием существует в двух видах: с условием и со счетчиком. Во многих языках программирования существуют три типа операторов цикла, реализующих циклический алгоритм: циклы со счетчиком, циклы с предусловием, циклы с постусловием.
4 Циклический алгоритм с предусловием... Вход условие входа в цикла A1A1 AkAk да Выход из цикла нет A 1 … A k – тело цикла Рисунок 3-1. Блок схема цикла с предусловием Циклический алгоритм с предусловием имеет 2 части: 1) Заголовок цикла, который содержит условие входа в цикл. В заголовке цикла должно стоять условное или логическое выражение, которое образно можно назвать «замком». Если «замок открыт», т.е. значение выражения равно «истина», то доступ к операторам тела цикла открыт. 2) Тело цикла, которое содержит операторы.
5 Циклический алгоритм со счетчиком Цикл со счетчиком алгоритм состоит из двух частей: 1) в первой части, называемой заголовком цикла, указывается переменная - счетчик цикла, задаются ее начальное и конечное значения. Шаг изменения счетчика и условие входа в цикл зависят от типа циклического алгоритма. 2) во второй части, называемой телом цикла, задаются операторы А1,..., Аk, которые должны циклически повторяться.... Вход Присвоить начальное значение счетчика Условие входа в цикл A1A1 AkAk Изменить значение счетчика на величину шага да Выход из цикла нет i – счетчик цикла- переменная целого типа A 1 … A k – тело цикла Рисунок 3-2 Блок–схема циклического алгоритма со счетчиком
6 Циклический алгоритм с постусловием В отличие от цикла с предусловием, который может закончить работу, ни разу не выполнив тело цикла (если условие выполнения будет ложно при первом входе в цикл), тело цикла с постусловием выполняется хотя бы один раз, только потом проверяется условие выхода. Вход Условие выхода из цикла да Выход нет... A1A1 AkAk A 1 … A k – тело цикла Рисунок 3-3. Блок-схема выполнения циклического алгоритма с постусловием
7 Операторы цикла в языке Паскаль Оператор цикла с предусловием: WHILE DO ; Здесь WHILE, DO - резервированные слова (английский: пока, делать) Писать эти ключевые слова можно иначе: while, do, While, Do, смысл оператора от этого не изменится, потому что большие и маленькие английские буквы интерпретируются транслятором языка Паскаль одинаково, хотя и имеют разные порядковые номера, или коды, в таблице кодировки. - это условие входа в цикл, условное или логическое выражение, значение которого имеет логический тип; - произвольный, возможно составной, оператор, который является телом цикла; WHILE DO – заголовок цикла;
8 Оператор цикла с возрастающим значением счетчика FOR := TO DO ; Здесь FOR := TO DO – заголовок цикла; FOR, TO, DO - зарезервированные слова (английский: для, до, выполнить); - переменная целого типа, которая изменяется от, начального до конечного значения, увеличиваясь на единицу в конце каждого шага цикла; - любой, возможно составной, оператор, который является телом цикла; Условие входа в цикл для данного оператора: Если начальное и конечное значения счетчика равны, то тело цикла выполняется один раз. Если конечное значение счетчика меньше, чем начальное значение, то цикл игнорируется.
9 Оператор цикла с убывающим значением счетчика FOR := DOWNTO DO ; Здесь FOR := DOWNTO DO – заголовок цикла; FOR, DOWNTO, DO – ключевые слова, английские : для вниз до, делать; : переменная целого типа.. Замена TO на DOWNTO означает, что шаг изменения параметра цикла равен -1, то есть происходит пошаговое уменьшение счетчика на единицу; - любой, возможно составной, оператор, который является телом цикла; Условие входа в цикл для данного оператора:
10 Оператор цикла с постусловием REPEAT UNTIL ; Здесь REPEAT, UNTIL - резервированные слова (англ.: повторять, пока не); - условное и логическое выражение, его значение имеет логический тип. Если значение условия истинно, то происходит выход из цикла; - простой или составной оператор. Только в этом случае операторные скобки составного оператора begin-end писать не нужно, т.к.ключевые слова REPEAT, UNTIL
11 Вложенные циклы Часто для решения задач требуется конструкция, когда нужны два или более циклов, которые нужно поместить один внутри другого. Такая конструкция называется вложенными циклами Рисунок 3.4. Вложенные циклы For i := 1 to 10 do ; For j := 1 to 10 do ; While do ; Repeat until ; {конец цикла 2} {Конец цикла 1}
12 при использовании вложенных циклов следует соблюдать следующие правила: внутренний цикл является одним из операторов тела внешнего цикла; имена счетчиков вложенных циклов с параметрами разные; следует помнить о количестве повторений тел циклов. В нашем примере тело цикла 1 будет повторяться 10 раз. Тело цикла 2 будет повторяться 100 раз, для каждого значения счетчика I счетчик j будет пробегать значения от 1 до 10. Тело цикла 4 будет повторяться 100*k, где k зависит от условия задачи. Тело цикла 3 будет повторяться 10*n, где n зависит от условия задачи.
13 Задача 1. Дано натуральное число N. Вычислить N! (N- факториал) Для любого натурального числа N значение N! определяется как произведение всех натуральных чисел от 1 до N: N! = 1*2*3*...*N. (Целое число называется натуральным, если оно больше 0.) Тело цикла. Увеличение счетчика цикла. Вход Ввод N res:=res*i i:=i+1 Выход из цикла i0 да нет res:=1 i:=2 (начальное значение) Вывод "Неверно задано значение N" PROGRAM FACTORIAL; {Вычисляет n!} Var n:Integer; i, res :Integer; Begin Write ('Введите n :');Readln (n); if (n>0) then begin res := 1; For i := 2 to n do res := res * i; Writeln('N - факториал = ', res); end; еlse Writeln ('Неверно задано значение N'); Readln; End. 0) then begin res := 1; For i := 2 to n do res := res * i; Writeln('N - факториал = ', res); end; еlse Writeln ('Неверно задано значение N'); Readln; End.">
14 Задача 2. Дана последовательность N натуральных чисел А 1,..., А N, элементы которой нужно ввести с клавиатуры. Определить, сколько элементов последовательности являются четными числами. PROGRAM CH; {Подсчитывает количество четных элементов последовательности} Var n:Integer; a:Integer; {переменная для хранения элемента последовательности} i, kol:Integer; Begin Write ('Введите n :'); Readln (n);{ввод количества всех элементов } if (n>0) then begin kol := 0; {счетчик количества четных элементов} For i := 1 to n do Begin Writeln('Введите a[', i, '] : '); Readln(a); if not Odd(a) the kol := kol + 1; {проверка четности: Функция Odd() возвращает значение true, если ее аргумент - нечетное число, false - если четное } End; Writeln('В последовательности ', kol, ' четных чисел'); end else Writeln ('Неверно задано значение N'); Readln; End.
15 Задача 3. Дано натуральное число n и действительное число х. Вычислить: 1/sin(x) + 1/sin(1x) /sin(nx); Домашнее задание: Даны натуральное число n. Выдать на экран последовательность чисел: 1, 2, 3,..., n; 1, 1/2, 1/3,..., 1/n;
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.