Скачиваний:
16
Добавлен:
01.05.2014
Размер:
1.75 Кб
Скачать
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream.h>

extern double F(double);

double HORDA(double Left,double Right,double Eps,int &N)
{
  double FLeft = F(Left);
  double FRight = F(Right);
  double X,Y;

  if (FLeft*FRight>0.0) {puts("ЌҐўҐа­®Ґ § ¤ ­ЁҐ Ё­вҐаў « \n");exit(1);}
  if (Eps<=0.0) {puts("ЌҐўҐа­®Ґ § ¤ ­ЁҐ в®з­®бвЁ\n");exit(1);}

  N=0;
  if (FLeft==0.0)  return Left;
  if (FRight==0.0) return Right;

  do
  {
	X = Left-(Right-Left)*FLeft/(FRight-FLeft);
	Y = F(X);
	if (Y == 0.0) return (X);
	if (Y*FLeft < 0.0)
	 { Right=X; FRight=Y; }
	else
	 { Left=X; FLeft=Y; }
	N++;
  }
  while ( fabs(Y) >= Eps );

  return(X);

}

//------------------------------------------------------------------------
double Round (double X,double Delta)
{
 if (Delta<=1E-9) {puts("ЌҐўҐа­®Ґ § ¤ ­ЁҐ в®з­®бвЁ ®ЄагЈ«Ґ­Ёп\n");exit(1);}
 if (X>0.0) return (Delta*(long((X/Delta)+0.5)));
    else    return (Delta*(long((X/Delta)-0.5)));
}
//-------------------------------------------------------------------------
//-------------------------- End of module --------------------------------
double c, d;

double F(double x)
{
	double tmp;
	tmp=tan(x);
	return tmp-(1/x);
}
//------------------------------------------------------------------------
void main()
{
	double delta, left, right,eps;
	cout<<"\n‚ўҐ¤ЁвҐ «Ґўго Ја ­Ёжг: ";
	cin>>left;
	cout<<"\n‚ўҐ¤ЁвҐ Їа ўго Ја ­Ёжг: ";
	cin>>right;
	cout<<"\n‚ўҐ¤ЁвҐ Є®нддЁжЁҐ­в в®з­®бвЁ ўлзЁб«Ґ­Ё©: ";
	cin>>eps;
	cout<<"\n‚ўҐ¤ЁвҐ Є®нддЁжЁҐ­в в®з­®бвЁ ®ЄагЈ«Ґ­Ёп: ";
	cin>>delta;
	double x;
	int k;
	x=HORDA(left,right,eps,k);
	x=Round(x,delta);
	cout<<"\nx= "<<x;
	cout<<"\nЉ®«ЁзҐбвў® и Ј®ў ЇаЁ ўлзЁб«Ґ­ЁЁ: "<<k;
}
Соседние файлы в папке Лабораторные работы №3_4_5_6