Розробка уроку — практичної роботи

Тема: створення програм розрахунку числового значення за заданою формулою, знаходження кореня рівняння.

Мета: навчитися створювати програми розрахунку числового значення за заданою формулою та знаходження кореня.

Після виконання роботи учень повинен:

Обладнання: ПК з встановленими ОС і середовищем програмування Code::Blocks IDE.

Хід уроку

1. Організаційний момент
Привітання з класом. Перевірка домашнього завдання.

2. Актуалізація опорних знань
Означити або описати поняття, розглянуті на попередньому уроці й виділені жирним шрифтом у тексті.

Алгоритм створення нового проекту
(виконувати всі дії у процесі ознайомлення)

Не вдаючись у подробиці, подамо приклад програми, що виводить кирилицю.

#include <iostream>
#include <clocale>
using namespace std;
int main()
{
  setlocale(LC_CTYPE,"rus");
  cout << "Перша проба пера\n";
  return 0;
}
при, наприклад, таких налаштуваннях компілятора.

Щоб пересвідчитися у цьому, потрібно:

Сталівид даних, величину яких заборонено змінювати протягом виконання програми. Їх описують після зарезервованого слова const.

Зміннівид даних, величину яких дозволено змінювати протягом виконання програми. Їх описують, вказавши їхню назву після зарезервованих слів — назв типів. Наприклад, int k;.

Властивості змінної: назва, тип і поточна величина.

Запис назви змінної чи сталої може містити лише літери латиниці, цифри або нижнє підкреслення і має задовольняти такі вимоги:

Тип даних характеризує допустимі величини для цих даних і сукупністю операцій над ними.

Числові дані можуть бути двох типів: цілі та дійсні.

Цілі типи

Назва типуОбсяг,
байтів
Діапазон
int2 або 4 –32768..32767 або
–2147483648..2147483647
short int2 –32768..32767
unsigned short int2 або 4 0..65536 або 0..4294967295
long int 4–2147483648..2147483647
unsigned long int40..4294967295

Об'єм пам'яті, виділений під величини типу int та unsigned short int, залежать від розрядності операційної системи: 2 байти в 32-розрядній і 4 байти в 64-розрядній системі.

Дійсні типи

Назва типуОбсяг,
байтів
Діапазон
float 4 3.4·10–38..3.4·10+38
double8 1.7·10–308..1.7·10+308
long double10 1.18·10–4932..1.18·10+4932

Для дійсних чисел вказано діапазони зміни абсолютнної величини (модуля). Дійсні числа можна записувати у форматі з фіксованою крапкою (2.56, –0.3) або у науковому форматі (з рухомою крапкою: –0.23e3=–230, 1.45e–2=0.0145)

Логічний тип bool. Змінні цього типу можуть набувати лише величин: false (хибність) і true (істина). Вони займають 1 байт у пам'яті.

Символьний тип char. Змінні цього типу можуть набувати лише величин з кодової таблиці комп'ютера ASCII.

Символьна стала це один символ, узятий в одинарні лапки, або число у 8-, 10- чи 16-й системі числення, яке є кодом символу у таблиці ASCII. Наприклад,

char s='f'; d=102;

Зауважимо: 102 — це десятковий код символу «f». Після такого опису:

char s='f'; int n=s;

змінна n набуде величини 102.

Вказівка надання значення має такий вигляд:

<назва> = <вираз>;

або

<назва1> = <назва2> = … = <назваN> = <вираз>;

і діє так: обчислюють вираз і його величину надають змінній або декільком змінним. Вираз може містити числа (сталі чи змінні) та назви функцій, з'єднані символами операцій. Змінна і вираз не обов'язково мають бути одного типу. У С++ реалізовано автоматичне перетворення (узгодження) типів. Розрізняють явне і неявне узгодження типів. При перетворенні дійсного числа в ціле відкидають дробову частину (це не є округленням!). Наприклад, після виконання такого коду:

int b,a;  float c;  a=2;  c=4.9;  b=a*c;

змінна b набуде величини 9 після неявного перетворення дійсного числа 9.8 у ціле.

Явне перетворення типів задають у круглих дужках перед змінною чи виразом.

Явне перетворення типів для поданого вище прикладу опису змінних:

ВказівкаРезультат виконання
b = (int)  c * a; b = (int) 4.9 * 2 = 4 * 2 = 8
b = (int) (c * a); b = (int) (4.9 * 2 ) = (int) 9.8 = 9

Вираз може містити дані різних числових типів (змішані вирази). Узгодження типів у виразах відбувається з урахуванням пріорітету типів:

  • дійсні числа мають вищий пріоритет, ніж цілі;
  • для цілих/дійсних типів вищий пріоритет там, де ширший діапазон зміни;
  • результат перетворюють до типу з вищим проіоритетом.

Оператор введення (з клавіатури) має такий синтаксис:

cin >> змінна>> змінна;

Оператор виведення (на екран) має такий синтаксис:

cout << вираз чи змінна << вираз чи змінна ;

