-
C ve C++
(
https://www.ircforumlari.net/c-ve-c/)
- -
Pi Hesaplama
(
https://www.ircforumlari.net/c-ve-c/456486-pi-hesaplama.html)
Pi Hesaplama Girilen hassasiyete göre pi sayısını bulan program.
Elimden geldiğince anlatmaya çalıştım.İyi Çalışmalar :) [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] Kod:
#include<stdio.h>
#include<conio.h>
main() //Programın mantığı pozitifleri ve negatifleri kendi aralarında toplayıp..
{ int adet,i=0; //..birbirlerinden cikarmak.
float negatiftoplam=0; // 4 4 4 4 4 4
float payda=1,pozitiftoplam=0; // --- - --- + --- - --- + --- - --- ...
printf("Hassasiyeti Giriniz : "); // 1 3 5 7 9 11
scanf("%d",&adet); //int değerinde örneğin 4/2 ve 5/2 sayıları aynı değerlere (2) denk geliyordu.Bu problemde bunu kullanacağız.
while(i<(adet+1)/2)//2şer 2şer gruplar hallinde oldugu ıcın (adet+1)/2 denklemini kullanırız.
{ //(Sebebi tek-çift sayısının kontrol etmek için adet+1 yazdık.)
pozitiftoplam+=4/payda;//her şekilde ilk değer artacağı için kontrol etmiyoruz.
if((i+1)!=(adet+2)/2)//döngünün son seferinde negatif değeri alıp alamayacagının kontrolunu yapıyoruz.(Anlatım en aşağıda)
negatiftoplam+=4/(payda+2);//aradeğerlerde paydanın 2 fazlası artar.basta payda=1'di.negatifi hesaplarken payda+2 yi yani..
// ..3'ü elde ederiz.
payda+=4; //payda 4 artar ve 5 olur. bir dahaki döngüde de negatif için payda +2 yani 7 olacak.
printf("Pozitif Toplam = %f Negatif Toplam = %f\n",pozitiftoplam,negatiftoplam);
i++;//kaç defa yapılacağı kontrolü
}
printf("\n\nGenel Toplam=%f",pozitiftoplam - negatiftoplam);//farkını yazdırırız.
getch();
}
//((i+1)!=(adet+2)/2) (i+1) döngünün son döndüğü aşama.
//adet+2 dememızın sebebi az önce bahsettiğim 4/2 ve 5/2 olayı.
//+2 dediğimizde bu değerler 5/2 ve 6/2 olacak ve döngü negatif sayiyi alıp almayacağını kontrol edecek.
//yani gruplar haline çalıştıgımızdan;
// 3 değerini girersek; 4 değerini girersek; şeklinde olur ve -4/7'i de dahil eder.
// 4 4 4 // 4 4 4 4
// --- - --- + --- // --- - --- + --- - ---
// 1 3 5 // 1 3 5 7
// Zaten Tek sayi girerseniz işleme girmeyeceği için en sonda aynı negatif sayinin 2 defa yazdirildiğini görebilirsiniz :)
//İyi Çalışmalar
|
Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 15:49. | |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk