| 1. Организационный момент Приветствие, проверка подготовленности к учебному занятию, организация внимания детей. |
Включаются в деловой ритм урока. |
| 2. Актуализация знаний Здравствуйте, ребята! Сегодня мы переходим к изучению синтаксиса циклических конструкций в языке Pascal. И знакомство с ними мы начнем с изучения цикла с заданным условием продолжения работы (цикла с предусловием). Запишите сегодняшнюю дату и тему сегодняшнего урока: «Программирование циклов с предусловием». Теперь повторим материал из раздела «Алгоритмизация»: • какую алгоритмическую конструкцию называют повторением; • что называют телом цикла; • изобразите блок-схему цикла с предусловием. |
(Отвечают на вопросы) Повторение – алгоритмическая конструкция, представляющая собой последовательность действий, выполняемых многократно. Тело цикла – последовательность действий, повторяемых многократно. Блок-схема:  |
| 3. Изучение нового материала Итак, блок-схему цикла с предусловием мы изобразили. Теперь рассмотрим с вами следующую задачу (запишите её условие в тетради): необходимо найти сумму всех натуральных чисел от 1 до N, где N вводится с клавиатуры. Давайте попробуем составить алгоритм для решения этой задачи. Пока я буду набирать задачу в редакторе, записывайте её решение у себя в тетради. [Совместно с обучающимися решаю задачу на компьютере в IDE, попутно решение проецируется на экран]. Список возможных вопросов обсуждения задачи. 1) Какие переменные нам потребуется описать для решения задачи? 2) Запишите сумму n натуральных чисел в порядке от n до 1. Как осуществить последовательное вычисление этой суммы? А теперь рассмотрим, как описывается цикл с предусловием в языке Pascal. Оставьте место для дальнейшего решения и запишите подзаголовок «Цикл с предусловием в языке Pascal». Цикл с предусловием записывается следующим образом (запишите это в своих тетрадях): while do ; Сначала записывается служебное слово while, затем – условие, от истинности которого зависит выполнение тела цикла, после чего записывается служебное слово do и затем описывается тело цикла (обычно тело цикла состоит более чем из одного оператора, поэтому оно обрамляется операторными скобками begin .. end;). Теперь вернемся к нашей задаче и запишем цикл для нахождения искомой нами суммы натуральных чисел (показываю правильное оформление цикла в задаче). Давайте выполним трассировку нашего цикла для N = 5 (вызываю обучающегося к доске). |
Записывают условие задачи. Участвуют в обсуждении задачи, записывают решение в тетради. program loop1; var sum, n: integer; begin read(n); writeln; sum:=0; (Записи в тетрадях) Цикл с предусловием в языке Pascal. while do ; Продолжают запись задачи. while n = 1 do begin sum:=sum+n; n:=n-1; end; writeln(‘sum=’, sum); end. Один ученик у доски заполняет трассировочную таблицу, другие заполняют её в своих тетрадях. | N до проверки условия | N = 1 | S | N | | 5 | И | 5 | 4 | | 4 | И | 9 | 3 | | 3 | И | 12 | 2 | | 2 | И | 14 | 1 | | 1 | И | 15 | 0 | | 0 | Л | | | |
| 4. Закрепление изученного Рассмотрим с вами следующий фрагмент кода: a:=1; b:=2; while a+b begin a:=a+1; b:=b+2; end; s:=a+b; Корректно ли отработает цикл? Если да, то сколько раз будет повторен цикл и какими будут значения переменных a, b, s после выполнения этой последовательности операторов? Рассмотрим еще один фрагмент кода: while a c:=a=b; Проанализируйте работу этого цикла. Как он будет выполняться в зависимости от истинности условия? А теперь пересаживайтесь за компьютеры и выполните следующие задания самостоятельно. 1) Составить программу для вычисления факториала натурального числа n: n! = 1*2*3*…*n. 2) Составить программу для вывода кубов целых чисел от a до b, где a | (Отвечают на вопросы) Цикл отработает корректно и будет повторен 2 раза, а на третий раз при проверке условия произойдет выход из цикла; a = 3, b = 6, s = 9. Данный цикл будет выполняться бесконечно в том случае, если при первоначальной проверке условия работы цикла оно окажется истинным, и не выполнится ни разу в противном случае Самостоятельно оформляют решение задач на компьютере. Код программы к задаче 1: program fact; var f, n: integer; begin read(n); f:=1; writeln; while n 1 do begin f:=f*n; n:=n-1; end; writeln(‘fact(‘, n, ‘)=’, f); end. Код программы к задаче 2: program cubic; var a, b: integer; begin read(a, b); writeln; while a begin writeln(a, ‘^3 = ’, a*a*a); a:=a+1; end; end. |
| 5. Подведение итогов Итак, чему вы научились в течение сегодняшнего занятия? Сколько раз может отработать этот цикл в зависимости от условия? Как описывается цикл с предусловием на языке Pascal? |
Мы изучили синтаксис цикла с заданным условием продолжения работы. Ни одного раза, N раз, бесконечно много раз. while (условие) do (тело цикла); |
| 6. Домашнее задание П. 3.5. Задачи: 1) Реализовать алгоритм нахождения НОД двух натуральных чисел (алгоритм Евклида). 2) Реализовать алгоритм проверки натурального числа N = 2 на простоту, который описывается следующим образом: предполагаем, что введенное число N простое; далее проверяем, имеются ли среди целых чисел из отрезка [2; round(sqrt(N))] делители числа N: если имеются, то число N не является простым, если не имеются, то число N действительно простое. |
Записывают в дневниках д/з. |