Программирование циклических алгоритмов

  • Презентации учебные
  • ppt
  • 20.05.2019
Публикация в СМИ для учителей

Публикация в СМИ для учителей

Бесплатное участие. Свидетельство СМИ сразу.
Мгновенные 10 документов в портфолио.

Цель урока: обобщение знаний операторов цикла и обучение построению циклического алгоритма сложной структуры. Задачи урока: 1) повторить циклический алгоритм и дать понятие о вложенных циклах 2) закрепить навыки составления программ с циклами 3) развитие навыков творчески подходить к решению разнообразных задач, умения выделять главное, анализировать
Иконка файла материала 8-3-5.ppt
ПРОГРАММИРОВАНИЕ   ПРОГРАММИРОВАНИЕ   ЦИКЛИЧЕСКИХ   ЦИКЛИЧЕСКИХ   АЛГОРИТМОВ АЛГОРИТМОВ НАЧАЛА ПРОГРАММИРОВАНИЯ
Ключевые слова • while ( цикл­ПОКА) • repeat (цикл­ДО) • for (цикл с параметрами)
Программирование циклов с заданным условием продолжения работы не т Условие  да Тело цикла Общий вид оператора: while <условие> dodo <оператор> while Здесь: <условие>  ­  логическое  выражение;  пока оно истинно, выполняется тело цикла; <оператор> ­ простой или составной оператор,  с помощью которого записано тело цикла.
Начало Список данных x, y, r, q ­ цел не т x, y r:=x q:=0 r >=у да r:= r ­ y q:= q +1 q,  r Конец program n_14; var x, y, q, r: integer; begin writeln ('Частное и остаток'); write ('Введите делимое x>>'); readln (x); write ('Введите делитель y>>'); read (y); r:=x; q:=0; while r>=y do writeln ('Частное q=', q); writeln ('Остаток r=', r) end. begin r:=r-y; q:=q+1 end;
Программирование циклов с заданным условием окончания работы Тело цикла Условие  да не т Общий вид оператора: repeat <оператор1; оператор2; …; > until repeat Здесь: <оператор1>;  <оператор2>;  …  ­  операторы,  образующие  тело  until <условие> цикла; <условие>  ­  логическое  выражение;  если  оно  ложно,  то  выполняется тело цикла.
program n_15; var i: integer; x: real; begin writeln ('График тренировок'); i:=1; x:=10; repeat i:=i+1; x:=x+0.1*x; until x>=25; writeln ('Начиная с ', i, '-го дня спортсмен будет пробегать 25 км') end. Начало Список данных i – цел x­ вещ i := 1  x := 10 i := i +1  x := x +0.1*x x>= 25 нет да i Конец
Программирование циклов с заданным числом повторений i = i1, i2 Тело цикла Общий вид оператора: forfor <параметр>:=<начальное_значение> toto <конечное_значение>  dodo  <оператор> Здесь: <параметр> ­ переменная целого типа; После  каждого  выполнения  тела  цикла  происходит  <начальное_значение>  <конечное_значение>  ­  увеличение  на  единицу  параметра  цикла;  условие  выхода  выражения того же типа, что и параметр; из цикла  ­ превышение параметром конечного значения. <оператор> ­ простой или составной оператор ­ тело цикла. и
program n_16; var i,n:integer;a,y:real; begin writeln ('Возведение в степень'); write ('Введите основание a>>'); readln (a); write ('Введите показатель n>>'); readln (n); y:=1; for i:=1 to n do y:=y*a; writeln ('y=', y) end. Начало Список данных i, n – цел a, y – вещ  a, n y := 1  i = 1, n y := y * a  y Конец
Различные варианты программирования циклического алгоритма Для  решения  одной  и  той  же  задачи  могут  быть  созданы  разные программы.  Организуем  ввод  целых  чисел  и  подсчёт  количества  введённых  положительных  и  отрицательных  чисел.  Ввод  должен  осуществляться  до  тех  пор,  пока  не  будет  введён  ноль. В задаче в явном виде задано условие окончания работы. repeat. Воспользуемся оператором repeat
program n_17; var n, k1, k2: integer; begin k1:=0; k2:=0; repeat write ('Введите целое число>>'); readln (n); if n>0 then k1:=k1+1; if n<0 then k2:=k2+1; until n=0; writeln ('Введено:'); writeln ('положительных чисел – ', k1); writeln ('отрицательных чисел – ', k2) end. Начало Список данных n, k1, k2 ­ цел да да k1:=k1+1 k2:=k2+1 нет k1:=0 k2:=0  n n > 0 нет n < 0 нет n = 0 да k1, k2 Конец
Ввод осуществляется до тех пор, пока не будет введён ноль.  Работа продолжается, пока n    0.  while: Воспользуемся оператором while program n_18; var n, k1, k2: integer; begin k1:=0; k2:=0; n:=1; while n<>0 do begin writeln ('Введите целое число>>'); read (n); if n>0 then k1:=k1+1; if n<0 then k2:=k2+1; end; writeln ('Введено:'); writeln ('положительных – ', k1); writeln ('отрицательных – ', k2) end. Начало Список данных n, k1, k2 ­ цел нет k1:=0 k2:=0 n:=1 n <> 0 да  n n > 0 нет k1, k2 Конец да k1:=k1+1 k2:=k2+1
Самое главное В  языке  Паскаль  имеются  три  вида  операторов  цикла:  while цикл­ПОКА) repeat (цикл­ДО) for (цикл с параметром). Если  число  повторений  тела  цикла  известно,  то  лучше  воспользоваться  оператором  for;  в  остальных  случаях используются операторы while и repeat.
Вопросы и задания Дана последовательность операторов: Требовалось написать программу вычисления факториала числа n (факториал  Напишите программу, которая выводит на экран таблицу   Напишите программу, которая выводит на экран таблицу      Дана последовательность операторов: Напишите программу, выводящую на экран изображение   a:=1; числа n есть произведение всех целых чисел от 1до n). степеней двойки (от нулевой до десятой).      a:=1; умножения на n (n ­ целое число в диапазоне от 2 до 10,   Напишите программу, в которой осуществляется ввод    Программист торопился и написал  программу неправильно.  шахматной доски, где чёрные клетки изображаются  b:=2; Сколько раз будет выполнен цикл? Проанализируйте следующий цикл: Рекомендуемый вид экрана после выполнения программы      b:=1; Ниже приведён фрагмент его программы, в котором содержится  пять ошибок: вводимое с клавиатуры). целых чисел (ввод осуществляется до тех пор, пока не   while a+b<8 do звёздочками, а белые  ­ пробелами. Рекомендуемый вид   а) for i:=0 to 15 do s:=s+1; while a8; repeat. в) for i:=­1 to 1 do s:=s+1;  Используйте оператор repeat.         f:=f*k;   b:=b+2; б) квадратов первых n натуральных чисел;          *         *         *         * б) используйте оператор while. 1               2     s:=a+b им можно заменить два других?  и вычисляет их среднее арифметическое.         k:=k+1 арифметического введённых положительных чисел. Введите n> 5 5 * 2 = 10 end; г) for i:=10 to 10 do s:=s+1; Сколько раз будет повторён цикл и какими будут значения  переменных a, b, s  в) всех чётных чисел в диапазоне от 1 до n; *         *         *         * Найдите ошибки. Допишите необходимые операторы. 2               4 Обоснуйте свою точку зрения.   Используйте оператор repeat. s:=a+b 5 * 3 = 15 после исполнения этой  последовательности операторов? д) k:=5;          *         *         *         * 3               8 г) всех двузначных чисел. Сколько раз будет повторен цикл и какими будут  значения переменных a, b, s  5 * 4 = 20 после исполнения этой последовательности операторов?      for i:=k­1 to k+1 do s:=s+1; 4             16 *         *         *         * 5 * 5 = 25 5             32 Пример выходных данных 6             64 5 * 6 = 30 *         *         *         * 5! = 120 Введите n> 5 7           128 5 * 7 = 35 8           256 5 * 8 = 40 6! = 720 Введите n> 6 9           512 5 * 9 = 45 10       1024 5 * 10 = 50          *         *         *         * Пример входных данных          *         *         *         *
Опорный конспект В языке Паскаль имеются три вида операторов цикла:  for (цикл с параметром) Число повторений  цикла известно  repeat  (цикл­ДО) while  (цикл­ПОКA) Число повторений  цикла неизвестно  while  (цикл­ПОКA)repeat  (цикл­ДО)for (цикл с параметром)Число повторений цикла известно Число повторений цикла неизвестно