Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АМК_практ_зан.docx
Скачиваний:
4
Добавлен:
20.11.2019
Размер:
530.41 Кб
Скачать

Практичне заняття № 6 Розрахунок значень числових рядів Завдання

1. Розробити алгоритм розрахунку значення суми заданого ряду (таблиця )

а) із заданою кiлькiстю членiв ряду (значення ввести з клавiатури),

б) із заданою точнiстю Е (значення ввести з клавiатури).

2. Написати програму.

Таблица

Варіант

Загальний член ряду

n=0,1,2,3,...

Варіант

Загальний член ряду

n=0,1,2,3,...

1

x2n+1 /(2n+1)

16

(-1)n xn / n!

2

(-1)n x2n+1 /(2n+1)!

17

(-1)n x2n+2 /(2n+1)!

3

1/[(2n+1) x2n+1 ]

18

(-1)n x2n+1 /[(4n+3)(2n+1)!]

4

(2n+1)2 /xn

19

(x-1)n /[(n+1) xn ]

5

xn / en

20

(x-1)2n+1 /[(2n+1) (x+1)2n+1 ]

6

xn / n!

21

(xln a)n /(n)!

7

x2n /(2n)!

22

n2xn/(2n+1)!

8

x2n+1 /(2n+1)!

23

(x-1)2m+1/[(2m+1)(x+1)2m+1]

9

(-1)n x2n /(2n)!

24

x2n+1 /(2n-1)!

10

(-1)n xn+1 /(n+1)

25

(-1)n+1 x2n /(2n+1)!

11

(-1)n+1 x2n+1 /(2n+1)

26

(2n+1)2 xn /n!

12

x2n-1 / (2n-1)!

27

(-1)n+1 x2n+1 /(2n+1)!

13

(-1)n+1 1/[x2n+1 /(2n+1)]

28

(2n+1)2 xn /n!

14

x2n+1 /(2n+1)!

29

x2n-1 / [(2n-1)!n]

15

(-1)n x2n+1 /[(2n+1)(2n+1)!]

30

(-1)n+1 (xln a)n+1/(n+1)!

Приклад 1

Сума ряду S = n=1,2,3,….

(ряд ,у якого значення наступного члена обчислюється множенням значення попереднього члена на коефіцієнт ,який просто розраховується)

Поточний n – ий член ряду an = (-1)n+1 x2n-1 / (2n-1)! .

Поточний наступний (n +1)– ий член ряду an +1 = (-1)n+1+1 x2(n+1)-1 / (2n +2-1)!

an +1 = - an x2 /[ 2n(2n+1)]

Розрахунок суми ряду із заданою кількістю членів N

Алгоритм 1

1.Початок.

2.Введення з клавіатури початкових значень х , N.

3.Встановлення початкових значень суми S = x , члена ряду a =x , його порядкового номера n=1.

4.Розрахунок значення поточного члена ряду

a = - a x2 /[ 2n(2n+1)]

5.Врахування значення поточного члена ряду у сумі S = S + a .

6.Перехід до наступного члена – збільшення порядкого номера члена ряду

n = n+1 .

7.Перевірка виходу за межі ряду : якщо у межах ряду, то перехід до п.4 , інакше перейти до наступного етапу.

8.Виведення значень x, N , S.

9.Кінець.

Програма 1 (файл PRAKT4_1.CPP)

#include <iostream.h>

#include <conio.h>

int main()

{

int n, N; float x, a, S;

cout << " x = "; cin >> x;

cout << " N = "; cin >> N;

S = a = x; n = 1;

next: a = - a * x * x / ( 2 .* n * ( 2 * n + 1. ));

S = S + a;

n++;

if (n < N) goto next;

// Використання оператора циклу

/* for(n = 1; n < N; n++)

{

a = -a *x*x/(2.*n*(2* n+1.));

S = S + a;

} */

cout << " x=" << x << " N=" << N << " S= " << S;

getch(); clrscr(); return 0;

}

Приклад 2

Розрахунок суми ряду із заданою точністю.

