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

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

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

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

Обладнання: ПК з встановленими ОС і середовищем програмування 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. Якщо a ≠ 0, вивести повідомлення: «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 і |b – a| ≥ ε, робити таке:
      • обчислити 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 року.