/*
Obligatorisk Øving 1 i PROG og DATA
Programnavn : Pi
Oppgaven 2
Skrive et lite program som ved bruk at Leibniz' formel skal beregne pi.
(Er litt usikker på om en i følge oppgaven skal spørre etter et oddetall som nevner eller antall utregninger, men antar det første.)
Skrevet av:
Aleksander Uthus
*/
#include <iostream.h>
#include <math.h>
int main()
{
//Definerer variabler som skal brukes
int Nevneren;
double GangeMed = 1.0;
double Svaret;
bool minus = true;
//Spør om den største nevneren fra bruker
cout << "Angi den stOrste nevneren for A beregne pi!(husk at det skal vAEre et oddetall!)\n";
cin >> Nevneren;
//Sjekker om brukeren faktisk kom med et oddetall, hvis ikke må brukeren komme med et nytt tall
while(Nevneren%2 == 0){
cout << "\nTallet du kom med var slettes ikke et oddetall! Kom med en ny nevner\n";
cin >> Nevneren;
}
//Visker ut skjermen for ryddighetens skyld, og oppgir svaret
//system("cls");
/*
For å komme frem til svaret vil jeg først vite om det bakerste tallet skal være - eller +
For å finne ut av dette kan jeg sjekke om tallet er delelig med 4 eller ikke!
Tallene som kan deles på 4 skal nemmelig ikke trekkes ifra, men legges til!
*/
if(Nevneren%4 == 0) minus = false;
//Nå som vi vet om det første tallet (egentlig bakerst i rekken) skal legges til eller trekkes ifra kan vi starte utregningen;
while(Nevneren > 1){
//Gjøres om tallet skal trekkes ifra
if(minus){
minus = false;
GangeMed = GangeMed - (1/(double)Nevneren);
}
//Gjøres om tallet skal legges til
else if(!minus){
minus = true;
GangeMed = GangeMed + (1/(double)Nevneren);
}
Nevneren = Nevneren - 2;
cout<<"\n"<<Nevneren;
cout<<"\n"<<(1/(double)Nevneren);
cout<<"\n"<<GangeMed;
}
//Finner svaret for pi
Svaret = 4 * GangeMed;
//Oppgir svaret til brukeren
cout << "\n\nSvaret regnet med Leibniz' formel:\n"<<Svaret;
//Oppgir pi som ligger inne i math.h som konstant
cout << "\n\n\nSvaret som stAr oppgitt i math.h er:\n"<< M_PI<<"\n\n\n";
//En pause så bruker får se resultatet
system("pause");
return 0;
}