Ряд S = 1 + 2(x/2)/1! + 5(x/2)2 /2! + …..+ (n2 +1) (x/2)n/n! + …. n=0,1,2,…

(ряд, у якого для знаходження значення наступного члена використовується тільки частина значення попереднього члена ).

Поточний n – ий член ряду an = (n2 +1)*сn , де сn = сn-1 *(x/2)/n , c0 =1 ,a0 =1,

x/2)/n - частина значення попереднього члена .

Обчислення суми завершується , коли відносний вклад у суму значення поточного члена a/S становиться меншим заданої точності Е .

Алгоритм 2

1. Початок.

2.Введення з клавіатури початкових значень х , E.

3.Встановлення початкових значень суми S = 1 , члена ряду a =1 , його порядкового номера n = 1 , а також c = 1.

4.Розрахунок значення поточного члена ряду

с = с * x / (2 * n) , a = c * ( n * n + 1 )

5.Врахування значення поточного члена ряду у сумі S = S + a .

6.Перехід до наступного члена – збільшення порядкого номера члена ряду

n = n + 1 .

7.Перевірка відносного вкладу у суму значення поточного члена a/S : якщо вклад перевищує точність , то перехід до п.4 , інакше перейти до наступного етапу.

8.Виведення значень x, Е , S.

9.Кінець.

Програма 2 (файл PRAKT4_2.CPP)

#include <iostream.h>

#include <conio.h>

#include <math.h>

int main()

{

double x, a, c, S, n, E;

cout << " x= "; cin >>x;

cout << " E= "; cin >>E;

S = a = c = n = 1;

next: c = c *x / ( 2. * n );

a = c * ( n * n +1. );

S += a;

n++; if fabs (a / S ) > E ) goto next;

/* do

{

c = c * x / ( 2. * n) ;

a = c * (n * n + 1.);

S += a;

n++;

}

while ( fabs(a / S) > E); */

cout << " x=" << x<< " E=" << E;

cout << " \n n=" << n << " a/S=" << a/S << " S= " <<S;

getch(); clrscr(); return 0;

}

Приклад 3

Ряд S = 1 +cos x /1 + cos 2x /2 + ….+cos nx /n + …, n = 1,2,3,…N-1

(ряд , значення поточного члена якого треба обчислювати окремо , без використання попередніх значень)

Алгоритм 3

1.Початок.

2.Введення з клавіатури початкових значень х , N.

3.Встановлення початкових значень суми S = 1 , члена ряду a = 1 , порядкового номера наступного члена n = 1.

4.Перевірка виходу за межі ряду : якщо у межах ряду, то продовжити розрахунки, інакше перейти до виведення результатів (п.8).

5.Розрахунок значення поточного члена ряду

a = cos (n * x) / n

6.Врахування значення поточного члена ряду у сумі S = S + a .

7.Перехід до наступного члена – збільшення порядкого номера члена ряду

n = n + 1 .

8.Повернення до п.4.

9.Виведення значень x, N , S.

10.Кінець.

Програма 3 (файл PRAKT4_3.CPP)

#include <iostream.h>

#include <conio.h>

#include <math.h>

int main()

{

double x, a, S;

int n , N;

cout << " x= "; cin >> x;

cout << " N= "; cin >> N;

S = a = n = 1;

test: if (n > N - 1) goto out;

a = cos (n * x ) / n;

S += a;

n++;

goto test;

/* while ( n < N )

{

a = cos (n*x)/n;

S += a;

n++;

} */

out: cout << " x=" << x << " N=" << N << " S= " << S;

getch(); clrscr(); return 0;

}

Примітка

У програмах циклічні процеси також реалізовані за допомогою різних операторів циклу.

Практичне заняття № 7

Розпізнавання алгоритмів не своїх програм та їх виконання вручну

Завдання

1. Отримати програму для аналізу (у додатку ).

2. Створити блок-схему програми , розпізнати алгоритм та призначення програми. Записати відповідні математичні співвідношення ( математичну модель ).

3. Виконати програму вручну та отримати правильні результати. У разі виникнення труднощів корисно використати тестування програми.

