Приклад виконання лабораторної роботи №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 в загальну формулу дозволяє обчислити u­­0=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

}