Cкладний оператор — це послідовність операторів, відділених один від одного крапкою з комою, що починається з відкритої фігурної дужки { і закінчується закритою фігурною дужкою }:

{ оператор1; оператор2; … операторn; };

Компілятор сприйме складений оператор як один оператор.

Умовний оператор призначено для того, щоб задати вибір тієї чи іншої дії залежно від справдження певної умови. Цей оператор має такий синтаксис:

if (<умова>) <оператор1>; else < оператор2>;

Як умову використовують значення логічного виразу, як оператори — довільний простий або складений оператор, у тому числі і сам умовний оператор. Якщо значення логічного виразу true, то буде виконано оператор1, якщо false, то буде виконано оператор2.

Якщо згідно з алгоритмом потрібно виконати декілька операторів, тоді потрібно використовувати складений оператор.

Умовний оператор Switch-Case (оператор вибору) використовують у тих випадках, коли залежно від значень якої-небудь змінної треба виконати ті чи інші оператори. Він має такий синтаксис:

switch (<вираз>)
{
  case <
значення1> : <оператор1>; break;
  case <
значення2> : <оператор2>; break;
  …
  case <
значенняn> : <операторn>; break;
  default: <
операторn + 1>
};


Тут операторn + 1 буде виконано лише у тому випадку, коли значення виразу не збігається ні з одним зі значенняj. Після кожного логічно відокремленого блоку потрібно використовувати оператор break для виходу з оператора вибору.

3. Вивчення нового матеріалу
Кожне із завдань розв'язувати (складати алгоритм і програму) за допомогою конкурсу ідей, після чого порівнювати отримане розв'язання з демонстра­ційним. Коректність вхідних даних не перевіряти. Файли записувати у вказану вчителем теку з такою назвою:

Ваше прізвище-номер завдання.cpp

Програми на виконання запускати клацанням на зображенні файла.

Завдання 1. Створити програму для розв'язання рівняння ax + b = 0 на множині дійсних чисел.

Алгоритм

  1. Ввести значення величини a, b.
  2. Якщо a0, вивести повідомлення: «Unique solution х= » і значення – b/a,
    інакше, якщо b ≠ 0, вивести повідомлення: «No solutions»,
    інакше вивести повідомлення: «Any real number».
  3. Порівняти складену програму з демонстраційним розв'язанням.

Завдання 2. Створити програму для виведення n-ого елемента геометричної прогресії.

Алгоритм

  1. Ввести значення першого елемента прогресії,знаменника та номер шуканого елемента: b1, q, n.

  2. Використвуючи рекурентну формулу: bn = bn − 1 · q і оператор циклу обчислити значення bn.

  3. Вивести обчислене значення на екран.

  4. Порівняти складену програму з демонстраційним розв'язанням.

Завдання 3. Створити програму для наближеного розв'язання рівняння:

f (x) = 0

на прикладі рівняння: x2 – 2 = 0. Використати таке: якщо f набуває протилежних знаків на кінцях проміжку, то на цьому проміжку є роз'язок рівняння.

Алгоритм

  1. Ввести значення величин:
    • a, b — чисел, між якими лежить розв'язок;
    • ε — верхньої межі похибки.
  2. Якщо a = b або ε ≤ 0, вивести повідомлення "Invalid input data".
  3. Якщо f (a) = 0, то вивести a.
  4. Якщо f (b) = 0, то вивести b.
  5. Якщо f (a) · f (b) > 0, вивести повідомлення "Probably no solution".
  6. Якщо f (a) · f (b) < 0, зробити таке:
    • покласти c = a:
    • поки f (c) ≠ 0 і |ba| ≥ ε, робити таке:
      • обчислити c = (a + b)/2;
      • якщо f (c) · f (a) > 0, надати значення a = c,
        інакше надати значення b = с.
    • вивести значення с.

Порада: значення функції обчислювати лише один раз. Для збереження значень використовувати окремі змінні.

Порівняти складену програму з демонстраційним розв'язанням.

4. Інструктаж з ТБ
5. Закріплення вивченого матеріалу

Завантажити інтегроване середовище програмування C++ 3 або скористатися он-лайн середовищем і для кожного з розглянутих завдань 1, 2 і 3 робити таке:

6. Підбиття підсумків уроку
Виставлення оцінок.

7. Домашнє завдання

  1. Скласти алгоритм й написати програму знаходження членів послідов­ності Фібо­наччі: перші два члени дорівнюють 1, а кожний, починаючи з 3-го, дорівнює сумі двох попередніх. Передбачити виведення номера і значення члена послідов­ності одним рядком і зчитування ознаки припинення обчислень.

  2. Скласти алгоритм й написати програму знаходження суми перших n членів арифметичної прогресії згідно з такою формулою:

    S = na1 + dn(n − 1)/2,

    де S — сума перших n членів арифметичної прогресії з першим членом a1 і різницею d.


Текст упорядкувала Данилова Алла Євгенівна, вчитель Києво-Печерського ліцею № 171 «Лідер» Печер­ського району міста Києва, під час виконання випускної роботи на курсах підви­щення квалі­фікації з 05.12.2016 по 09.12.2016 року.