- •Міністерство освіти і науки україни
- •Лабораторна робота № 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»
- •Розробка функції для вирішення головної задачі
- •Обробка послідовності випадкових чисел
- •Вимоги до звіту
- •Контрольні питання
- •Рекомендована література
Приклад Створенняпроекту«циклfor»
У цій лабораторній роботі ми створимо консольний додаток, який продемонструє можливості циклу для обробки різних даних. До програми додамо такі допоміжні файли, рисунок 6.2.
Рисунок 6.2 – Допоміжні файли застосування
Файл iostream забезпечує реалізацію обміну інформацією з консоллю.
Файл cmathзабезпечує доступ до математичних функцій.
Файл windows.h дає доступ до системних утиліт windows.
Файл cmathзабезпечує доступ до функційчасу.
Головна функція проекту
Головна функція проекту має надати можливість користувачеві викликати потрібну програму з використанням циклу for.
Вигляд основного фрагменту функції main()наведено на рисунку 6.3.
Рисунок 6.3 – Основна частина функції main()
Табулювання функції
У якості прикладу розглянемо наведену нижче, на рисунку 6.4, програму табулювання функції y = a*e (-b*x) *sin(w*x). У програмі використано рекомендації пункту 6.1.4.
Результати роботи програми наведено на рисунку 6.5.
Рисунок 6.4 – Програма виведення таблиці значень функції
Рисунок 6.5 – Результати табулювання значень функції
Обробка послідовностей цілих чисел
Як приклад розглянемо таку задачу: «В послідовності цілих чисел від 1 до N потрібно виділити числа, квадрат яких дорівнює сумі квадратів інших цілих чисел».
Для вирішення цієї задачі спочатку напишемо функцію, що з’ясовує, чи можна представити квадрат одного числа, як суму квадратів інших цілих чисел. Після цього можна буде викликати цю функцію для усіх чисел із потрібного інтервалу.
Розробка допоміжної функції
Функцію, що з’ясовує, чи можна представити квадрат одного числа, як суму квадратів інших цілих чисел назвемо hasSqr.Хай вона повертає тип bool.Якщо буде знайдена пара чисел, сума квадратів яких дорівнює квадрату заданого числу, функція має повертати true,у іншому випадку має повертати false.
Самі числа, квадрати яких утворюють квадрат заданого числа, отримаємо через параметри функції, для чого ці параметри оголосимо такими, що передаються через посилання. А першим параметром функції зробимо число, що підлягає тестуванню. Таким чином прототип функції буде таким:
bool hasSqr(uint x, uint &x1, uint &x2);
Тепер можна перейти до реалізації функції. Задачу будемо вирішувати шляхом аналізу усіх комбінацій чисел х1 та х2. Перше число х1 будемо змінювати від 1 до х-1. А для кожного значення х1 будемо аналізувати значення х2 від х1 до х2-1. Перебір значень х2 починаємо від поточного значення х1 для того, щоб уникнути аналізу дзеркальних комбінацій, наприклад 3 і 5 та 5 і 3.
У тому випадку, якщо комбінація знайдена, робота функції закінчується. Тобто функція не знаходить усі можливі комбінації, а повертає першу ліпшу знайдену. Нижче наведено текст цієї функції.
bool hasSqr(uint x, uint &x1, uint &x2){ for( x1 = 1; x1 < x; x1++) { for( x2 = x1; x2 < x; x2++) if( x*x == x1*x1+x2*x2) return true; } return false; }
Розробка функції для вирішення головної задачі
Маючи функцію hasSqr() можемо перейти до вирішення головної задачі. Для цього достатньо за допомогою циклу for організувати перебір усіх чисел із заданого діапазону і викликати для кожного з них функцію hasSqr(). Якщо функція поверне true, то слід вивести на консоль значення параметрів функції. Нижче наведено текст функції для вирішення головної задачі.
void intChain(){ cout<<"Введiть число n1>1 та число n2>n1 "; uint x1, x2, a, b; cin>>x1>>x2; for(int i=x1; i<=x2; i++){ if(hasSqr(i, a, b)){ cout.width(5); cout<<i<<"^2="<<a<<"^2+"<<b<<"^2"<<"\n"; } } }
Нагадаємо, що змінні a та b отримують значення у функції hasSqr, тому що вони передаються у функцію через посилання.
Результат виконання цієї програми маємо на рисунку 6.6.
Рисунок 6.6 – Результат пошуку пар чисел, сума квадратів яких дорівнює квадрату заданого числу