Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторная работа 6 / LR_6 / Main
.CPP#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include "methods.h"
#include <conio.h>
#include <iostream.h>
double delta;
void main()
{
clrscr();
int k;
long int s;
float x11,eps1,delta1;
double x1,eps,x;
double F(double);
cout<<"f(x) = x*x*x - 3*x - 2*e(deg(-x))\n\n";
printf("Input eps: ");
scanf("%f",&eps1);
eps = eps1;
printf("Input x1: ");
scanf("%f",&x11);
x1 = x11;
printf("Input delta: ");
scanf("%f",&delta1);
delta = delta1;
x = ITER(x1,eps,k);
printf("x=%f k=%d\n",x,k);
getch();
}
double F(double x)
{
extern double delta;
double s;
long int S;
s = x-0.199871*(x*x*x-3*x-2*exp(-x));
if( s/delta < 0 )
S = s/delta - .5;
else
S = s/delta + .5;
s = S*delta;
s = Round( s,delta );
// cout<<" {fi(x)="<<s<<"}"<<endl;
return(s);
}
double F1(double x)
{
extern double delta;
double s;
long int S;
if ((3*x*x-3+2*exp(-x))>=0) s = 1-0.199871*(3*x*x-3+2*exp(-x));
else s = -1+0.199871*(3*x*x-3+2*exp(-x));
if( s/delta < 0 )
S = s/delta - .5;
else
S = s/delta + .5;
s = S*delta;
s = Round( s,delta );
// cout<<" {fi'(x)="<<s<<"}"<<endl;
return(s);
}