- •Міністерство освіти і науки україни
- •Лабораторна робота № 1. Знайомство з інтегрованим середовищем розробки (іср) “qt-creator”
- •Короткі відомості про іср “qt-creator”
- •Головне меню середовища
- •Панель режимів робіт
- •Панель доступу до результатів опрацювання проекту
- •Створення проекту
- •Панель редагування програм
- •Автоматичне вирівнювання тексту програми
- •Коментарі дотексту програми
- •Повернення у режим редагування
- •Функція main()
- •Ще один приклад простої програми
- •Збереження проекту
- •Етапи виконання програми
- •Типи даних
- •Арифметичні типи даних
- •Основні арифметичні типи
- •Модифіковані арифметичні типи
- •Граничні значення даних цілочислових типів даних
- •Переліки
- •Цілочислові константи
- •Символьні константи
- •Константи дійсних типів
- •Описи змінних
- •Макроконстанти
- •Операція розміру sizeof
- •Арифметичні операції
- •Операції присвоєння Проста операція присвоєння
- •Комбіновані присвоєння
- •Унарні присвоєння
- •Узгодження типів
- •Арифметичні перетворення
- •Перетворення типів в операціях присвоєння
- •Явне перетворення типів
- •Бібліотека математичних функцій cmath
- •Використання об’єкту cin для введення даних
- •Форматування арифметичних даних під час виведення
- •Зміна кольорів консолі та керування курсором
- •Завдання на лабораторну роботу
- •Правила написання функцій
- •Виклик функції
- •Прототип функції
- •Прототипи бібліотечних функцій
- •Способи передачі параметрів у функції
- •Передача параметрів за значенням
- •Передача параметрів через посилання
- •Області оголошення та доступу до імен
- •Глобальні та локальні змінні
- •Глобальна чи локальна змінна?
- •Специфікатор statsc
- •Макроси з параметрами
- •Реализація проекту «function»
- •Підключення допоміжних файлів
- •Створення макросу з параметрами
- •Створення прототипів функцій
- •Функція main() програмного файлу
- •Функція f1(), що повертає значення
- •Операції над даними логічного типу
- •Логічні вирази
- •Алгоритми з розгалуженнями
- •Програмування розгалужень Оператор розгалуження if…else
- •Умовна операція
- •Оператор виборуswith
- •Оператор переходу goto
- •Функція main() програмного файлу
- •Рекомендована література
- •Лабораторна робота № 5. Побудова циклів з операторми „while” і „do...While”
- •Короткі теоретичні відомості
- •Циклічні алгоритми
- •Оператор while
- •Оператор do…while
- •Переривання циклу
- •Ітераційні алгоритми
- •Приклад ітераційного алгоритму для обчислення кубічного кореня
- •Алгоритми обчислення сум нескінченних рядів
- •Створення проекту «while_do»
- •Початковий інтерфейс проекту
- •Допоміжні файли
- •Прототипи функцій
- •Функція main() програмного файлу
- •Функція обробки номеру варіанта
- •Функції для обчислення кубічного кореня
- •Функції для обчислення синуса
- •Особливості використання циклу for
- •Випадкові числа
- •Табулювання функцій
- •Завдання на лабораторну роботу
- •Приклад Створенняпроекту«циклfor»
- •Розробка функції для вирішення головної задачі
- •Обробка послідовності випадкових чисел
- •Вимоги до звіту
- •Контрольні питання
- •Рекомендована література
Приклад ітераційного алгоритму для обчислення кубічного кореня
Прикладом ітераційного алгоритму може служити алгоритм обчислення кубічного кореня методом Ньютона, який полягає у послідовному обчисленні наближених значень кореня за формулою 5.1.
(5.1)
де а – число, з якого добувається корінь, xold – попереднє наближене значення кореня, xnew – наступне, більш точне, ніж xold значення кореня.
Таким чином, формула 5.1 дозволяє послідовно уточнювати значення кореня, використовуючи попередній результат. В якості початкового значення для x можна взяти число, з якого добувається корінь.
Зазвичай обчислення проводяться доти, поки різниця між двома послідовними наближеннями за модулем не стане менше деякого, наперед заданого, достатньо малого числа.
В алгоритмі передбачено переривання циклу за допомогою оператора break в тому випадку, якщо змінна Xold дорівнює нулю, для того, щоб виключити ділення на 0.
Схему алгоритму, що реалізує цей метод, наведено на рисунку 5.5.Для реалізації цього алгоритму використовується цикл do…while.
Алгоритми обчислення сум нескінченних рядів
У цих алгоритмах послідовно підсумовуються члени нескінченного ряду. Накопичення суми має сенс тільки у тому випадку, якщо ряд сходиться, тобто значення членів ряду поступово зменшуються. Накопичення суми проводять доти, поки черговий член ряду не стане менше деякого, наперед заданого, достатньо малого числа. Подібність таких алгоритмів з попереднім полягає в тому, що обчислення кожного наступного члена ряду проводиться за значенням попереднього.
Рисунок 5.5 – Схема алгоритму знаходження кубічного кореня
Вякості прикладу обчислення суми ряду розглянемоалгоритм обчисленнясинусадеякого числа.Синус можна представити як суму нескінченного ряду 5.2.
(5.2)
Особливість даного ряду полягає в тому, що кожен член ряду, починаючи з другого, може бути знайдений з попереднього за формулою5.3.
(5.3)
Алгоритм обчислення синуса за формулою 5.2 з використанням співвідношення 5.3 представлений на рисунку 5.6.
Слід мати на увазі, що ряд 5.2 при великих значеннях х сходиться повільно, а факторіал і «х в ступені» ростуть дуже швидко. Це призводить до того, що значущі цифри цих чисел перестають міститися в розрядній сітці і, отже, обрізаються, внаслідок чого результат спотворюється.
Для усунення цього недоліку в розглянутий алгоритм перед основним циклом накопичення суми ряду варто було б додати додатковий цикл. У цьому циклі змінна х повинна зменшуватися кожен раз на величину періоду синуса, який дорівнює 2π. Цикл працює доти, поки х не стане менше, ніж 2π.
Рисунок 5.6 – Алгоритм обчислення синуса
Таблиця 5.2 Завдання на обчислення сум нескінченних рядів | |||
№ |
Функція |
Ряд |
Рекурентна формула |
1 |
2 |
3 |
4 |
0 |
e | ||
1 |
|
, для х<1 | |
2 |
, для х<1 | ||
3 |
, для х<1 | ||
| |||
Продовження таблиці 5.2 | |||
1 |
2 |
3 |
4 |
4 |
, для х>1 | ||
|
|
|
|
5 |
cos(x) |
, для х<π | |
6 |
sh(x) |
для х<1 | |
7 |
arctg(x) |
для х<1 | |
8 |
ln(1+x) |
, для х<1 | |
9 |
, для х<π |