Herkese iyi günler dileriz.Bu yazımızda sizlere dışarıdan girilen bir sayının sinüsünü ve cosinüsünü hesaplayan c programını ve kodlarını paylaşacağız.Ayrıca kodların anlatımını da yanlarına ekleyeceğiz.
C dili programlamanın en temel dillerinden birisidir.Bu dili öğrendiğiniz vakit diğer tüm masaüstü programlama dillerinini algoritmik olarak çözebilirsiniz ve kolaylıkla öğrenebilirsiniz.Bildiğiniz gibi C programlama dili örnekler adlı sayfamızda şuana kadar yaptığımız tüm C dili örneklerini oraya ekliyoruz.O sayfa altından tüm örneklere bakabilirsiniz.
Şimdi ise sizlere yeni bir örnek yapacağız.Dışarıdan girilen bir sayının sinüsünü ve kosinüsünü hesaplayan c programını yapacağız.Hesaplama yaparken cosinüs bulma fonksiyonunu başka siteden alıntı yaptım.Fakat burada önemli olan mantığını anlamanızdır.Aslında zor bir şey yok for ve if kodları var.Umarım anlarsınız.Şimdi lafı uzatmadan kodlara ve anlatıma geçelim.Anlatımları yanlarına ekledim.
Bir Açının Sinüsünü ve Cosinüsünü Hesaplayan C Kodları
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
#include<stdio.h> #include<stdlib.h> #include<conio.h> #include <math.h> #include <locale.h> //Kütüphanelerimizi ekledik.Burada locale.h türkçe karakter sorunu olmaması için eklenen kütüphane ve math.h ise sqrt yani karekök kodunun çalışması için eklenen kütüphanedir. int main() //Ana fonksiyonumuzu açtık. { setlocale(LC_ALL, "Turkish"); //Türkçe karakter sorunu için eklediğimiz kod. double cosinus,sinus,derece,radyan,k,i,faktoriyel,us; //Değerlerimizi tanımladık. k=1; cosinus=1; sinus=1; faktoriyel=1; us=1; //Burada hemen hemen tüm değerlere bilerek 1 verdik.Çünkü programımız matematik işlemleri yapacak.İlk değeri etkilemeyeceği için 1 verdik. //cos(x)=1-x^2/2!+x^4/4!-x^6/6!..... printf("0 ile 360 aralığında bir derece giriniz : \n"); //0 ile 360 derece arasında bir sayı girilecek. scanf("%lf",&derece); //Burada lf yani double kullandık.Sonuçta çıktı virgüllü bir şey olabilir. radyan=derece/180*3.141592653; //Burada dereceyi radyana çeviriyoruz.Radyana çevirmek için dereceyi 180 e bölüp pi sayısı ile çarpmamız gerekiyor.Eğer radyana çevirmezsek sinüs ve kosinüs değerlerini doğru bulamayız. for(i=2;i<100;i++) { k=k*-1; faktoriyel=faktoriyel*i*(i-1); us=us*radyan*radyan; cosinus=cosinus+k*us/faktoriyel; //Burada cosinüs bulma formülünü kullandık.Formül "cos(x)=1-x^2/2!+x^4/4!-x^6/6!" şeklinde devam etmektedir.Bu yüzden değerleri matematiksel olarak çevirdik ve kodlarımızı oluşturduk.Bu şekilde cos değerini bulmuş olduk.Bu formüle ve algoritma kodlarına internetten ulaşabilirsiniz. i=i+1; } sinus=1-cosinus*cosinus; //Ardından cos değerini biliyoruz geriye sinüs kalıyor.Buradan da cos^2+sin^2=1 formülünden sinüsü buluruz. sinus=sqrt(sinus); if(derece==270){ sinus=-1; } else if(derece==180){sinus=0;} else if(derece==360){sinus=0;} if(derece==270){cosinus=0;} //Karışıklık olmasın diye belli değerleri teker teker if else ile girdik. printf("cos %g = %.9f\n",derece,cosinus); //Burada cos değerini çıktı verecek. printf("sin %g = %.9f\n",derece,sinus); //Burada da sin değerini çıktı verecek. getch(); return 0; //Programımızı sonlandırıyoruz. } |
Kodlar ve anlatımı bu şekildedir.Şimdi örnek bir ekran çıktısı paylaşalım.
Gördüğünüz gibi biz açıyı 60 derece olarak girdik.Sinüs 1/2 yani 0.5 verirken cosinüs ise kök 3/2 yani 0.866 değerini vermiştir.Bu şekilde sizler de 0 ile 360 derece aralarında kalan istediğiniz açının sin ve cos değerlerini bulabilirsiniz.
Not = Bu kodları aynı zamanda C++ diline de kolaylıkla çevirebilirsiniz.Mesela kodları printf kısmı yerine cout ve scanf yerine ise cin kodlarını yazarak c++’a çevirebilirsiniz.
Umarız faydalı olur.Herkese iyi çalışmalar ve iyi dersler dileriz…
Bu Yazıya Tepkin Ne Oldu ?