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

Kurtbeyi

Misafir Editör
Katılım
5 Şubat 2022
Mesajlar
501
Tepkime puanı
44
Konum
istanbul
Cinsiyet
  1. Bay
Takım
Fenerbahçe
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;
}
 
Benzer konular Forum Tarih
Kurtbeyi C ve C++ 1 113

Benzer konular

İçerik sağlayıcı "paylaşım" sitelerinden biri olan Harbimekan.Com Forum, Eğlence ve Güncel Paylaşım Platformu Adresimizde 5651 Sayılı Kanun’un 8. Maddesine ve T.C.K’nın 125. Maddesine göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur. Harbimekan.Com sitesindeki konular yada mesajlar hakkında yapılacak tüm hukuksal Şikayetler için info@harbimekan.com yada iletişim sayfası üzerinden iletişime geçilmesi halinde ilgili kanunlar ve yönetmelikler çerçevesinde en geç 3 Gün (72 Saat) içerisinde Forum yönetimi olarak tarafımızdan gereken işlemler yapılacaktır.

Bu Site, Bilim ve Sağlık Haber Ajansı Üyesidir.

Yığıntı - 8kez - kaynak mağazam - Uğur Ağdaş