Главная » Файлы » Для вчителя » Інформатика [ Добавить материал ]

цикли. Урок
[ · Скачать удаленно (70 kb) ] 04.08.2010, 14:40
Тема: цикли.
Мета: ввести поняття циклу, способів їх опису, формувати в учнів вміння складати алгоритми з використанням циклів; розвивати пам’ять, мислення; виховувати старанність, працелюбність наполегливість.
Хід уроку
І. Організаційний момент.
ІІ. Перевірка домашнього завдання.
Контрольні запитання
1. Наведіть приклади запису операторів введення-виведення.
2. Які види розгалужень вам відомі?
3. Що таке неповний умовний оператор?
4. Що таке оператор вибору?
5. Що таке прості та складені умови?
Вправи
1. Користуючись алгоритмічною нотацією, складіть алгоритм знаходження середнього арифметичного двох чисел.
ІІІ. Вивчення нового матеріалу.
Цикли
Розв'язуючи практичні задачі, нерідко доводиться неодноразово повторювати одні й ті самі обчислення. Повторювані групи операторів (команд) називаються циклами. Цикли забезпечують компактний і наочний запис за допомогою інших операторів, наприклад операторів переходу.
Цикл із передумовою
Конструкція циклу з передумовою (цикл ПОКИ) має вигляд:
поки <умова Р> цикл <серія S> все
Перший рядок являє собою заголовок циклу, який містить умову Р. Другий рядок – це безпосередньо оператор циклу, що повинен багаторазово повторюватися, доки виконується дана умова (доки істинна умова Р). Цикл містить послідовність операторів <серія S>, яка називається тілом, циклу.
Якщо перед виконанням тіла циклу перевіряється умова Р, то такий цикл називається циклом з передумовою, а сама умова Р – умовою продовження циклу.
Виконання алгоритму починається з перевірки передумови. Якщо вона виконується, то буде виконаний наступний за заголовком оператор, тобто <серія S>, а потім керування буде передано знову на початок циклу. Якщо передумова не виконується, то оператор циклу жодного разу не виконається. Схема циклу з передумовою показана на мал. 84.1, а.

Розглянемо приклад. Нехай потрібно обчислити залишок від ділення двох цілих чисел А і В (А>=0, В>0). Знайти цю величину можна відніманням числа В від числа А, доки А залишається більшим від В. Наприклад, залишок від ділення 56 на 5 можна знайти, віднімаючи від 56 числа 5 і порівнюючи отриману різницю з 5. Оскільки 51>5, треба знову від різниці відняти 5 і результат порів¬няти з 5. Обчислення триватимуть, доки не буде отримано різницю 1, яка є за¬лишком від ділення 56 на 5. Відповідний цикл має вигляд:
поки А>=В
цикл А:=А-В
все
Щоб значення вихідних величин не змінювалися (не були «зіпсовані»), ре¬зультат обчислення слід надати новій змінній:
Х:=А
поки Х>=В
цикл Х:=Х–В
все
Зазначимо, що елементарні циклічні алгоритми подаються за допомогою базової структури циклу.
Цикл з післямовою
Цикл з післяумовою (цикл ДО) записується як
цикл <серія S>
до <умова Р>
все
Перший рядок – заголовок циклу – це водночас і початок тіла циклу (<серіяS>). Сам цикл виконується доти, доки задовольняється умова Р (до істинності умови Р). Ця умова називається умовою закінчення циклу.
Якщо виконання алгоритму починається з операторів тіла циклу, після чого перевіряється умова Р. то цикл називається циклом з післяумовою.
Схема циклу з післяумовою наведена на мал. 84.1, б. Як приклад використання циклу ДО складемо алгоритм обчислення суми перших 100 членів нескінченне послідовності:
1/2, 1/6, .1/12,.. 1/а(а+1),..
В алгоритмічній нотації одержимо:

алг Сума_членів_послідовності_
арг n
рез sum
поч
нат і
sum:=0
n:=100
і:=1
ЦИКЛ
sum:=sum+1/і*(і+1)
і:=і+1
до i<=n
все
кін
Зверніть увагу, що перед циклом змінній sum надається нульове значення, щоб очистити комірку пам'яті для збереження цієї змінної. Алгоритм створено, Отже, за допомогою його можна обчислювати суму будь-якого числа перших членів послідовності. Для цього в операторі n:=100, що задає довжину послідовності, потрібно змінити число.
Покрокова зміна аргументу в циклі
У попередньому прикладі алгоритму була використана змінна і (і = 1, 2, 3, ...), значення якої збігалося з номером повторення циклу. Така змінна називається аргументом циклу, або лічильником циклу, бо після кожного повторення її значення змінюється на однакову величину (до речі, не обов'язково на 1). У мовах програмування для циклів з покроковою зміною аргументу передбачена спеціальна конструкція, яка в алгоритмічній нотації має вигляд
для х від а до b крок h
цикл <серія S >
все
Перший рядок відповідає заголовку циклу, в якому зазначені ім'я аргументу циклу х, межі його зміни а, b і крок зміни h. В другому рядку записана послідовність, яка циклічно виконується, <серія S> (тіло циклу). На початку виконання циклу аргументу надається початкове значення, вказане після слова від, і виконується послідовність команд серії. Потім значення аргументу х збільшується на величину кроку h і знову виконується серія. Подібні дії повторюються, доки значення аргументу не дорівнюватиме числу, зазначеному в заголовку циклу після слова до. Щойно аргумент «пробіг» весь діапазон своїх значень, виконання циклу завершується. Такий цикл називають також лічильним оператором або оператором контрольованого циклу, оскільки в такому циклі відоме число повторень.
Запишемо для прикладу алгоритм обчислення суми всіх цілих чисел від 1 до 100 (вважатимемо, що нам невідомий аналітичний розв'язок цієї задачі, запропонований математиком Гауссом, коли він ще був школярем). В алгоритмі вико¬ристовуємо цикл із покроковою зміною аргументу:
алг сума_нат_чисел
арг n
рез sum
поч нат і
sum:=0
n:=100
для і від 1 до n крок 1
цикл sum:= sum+і
все
кін
IV. Підсумок уроку.
Контрольні запитання
1. Які види циклів вам відомі?
2. Опишіть послідовність виконання циклу з передумовою і післяумовою.
3. Коли краще застосовувати цикли з покроковою зміною аргументу?
V. Домашнє завдання. Вивчити конспект.
Вправи
1. Користуючись алгоритмічною нотацією, складіть алгоритм піднесення числа а до степеня п (n - ціле).
2. Складіть алгоритм обчислення суми квадратів натуральних чисел від m до n (m var container = document.getElementById('nativeroll_video_cont'); if (container) { var parent = container.parentElement; if (parent) { const wrapper = document.createElement('div'); wrapper.classList.add('js-teasers-wrapper'); parent.insertBefore(wrapper, container.nextSibling); } }

Категория: Інформатика | Добавил: referatwm
Просмотров: 420 | Загрузок: 220 | Рейтинг: 0.0/0