• Web sitemizin içeriğine ve tüm hizmetlerimize erişim sağlamak için Web sitemize kayıt olmalı ya da giriş yapmalısınız. Web sitemize üye olmak tamamen ücretsizdir.
  • Sohbetokey.com ile canlı okey oynamaya ne dersin? Hem sohbet et, hem mobil okey oyna!
  • Soru mu? Sorun mu? ''Bir Sorum Var?'' sistemimiz aktiftir. Paylaşın beraber çözüm üretelim.

Standart Polinom kökünü bulan program... (C)

Üyelik Tarihi
7 Ocak 2015
Konular
4,091
Mesajlar
4,274
MFC Puanı
40
Kod:
#include<stdio.h>
#include<math.h>
#define BOYUT 16
float hesapla(float katsayi[],float x);
float turev(float katsayi[],float x);
float fmutlak(float sayi);	  
int main()
{
char yanit='e';
float katsayi[BOYUT]={0},a,x1,x2;
int k,derece,i,kontrol,j;
printf("ax**n+....= biçiminde");
printf("\nMax. 15. dereceden bir polinom giriniz\n");

/*okutma sorunu çözülmedi!*/
for(i=0;;i++)
  {  
  k=scanf("%fx**%d",&a,&derece);
  if((k==0)||(i>15))break;
  katsayi[derece]+=a;  
  }

/*polinomun yanyana yaz&yacute;lmas&yacute;:*/
printf("Girilen polinom:\n");
for(i=BOYUT-1;i>=0;i--)
 {
  if(katsayi[i])  		
  {
  printf("%fx**%d",katsayi[i],i);
  for(j=i-1;j>=0;j--)/*bir sonraki terimi bulmak için*/
      if(katsayi[j])break;
  if((katsayi[j]>0)&&(j!=-1))printf("+");  
  }
 }		
while(yanit=='e')
{ 
 printf("\nHangi nokta etraf&yacute;nda çözüm yap&yacute;ls&yacute;n?\n");
 getchar();
 scanf("%f",&x1);
 kontrol=1;
   for(i=0;;i++)
   {  	 
	 x2=x1-(hesapla(katsayi,x1)/turev(katsayi,x1));     
	 if(fmutlak(x2-x1)<=0.01)break;
	 x1=x2; 
     if(i==1000)  
     {			   
 	   printf("Bu nokta etraf&yacute;nda yak&yacute;nsama tamamlanmad&yacute;!\n");
 	   kontrol=0;
	   break;
 	 }  
   }
  if(kontrol==1) printf("kök=%f",x2);
  printf("\nBa&thorn;ka bir nokta etraf&yacute;nda çözüm aramak ister misiniz?\n");
  getchar();
  scanf("%c",&yanit);
}		
return 0;
}
/*fonksiyonlar:*/
float hesapla(float katsayi[],float x)
{
int i;
float toplam=0;
for(i=0;i<BOYUT;i++)
  toplam+=katsayi[i]*pow(x,i);
return toplam;
}
float turev(float katsayi[],float x)
{
float turev=0;
int i;
for(i=0;i<BOYUT;i++)
  turev+=i*katsayi[i]*pow(x,i-1);
return turev;  
}
float fmutlak(float sayi)
{
if(sayi<0)return sayi*-1;
else return sayi;
}
 
Üst