Предмет: Інформатика та ІКТ. Урок ознайомлення з новим матеріалом
Тема: «циклічні алгоритми»
Тривалість: 1 урок - 45 хвилин
Технології: Презентація, інтерактивна дошка
Мета: вивчення алгоритмічної структури цикли, створення моделей і алгоритмів для вирішення практичних завдань.
- актуалізація знань
- Повторити поняття алгоритму, основні конструкції алгоритмічної мови.
- Вміти розробляти математичну модель, алгоритм і блок схему рішення задачі.
- Мати поняття про мови програмування і їх призначення.
- Вміти працювати в середовищі програмування.
- Знати структури програми.
- Вміти записувати вирази, що містять числові і символьні величини.
- Знати структури операторів і особливості їх роботи.
- Вміти застосовувати оператори при написанні програм з лінійними і гілкуюються.
- Вміти на комп'ютері створювати і запускати програми на налагодження.
II. Теоретичний матеріал уроку
Більшість практичних завдань вимагає багаторазового повторення одних і тих же дій, т. Е. Повторного використання одного або декількох операторів. (
Нехай потрібно ввести і обробити послідовність чисел. Якщо чисел всього п'ять, можна скласти лінійний алгоритм. Якщо їх тисяча, записати лінійний алгоритм можна, але дуже втомлює і нераціонально. Якщо кількість чисел до моменту розробки алгоритму невідомо, то лінійний алгоритм принципово неможливий.
Інший приклад. Щоб знайти прізвище людини в списку, треба перевірити перше прізвище списку, потім другу, третю і т.д. до тих пір, поки не буде знайдено потрібну або не буде досягнутий кінець списку. Подолати подібні труднощі можна за допомогою циклів.
Циклом називається багаторазово виконуваний ділянку алгоритму (програми). Відповідно циклічний алгоритм - це алгоритм, який містить цикли.
Розрізняють два типи циклів: з відомим числом повторень і з невідомим числом повторень. При цьому в обох випадках мається на увазі число повторень на стадії розробки алгоритму.
Існує 3 типи циклічних структур:
- Цикл з передумовою;
- Цикл з умовою поста;
- Цикл з параметром;
Інакше дані структури називають циклами типу «Поки», «До», «Для».
Графічна форма запису даних алгоритмічних структур:
Цикл з передумовою (інакше цикл поки) має вигляд:
умова - вираз логічного типу.
Цикл може не виконуватися жодного разу, якщо значення логічного виразу відразу ж виявляється брехня.
Серія команд, які перебувають між begin і end, виконуються до тих пір, поки умова істинна.
Для того щоб цикл завершився. необхідно, щоб послідовність інструкцій між BEGIN і END змінювала значення змінних, що входять в умову.
Цикл з умовою поста (інакше цикл до) має вигляд:
Формати запису операторів алгоритму
Формати запису операторів на Паскалі
В алгоритмічній мові немає команди яка могла б описати цю структуру, але її можна виразити за допомогою інших команд (Наприклад, розгалуження).
repeat серія команд
умова - вираз логічного типу.
Послідовність інструкцій між repeat і until завжди буде виконано хоча б один раз;
Для того щоб цикл завершився, необхідно, щоб послідовність операторів між repeat і until змінювала значення змінних, що входять у вираз умова.
Інструкція repeat, як і інструкція while, використовується в програмі, якщо треба провести деякі повторювані обчислення (цикл), проте число повторів наперед не відомо і визначається самим ходом обчислення.
Цикл з параметром (інакше цикл для) має вигляд:
Формати запису операторів алгоритму
i- параметр циклу;
a - початкове значення циклу;
b- кінцеве значення циклу;
h-крок зміни параметра.
Структура даного циклу інакше називають циклом i раз.
Ця команда виконується таким чином: параметру i присвоюється початкове значення а, порівнюється з кінцевим значенням b і, якщо воно менше або дорівнює кінцевому значенню b, виконується серія команд. Параметру привласнюється значення попереднього, збільшеного на величину h - кроку зміни параметра і знову порівнюється з кінцевим значенням b.
На мові програмування Паскаль крок зміни параметра може бути рівним одному або мінус одному.
Якщо між begin і end знаходиться тільки один оператор, то операторні дужки можна не писати. Це правило працює для циклу типу «Поки» і «Для».
Розглянемо приклад вирішення завдань з використанням даних структур
Обчислити добуток чисел від 1 до 5 використовуючи різні варіанти циклу
Складемо алгоритм у вигляді блок-схеми.
Для перевірки правильності алгоритму заповнимо трасувальні таблицю.
Перевірка умови відбувається в кілька етапів: перевірка умови і виконання команд на одній з гілок. Тому в трасування таблиці записуються команди алгоритму, а окремі операції, що виконуються комп'ютером на кожному кроці.
Крок перший. Р присвоюється значення один.
Крок другий. i присвоюється значення один.
Крок третій. при i дорівнює одиниці перевіряємо умову один менше або дорівнює п'яти, так, умова істинно, значить Р присвоюється значення один помножене на один, буде два. Для i: один плюс один, буде два.
Крок четвертий: при i дорівнює двом перевіряємо умова два менше або дорівнює п'яти, так, умова істинно, значить Р присвоюється значення 2 помножене на один, буде 2. Для i: два плюс один, буде три.
Крок п'ятий: при i рівному трьом перевіряємо умова три менше або дорівнює п'яти, так, умова істинно, значить Р присвоюється значення два помножене на три, буде шість. Для i: три плюс один, буде чотири.
Крок шостий: при i рівному чотирьом перевіряємо умова чотири менше або дорівнює п'яти, так, умова істинно, значить Р присвоюється значення шість помножене на чотири, буде двадцять чотири. Для i: чотири плюс один, буде п'ять.
Крок сьомий: при i рівному п'яти перевіряємо умова п'ять менше або дорівнює п'яти, так, умова істинно, значить Р присвоюється значення двадцять чотири помножене на п'ять, буде сто двадцять. Для i: п'ять плюс один, буде шість.
Крок восьмий: при i рівному шести перевіряємо умову шість менше або дорівнює п'яти, немає, умова помилкова, тоді ми виходимо з циклу, а в результаті отримуємо останнє значення рівне сто двадцяти.
Для циклу з умовою поста побудуємо блок-схему і трасування таблицю. (Слайд16)
В результаті отримуємо останнє значення рівне сто двадцяти на сьомому кроці
І для Циклу з параметром побудуємо блок-схему і трасування таблицю. (Слайд17)
В результаті отримуємо останнє значення рівне сто двадцяти на шостому кроці
Вивести на екран числа від 1 до 5 в:
a) прямому порядку;
b) зворотному порядку.
Блок-схема і програма рішення задачі представлена для чисел в прямому порядку і зворотному порядку.
Запишемо розглянуті алгоритми на мові програмування Паскаль.
III. Підведення підсумків уроку
І так ми розглянули такі питання:
- Алгоритмічна структура цикл;
- Види алгоритмічних структур:
- Цикл з передумовою;
- Цикл з послеусловіем;
- Цикл з параметром;
- Розглянули способи запису даних структур;
- Розібрали приклади розв'язання задач за допомогою цих структур.
Список використаної літератури
Мета. Відпрацювання навичок розробки циклічних алгоритмів і програм.
- повторити основні поняття по темі «алгоритм»;
- поглиблення знань про циклічні алгоритми;
- формувати вміння розробляти циклічні алгоритми і програми.
- підвищення інтересу до предмета;
- виховання культури взаємодії;
- виховання самостійності, чіткості та організованості.
- розвивати інформаційну культуру та пізнавальні інтереси вихованок;
- сприяти розвитку логічного і алгоритмічного мислення;
- розвивати навички співпраці;
- розвивати навички індивідуальної практичної діяльності.
1. Організаційний момент. Повідомлення теми, мети і завдань уроку.
Слайд 1: Тема сьогоднішнього уроку «циклічні алгоритми і програми» і ми будемо вчитися їх розробляти.
2. Основний етап уроку
2. 1. Повторення основних понять по темі «Алгоритм» - рішення кросворду
2) Для того щоб запам'ятати або змінити значення величини, в алгоритмі використовується команда ... присвоювання
3) Об'єкт (людина, тварина, робот), вміє виконувати певний набір дій - це виконавець
4) Окреме дію алгоритму - крок
5) Кожен алгоритм повинен бути розбитий на окремі команди - кроки. Вкажіть, яке властивість підходить цим визначенням - дискретність
6) Виконання алгоритму повинно завершуватися отриманням результат (а)
7) Окремий інформаційний об'єкт, який має ім'я, значення, тип ... величина
8) Алгоритм, в якому передбачена перевірка умови, називається розгалужений
9) Властивість, що означає можливість застосування алгоритму для вирішення класу однотипних задач - масовість
Питання: Що таке алгоритм?
1) Алгоритм - точне і зрозуміле розпорядження виконавцю виконати певну послідовність дій, що приводить до результату за кінцеве число кроків.
2. 2. Поняття циклічного алгоритму. Види циклів.
Який алгоритм називається циклічним?
Як називається ця послідовність команд? (Тіло циклу)
Де в житті ми можемо спостерігати циклічність (повторення)? (Дні тижня, пори року, зміна дня і ночі, зміна місяців у році і т. Д.)
Назвіть види циклів (цикл з передумовою «Поки», цикл з умовою поста «До», цикл з параметром «Для»)
Дайте характеристику циклу «Поки»
Який оператор мови Бейсік зручно використовувати для організації таких циклів?
Завдання 1. Обчислити твір P чисел від 1 до 10. Складіть блок - схему рішення задачі.
Як буде змінюватися величина а?
Що для цього необхідно передбачити?
Початкове значення а = 1, кінцеве значення а = 10
Взаимопроверка. За правильне рішення 1б в оцінний лист.
Завдання 1 (змінні можуть бути іншими) Завдання 2
Назвіть основні особливості циклу з умовою поста «ДО»
Завдання 2. Складіть алгоритм планування покупки товару. Запишіть у вигляді блок - схеми.
Список змінних. S - дана сума, P - вартість покупки, c - ціна товару, k - кількість товару.
З чого складається вартість покупки? (P = p + c * k)
Початкове значення (р = 0)
Робота в парах. Перевірка. За правильне рішення 1б в оцінний лист.
Цикл з параметром «Для»
Назвіть основні елементи циклу з параметром «Для»
Які його особливості?
Для розробки програм з циклом «Для» існують спеціальні оператори. З ними ми познайомимося на наступному уроці.
2. 3. Физминутку - вправи для очей (Слайд 9 - 15)
2. 4. Практична робота на закріплення (лист практичної роботи):
1) Організація роботи
На кожному робочому місці знаходиться лист практичної роботи з завданнями, які вам необхідно вирішити.
Для роботи необхідно взяти зошит і ручку.
2) Формулювання і розбір завдань
Завдання 3. Напишіть програму, яка запитує ваш вік і друкує текст «Ти молодець!» За кількістю прожитих років.
Дані, необхідні для вирішення завдання? (Input n)
Які дії необхідно повторити? (Print «Ти молодець!»)
Необхідно ввести змінну циклу, н - р 1≤ t ≤ n
Коков буде тип циклу? (Цикл «Поки»)
Яким оператором можемо скористатися для вирішення завдання в середовищі програмування Бейсік - 256?
Весь матеріал - дивіться архів.
Продовжуємо і сьогодні поговоримо про циклах. Давайте розберемося, що ж таке цикл і як навчити виконувати циклічні алгоритми нашого Робота.
Отже, що таке цикл. Уявіть, що ми знаходимося на уроці фізичної культури і перед нами стоїть завдання зробити 7 присідань. Це завдання можна оформити у вигляді лінійного алгоритму і тоді воно буде виглядати приблизно так:
Т. е ми повторили команду зроби присідання 7 разів. А чи є сенс писати 7 однакових команд? Може простіше дати команду зроби 7 присідань. Звичайно простіше і правильніше. Це і є цикл. Ви можете самі згадати приклади циклів з життя - їх досить багато.
Таким чином лінійний алгоритм. де повторюються одні й ті ж команди ми можемо оформити у вигляді циклічного алгоритму - приблизно так:
Ось так, на вигаданому нами мовою ми оформили цикл. У виконавця Робот теж є можливість записувати цикли. Причому, цикли бувають різні. Той варіант, який ми тільки що розглянули називається цикл з лічильником або цикл з параметром.
Цикл з лічильником застосовується коли заздалегідь відомо скільки повторень необхідно зробити. В наведеному вище прикладі з присіданнями саме такий випадок.
Для того, щоб написати цикл з лічильником для виконавця необхідно знати його синтаксис. А він такий:
Тут ми повинні вказати кількість повторень (число) і команди, які будуть повторюватися. Команди, які повторюються в циклі називають тілом циклу.
Давайте розглянемо це на прикладі.
Закрасимо 7 клітин, як на малюнку. Рекомендую почитати про і про його.
Завдання на цикл з лічильником
Спочатку Робот знаходився в лівій верхній клітині.
Давайте для початку вирішимо завдання лінійно. В цьому випадку ми буде зафарбовувати поточну клітку і переміщатися на 1 клітку вправо і програма буде виглядати так:
використовувати Робот
алг
нач
Як бачимо, команди зафарбувати і вправо повторюються 7 раз. Давайте тепер перепишемо програму з використанням циклу. До речі, щоб вставити цикл в свою програму можна в меню Вставка вибрати пункт нц-раз-кц або натиснути одну з комбінацій клавіш Esc, Р (російська буква Р) або Esc, H (латинська буква H). Причому клавіші треба натискати послідовно - спочатку Esc, відпустити її і тільки потім Р або H.
Так ось, наша програма з циклом буде виглядати так:
Якщо ми її запустимо, то побачимо, що в результаті вийде те ж саме - 7 зафарбованих клітин. Однак програма стала коротше і значно грамотніше з алгоритмічної точки зору!
При вирішенні задачі 19 ДПА з інформатики з Роботом використовувати цикл з лічильником не вийде. Так як там поле, як правило, нескінченне і стіни не мають конкретної довжини. Тому ми не зможемо визначити кількість повторень для циклу з лічильником. Але не біда - нам допоможе цикл з умовою.
Повернемося до фізкультури і змінимо завдання. Адже хтось може і не зробити 7 присідань, а інший здатний зробити 27. Чи можна врахувати це при створенні циклу? Звичайно. Тільки тепер ми будемо використовувати не лічильник (кількість повторень), а умова. Наприклад, поки не втомився, роби присідання. У цьому випадку людина буде робити не конкретне число присідань, а присідати до тих пір, поки не втомиться. І наш цикл на абстрактному мовою прийме такий вигляд:
Слова не втомився в нашому випадку - це умова. Коли воно істинне, цикл виконується. Якщо ж воно помилкове (втомився) тіло циклу не буде виконано. У виконавця Робот є кілька умов
але в умові завдання 19 ДПА вказані тільки перші 4. Так що будемо користуватися тільки ними.
Тепер давайте вирішимо наступну задачу для Робота - намалювати вертикальну лінію від лівого до правого кордону поля використовую цикл з умовою. Спочатку Робот знаходиться в лівому верхньому кутку.
Давайте спочатку сформулюємо словесний алгоритм - т. Е. Опишемо словами що потрібно робити Роботу. Цей алгоритм буде звучати приблизно так:
«Поки справа вільно роби крок вправо і зафарбовувати клітку»
В результаті Робот пробіжить по всіх клітках вправо і буде їх зафарбовувати до тих пір, поки справа не опиниться стіна.
Вихідний код нашої програми для Робота буде приблизно такою:
нц поки справа вільно
В результаті виконання цієї програми ми побачимо ось таку картину:
Завдання для Робота цикл з умовою
Як бачимо, не вистачає тільки зафарбованою першої клітини. Для цього перед циклом необхідно виконати команду зафарбувати.
Рішення завдання з циклом
Для закріплення прошу написати програму, яка буде робити рамку навколо робочого поля Робота незалежно від його розміру. Звичайно ж з використанням циклів з умовою. У результаті повинно вийти так:
Завдання для самостійного рішення