• 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.
Bu, hızlı yüklenen mobil optimize edilmiş bir AMP sayfadır, gerçek sayfayı yüklemek istiyorsanız bu metni tıklayın.

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;
}