4. Усі результати фіксувати у звіті .

Додаток

(1)

#include <iostream.h>

#include <math.h

#define n 3

int x[n][n] = {1, 2, -3, 5, 0, -2, 23, 7, 4};

int main()

{

int i, j, y, z, w; y = x[0][0]; z = y;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

{

w = x[i][j];if( y < w) y = w;

if (z > w) z = w;

}

cout << y << z;

return 0;

}

(2)

#include <iostream.h>

#include <math.h>

#define n 3

int x[n][n] = {1, 3 ,-7 ,5, 8, -2, 6, 4, -3};

int main()

{

int i, j, a, b, c; a = 0; b = 0;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

{

c = x[i][j]; if(c > 0) a =a + c;

if(c < 0) b = b + c;

}

cout << a << b;

return 0;

}

(3)

#include <iostream.h>

#include <math.h>

#define n 3

int a[n][n] = {7, 3, 1, -5, 1, 2, -9, 4, -3};

int main()

{

int i, j,q, w, e; q = 1; w = 0;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

{

e = a[i][j]; if(e > 0)

{ q = q * e; w = w++ ; }

}

cout << q << w;

return 0;

}

(4)

#include <iostream.h>

#include <math.h>

#define n 3

int b[n][n] = {7, 3, 1, -5, 1, 2, -9, 4, -3};

int main()

{

int i, j, r, t, y, u; r = 0; t = 0;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

{

u = b[i][j]; y = abs(u);

if (y > r) r = y;

if (u < 0) t = t++;

}

cout << r<< t;

return 0;

}

(5)

#include <iostream.h>

#include <math.h>

#define n 3

int m[n][n] = {7, 3, 6, -5, 1, 2, -9, 4, -3};

int main()

{

int i, j, o, p, a, s; p = 1; s = 0;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

{

a = m[i][j];

if (a > 0 && a % 2 == 0 )

{ p = p * a ; s = s + 1; }

}

cout << p << s;

return 0;

}

(6)

#include <iostream.h>

#include <math.h>

#define n 3

int m[n][n] = {7, 3, 6, -5, 1, 2, -9, 4, -3};

int main()

{

int i, j, o, p, a, s; p = 1; s = 0;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

{

a = m[i][j];

if ( a > 0 && a % 2 == 0 )

{ p = p * a; s = s + 1 ; }

}

cout << p << s;

return 0;

}

(7)

#include <iostream.h>

#include <math.h>

#define n 3

int m[n][n] = 7, 3, 6,-5, 1, 2,-9, 4,-3};

int main()

{

int i, j, f, g, h; f = 0; g = 0;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

{

h = m[i][j];

if (h > 2 && h < 9 )

{ f = f + h; g++; }

}

cout << f << g ;

return 0;

}

(8)

#include <iostream.h>

#include <math.h>

#define n 3

int m[n][n]=

{-3,6,-5,1,2,-9,0,4,-3};

int main()

{ int i,j,l[n],h,g=0;

for(i=0;i<n;i++)

{l[i]=0;

for(j=0;j<n;j++)

{h=m[i][j];l[i]=l[i]+h;}

if(l[i] < 0 ) g++;}

cout<<l[0]<<" "<<l[1]<<" "<<l[2]

<<" "<<g;

return 0; }

(9)

#include <iostream.h>

#include <math.h>

#define n 3

int m[n][n] = {-3,6,-5, 1, 2,-9,0,4,-3};

int main()

{

int i, j, q[n], h, w = 0;

for(i=0;i<n;i++)

{

q[i]=1;for(j=0;j<n;j++)

{

h = m[i][j]; q[i] = q[i] * h;

}

if (q[i] < 0 ) w++;

} cout << q[0] << " " << q[1] << " " << q[2] << " " << w;

return 0;

}

(10)

#include <iostream.h>

#include <math.h>

#define n 3

int m[n][n] = {-3,6,-5,1,2,-9,0,4,-3};

int main()

