Циклические алгоритмы Лекция 5 презентация в формате PowerPoint - скачать бесплатно

Скачать презентацию на тему: "Циклические алгоритмы Лекция 5" с количеством слайдов в размере 44 страниц. У нас вы найдете презентацию на любую тему и для каждого класса школьной программы. Мы уверены, что наши слайды помогут найти вам свою аудиторию. Весь материал предоставлен бесплатно, в знак благодарности мы просим Вас поделиться ссылками в социальных сетях и по возможности добавьте наш сайт MirPpt.ru в закладки.

Содержание [Показать]

Нажмите для просмотра
Циклические алгоритмы Лекция 5

1: Циклические алгоритмы Лекция 5

2: План лекции Оператор безусловного перехода Повторяющиеся действия Циклы с предусловием Циклы с постусловием Циклы со счетчиком Сложноциклические структуры Решение задач.

3: Оператор безусловного перехода Оператор безусловного перехода – goto. goto ; Для его использования, необходимо описать метки в разделе описаний, на которые будет осуществляться переход. Label metka1, metka2; Меткой может быть число от 1 до 9999, либо последовательность латинских букв и цифр.

4: Оператор безусловного перехода Оператор перехода предназначен для указания того, что выполнение программы должно продолжаться с точки программы, обозначенной меткой, значение которой стоит в операторе перехода. Метка в тексте программы располагается непосредственно перед помеченным оператором и отделяется от него двоеточием. Пример: …. . goto m1; …. . …. . m1: write (a,b); ….

5: Оператор безусловного перехода Пример использования оператора безусловного перехода: LabelVar m1, m2;a,b,c : real; VarBegin a,b,c : real;read(a,b); Beginif b0 then read (a,b); write (На 0 делить нельзя!) if b0 then else goto m1; begin c:a/b; c:a/b; write (c); write (c); goto m2;end m1 : write (На 0 делить нельзя !);End. m2: End. Из пример очевидна неэффективность использования оператора безусловного перехода.

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

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

8: Повторяющиеся действия Задача 1. Найти максимальное число из десяти положительных чисел. Решение задачи можно построить по следующему алгоритму: 1) i0 2) p0 3) задать очередное значение x 4) если xp, то px 5) ii1 6) если i

9: Повторяющиеся действия Label m1; Var p, i, x : integer; Begin p:0; i:0; m1 : read(x); if xp then p:x; inc(i); if i

10: Повторяющиеся действия В данном примере продемонстрированы повторяющиеся действия (циклические, цикл). Телом цикла называют те операторы, которые повторяются. … m1 : read(x); if xp then p:x; inc(i); if i

11: Операторы цикла На языке Паскаль различают следующие операторы цикла: Циклы с предусловием ( while ); Циклы с постусловием ( repeat … until ); Циклы со счетчиком ( for ).

12: Циклы с предусловием While – это оператор цикла итеративного типа с предусловием, так как в нем анализ конца цикла производится до выполнения операторов тела цикла. Он используется, когда количество повторений операторов тела цикла заранее неизвестно и определяется в процессе выполнения цикла. По операторам continue и break можно перейти на анализ условия конца цикла или первый оператор после цикла соответственно. while do begin end; Таким образом, организовывать повторяющиеся (циклические) действия в программе будет более правильно без использования операторов безусловного перехода.

13: Циклы с предусловием while B(x) do S; где B(x) – логическое выражение , в том случае, когда это выражение будет иметь значение Ложь, произойдет выход из цикла; S – один оператор, простой или составной; он должен включать операторы тела цикла, в том числе оператор изменения операторов логического выражения B(x)

14: Циклы с предусловием Задача 2. Лист бумаги делят пополам, полученную половину снова делят пополам и т. д. Определить, какое количество делений потребуется, для того чтобы получить частицу размером с атом. Начальная масса листа 1 грамм, масса атома 10-24 грамм. Var m,ma : real; k :integer; Begin k:0; m:1; ma:1e-24; while mma do begin m:m/2; inc (k); end; writeln (k) End.

15: Циклы с предусловием При использовании цикла с предусловием надо помнить следующее: значение условия выполнения цикла должно быть определено до начала цикла; если значение условия истинно, то выполняется тело цикла, после чего повторяется проверка условия. Если условие ложно, то происходит выход из цикла; хотя бы один из операторов, входящих в тело цикла, должен влиять на значение условия выполнения цикла, иначе цикл будет повторяться бесконечное число раз.

16: Циклы с предусловием Задача 2. Определить значение суммы S1/x11/x2…1/xn, где n – количество слагаемых. Var s, x : real; i, n :integer; Begin i:0; s:0; read (n); while i

17: Циклы с предусловием Var s, x : real; i, n :integer; Begin i:0; s:0; read (n); while i

18: Циклы с предусловием В случае использования оператора break исполнение программы завершится, т. е. произойдет выход из цикла и вывод накопленной суммы до введенного значения x0. В случае использования оператора continue произойдет переход на выполнение первого оператора тела цикла, и как следствие будет пропущены операторы стоящие после continue в теле цикла. Таким образом будет пропущена операция деления на 0. Операторы break и continue могут использоваться так же и в других циклах : циклах с постусловием и циклах со счетчиком.

19: Циклы с постусловием Repeat … until – это оператор цикла итеративного типа с постусловием, так как в нем анализ конца цикла производится после выполнения операторов тела цикла. Он используется, когда количество повторений операторов тела цикла заранее неизвестно и определяется в процессе выполнения цикла. Операторы тела цикла выполняются хотя бы 1 раз. repeat until

20: Циклы с постусловием

