Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Пример программы. //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; Мы поможем в написании ваших работ!; просмотров: 445 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Ваше время ограничено, не тратьте его, живя чужой жизнью © Стив Джобс
==> читать все изречения...

2245 - | 2190 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.