{

int i, j, q[n], l, w = 0;

for(j=0;j<n;j++)

{

q[j] = 0; for(i=0;i<n;i++)

{

l = m[i][j]; q[j] = q[j] + l;

}

if (q[j] < 0 ) w++;

} cout << q[0] << " " << q[1] << " " << q[2] << " " << w;

return 0;

}

(11)

#include <iostream.h>

#include <math.h>

#define n 3

int m[n][n] = {-3, 6, -5, 1, 2, -9,0,4,-3};

int main()

{

int i, j, t[n], l, w = 0;

for(j=0;j<n;j++)

{

t[j] = 1 ; for(i=0;i<n;i++)

{

l = m[i][j]; if (l != 0 ) t[j] = t[j] * l;

}

if (t[j] > 0 ) w++;

}

cout << t[0] << " " << t[1] << " " << t[2] << " " << w;

return 0;

}

(12)

#include <iostream.h>

#include <math.h>

#define n 3

int m[n][n] = {-3,0,-5,1,2,-9,0,4,-3};

int main()

{

int i, j, t[n],l , w = 0;

for(j=0;j<n;j++)

{

t[j] = 0;

for(i=0;i<n;i++)

{

l = m[i][j]; if(l != 0 ) t[j]++;

} w = w + t[j];

} cout << t[0] << " " << t[1] << " " <<t[2] << " " << w;

return 0;

}

(13)

#include <iostream.h>

#include <math.h>

#define n 3

int x[n][n] = {-3,6, -5, 1,2, -9, 0,4,-3};

int main()

{

int i, j, q[n-1], h, w = 0;

q[0] = 0;

for(i=0;i<n;i++)

{

h = x[i][i];

q[0] = q[0] + h;

}

q[1] = 0;

for(i=0;i<n;i++)

{

h = x[i][n-i-1];

q[1] = q[1] + h;

}

w = q[0] * q[1];

cout << q[0] << " " << q[1] <<

" " << w;

return 0;

}

(14)

#include <iostream.h>

#include <math.h>

#define n 3

int m[n][n];

int main()

{

int i, j, t[n], l = 0, w = 0;

for(j=0;j<n;j++)

for(i=0;i<n;i++)

{

m[i][j] = i + j + 1;

if ( m[i][j] %2 != 0 )

w++;

if (m[i][j] % 2 == 0 )

l = l + m[i][j];

}

cout << w << " " << l;

return 0;

}

(15)

#include <iostream.h>

#include <math.h>

#define n 3

int m[n][n];

int main()

{

int i, j ,t[3*n], tmax, tmin, a, tm;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

{

m[i][j] = i + j + 1;

t[ i * n + j ] = m[i][j];

}

tmax = tmin = t[0];

for(i=1;i<3*n;i++)

{

a = t[i];

if (a > tmax) tmax = a;

if (a < tmin) tmin = a;

}

tm = ( tmax + tmin ) / 2;

cout << tmax << " " << tmin <<

" " << tm;

return 0;

}

(16)

#include <iostream.h>

#include <math.h>

#define n 3

int m[n][n] = {-3,3, -5,1,2, -9,0,4, -3};

int main()

