Тема: алгоритми опрацювання величин.
Мета: навчитися складати та виконувати алгоритми з величинами числового типу в середовищі програмування CodeBlocks. Після виконання роботи учень:
складати алгоритми опрацювання величин числового типу;
складати, редагувати, налагоджувати та виконувати програми опрацювання числових величин у навчальному середовищі програмування CodeBlocks;
аналізувати результати виконання програм опрацювання величин числового типу;
налагоджувати програму та виконувати її у покроковому режимі в навчальному середовищі програмування CodeBlocks.
Обладнання: ПК з встановленими ОС і середовищем програмування CodeBlocks.
Хід уроку
1. Організаційний момент
Привітання з класом. Перевірка домашнього завдання.
2. Актуалізація опорних знань
Означити або описати поняття, розглянуті на попередньому уроці й виділені жирним шрифтом у тексті.
Абетка мови С++ — набір допустимих символів — складається з:
Літери українського алфавіту можна використовувати лише для запису коментарів.
Коментар — це частина тексту програми для пояснення програми чи окремих вказівок і не впливає на виконання програми.
Коментар мовою С++ записують так:
// текст коментаря до кінця рядка
/* текст коментаря */
Програми складаються із синтаксичних конструкцій, які називають вказівками (інші назви — оператори, команди, речення). Вказівки будують з неподільних елементів мови: слів, чисел, символів операцій. Слова поділяють на ключові слова й ідентифікатори (назви величин)
Ключові (службові, зарезервовані) слова використовують для запису вказівок і опису об'єктів.
Наприклад: if, else, int, float, const, sqrt тощо. Змінити призначення ключового слова у програмі не можна.
Ідентифікатор — це назва, яку надають об'єктам (змінним, сталим, функціям тощо).
Істотною особливістю мови С++ порівняно з іншими мовами є те, що програма складається з функцій, які відіграють роль підпрограм (процедур) в інших мовах.
Головна функція, яка має бути в кожній програмі, — це функція такого вигляду:
int main()
{
тіло функції;
}
Директиви препроцесора — вказівки компілятора, які виконуються на початку компіляції програми і їх відповідно записують на початку тексту програми — у мові С++ починаються із символу #.
Директива #include <назва файлу.розширення> означає приєднання програмного коду зі вказаного файлу.
Найчастіше це стандартні бібліотеки, розташовані у теці INCLUDE і необхідні для виконання вказівок мови С++. Наприклад, для виконання вказівок введення-виведення даних необхідно підключити бібліотеку iostream.h.
Найпростіша програма мовою С++ має такий загальний вигляд:
#include <назва файлу 1.розширення> …
#include <назва файлу N.розширення>
int main()
{
<тіло функції>;
}
Зазвичай програми мають і інші об'єкти: дані (змінні та сталі), функції (стандартні та створені користувачем) тощо. Всі дані, які використовують у програмі, необхідно зазделегідь описати для розподілу оперативної пам'яті згідно з описами.
Величина — одиниця даних, якими оперує програма. Вона має такі властивості:
назва (ідентифікатор) — послідовність літер латиниці, цифр і нижнього підкреслювання «_», на початку — обов'язково літера;
тип — визначає обсяг відведеної пам'яті, можливі дії, правила тлумачення бітів пам'яті та множину допустимих значень. Мова C++ не предбачає зміни типу змінної протягом виконання програми. На відміну, наприклад, від мов Javasript чи Reduce.;
розмірність — проста або складена (структурована);
значення — елемент множини допустимих значень величини. Це єдина властивість змінної, яку можливо змінити протягом виконання програми, написаною мовою Pascal.
Назва величини:
У мові С++ розрізняють малі та великі літери. Наприклад, ідентифікатори sum i Sum — різні.
У програмі С++ всі оголошення об'єктів і вказівки закінчують символом ; (крапка з комою).
Цілі типи
Назва типу | Обсяг, байтів | Діапазон |
---|---|---|
int | 2 або 4 | –32768..32767 або –2147483648..2147483647 |
short int | 2 | –32768..32767 |
unsigned short int | 2 або 4 | 0..65536 або 0..4294967295 |
long int | 4 | –2147483648..2147483647 |
unsigned long int | 4 | 0..4294967295 |
Об'єм пам'яті, яка виділяють під величини типу int та unsigned short int, залежать від розрядності операційної системи: 2 байти в 32-х розрядній і 4 байти в 64-х розрядній системі.
Дійсні типи
Назва типу | Обсяг, байтів | Діапазон |
---|---|---|
float | 4 | 3.4·10–38..3.4·10+38 |
double | 8 | 1.7·10–308..1.7·10+308 |
long double | 10 | 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;
3. Вивчення нового матеріалу
Кожне із завдань 1, 2, 3 розв'язувати за допомогою конкурсу ідей, після чого порівнювати отримане розв'язання з поданим демонстраційним.
Завдання 1. Розв'язання рівняння ax + b = 0 на множині дійсних чисел.
Алгоритм
#include <iostream> using namespace std; int main() { double a, b; setlocale(LC_CTYPE,"rus"); cout<<"Введiть a i b - коефiцiенти лiнiйного рiвняння ax + b = 0 \n"; cin>>a>>b; if ( a != 0 ) cout<<"Рiвняння має один розв'язок: "<< -b/a; else if ( b == 0 ) cout<<"Будь-яке число є коренем цього рiвняння."; else cout<<"Рiвняння не має коренiв."; return 0; }
Завдання 2. Визначити, яка з двох дат передує іншій, не перевіряючи коректність даних.
Алгоритм
#include <iostream> using namespace std; int days_in_date(int i) { int d, m, y; cout<<"Введiть дату "<<i<<" у форматi (число) (№ мiсяця) (рiк): "; cin>>d>>m>>y; return d + 31 * ( m + 12 * y); } int main() { setlocale(LC_CTYPE,"rus"); int n1 = days_in_date(1); int n2 = days_in_date(2); if ( n1 < n2) cout<<"Перша дата передує другiй"; if ( n1 > n2) cout<<"Друга дата передує першiй"; if ( n1 == n2) cout<<"Перша дата збiгається з другою"; return 0; }
Завдання 3. Визначення виду трикутника за градусною мірою двох його кутів.
Алгоритм
Ввести величини A, B.
Обчислити C = 180 – A – B.
Якщо хоча б одна з величин A, B, C не є додатною, вивести повідомлення про те, що трикутника з такими кутами не існує, і завершити виконання програми.
Якщо всі кути будуть однакові, вивести повідомлення про те, що трикутник є рівностороннім, і завершити виконання програми.
Якщо будь-які два кути однакові, вивести повідомлення про те, що трикутник є рівнобедреним, інакше вивести повідомлення, що він є різностороннім.
Якщо один з кутів прямий (градусна міра дорівнює 90), вивести повідомлення про те, що трикутник є прямокутним.
Якщо один з кутів тупий (градусна міра перевищує 90), вивести повідомлення про те, що трикутник є тупокутним.
Якщо усі кути гострі (градусна міра менша ніж 90), вивести повідомлення про те, що трикутник є гострокутним.
#include <iostream> #include <stdlib.h> using namespace std; int main() { double a, b, c; setlocale(LC_CTYPE,"rus"); cout<<"Введiть значення двох кутiв трикутника (у градусах) \n"; cin>>a>>b; c = 180 - ( a + b ); if (( a <= 0 ) or ( b <= 0 ) or ( c <= 0 )) { cout<<"Такого трикутника не iснує"; exit(0); } if (( a == b ) and ( b == c )) { cout<<"Даний трикутник є рiвностороннiм."; exit(0); } if (( a == b ) or ( b == c ) or ( c == a )) cout<<"Трикутник рiвнобедрений"; else cout<<"Трикутник рiзностороннiй"; if (( a == 90 ) or ( b == 90 ) or ( c == 90 )) cout<<" i прямокутний."; else if (( a > 90 ) or ( b > 90 ) or ( c > 90 )) cout<<" i тупокутний."; else cout<<" i гостокутний."; return 0; }
4. Інструктаж з ТБ
5. Закріплення вивченого матеріалу
Завантажити інтегроване середовище програмування CodeBlocks і для кожного з розглянутих завдань 1, 2 і 3 робити таке:
6. Підбиття підсумків уроку
Виставлення оцінок.
7. Домашнє завдання
Скласти блок-схему й написати програму для з'ясування, чи існує трикутник з даними довжинами сторін.
Скласти блок-схему й написати програму розв'язання рівняння a/x + b = 0 на множині дійсних чисел.
Текст упорядкувала Домрачева Ольга Федорівна, вчитель Київського спортивного ліцея інтерната Солом'янського району міста Києва, під час виконання випускної роботи на курсах підвищення кваліфікації з 8.09.2013 по 12.09.2013.