21: Циклы с постусловием Задача 3. Дано x1. Вычислить и вывести степени x. Вычисления производятся до тех пор, пока вычисляемое значение не станет более 108 Var k,x : integer; y : longint; Begin read (x); k:0; y:1; repeat y:yx; inc (k); write (x, в степени ,k, есть ,y); until y1e8; End.

22: Сравнение циклов с постусловием и предусловием Есть небольшое отличие в организации цикла repeat по сравнению с while: для выполнения в цикле repeat нескольких операторов не следует помещать эти операторы в операторные скобки begin . . . end. Зарезервированные слова repeat и until действуют как операторные скобки.

23: Сравнение циклов с постусловием и предусловием Конструкция repeat . . . until работает аналогично циклу while. Различие заключается в том, что цикл while проверяет условие до выполнения действий, в то время как repeat проверяет условие после выполнения действий. это гарантирует хотя бы одно выполнение действий до завершения цикла. Так же истинность логического выражения в операторе repeat … until свидетельствует о завершении цикла, тогда как в операторе while – выполнение тела цикла.

24: Циклы со счетчиком Циклы со счетчиком составляют такую конструкцию, в которой выполнение исполнительной части должно повторяться заранее определенное число раз. Циклы со счетчиком используются довольно часто, и поэтому в языке Паскаль для этих целей имеется специальная конструкция. for : to/downto do to – используется при шаге изменение управляющей переменной цикла равном 1. downto – используется при шаге изменение управляющей переменной цикла равном -1.

25: Циклы со счетчиком Примеры : for x:1 to 10 do begin …. end; for y:100 downto 10 do begin …. end;

26: Циклы со счетчиком Задача 4. Найти максимальное число из десяти положительных чисел. Var p, i, x : integer; Begin p:0; for i:1 to 10 do begin read (x); if xp then p:x; end; writeln(p); End.

27: Циклы со счетчиком Управляющая переменная цикла со счетчиком не может быть вещественного типа. В тех случаях, когда тело цикла выполняется заданное, известное количество итераций, но шаг цикла отличен от 1 или -1, то используют циклы while, repeat … until. Пример: … x:0; repeat x:x2; … until x10; …

28: Ситуации «зацикливания» Рассмотрим несколько примеров циклов : for i:100 to 10 do 2) while true do …. …. 3) x5; 4) y:10; repeatwhile y5 do inc (x);begin …… until x

29: Сложноциклические структуры Циклы могут быть простые и вложенные (кратные, циклы в цикле). Для решения многих задач так же используют структуру вложенных циклов, которую и называют сложноциклической. Вложенными могут быть циклы любых типов : for, while, repeat … until. Пример : … for x:1 to 10 do begin …. for y:1 to 5 do begin … end; … end; …

30: Сложноциклические структуры

32: Сложноциклические структуры Var i, j, n: integer; b, bs, sbg, g: real; Begin writeln (Введите количество учеников : ); read (n); sbg:0; for i:1 to n do begin writeln ( Введите баллы ,i ,-го ученика); bs:0; for j:1 to 5 do begin printf ( Количество баллов за решение ,j, –й задачи: ); read (b); bs:bsb; end;

33: Решение задач Задача 6. Вычислить , где xi - i-тый член суммы. Var s, i, n : integer; Begin read (n); s:0; for i:1 to n do begin read (x); s:sx; end; write (s); End.

34: Решение задач Задача 7. Вычислить знакопеременную сумму Var i, p : integer; s: real; Begin s:0; p:-1; for i:1 to 20 do begin p:p(-1); s:sp/i; end; write (s); End.

35: Решение задач Задача 8. Вычислить Var p, i, n : integer; Begin read (n); p:1; for i:1 to n do begin read (x); p:px; end; write (p); End.

36: Решение задач Задача 9. Вычислить Var i, j : integer; p: real; Begin p:1; j:23; for i:1 to 12 do begin p:p i / j; j:j-2; end; write (p); End.

37: Решение задач Задача 10. Напишите программу табулирования функции для получения таблицы функции yxsin(x) при изменении х на отрезке от - π до π с шагом π /5 . Var x,y: real; Begin x:-3. 14; repeat y:xsin(x); writeln (x:6:2, , y:6:2); x:xpi/5; until x3. 14; End.

38: Решение задач Задача 11. Вычислить приближенно площадь фигуры, ограниченной функцией yx2 и прямой y25, разбивая отрезок изменения х на 10 частей и суммируя площади прямоугольников с основаниями равными 1/10 отрезка изменения х, и высотой, определяемой значением функции в середине основания.

39: Решение задач Задача 11. Вычислить приближенно площадь фигуры, ограниченной функцией yx2 и прямой y25, разбивая отрезок изменения х на 10 частей и суммируя площади прямоугольников с основаниями равными 1/10 отрезка изменения х, и высотой, определяемой значением функции в середине основания. Var s, x, p : real; Begin s:0; x:-4. 5; while x

40: Решение задач Задача 12. Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить сколько клеток будет через 3,6,9,12, . . . , 24 часа. Var a,t : integer; Begin t:0; a:1; while t

41: Решение задач Задача 13. Начав тренировки, спортсмен в первый день пробежал 5 км. Каждый следующий день он увеличивал дневную норму на 10 от нормы предыдущего дня. Через сколько дней он будет пробегать в день более 20 км. ? Var d : word; s : real; Begin d:1; s:5; repeat inc (d); s:s1. 1; until s20; writeln (d) ; End.

42: Решение задач Задача 14. Определить m – количество трехзначных натуральных чисел, сумма цифр которых равна n(1

43: Решение задач Задача 15. Вычислить Var i, j, n : integer; p, s : real; Begin read (n); p:1; for i:1 to n do begin s:0; for j: 1 to 2n do s:si/(2ii1); p:ps; end; writeln (p) ; End.

Скачать презентацию


MirPpt.ru