- •Міністерство освіти і науки україни
- •Розділ 1. Арифметичні основи обчислювальних машин
- •1.1. Позиційні системи числення. Переведення числа з однієї системи числення в іншу
- •1.2. Форма представлення чисел. Кодування чисел
- •1.3. Арифметичні операції над двійковими числами. Машинні одиниці інформації
- •Контрольні питання
- •Завдання
- •Розділ 2. Основи алгоритмізації обчислювальних процесів
- •2.1. Поняття і властивості алгоритму
- •2.2. Засоби представлення алгоритмів
- •2.3. Типи алгоритмічних процесів. Приклади
- •Контрольні питання
- •Завдання
- •3.1. Загальна характеристика програми
- •3.3. Кроки для створення та виконання програми
- •3.4. Змінні та константи
- •3.5. Директиви препроцесора
- •Контрольні питання
- •Розділ 4. Введення-виведення даних
- •4.1. Об’єкт виведення даних cout
- •4.2. Функція виведення даних printf
- •4.3. Об’єкт введення даних cin
- •4.4. Функція введення даних scanf
- •Контрольні питання
- •5.2. Операції відношення
- •5.3. Логічні операції
- •5.4. Додаткові операції
- •5.5. Порозрядні операції
- •Контрольні питання
- •Завдання Лінійний обчислювальний процес
- •1. Визначити значення функції y
- •2. Геометричні завдання
- •Розгалужений обчислювальний процес
- •1. Визначити значення функції y
- •3. Перевірити, чи міститься точка з заданими координатами усередині заштрихованої області.
- •Розділ 6. Організація циклів
- •6.1. Організація арифметичних циклів з використанням оператору for
- •6.2. Організація ітераційних циклів з передумовою while та післяумовою do...While
- •6.3. Оператори switch та goto
- •Контрольні питання
- •Завдання Арифметичний цикл
- •Вкладені цикли
- •Ітераційний цикл
- •Суміщення розгалуженого та циклічного процесів
- •Розділ 7. Зовнішні пристрої та символьне введення/виведення. Рядкові, числові функції та функції роботи з датою та часом
- •7.1. Загальна концепція та функції символьного введення-виведення
- •7.2. Символьні функції
- •7.3. Рядкові функції
- •7.4. Числові функції
- •7.5. Функції роботи з датою та часом
- •Контрольні питання
- •Завдання
- •Розділ 8. Вказівки, посилання та масиви
- •8.1. Вказівки
- •8.2. Посилання
- •8.3. Одновимірні масиви
- •8.4. Багатовимірні масиви
- •8.5. Символьні масиви
- •Контрольні питання
- •Завдання Одновимірні масиви
- •Двовимірні масиви
- •Розділ 9. Робота з функціями
- •9.1. Засоби створення функцій
- •9.2. Видимість змінних
- •9.3. Параметри функції та передача значень
- •9.4. Передача масивів в якості параметрів функцій
- •9.5. Функції та вказівки
- •9.6. Перевантаження та шаблони функцій
- •Контрольні питання
- •Завдання
- •Розділ 10. Рекурсивне програмування
- •10.1. Основні поняття рекурсії. Визначення факторіалу числа
- •10.2. Приклади рекурсій
- •Контрольні питання
- •Розділ 11. Робота з файлами
- •11.1. Робота з текстовими та бінарними файлами
- •Можливі режими доступу
- •11.2. Довільний доступ у файлах
- •11.3. Файли потокового введення/виведення з використанням структури file.
- •Контрольні питання
- •Завдання
- •Розділ 12. Структури
- •12.1. Загальна характеристика структури
- •12.2. Масиви структур
- •12.3. Використання масивів, як елементів структур
- •3. Робота зі структурами є універсальною, передбачено додавання записів до файлу (флаг ios:app). Для підрахунку кількості структур на диску приведемо наступні рядки програми:
- •Контрольні питання
- •Завдання
- •Розділ 13. Об’єднання та інші типи даних. Обробка виключних ситуацій
- •13.1. Об’єднання
- •13.2. Перелічені типи даних (enum)
- •13.3. Бітові поля
- •13.4. Обробка виключних ситуацій
- •Контрольні питання
- •Розділ 14. Динамічні структури даних
- •14.1. Стек
- •14.2. Черга
- •14.3. Лінійний список
- •Контрольні питання
- •Завдання
- •Розділ 15. Типові методи сортування масивів
- •15.1. Бульбашкове сортування (bubble sort)
- •15.2. Сортування за допомогою вибору (choice sort)
- •15.3. Сортування вставками (insert sort)
- •15.4. Сортування Шелла
- •15.5. Швидке сортування (quick sort)
- •Контрольні питання
- •Завдання
- •Розділ 16. Чисельне диференціювання та інтегрування
- •16.1. Методи правих та центральних різниць чисельного диференціювання
- •16.2. Методи прямокутників, трапецій, Сімпсона (парабол) чисельного інтегрування
- •Контрольні питання
- •Завдання Чисельне диференціювання
- •Чисельне інтегрування
- •Розділ 17. Чисельні методи розв’язання алгебраїчних рівнянь
- •17.1. Метод половинного ділення (дихотомія)
- •17.2. Метод Ньютона (метод дотичних)
- •17.3. Метод Рибакова
- •Контрольні питання
- •Завдання
- •Розділ 18. Чисельні методи розв’язання системи лінійних алгебраїчних рівнянь
- •18.1. Визначник. Дії над матрицями. Обчислення оберненої матриці
- •18.2. Метод оберненої матриці.
- •18.3. Метод Крамера
- •18.4. Метод Гауса
- •Контрольні питання
- •Завдання
- •1. Розв’язати систему алгебраїчних рівнянь.
- •2. Обчислити добуток матриць.
- •3. Розв’язати матричні рівняння.
- •Список літератури
6.2. Організація ітераційних циклів з передумовою while та післяумовою do...While
Синтаксис циклу з передумовою while:
while ( <вираз>)
{
блок із 1-го або більш операторів
}
while працює доти, поки вираз не буде дорівнює 0 (false). Якщо блок складається з 1-го оператора, фігурні дужки можна не ставити.
Приклад 1. Програма запитує в користувача, продовжувати роботу по натиснутій клавіші або ні. При введенні символів 'y', 'Y', 'n', 'N' – відбувається вихід з циклу, інакше на екран виводиться відповідне повідомлення.
#include <iostream>
using namespace std;
void main()
{
char ans;
cout << "Продовжити (Y/N)?";
cin >> ans;
while((ans!='Y')&&(ans!='y')&&(ans!='N')
&&(ans!='n'))
{
cout << "\nНе правильно натиснута клавіша\n";
cout << "Продовжити (Y/N)?";
cin >> ans;
}
}
Приклад 2. Підрахувати кількість символів у слові.
#include <iostream>
using namespace std;
void main()
{
char name[15];
int count = 0;
cin >> name;
while (name[count] != 0)
count++;
cout << count;
}
Цикл може бути організований як цикл з післяумовою do … while
Синтаксис:
do
{
блок з одного або більш операторів;
}
while ( <вираз> );
Цикл має мінімум одну ітерацію. Цикл продовжується доти, поки вираз істинний, тобто не дорівнює 0 (false). Якщо блок складається з одного оператора, фігурні дужки можна не ставити.
Приклад, аналогічний прикладу 1:
#include <iostream>
using namespace std;
void main()
{
char ans;
do
{
cout <<"\nБудете продовжувати введення ( Y/N )?";
cin >> ans;
}
while ((ans!='Y')&&(ans!='y')&&(ans!='N')
&&(ans!='n'));
}
У С++ передбачена можливість дострокового виходу з програми до її нормального завершення за допомогою функції exit().
Синтаксис:
exit(status) - передається значення операційній системі через оточення errorlevel – може перевірятися в командних файлах.
Як і в арифметичному циклі for, в циклах while, do…while мають місце оператор break для виходу з циклу та оператор continue для повернення на початок циклу.
6.3. Оператори switch та goto
Оператор switch замінює короткий оператор, що розгалужується if… else
Синтаксис:
switch ( вираз )
{
case <конст_вираз 1>:
блок операторів С++;
case <конст_вираз 2>:
блок операторів С++;
...
case < конст_вираз n>:
блок операторів С++;
[default:
блок операторів С++;]
}
Після обчислення виразу в заголовку оператора, його результат послідовно порівнюється з константами-вираженнями <конст_вираз 1> ... <конст_вираз n> починаючи із самого верхнього, поки не буде встановлена їхня відповідність. Тоді виконуються оператори усередині відповідного case, і після цього управління переходить на такий константний вираз без перевірок. Саме тому наприкінці кожної послідовності операторів повинен бути присутнім оператор break, що забезпечує вихід з оператора switch. Гілка, яка має назву default (по умовчанню) може бути відсутня. Якщо вона є, то послідовність операторів, що знаходиться за словом default, виконується тільки тоді, коли порівняння з жодної зі стоячих вище константних виразів не є істинним.
Приклад:
switch (t)
{
case 1:
cout << "\nПовідомлення 1"; break;
case 2:
cout << "\nПовідомлення 2"; break;
// ...
default:
cout << "\nЗрадливий код";
}
Якщо break не ставиться наприкінці блока операторів, і ми потрапляємо за умовою в блок, то здійснюється «провал донизу».
Приклад:
switch (num)
{
case 1:
cout << "1";
case 2:
cout << "22";
case 3:
cout << "333";
}
Якщо num дорівнює 1, то результат буде:
122333
Без використання оператору break можуть бути оригінальні рішення.
Приклад:
switch (num)
{
case 1:
case 2:
case 3:
cout << "Номер від 1 до 3";
break;
case 4:
cout << "Номер 4";
break;
default:
cout << "Помилковий номер";
}
У загальному випадку <виразом> може бути будь-який вираз, константа або цілочисельна змінна. Константи-вираження – це константи цілочисельного типу.
Оператор switch зручно використовувати при реалізації меню.
Особливістю роботи з оператором switch є те, що в середині окремого блоку case не можна оголошувати змінні без використання фігурних дужок { }. Фігурні дужки визначають область видимості та існування окремої змінної. Тобто, для оголошення та використання змінної у блоці case необхідно взяти його у фігурні дужки.
Приклад обчислення функції аргументу x від заданого типу t:
#include <iostream>
using namespace std;
void main()
{
int t;
double x;
cout<<"Введіть значення аргументу x ";
cin>>x;
cout<<"Введіть значення типу функції 1 або 2 ";
cin>>t;
switch (t)
{
case 1:
{
double y = x*x;
cout << "\ny = " <<y;
break;
}
case 2:
{
double y = x*x*x;
cout << "\ny = " <<y;
break;
}
default:
cout << "\nНевірно заданий тип функції";
}
}
Оператор goto рідко зустрічається, краще цим оператором не користуватися.
Приклад використання:
goto tt; // Перехід на мітку tt.
c= 12;
...
tt: ...
