8 клас
Тема: Складання циклічних алгоритмів опрацювання величин. Вкладені цикли. Використання для реалізації інтерфейсу програм раніше вивченого компоненту «список» (TListBox).
Освітня мета: ознайомитись з командами, що використовуються для опису циклів; ознайомитись із поняттям вкладені цикли.
Розвивальна мета: розвивати пам’ять, уяву, увагу, творче та словеснологічне мислення, творчі здібності, координаційну моторику, мовлення.
Виховна мета: виховувати працелюбність, дисциплінованість, акуратність, уважність, старанність, допитливість, далекоглядність та стійкість; виховувати культуру створення алгоритму і програми.
Тип уроку: засвоєння нових знань та навичок.
Обладнання: ПК із встановленим середовищем програмування Lazarus.
Хід роботи І. Організаційний етап. (2 хв.)
ІІ. Актуалізація опорних знань. (5 хв.)
1. Які види циклів ви знаєте? У яких випадках застосовують кожний із цих циклів?
2. Які переваги дає використання елемента керування ListBox при виведенні значень виразів (змінних)?
ІІІ. Повідомлення теми і мети уроку. Мотивація. (3 хв.)
Іноді є потреба повторити підзадачу кілька разів усередині більш загальної задачі. Один зі способів написання такої програми – включити цикл у набір інструкцій що повторюються всередині іншого циклу. Таку структуру, що складається з циклу в циклі, називають вкладеними циклами.
ІV. Пояснення нового матеріалу. (20 хв.)
Матеріал взятий з підручника
Інформатика 8 клас Бондаренко
Цикл називають вкладеним, якщо він розміщується всередині іншого циклу.
Внутрішній і зовнішній цикли можуть бути будь-якими з трьох розглянутих раніше:
• з параметром;
• з передумовою; з післяумовою.
Правила організації як зовнішнього, так і внутрішнього циклів такі самі, як і для простого циклу кожного з цих видів. Вкладені цикли організовані таким чином:
А – зовнішній цикл. Він відкривається першим, а закривається останнім.
В – внутрішній цикл. Він відкривається останнім, а закривається першим.
Правило вкладення циклів: внутрішній цикл повністю вміщується в тілі зовнішнього циклу.
Принцип роботи вкладених циклів такий: при першій ітерації зовнішній цикл викликає внутрішній, який виконується до свого завершення, після чого керування передається в тіло зовнішнього циклу. При другій ітерації зовнішній цикл знову викликає внутрішній. І так доти, поки не завершиться зовнішній цикл.
Надрукувати числа у вигляді таблиці:
5 5 5 5 5
5 5 5 5 5
5 5 5 5 5
Рядок із п'яти цифр можна сформувати за допомогою циклу for:
for i:=1 to 5 do s:=s+’5 ‘; //s-рядок
Щоб повторити виведення даного рядка три рази, вставляємо цей цикл всередину іншого:
for k:=1 to 3 do
{тричі виконується цикл з параметром k} begin s:=’’;
for i:=1 to 5 do s:=s+’5 ‘;
{5 разів виконується цикл із параметром і}
ListBox1.Items.Add(s); end;
При вкладенні циклів for для кожного циклу як параметри повинні використовуватися різні змінні.
Для того щоб продемонструвати даний тип вкладеного циклу, розглянемо задачу: надрукувати таблицю множення.
var N,K: integer; begin
for N:=2 to 9 do begin for K:=1 to 9 do begin
ListBox1.Items.Add(IntToStr(N) + ’x’ + IntToStr(K) +
’=’ + IntToStr(N*K)); end;
ListBox1.Items.Add(‘----------------‘); end; end;
Розглянемо іще одну задачу: знайти всі трицифрові натуральні числа, сума цифр яких дорівнює їхньому добутку, та визначити кількість таких чисел.
Для розв’язання задачі можна перебрати всі можливі сполучення цифр, з яких утворюється десятковий запис трицифрового числа, і перевіряти для кожного сполучення умову задачі.
var A, B, C, K:integer;
begin K:=0;
for A:=1 to 9 do //перша цифра for B:=0 to 9 do //друга цифра for C:=0 to 9 do //третя цифра if A+B+C=A*B*C then
begin
ListBox1.Items.Add(IntToStr(100*A+10*B+c));
K:=K+1; end;
ListBox1.Items.Add(‘K=’+IntToStr(K)); end;
У задачі використано три вкладені цикли. Зверніть увагу що лише тіло внутрішнього циклу з параметром С взято в операторні дужки begin..end, оскільки складається з двох операторів. Для циклів вищих рівнів у цьому немає потреби, оскільки в кожному з них тіло циклу містить лише один оператор:
цикл із параметром С а той, у свою чергу, є є тілом циклу з тілом циклу з параметром В параметром А.
V. Закріплення нових знань (10 хв.)
Скласти програму для розв’язання старовинної задачі.
Плата за одного бика — 20 карбованців, за корову — 10 карбованців, за теля — 1 карбованець. Скільки можна купити биків, корів і телят, якщо на 200 карбованців треба купити 100 голів худоби?
Хід розв’язку:
1. Створіть новий проект. Змініть заголовок форми на «Старовинна задача».
3. Розмістіть на формі компонент ListBox.
4. Додайте на форму кнопку Button1. Змініть заголовок доданої кнопки на «Виконати».
5. Розв’язання задачі.
Позначимо літерою b кількість биків; k — кількість корів; t — кількість телят.
Загальна кількість голів дорівнює 100: b+k+t=100. За биків заплатили 20bкарбованців, за корів — 10k карбованців, за телят — t карбованців, отже, 20b+10k+t=200.
На 200 карбованців можна купити: не більше 10 биків, тобто 0<=b<=10; не більше 20 корів, тобто 0<=k<=20; не більше 200 телят, тобто 0<=t<=200. Таким чином, необхідно перебрати всі можливі значення змінних b, k, t і вивести в поле ListBox той набір значень, для яких виконується умова (20*b+10*k+t=200) and (b+k+t=100).
6. Створіть процедуру обробки події onclick для кнопки Старовинна задача. У програмному коді створеної процедури запишіть такі оператори:
7. Запустіть проект на виконання. Перевірте роботу програми.
VІ. Підведення підсумків. (4 хв.)
Виконайте тестове завдання 42 з автоматичною перевіркою на сайті interactive.ranok.com.ua.
VІІ. Повідомлення д/з. (2 хв.)
Задача 1. Є 1000 грн. Скільки упаковок цукерок, вафель і печива можна купити на всі ці гроші, якщо вартість упаковки цукерок – 100 грн, вафель – 50 грн, печиво – 10 грн. Обов’язково потрібно купити щонайменше по одній одиниці товару.
Задача 2. Складіть програму для обчислення значення виразу 2k+n при всіх значеннях змінних n=1, 2, 3 і k=2, 4, 6, 8.