Лабораторна робота №2.
Тема: Лінійні програми.
Мета: Отримати практичні навички написання лінійних програм із використанням математичних функцій.
Приклад виконанна програми:
До страхової компанії було зроблено внесок у сумі А грн. як ренту. Річні відсоткові нарахування складають R% і виплати будуть тривати N років. Яка сума Р буде сплачуватися щороку?
Як відомо, розрахунок суми щорічних виплат проводиться за формулою:
Він може бути зроблений за допомогою програми мовою С++, текст якої та приклад виконання наводяться нижче:
_________________________________________________________
/* renta.cpp Програма розрахунку виплат ренти */
#include <iostream.h> //C1
#include <math.h> //C2
void main() //C3
{ float A,R,i,P; //C4
int N;
cout << "Введіть початковий внесок та щорічний відсоток: ";
cin >> A >> R;
cout << "Скільки років повинна сплачуватися рента? "; //C5
cin >> N; //C6
i = R/100; //C7
P = A*i/(1-pow(1+i,-N)); //C8
cout << "Щорічні виплати складають " << P << " грн.\n"; //C9
}
Введіть початковий внесок та щорічний відсоток: 1000 16
Скільки років повинна сплачуватися рента? 15
Щорічні виплати складають 179.36 грн.
_________________________________________________________
Розглянемо тепер текст цієї програми. В першому рядку знаходиться коментар. С++ підтримує два види коментарів. Один використовує пари знаків /* та */ і може міститися на одному або декількох рядках. Саме такий коментар використовуються в першому рядку і він оголошує назву програми. Другий вид використовує пару знаків //, щоб позначити початок коментарю, який закінчується в кінці рядка. В цій програмі ми його використовуємо неодноразово, щоб виділити рядки, що потребують особливої уваги. Далі ми обговоримо нові конструкції мови С++.
С1 - Мова С++ є дуже компактною, тому багато операторів, функцій, конструкцій тощо не включено до списку базових конструкцій, а можуть підключатися за допомогою бібліотек. Таке підключення відбувається за допомогою вказівки препроцесору #include <...>, де в кутових дужках вказується ім’я файла-заголовку (Header file). В даному випадку підключається файл iostream.h, який дозволяє використовувати зручні операції введення та виведення інформації cin та cout.
С2 - Підключення бібліотеки math.h дозволяє користуватися широким списком математичних функцій, деякі з них наведено в таблиці
Математична функція |
Запис мовою С++ |
Математична функція |
Запис мовою С++ |
|x| |
abs(x), fabs(x) |
arctgx |
atan(x) |
Sinx |
sin(x) |
ex |
exp(x) |
Cosx |
cos(x) |
lnx |
log(x) |
Tgx |
tan(x) |
ab |
pow(a,b) |
arcsinx |
asin(x) |
10x |
pow10(x) |
arccosx |
acos(x) |
sqrt(x) |
C3 - програма мовою С++ складається з однієї або кількох функцій, але серед них обов’язково повинна бути одна і тільки одна функція main(), яка вказує на вхід до виконання програми. /В програмах, що створюються для середовища Windows замість неї використовуються функції WinMain() або OwlMain()/. Слово void перед нею вказує, що ця функція не повертає жодного значення. «Тіло» функції, тобто інструкції, що включаються до неї беруться в фігурні дужки {}.
C4 - інформація, що обробляється в програмі, зберігається в величинах - змінних або константах. Кожна величина має своє ім’я (ідентифікатор), тип та значення. Перед використанням ми повинні оголосити всі величини в операторі оголошення. В даному і наступному рядках ми зустрічаємось з оголошенням величин. Ім’я може складатися з латинських літер, цифр або символу підкреслення «_», який має ті ж самі права, що й літера, але ідентифікатор починається обов’язково з літери. На відміну від багатьох інших мов програмування в С++ розрізняються маленькі та великі літери, тому, напр. Name_1, NAME_1 та name_1 є іменами різних величин. Величини також мають свій тип. Так, в наведеній задачі кількість років може приймати тільки ціле значення, тому ця величина має цілий тип - int (є ще long), а інші величини не обов’язково приймають ціле значення, тому вони оголошені, як float(також існує double). Також відзначимо, що після кожного оператору ставиться символ «;» - крапка з комою.
С5, С6 - В багатьох програмах присутні початкові дані, причому програма повинна проводити розрахунки з різними початковими данними, які вводить користувач програми. В цій програмі процес введення даних проходить в два етапи: спочатку за допомогою об’єкта cout на екран виводиться запрошення "Введіть початковий внесок та щорічний відсоток: " ввести деякі величини, а потім об’єкт cin очікує введення з клавіатури значень величин A та R. При виведенні перед кожним елементом ставиться пара символів <<, а при введенні >>. Аналогічно вводиться кількість років в двох наступних рядках.
С7 - В цьому рядку ми вперше зустрічаємось з оператором присвоювання. Він обраховує значення виразу, що стоїть справа від знаку рівності і отримане значення заносить до змінної, ім’я якої стоїть зліва. В виразі ми можемо використовувати константи, імена змінних, знаки арифметичних операторів(+ - * /), круглі дужки, функції та деякі інші оператори.
С8 - Цей оператор присвоювання відрізняється від попереднього тим, що в ньому використовується функція pow( , ), опис якої знаходиться в файлі math.h.
C9 - В цьому рядку за допомогою об’єкта cout на екран виводиться одразу кілька елементів: дві текстові константи - "Щорічні виплати складають " та "грн.\n", а також значення змінної Р. Символ \n в другій константі вказує на те, що після виведення повідомлення курсор повинен перейти до наступного рядка екрана дисплея.