Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2010, 17:52   #1
aleksej01-91
 
Регистрация: 15.04.2010
Сообщений: 5
По умолчанию добавить ввод функции

Нужно чтобы пользователь вводил данные функции double func(double c) и её производной double func2(double c) с клавиатуры.
Вот сам код:
Код:
#include<iostream.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
double a,b,E;
double func(double c){
  return c*c*c-2*c*c+3*c+5;
}
double func2(double c){
  return 6*c-4;
}
//----funkcija vvoda znachenij----//

void enter(){
  clrscr();
  printf("Vvedite otrezok [a;b], kotorii na kotorom vi hotite najti koren':\n");
  scanf("%lf %lf",&a,&b);
  if(a>b)
  {printf("\n\na ne mozhet bit' bolshe b\n");
  getch();
   enter();
}
  if(a==b)
  {printf("\n\nEto ne otrezok\n");
  getch();
   enter();
    }
  printf("\nVvedite Eps:\n");
  scanf("%lf",&E);
}

//-----Funkcija podscheta----//

void m_hord(double c,double d){
  double x,x1;
  char i=0;
  x1=0;
  printf("\n\n<<<Metod Hord>>>");
  while(fabs(b-a)>E)   // vipolnjaem do teh por poka tochnost'//
  {
    i++;
    x=a-(func(a)*(b-a))/(func(b)-func(a)); // rekurentnaja formula dljametoda hord//
    printf("\n %d %lf %lf %lf %lf",i,x,func(x),x-c,func(c)-func(x));
    printf("\n%lf",x1-x); //vivodim raznost' mezdu iteracijami//
    if(fabs(x1-x)<=E)  //proverjaem tochnost'iteracii//
    {
      x=x;
      break;
    }
    if((func(x)*func(b))>0) //esli f ne menjaet znak nf otrezke,to eto metod
			   //s zakreplennoj tochkoj//
      b=x; //suzhaem verhnij predel//
    else
      a=x;//suzhaem nizhnij predel//
    x1=x;
  }
  printf("\n\nPriblizitelnii koren raven = %lf",x);
}

//-----proverka analiticheskogo sposoba otdelenija kornej-----//

int proverka(double a,double b){
  if((func(b)*func(a))>0)  //esli znaki na koncah odinakovie.to zdes' net kornej//
  {
    printf("Ottdelennii otrezok ne imeet kornei!!");
    return 1;
  }
  else
    return 0;
}

int prov_hord(double a,double b){
   if((func(a)*func2(a)<0)) //pogreschnost' ne streemitsja k//
     return 1;
   else
     return 0;
}

 main(){
  do
  {  textbackground(BLACK);
  textcolor(YELLOW);
  clrscr();
  char komanda;
  char g;
	clrscr();
	
	{
	  cout<<"                   .::Rechenie uravnenija metodom hord::.\n\n";
	  cout<<"                                  ЪДДДДДДДДДДДДДДї\n";
	  cout<<"                                  Г ѓ«*ў*®Ґ ¬Ґ*о ґ\n";
	  cout<<"                                  АДДДДДДДДДДДДДДЩ\n";
	  cout<<"                    ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї\n";
	  cout<<"                    і±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±і\n";
	  cout<<"                    ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ\n";
	  cout<<"                    і1. Reshit' urawnenie                      і\n";
	  cout<<"                    і0. ‚л室                                  і\n";
	  cout<<"                    АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ\n";
	  cout<<"\n\nЉ®¬**¤г©вҐ - ";
	  cin>>komanda;
	  if(komanda=='0') break;
	  switch(komanda)
	  {
	case '1':
		{
		  clrscr();
		  enter();

		break;
		}
	default:
		   {
			clrscr();
			cout<<"                       ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·\n";
			cout<<"                       є ЋиЁЎЄ*: *ҐўҐа*® ўўҐ¤Ґ** Є®¬**¤*!   є\n";
			cout<<"                       є ‚ўҐ¤ЁвҐ Є®¬**¤г Ё§ бЇЁбЄ* *Ё¦Ґ.    є\n";
			cout<<"                       УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ\n";
		   }
                   break;
	  }

	}




    if(prov_hord(a,b)){
      m_hord(a,b);

    }
    else
      printf("\nK dannomu promezutku ne primenim metod hord!!!");
    getch();
     if(proverka(a,b)){
      m_hord(a,b);
      printf("Ottdelennii otrezok ne imeet kornei!!");
     }
    

  } while(1);
   return 0;

  }
aleksej01-91 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чем отличается описание функции от определения функции в С++? Go6a Помощь студентам 4 18.07.2009 18:07
Ввод вычисляемой функции во время работы программы DAV88 Помощь студентам 4 25.04.2009 15:41
Функции. Передача массива в качестве параметра функции. Wia Помощь студентам 2 17.03.2009 14:57
Добавить фОРМУ... prog38 Помощь студентам 4 02.07.2008 09:07
Добавить поле yulia БД в Delphi 2 12.05.2007 14:12