{

int i, j , row[n], h1, w2 = 0;

for(i=0;i<n;i++)

{

row[i] = 0;

for(j=0;j<n;j++)

{

h1 = m[i][j];

if ( h1 >= 1 && h1 < 4 )

{

row[i] += h1;

w2++;

}

}

cout << row[0] << " "<< row[1] << " " << row[2] <<" " << w2;

return 0;

}

(17)

#include <iostream.h>

#include <math.h>

#define n 3

int f[n][n] = {-3, 3, -5,1,2, -1, 0,4, -3};

int main()

{

int i, j, k1 = 1, q3 = 0, m;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

{

m = f[i][j];

if (m < 0)

{

m = -m;

q3++;

k1 = k1 * m;

}

}

cout << k1 << " " << q3;

return 0;

}

(18)

#include <iostream.h>

#include <math.h>

#define n 3

int m[n][n] = {1,2,3, -1, -2, -3,9,7,3};

int main()

{

int i, j, tt[n], tmax, a, tm = 0;

for(i=0;i<n;i++)

{

tmax = m[i][0];

for(j=1;j<n;j++)

{

a = m[i][j];

if (a > tmax) tmax = a;

}

tt[i] = tmax;

tm += tmax;

}

cout << tm << " " << tt[0] << " " << tt[1] << " " << tt[2];

return 0;

}

(19)

#include <iostream.h>

#include <math.h>

#define n 3

int x[n][n] = {-3,6, -5,1,2, -9,0,4, -3};

int main()

{

int i, j, q[n], h, w = 0;

for(i=0;i<n;i++)

{

q[i] = 0;

for(j=0;j<n;j++)

{

h = x[i][j];

if (h % 2 != 0)

{

q[i] += h;

w++;

}

}

}

cout << q[0] << " " << q[1] <<

" " << q[2] << " " << w;

return 0;

}

(20)

#include <iostream.h>

#include <math.h>

#define n 3

int z[n][n] = {-3,3, -5,1,2, -1,0,4, -3};

int main()

{

int i ,j ,p1, m;

for(j=0;j<n;j++)

{

p1 = z[0][j];

for(i=1;i<n;i++)

{

m = z[i][j];

p1 = p1 + m;

}

z[0][j] = p1;

}

cout << z[0][0] << " " << z[0][1]

<< " " << z[0][2];

return 0;

}

(21)

#include <iostream.h>

#include <math.h>

#define n 3

int m[n][n] = {1,2,3, -1, -2, -3,9,7,3};

int main()

{

int i, j, a, tm, s = 0;

for(i=0;i<n;i++)

{

tm = m[i][0];

for(j=1;j<n;j++)

{

a = m[i][j];

tm *= a;

}

m[i][0] = tm;

s = s + tm;

}

cout << tm << " " << m[0][0] <<

" " << m[1][0] << " " << m[2][0]

<< " " << s;

return 0;

}

(22)

#include <iostream.h>

#include <math.h>

#define n 3

int nm[n][n] = {1,2, -3, -1, 12, 3, 9,7,1};

int main()

{

int i, j, pa, tm, imax;

for(j=0;j<n;j++)

{

tm = nm[0][j];

imax = 0;

for(i=1;i<n;i++)

{

pa = nm[i][j];

if (pa > tm )

{

tm = pa;

imax = i;

}

}

nm[imax][j] = tm;

nm[0][j] = tm;

}

cout << nm[0][0] << " " <<

nm[0][1]<< " " << nm[0][2];

return 0;

}

(23)

#include <iostream.h>

#include <math.h>

#define n 3

int nm[n][n] = {1,2, -3, -1,12,3,9,7,1};

int main()

{

int i, j, ap, tm, jmax;

for(i=0;i<n;i++)

{

tm = nm[i][0];

jmax = 0;

for(j=1;j<n;j++)

{

ap = nm[i][j];

if (ap > tm )

{

tm = ap;

jmax = j;

}

}

nm[i][jmax] = tm;

nm[i][0] = tm;

}

cout << nm[0][0] << " " << nm[1][0] << " " << nm[2][0];

return 0;

}

(24)

#include <iostream.h>

#include <math.h>

#define n 3

int nm[n][n] = {1,2, -3, -1,12,3,9,7,1};

int main()

{

int i, j, ap, tm, jmin;

for(i=0;i<n;i++)

{

tm = nm[i][0];

jmin = 0;

for(j=1;j<n;j++)

{

ap = nm[i][j];

if (ap < tm )

{

tm = ap;

jmin = j;

}

}

nm[i][jmin] = tm;

nm[i][0] = tm;

}

cout << nm[0][0] << " " << nm[1][0]<< " " << nm[2][0];

return 0;

}

(25)

#include <iostream.h>

#include <math.h>

#define n 3

int nm[n][n] = {1,2, -3, -1,12,3,9,7,1};

int main()

{

int i, j, ap, tm, jmin, s = 0;

for(i=0;i<n;i++)

{

tm = 0;

jmin = 0;

for(j=0;j<n;j++)

{

ap = nm[i][j];

if (ap > 1 && ap < 10 && ap > tm )

{

tm = ap;

jmin = j;

}

}

nm[i][jmin] = tm;

nm[i][0]= tm;

}

for(i=0;i<n;i++)

s+=nm[i][0];

cout << nm[0][0] <<

" " << nm[1][0] << " " <<

nm[2][0] << " " << s;

return 0;

}

(26)

#include <iostream.h>

#include <math.h>

#define n 3

int x[n][n];

int main()

{

int i, j , h = 0, w = 0;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

{

x[i][j] = (i + 1) * (j + 1);

if (x[i][j] == 3) w++;

if (x[i][j] %2 == 0) h++;

}

cout << x[2][2] << " " << w

<< " " << h;

return 0;

}

(27)

#include <iostream.h>

#include <math.h>

#define n 3

int z[n][n] = { -3,3, -5,1,2, -1,0,4, -3},

v[n] = {10, 12, 13};

int main()

{

int i, j , s21 = 0, s22 = 0;

for(j=0;j<n;j++)

z[1][j] = v[j];

for(i=0;i<n;i++)

{

s21 = s21 + z[i][1];

s22 = s22 + z[1][i];

}

cout << s21 << " " << s22;

return 0;

}

(28)

#include <iostream.h>

#include <math.h>

#define n 3

int z[n][n] = { -3,3, -5,1,2, -1,0,4, -3},

w[n] = { 10, -12, 3 };

int main()

{

int i, s21 = 0, p22 = 1;

for(i=0;i<n;i++)

z[i][1] = w[i];

for(i=0;i<n;i++)

{

s21 = s21 + z[1][i];

p22 = p22 * z[i][i];

}

cout << s21<< " " << p22;

return 0;

}

(29)

#include <iostream.h>

#include <math.h>

#define n 3

int u[n][n] = { -3,3, -5,1,2, -1,2,4, -3},

w[n] = {1, -2 , 3 };

int main()

{

int i, s21 = 0, p22 = 1;

for(i=0;i<n;i++)

u[i][i] = w[i];

for(i=0;i<n;i++)

{

s21 = s21 + u[0][i];

p22 = p22 * u[i][n-i-1];

}

cout << s21 << " " << p22;

return 0;

}

(30)

#include <iostream.h>

#include <math.h>

#define n 3

int v1[n] ={1,2,3 },

v2[n] = {4, 5, 6}, v3[n] = {7, 8, 9};

int main()

{

int i, x[n][n], s21 =0, p22 = 1;

for(i=0;i<n;i++)

{

x[0][i] = v1[i];

x[1][i] = v2[i];

x[2][i] = v3[i];

}

for(i=0;i<n;i++)

{

s21 = s21 + x[i][i];

p22 = p22 * x[i][n-i-1];

}

cout << s21 << " " << p22;

return 0;

}

(31)

#include <iostream.h>

#include <math.h>

#define n 3

int b1[n] = {-2 , 5, 3},

b2[n] = {1, -3, 2};

int main()

{

int i, j , b3[2*n], pm = 1, im, i5;

for(i=0;i<n;i++)

{

b3[2 * i] = b1[i];

b3[2 *i + 1] = b2[i];

}

im=0;

for(i=1;i<2*n;i++)

{

if ( b3[i] > 0 )

{

pm *= b3[i];

im++;

}

if ( b3[i] == 5) i5=i;

}

cout << i5<< " " << pm << " " << im;

return 0;

}

(32)

#include <iostream.h>

#include <math.h>

#define n 3

int x[n][n] = {-3,6, -5,1,2, -9,0,4, -3};

int main()

{

int i, j, q1[n], q2[n], h, w = 0;

for(i=0;i<n;i++)

{

q1[i] = 1;

q2[i] = 0;

for(j=0;j<n;j++)

{

h = x[i][j];

if ( h != 0)

{

q1[i] *= h;

q2[i] += h;

}

}

if ( q1[i] > q2[i] )

w++;

}

cout << q1[0] << " " << q2[0] <<" " << w;

return 0;

}