Разработка программ с ветвлениями. Разработка программы для расчета сумм и произведения, страница 2

double S,numb;

Примеры работы программы:

1)

e = 1

The number of repetitions = 4

S = -1.33333

2)

e = 0.000001

The number of repetitions = 14

s = 1.87937e-07

S = -0.864665

Вывод: Вданной программе необходимо использовать тип переменных float т.к. идёт работа с очень маленькими цифрами по значению, которые требуют  больше оперативной памяти.

Задание 6

Разработать программу для решения уравнения    методом Ньютона.

Корень уравнения находится по заданному нулевому приближению  последовательными приближениями по формуле

;    где      i = 1, 2, 3, … - номер итерации.

Итерации следует прекращать, когда будет выполнено условие ; где  - заданная погрешность.

Проверить работу программы на решении уравнений                          и       .

Код программы:

1)

#include <iostream.h>

#include <conio.h>

#include <math.h>

void main()

{

// Îïèñàíèå ïåðåìåííûõ

double i;

float Xi,xi,Fx,fx,x0,m,e,r;

// Ââîä ïåðåìåííûõ

clrscr();

cout<<"e = ";

cin>>e;

cout<<"x0 = ";

cin>>x0;

cout<<endl;

// Öèêë

xi=x0;

Xi=0;

i=1;

do

{

Xi=xi-(exp(-xi)-xi)/(-xi*exp(-xi)-1);

r=(Xi-xi);

if (r<0) m = -r;

if (r>0) m = m;

xi=Xi;

++i;

}

while(m>e);

// Âûâîä ðåçóëüòàòà

cout<<"¹ "<<i<<endl;

cout<<"x = "<<Xi;

getch();

}

2)

#include <iostream.h>

#include <conio.h>

#include <math.h>

void main()

{

// Îïèñàíèå ïåðåìåííûõ

double i;

float Xi,xi,xo,Fx,fx,x0,m,e,r;

// Ââîä ïåðåìåííûõ

clrscr();

cout<<"e = ";

cin>>e;

cout<<"x0 = ";

cin>>x0;

cout<<endl;

// Öèêë

xi=x0;

Xi=0;

i=0;

do

{

Xi=xi+(cos(xi)+xi)/(sin(xi)+1);

r=(Xi-xi);

if (r<0) m = -r;

if (r>0) m = m;

xi=Xi;

++i;

}

while(m>e);

// Âûâîä ðåçóëüòàòà

cout<<"iter: "<<i<<endl;

cout<<"x = "<<Xi;

getch();

}

На входе:

float x0, e;

На выходе:

float Xi

Задание 7

Разработать программу для расчета и вывода на дисплей таблицы зависимости

   в пределах от  до  с шагом  (x и y – вещественные).

Использовать  цикл с предусловием, цикл с постусловием и цикл по вещественной переменной.

Код программы:

1)с постусловием:

#include <iostream.h>

#include <conio.h>

#include <math.h>

void main()

{

// Îïèñàíèå ïåðåìåííûõ

double i;

float Xi,xi,xo,Fx,fx,x0,m,e,r;

// Ââîä ïåðåìåííûõ

clrscr();

cout<<"e = ";

cin>>e;

cout<<"x0 = ";

cin>>x0;

cout<<endl;

// Öèêë ñ ïîñòóñëîâèåì

xi=x0;

Xi=0;

i=1;

do

{

Xi=xi+(cos(xi)+xi)/(sin(xi)+1);

r=(Xi-xi);

if (r<0) m = -r;

if (r>0) m = m;

xi=Xi;

++i;

}

while(m>e);

// Âûâîä ðåçóëüòàòà

cout<<"¹ "<<i<<endl;

cout<<"x = "<<Xi;

getch();

}

2)С предусловием

#include <iostream.h>

#include <conio.h>

#include <math.h>

void main()

{

// Îïèñàíèå ïåðåìåííûõ

double i;

float x,y,xmin,xmax,xstp;

// Ââîä ïåðåìåííûõ

clrscr();

cout<<"xmin = ";

cin>>xmin;

cout<<"xmax = ";

cin>>xmax;

cout<<"xstp = ";

cin>>xstp;

cout<<endl;

// Öèêë ñ ïðåäóñëîâèåì

x=xmin;

while (x<=xmax)

{

y=cos(x)-x;

cout<<"x:"<<x<<endl;

cout<<"y:"<<y<<endl<<endl;

x=x+xstp;

}

getch();

}

3) По вещественной переменной

#include <iostream.h>

#include <conio.h>

#include <math.h>

void main()

{

// Îïèñàíèå ïåðåìåííûõ

double i;

float x,y,xmin,xmax,xstp;

// Ââîä ïåðåìåííûõ

clrscr();

cout<<"xmin = ";

cin>>xmin;

cout<<"xmax = ";

cin>>xmax;

cout<<"xstp = ";

cin>>xstp;

cout<<endl;

// Öèêë ïî âåùåñòåííîé ïåðåìåííîé

for (i=xmin; i<=xmax; i=i+xstp)

{

y=cos(i)-i;

cout<<"x:"<<i<<endl;

cout<<"y:"<<y<<endl<<endl;

}

getch();

}

На входе:

float xmin, xmax, xstp;

На выходе:

Float y;

Выводится много раз

Пример работы программы:

x:0

y:1

x:0.1

y:0.895004

x:0.2

y:0.780067

x:0.3

y:0.655336

x:0.4

y:0.521061

x:0.5

y:0.377583

x:0.6

y:0.225336

x:0.7

y:0.0648422

x:0.8

y:-0.103293

x:0.9

y:-0.27839