17 Temmuz 2013 Çarşamba

C de ikinci dereceden denklemin köklerini bulma

ax^2+bx+c şeklinde olan ikinci dereceden bir denklemin köklerini bulmak için bir kok yazmak istersek hangi yolları izlemeliyiz. Öncelikle denklemin katsayılarını ve sabit terimi kullanıcıdan almalıyız(a,b ve c değerleri). Sırasıyla sayıları aldıktan sonra delta değerini bulmalıyız. Bu delta değeri bize kök için yol gösterecek. Eğer delta değeri sıfırdan küçükse kök bulurken delta değerinin kökü tanımsız olacağı için reel kökü bulunmadığını, delta değeri sıfırsa birbirine eşit iki kökün bulunduğunu, delta değeri sıfırdan büyükse de iki farklı kökün olduğunu anlamamız gerekecek. Delta değerini bulduktan sonra da gerekli ekran bildirimlerini yapıp varsa kökleri ekrana yazdırmamız gerekecek. Kök bulma işlemlerini de kodda göreceğimiz gibi gerekli matematiksel işlemlerle buluyoruz. Ayrıca koda bir while döngüsü kullanarak yeni kök bulma işlemleri için programdan çıkmaktan kurtulmayı ve görsel güzelliği sağlayacağız. 

Programın Kodu:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[]){
float a,b,c,Dx,kokDelta,devam=1;
char sec;
while(devam==1){
printf("ikinci dereceden terimin katsayisini girin:\n");
scanf("%f",&a);
printf("birinci dereceden terimin katsayisini girin:\n");
scanf("%f",&b);
printf("sabit terimi girin:\n");
scanf("%f",&c);
Dx=b*b-4*a*c;
kokDelta=sqrt(Dx);
  if(Dx<0){
    printf("Denklemin reel koku bulunmamaktadir!\n");
  }
  else{
    if(Dx==0){
      printf("Denklemin esit iki koku vardir!\n");
      printf("Iki kok de  : %f   dir!!\n",(-1*b)/(2*a));
    }
    else{
      printf("Denklemin farkli iki koku vardir!\n");
      printf("Kokler : %f   ve %f  dir!!\n",((-1*b)+kokDelta)/(2*a),((-1*b)-kokDelta)/(2*a));
    }
  }
  printf("\nAna menuye donmek istiyorsaniz 'E' yada 'e' girin\n\n");
  sec=getch();
  if(sec=='E'||sec=='e'){
  }
  else{
    devam=0;
  }
}
system("PAUSE");
return 0;
}





Programın Ekran Çıktısı:

                                  




Hiç yorum yok:

Yorum Gönder