Приклад виконання лабораторної роботи №1
Завдання до лабораторної роботи №1
1. Вивчити правила використання основних операторів мови С++ на прикладі програми, розглянутої в прикладі виконання лабораторної роботи №1. Перевірити та пояснити роботу наведеного прикладу.
2. Модифікувати наведений в прикладі виконання лабораторної роботи №1 код програми з метою зменшення зайнятої під змінні оперативної пам’яті.
3. |задачі|Написати програму, що дозволяє залежно від введеного|запровадженого| значення параметра Pr (наприклад, 1, 2, 3) виконати одну з наступних|слідуючих| дій:
1. Обчислити|обчисляти,вичислити| n - ий| елемент заданого арифметичного ряду|лави,низки|.
2. Обчислити|обчисляти,вичислити| суму n перших елементів заданого ряду|лави,низки|.
3. Обчислити|обчисляти,вичислити| значення суми арифметичного ряду з|із| точністю Eps .
Якщо необхідно, то обчислення|підрахунки| вести за рекурентною| формулою: u n+1 = f ( u,n). У програмі використовувати можливості|спроможності| операторів if - else або switch, while або do – while, for. Передбачити можливість|спроможність| багатократного|багаторазового| виконання обчислень|підрахунків|.
Приклад виконання лабораторної роботи №1
1. Приклад використання рекурентної формули un+1 = f(u,n) для послідовного обчислення елементів ряду . Знайдемо в загальному вигляді відношення наступного та поточного елементів ряду
Тоді наступний елемент заданого ряду може бути представлено через попередній:
Отримана залежність може бути використана для обчислення будь-якого елементу ряду за умов визначення нульового елементу. Підстановка значення k=0 в загальну формулу дозволяє обчислити u0=z, де z задається окремо.
2. Приклад визначення n-ого елементу заданого ряду за допомогою оператора for.
float z,u;
int k,n;
cin<<z<<n; // завдання z та n
u=z; //початковий елемент ряду дорівнює z
for (k=0; k<n; k++)
u*= -z*z/((2*k+2)*(2*k+3)); // визначення наступного елементу
cout<<”\n”<<n<<”-ий елемент ряду = “<<u;
3. Приклад визначення суми перших n елементів заданого ряду за допомогою оператора for.
float z,u,S;
int k,n;
cin<<z<<n;
u=z; //
S=0; //
for (k=0; k<n; k++) { S+=u; //накопичення суми
u*= -z*z/((2*k+2)*(2*k+3));
//обчислення наступного елемента
}
cout<<”\nсума перших “<<n<<” елементів дорівнює ”<<S;
4. Приклад визначення суми елементів заданого ряду з заданою точністю eps за допомогою оператора while.
float z, u, S, eps;
int k;
cin<<z<<eps;
u=z;
S=0; k=0;
while(fabs(u)>=eps) //послідовно обчислювати елементи ряду, поки вони //не менші за задану точність eps
{S+=u; // накопичення суми
u*= -z*z/((2*k+2)*(2*k+3)); // обчислення наступного елемента
k++; //номер поточного елементу збільшити на одиницю
}
cout<<”\nсума елементів з точністю“<<eps<<” дорівнює ”<<S;
5. Приклад повного коду програми, яка дозволяє реалізувати усі пункти завадання для арифметичного ряду .
#include <iostream.h> //підключення бібліотеки вводу - виводу
#include <math.h> //підключення бібліотеки математичних функцій
void main()
{char Pr; //змінна використовуються для вибору номера пункту
do //оператор do – while використовується для реалізації багаторазового
//виконання пунктів меню
{ cout<<”\nВведіть номер пункту: ”;
cout<<”\n1 - Обчислити| n - ий| елемент заданого арифметичного ряду ”;
cout<<”\n2 - Обчислити суму n перших елементів заданого ряду”;
cout<<”\n3 -Обчислити значення суми арифметичного ряду з точністю Eps”;
cout<<”\n4 - Вихід\n”;
cin>>Pr;
switch(Pr)
{ case ‘1’: //визначення n–ого елементу
{ float z,u;
int k,n;
cin>>z>>n;
u=z;
for (k=0; k<n; k++)
u*= -z*z/((2*k+2)*(2*k+3));
cout<<”\n”<<n<<”-ий елемент ряду = “<<u;}
break;
case ‘2’: //визначення суми n елементів
{ float z, u, S;
int k, n;
cin>>z>>n;
u=z;
S=0;
for (k=0; k<n; k++)
{ S+=u;
u*=-z*z/((2*k+2)*(2*k+3));
}
cout<<”\nCума перших “<<n<<”елементів дорівнює ”<<S; }
break;
case ‘3’: //визначення суми елементів з заданою точністю eps
{ float z, u, S, eps;
int k;
cin>>z>>eps;
u=z;
S=0; k=0;
while(fabs(u)>=eps) //
{ S+=u; // накопичення суми
u*= -z*z/((2*k+2)*(2*k+3));
k++;
}
cout<<”\nCума елементів з точністю“<<eps<<”дорівнює” <<S;
cout<<”\nПеревірка отриманої суми:”
<<“\nЗначення функції розкладення в точці “<<z << “ дорівнює “ << sin(Z);}
break;
case ‘4’: break;
default: cout<<”\nНевірне значення. Задайте значення від 1 до 4 ”;
}
}
while(Pr!=’4’); //продовжувати цикл, поки значення заданого признаку не //дорівнюватиме 4
}