.


:




:

































 

 

 

 


. //1. yi=yi-1 + yi-3^2, i=3,4,n,




 

//1. yi=yi-1 + yi-3^2, i=3,4,...n,

// n yn, y0, y1, y2.

//2. {an} :

// a1=0.5; an=n*(an-1+0.5).

// (1+1/a1)*...*(1+1/an).

// |1/an| < eps.

#include<iostream.h>

#include<math.h>

#include<conio.h>

#include<stdlib.h>

#include<limits.h>

 

int recur1(int n, int y0, int y1, int y2);

int recur2(int n, int y0, int y1, int y2);

int recur3(int n, int y0, int y1, int y2);

float predel1(float eps);

float predel2(float eps);

float predel3(float eps);

 

int main()

{int var, n;

int re1, re2, re3; //

float rez1, rez2, rez3; //

float eps; //

float y0, y1, y2; //

clrscr();

for(;;)

{

//

cout << " :\n";

cout << " 1 - \n";

cout << " 2 - \n";

cout << " 3 - \n";

cout << " -> ";

cin >> var;

switch(var)

{case 1:

//

cout << " n -> ";

cin >> n;

cout << " y0, y1, y2 -> ";

cin >> y0 >> y1 >> y2;

re1 = recur1(n, y0, y1, y2);

re2 = recur2(n, y0, y1, y2);

re3 = recur3(n, y0, y1, y2);

//

cout << " WHILE = " << re1 << endl;

cout << " DO..WHILE = " << re2 << endl;

cout << " FOR = " << re3 << endl;

break;

case 2:

//

cout << " -> ";

cin >> eps;

rez1 = predel1(eps);

rez2 = predel2(eps);

rez3 = predel3(eps);

//

cout.precision(4);// .

cout << " WHILE =" << rez1 << endl;

cout.precision(4);

cout << " DO..WHILE =" << rez2 << endl;

cout.precision(4);

cout << " FOR =" << rez3 << endl;

break;

default: return 0;

}//switch

}//for

}

 

// while

int recur1(int n, int y0, int y1, int y2)

{int i = 3, y;

while(i <= n)

{y = y2 + y0 * y0;

y0 = y1;

y1 = y2;

y2 = y;

i++;

}

return y;

}

 

// do..while

int recur2(int n, int y0, int y1, int y2)

{int i = 3, y;

do

{y = y2 + y0 * y0;

y0 = y1;

y1 = y2;

y2 = y;

i++;

}

while(i <= n);

return y;

}

 

// for

int recur3(int n, int y0, int y1, int y2)

{int i, y;

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

{y = y2 + y0 * y0;

y0 = y1;

y1 = y2;

y2 = y;

}

return y;

}

 

// while

float predel1(float eps)

{float pr = 1, an =.5;

int n = 1;

while(fabs(1 / an) > eps)

{pr *= (1 + 1 / an);

n++;

an = n * (an +.5);

}

return pr;

}

 

// do..while

float predel2(float eps)

{float an =.5, pr = 1;

int n = 1;

do

{pr *= (1 + 1 / an);

n++;

an = n * (an +.5);

}

while (fabs(1 / an) > eps);

return pr;

}

 

// for

float predel3(float eps)

{float an =.5, pr = 1 + 1 / an;

for(int n = 2; n < INT_MAX; n++)

{an = n * (an +.5);

if(fabs(1 / an) > eps) pr *= (1 + 1 / an);

else break;

}

return pr;

}

 






:


: 2015-09-20; !; : 434 |


:

:

, , .
==> ...

1719 - | 1422 -


© 2015-2024 lektsii.org - -

: 0.014 .