знає зміст понять: модель, об'єкт, предметна галузь, проблема, матеріальна модель, інформаційна модель, компетентісна задача;
пояснює: алгоритм побудови інформаційних моделей;
класифікує: типи моделей;
уміє:
робити змістовий аналіз формулювання задачі;
створювати інформаційні моделі задач;
складати, редагувати, налагоджувати та виконувати програми в середовищі CodeBlocks;
аналізувати результати виконання програм;
налагоджувати програму та виконувати її у покроковому режимі в середовищі CodeBlocks.
Обладнання: ПК з встановленими ОС і середовищем програмування CodeBlocks, (дана) інструкція.
Структура уроку
Хід уроку
1. Організаційний момент
Вітання з класом. Відмітка відсутніх і перевірка готовності учнів до уроку. Перевірка виконання домашнього завдання.
2. Актуалізація опорних знань
Рядки програми мовою С++, які розпочинають символом #, є вказівками (директивами) для препроцесора. Інакше кажучи, їх опрацьовують (виконують) до компіляції програми.
Запис програми мовою С++ зазвичай розпочинають вказівкою #include, яку використовують для долучення інших файлів до коду програми. Розглянемо приклади використання такої вказівки:
#include <iostream> — долучення вмісту файлу iostream.h стандартної бібліотеки середовища. Цей файл описує введення даних з клавіатури й виведення даних на екран;
#include <cstdlib> — під'єднання стандартної бібліотеки, необхідну для роботи функції system.
using namespace std; — вказує на використання як усталено простору назв std.
Основна частина програми мовою на C++ має такий вигляд:
main () { тіло програми }
Усі вказівки тіла програми, записані всередині фігурних дужок, буде автоматично виконано після запуску програми. Після кожної такої вказівки записують крапку з комою.
Оголошення змінних в С++ здійснюють таким чином: спочатку вказують тип даних для обраної змінної, а потім назву цієї змінної.
Запис назви змінної або сталої може містити лише літери латиниці, цифри або нижнє підкреслення і має задовольняти такі вимоги:
for ( дія до початку циклу; умова продовження циклу; дія в кінці кожної ітерації циклy ) { вказівка1; вказівка2; … вказівкаN; }
Вказівка: return 0 передає операційній системі нульовий код завершеня роботи, тобто повідомлення про вдале завершення програми.
#include// Приклад програми мовою С++ #include using namespace std; int main() { cout << "Hello, world!" << endl; system ("pause"); // система чекає команди на закриття вікна return 0; }
3. Інструктаж з ТБ
4. Вивчення нового матеріалу
Розглянемо етапи розв'язування задач за допомогою комп'ютера: задача — модель — метод — алгоритм — програма — комп'ютер — результати.
Формулювання й уточнення умови задачі. На цьому етапі розглядають досліджуване явище чи об'єкт, формулюють умову задачі, конкретизують, що дано і що потрібно визначити. Задачі можуть бути різними. Наприклад: визначити швидкість руху велосипедиста, площу саду, об'єм тіла; дослідіти траєкторію польоту парашутиста, літака чи ракети; обчислити заробітну платню службовців, дослідити ефективність діяльності фірми. Задають вхідні дані (відстань між містами, довжини сторін, висоту, оклади, кількість працівників тощо). На цьому етапі важливо отримати якнайбільше даних, необхідних для розв'язання задачі.
Створення моделі задачі — формальний запис, що відображає найістотніші властивості досліджуваного об'єкта або явища і зв'язки між даними. Моделями можуть бути креслення чи сукупності формул, які описують зв'язки між даними. Наприклад:
s = vt — модель прямолінійного рівномірного руху;
h = gt2/2 — модель вільного падіння.
Розглянемо таку задачу: «Визначити, скільки метрів сітки потрібно, щоб загородити сад прямокутної форми зі сторонами 24 м і 50 м, і скільки добрив треба придбати, якщо на 1 м2 витрачають 2,5 кг». У цій задачі про сад моделлю є прямокутник, сторони якого задано цілими або дійсними числами (24 і 50), а зв'язок між даними описано такими формулами:
S = ab — площа прямокутника дорівнює добутку довжин двох його непаралельних сторін;
P = 2(a + b) — периметр прямокутника дорівнює подвоєній сумі довжин двох його непаралельних сторін;
m = Sλ — маса необхідного добрива дорівнює добутку площі ділянки на норму витрат добрива (на одиницю вимірювання площі).
Вибір (пошук) методу розв'язування. Методи розв'язування багатох задач випливають з положень конкретних наук: фізики, хімії, математики, біології, економіки тощо. Інколи таке положення записують за допомогою математичної формули. Наприклад, формула s = vt є описом моделі рівномірного руху тіла, однак не є описом методу для визначення часу t чи швидкості v. Методами будуть формули t = s/v, v = s/t.
Запис алгоритму, який однозначно описує послідовність використання формул чи виконання певних дій.
Створення комп'ютерної програми — запису алгоритму розв'язання задачі згідно з правилами зрозумілої для комп'ютера мови програмування. Коли алгоритм створено і описано структури даних, обирають найпридатнішу мову програмування (в нашому випадку С++) і складають програму цією мовою. Програма має бути правильною, результативною, масовою і зрозумілою. Для простих задач правильність програми є очевидною, інколи її можна довести. Але найчастіше у правильності програми переконуються за допомогою комп'ютерних експериментів з тестами — спеціально підібраними вхідними даними, для яких розв'язки задачі відомі. Лише перевірену (протестовану) програму можна вважати розв'язанням поставленої задачі.
Виконання програми на комп'ютері. На цьому етапі зосереджують увагу на особливостях виконавця алгоритмів — обирають комп'ютер з достатніми можливостями, виконують програму, отримують результати. Наприклад, якщо задачу навчального призначення можна реалізувати на шкільному комп'ютері, то задачі моделювання атмосферних явищ чи взаємодії складних систем потребують спеціалізованих суперкомп'ютерів.
Аналіз результатів. На цьому етапі замовник повинен отримати від виконавця максимум інформації про виконання роботи у зручній для сприйняття формі. Результати досліджень подають у вигляді чисел, таблиць, графіків, креслень, малюнків, рекомендацій тощо. Якщо результати достовірні і задовольняють замовника, то дослідження закінчують оформленням звіту і здаванням робіт замовникові. Якщо ж ні, то процес повторюють, починаючи з етапу, на якому припустилися помилки. Найпоширеніші помилки бувають у програмах, даних, у застосуванні методу розв'язування, побудові моделі задачі, у виборі виконавця робіт тощо.
Розглянемо побудову моделі на прикладі такої задачі.
Задача 1. За градусною мірою двох внутрішніх кутів трикутника визначити вид трикутника:
Якщо трикутник рівносторонній, то діагностику «гострокутний» не виводити.
Розіб'ємо задачу на кілька частин.
Позначимо дані градусні мірі кутів через a і b. Градусну міру задають дійсним числом, тому змінні a, b повинні мати тип дійсного числа: float, double або long double. Для опису запроваджених змінних скористаємося вказівкою:
float a, b;
Для введення з клавіатури значень a, b використаємо таку вказівку:
cin >> a >> b;
Щоб користувач зрозумів, що він повинен робити, перед введенням значень змінних потрібно написати вказівку виведення на екран запрошення ввести змінну:
cout << "Введіть значення градусних мір двох кутів трикутника : " << endl;
Відомо, що сума внутрішніх кутів трикутника дорівнює 180 градусів:
Звідси, знаючи значення двох кутів трикутника, можна обчислити третій за формулою:
Це означає, що у програмі потрібно запровадити змінну с і відповідним чином визначити її значення:
float c = 180 - a - b;
Для розв'язання задачі нам знадобляться такі відомості з курсу геометрії щодо визначення виду трикутника за співвідношенням між довжинами його сторін:
трикутник називають рівностороннім, якщо довжини усіх його сторін збігаються. Необхідною і достатньою умовою такого збігу є збіг величин його кутів.
трикутник називають рівнобедрениим, якщо довжини двох його сторін збігаються і відрізняються від довжини третьої сторони. Необхідною і достатньою умовою такого є рівність двох його внутрішніх кутів між собою і відмінність їх від третього кута.
трикутник називають різностороннім, якщо усі його сторони різні. Необхідною і достатньою умовою такого є відмінність його внутрішніх кутів.
Для визначення виду трикутника за співвідношенням між довжинами його сторін потрібно використати умовний оператор:
if (a==b && b==c) {cout << "Трикутник рiвностороннiй" << endl; return 0;} else if (a==b || a==c || b==c) {cout << "Трикутник рiвнобедренний" << endl;} else {cout << "Трикутник рiзностороннiй" << endl;}
Згадаймо й таке:
трикутник називають гострокутним, якщо всі його кути гострі, тобто менші за 90°. У цьому випадку для запису відповідного висловлювання використовують логічне «і»:
(a<90 && b<90 && c<90)
трикутник називають тупокутним, що якщо хоча б один з трьох його внутрішніх кутів є тупим, тобто перевищує 90°. У програмі відповідне висловлювання можна записати з допомогою логічного «або»:
(a>90 || b>90 || c>90)
трикутник називають прямокутним, якщо хоч один з трьох його кутів є прямим, тобто дорівнює 90°. У програмі відповідне висловлювання можна записати з допомогою логічного «або»:
(a==90 || b==90 || c==90)
Для визначення виду трикутника щодо величини кутів використаємо умовний оператор:
if (a< 90 && b< 90 && c< 90) {cout <<"Трикутник гострокутний"<< endl;} else if (a> 90 || b> 90 || c> 90) {cout <<"Трикутник тупокутний" << endl;} else if (a==90 || b==90 || c==90) {cout <<"Трикутник прямокутний" << endl;}
Після того, як вибрано метод розв'язання і спосіб його втілення у програмі, створимо програму в середовищі CodeBlocks, діючи згідно з певним алгоритмом для такого коду програми.
5. Вироблення практичних навичок
Примітка. Для кожного із наступних завдань 2–4 програму з назвою — номером завдання записувати у вказану вчителем теку. Про успішне виконання кожного завдання повідомляти вчителя підняттям руки.
Задача 2. Створити програму для визначення, чи існує трикутник з даними довжинами сторін a, b, с:
Вивести повідомлення: «Ввести значення сторін трикутника».
Ввести значення сторін трикутника a, b, c.
При справдженні усіх таких нерівностей:
вивести повідомлення: «Трикутник існує»,
інакше
вивести повідомлення: «Трикутник не існує».
Задача 3. Створити програму перевірки, чи є задане слово паліндромом, тобто чи його читають однаково з обох боків?
Приклад. Слово СОРОС є паліндромом, а слово ФОРОС — ні.
Алгоритм.
Ввести задане слово.
Якщо останні порівняні символи збігаються, вивести повідомлення: «Слово — паліндром», інакше вивести повідомлення: «Слово не є паліндромом».
Задача 4. В касі є монети номіналом 2, 5, 10 копійок. Скількома способами можна отримати решту на суму N копійок?
Порада. Задачу можна розв'язати неоптимальним чином. Наприклад, за допомогою двох вкладених циклів за:
— кількостями монет номіналом відповідно 10 і 5 копійок — і перевіркою парності значення такого виразу:
N – 10 j10 – 5 j5.
Порівняти створені розв'язання з демонстраційними: 2, 3, 4.
6. Підбиття підсумків уроку
Виставлення оцінок.
7. Домашнє завдання
При потребі завершити роботу над створенням програм.
Текст упорядкувала Марина Володимирівна Потужна, вчитель інформатики спеціалізованої школи № 73 І–ІІІ ступенів з поглибленим вивченням української мови, літератури та українознавства Шевченківського району міста Києва, під час виконання випускної роботи на курсах підвищення кваліфікації з 5.12.2016 по 9.12.2016.