Gå til innhold

Kalkulator med store tall


Anbefalte innlegg

Heisann! (igjen)

 

Her forsetter jeg og mase da...

Hvordan kan jeg lage en stor kalkulator?

Har lest i C++ for dummies at begrensningen for tall i C++ er 2147483647.

Så hvordan kan jeg lage en kalkulator som regner ut pi (3,14) ganske så nøyaktig f.eks. Slik at jeg kan regne ut skikkelig store regneopprasjoner?

 

Fint om noen kunne hjelpet meg, med alt. Hvordan får jeg til og legge sammen og alt liksom..

 

Takker på forhånd!

Lenke til kommentar
Videoannonse
Annonse

Hvordan man skal lage en kalkulator for skikkelig store regneoperasjoner? Høres vanskelig ut ...men STOORE tall? --Ikke bry deg om sånne detaljer, aldri bry deg om sånne detaljer, i hvertfall ikke i starten.

De du har tilgjengelig nå er store nok - garantert.

 

Dette er i hvertfall måten man finner grenser for standard numeriske typer i C++:

 

#include <iostream>

#include <limits>



using namespace std;



const double Pi = 3.1415926; // holder i massevis





int main()

{

cerr << numeric_limits<double>().min() << endl;

cerr << numeric_limits<double>().max() << endl;



return(0);

}

 

..og det er ikke sikkert min maskin har de samme grensene som din! Så hvordan boka kan -vite- hvordan din maskin "ser" ut; vet ikke jeg.

 

Liten "kalkulator":

#include <iostream>

#include <limits>



using namespace std;



int main()

{

int tall1;

int tall2;



cerr << "Skriv inn det første tallet: ";

cin >> tall1;

cerr << "Skriv inn det andre tallet: ";

cin >> tall2;



cerr << "Summen av " << tall1 << " og " << tall2 << " er: " << tall1 + tall2 << endl;



return(0);

}

..prøv -, * og / selv! :D

Lenke til kommentar
Takk for svar..

 

Hvordan får jeg kalkulatoren til og regne ut forsjellige opprasjoner?

Slik som /,*,- og +

altså dele, gange, minus og pluss.

 


cerr << tall1 << " - " << tall2 << " = " << tall1 - tall2 << endl; 

cerr << tall1 << " * " << tall2 << " = " << tall1 * tall2 << endl; 

cerr << tall1 << " / " << tall2 << " = " << tall1 / tall2 << endl; 

 

Og hva slags fil er

<limits>

 

Både limits og iostream er standard headerfiler fra C++'s standardens biblioteker. Hvis du har en god bok vil du få en oversikt over mer eller mindre hele dette biblioteket. Dummies* -bøkene er desverre sjeldent gode. :( Men jeg tror de lærer deg hvordan du legger sammen tall?

Ta en titt i FAQ'en for anbefalte bøker.

I mellomtiden kan du kanskje ta en titt på www.cppreference.com , her er noen, ikke alle, av C++'s standard komponenter listet med en kort forklaring.

 

Hvis du lurte på hvordan man organiserer koden - så kan man f.eks. gjøre det slik:

#include <iostream>

#include <limits>



using namespace std;



// summere

int sum(int tall1, int tall2)

{

return(tall1 + tall2);

}





// trekke fra

int differanse(int tall1, int tall2)

{

return(tall1 - tall2);

}





// gange

int produkt(int tall1, int tall2) 

{

return(tall1 * tall2);

}





// dividere

/*

 Legg merke til at divisjon() returnerer double.

 Hadde den returnert int ville svaret blitt forkortet, eller rundet av.

*/

double divisjon(int tall1, int tall2)

{

return(tall1 / tall2);

}





int main()

{

int tall1;

int tall2;



cerr << "Skriv inn det første tallet: ";

cin >> tall1;

cerr << "Skriv inn det andre tallet: ";

cin >> tall2;



cerr << "Summen av " << tall1 << " og " << tall2 << " er: " << sum(tall1, tall2) << endl;

cerr << "Differansen mellom " << tall2 << " og " << tall1 << " er: " << differanse(tall2, tall1) << endl;

cerr << "Produktet av " << tall1 << " og " << tall2 << " er: " << produkt(tall1, tall2) << endl;

cerr <<  tall1 << " delt på " << tall2 << " er: " << divisjon(tall1, tall2) << endl;



return(0);

}

..dette kalles et prosedyrellt design (riktig norsk ord?).. for jeg bruker funksjoner.. men dette finner du ut av siden.. :)

Lenke til kommentar
Dummies* -bøkene er desverre sjeldent gode. :( Men jeg tror de lærer deg hvordan du legger sammen tall?

Du har rett, boka jeg leser er ivertfall dårlig. Pluss at den bruker gamle-standarer. Jeg har rett å slett slutta og lese i den. Har lastet ned noen tutorials fra nettet om OpenGL og C og C++.

 

Jeg trodde C++ var ganske tungt og lære seg, men ikke tungt. Det er jo vanskelig.

Jeg får ikke til og se æ,ø,å i console en gang.

I visual basic 6 så ser man liksom det grafiske, den er "finere" på en måte.

I C++ (så langt som jeg har kommet ivertfall) så sitter man bare der, med en kjedlig konsoll/console og får ikke engang æøå til og fungere.

Men jeg vet fint lite om det, har som sagt ikke lært stort ennå. Vet ikke hvordan jeg får kalkulatoren til og gå i "loop" ennå :oops:

Men jeg driver og leser en engelsk tutorial, en veldig bra en. Den kalles for "Talk to me like I'm a 3 year old!" Programming Lessons. Sier jo seg selv at den er meget godt forklart, men uheldigvis er den på engelsk.

Lenke til kommentar
Dummies* -bøkene er desverre sjeldent gode. :( Men jeg tror de lærer deg hvordan du legger sammen tall?

 

Jeg trodde C++ var ganske tungt og lære seg, men ikke tungt. Det er jo vanskelig.

 

Ja, det er det.

 

Jeg får ikke til og se æ,ø,å i console en gang.

 

Ikke bry deg om det - det er en norsk-tegnsett-Windows-ting.

Bruk konsollet til å lære i og til å skrive ut debug-meldinger fra de grafikkbaserte programmene du lager siden.

 

I visual basic 6 så ser man liksom det grafiske, den er "finere" på en måte.

I C++ (så langt som jeg har kommet ivertfall) så sitter man bare der, med en kjedlig konsoll/console og får ikke engang æøå til og fungere.

 

Visual Basic 6 ble skrevet i C++, hva har du å si til det? :D

 

Men jeg vet fint lite om det, har som sagt ikke lært stort ennå. Vet ikke hvordan jeg får kalkulatoren til og gå i "loop" ennå :oops:

Men jeg driver og leser en engelsk tutorial, en veldig bra en.

 

Det er bra. :)

Ta tiden til hjelp -- ikke vær alt for hard mot deg selv, du finner ut av det til slutt; husk at det er reisen som er målet - ikke selve målet.

:woot:

 

... , uheldigvis er den på engelsk.

 

Driver å skriver litt på en norsk tutorial. Hvis du er intressert så finner du et eksempel på en "while-loop" der: http://nostdal.net/forum/viewtopic.php?p=163#163 Ikke noen forklaringer der foreløpig, men regner med at jeg skal få skrivd litt ... :-)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...