1 van 1
C++ probleem fibonacci
Geplaatst: do 18 okt 2007, 09:43
door Danieln
beste mensen...
voor school heb ik een programmeer opdracht.
Ik moet een programma schrijven dat als je twee getallen op de commandline invult deze optelt als een rij a la fibonacci...
hij moet alle uitgerekende getallen printen tot aan het beriek van de signed integer dus 65767 ik hoop van harte dat iemand mij hiermee kan helpen!!
alsvast bedankt
daniel
Re: C++ probleem fibonacci
Geplaatst: do 18 okt 2007, 09:57
door Rogier
Tenzij je op een systeem uit de vorige eeuw werkt, is het bereik van een signed integer 2147483647 (en anders 32767)
Wat is het probleem, waar loop je vast? Kun je om te beginnen een simpel basisprogje opzetten dat de twee ingevulde getallen leest en op het scherm print?
Re: C++ probleem fibonacci
Geplaatst: do 18 okt 2007, 10:19
door Cycloon
Dit lijkt me niet zo'n moeilijke opdracht, tot welk punt geraak je zelf?
Re: C++ probleem fibonacci
Geplaatst: do 18 okt 2007, 10:33
door Danieln
sorrie kweet weer wat t bereik is:P
En trouwens er moet een while-statemant gebruikt worden...
Ik kom niet zo ver..
Dit s niet mijn sterke kant als k er heel lang voor ga zitten kom k wel ergens maar daar heb k de tijd niet voor.
ik weet wel wat het programma moet gaan doen:
na invoeren van 2 willekeurige getallen op commandline moeten ongeveer dit loopje worden gebruikt...
C1
C2
C3 = C1 + C2
C1
C2 > C1
C3 > C2 > C1
..........C3 > C2
....................C3
dit moet elke keer doorgaan totdat de MAXINT is bereikt. Ook moet het programma de uitgerekende waardes printen in een rij.
mvrgr. daniel
Re: C++ probleem fibonacci
Geplaatst: do 18 okt 2007, 11:03
door Cycloon
Het is dus helemaal niet zo moeilijk. In m'n while kijk ik tot wanneer de waarde negatief wordt (dan zit je over de max int heen). Voor de rest is het dus gewoon telkens de 2 voorgaande waarden optellen.
Wat ik net merk aan je uitleg is dat je het waarschijnlijk zonder tabel moet doen. Ik zal die code ook ff posten.
Code: Selecteer alles
#include<iostream>
using namespace std;
int main() {
int reeks[200];
cin >> reeks[0];
cin >> reeks[1];
cout << reeks[0] << " ";
int i=1;
while (reeks[i]>0) {
cout << reeks[i] << " ";
i++;
reeks[i]=reeks[i-1]+reeks[i-2];
}
return 0;
}
zonder tabel:
Code: Selecteer alles
int main() {
int c1, c2, c3;
cin >> c1;
cin >> c2;
c3=c1+c2;
cout << c1 << " ";
cout << c2 << " ";
while (c3>0) {
cout << c3 << " ";
c1=c2;
c2=c3;
c3=c2+c1;
}
return 0;
}
Re: C++ probleem fibonacci
Geplaatst: do 18 okt 2007, 11:25
door Rogier
In m'n while kijk ik tot wanneer de waarde negatief wordt (dan zit je over de max int heen)
Dit was de enige echte trick question in deze opdracht denk ik
Het kan natuurlijk ook met while (MAXINT-c2 >= c1)
Re: C++ probleem fibonacci
Geplaatst: do 18 okt 2007, 11:38
door Iwerke
moet je niet eerst initialiseren dat je eerste twee waardes van de reeks '1' zijn?
of worden de 1ste twee waardens gevraagd aan de gebruiker tijdens de voorbeelden hier boven?
( ben niet echt volledig vertrouwd met C++)
ah nvm in de opdracht stond ook dat de getallen ingegeven moeten worden.
Re: C++ probleem fibonacci
Geplaatst: do 18 okt 2007, 12:26
door Cycloon
de "cin" opdracht zorgt daar dus voor
Re: C++ probleem fibonacci
Geplaatst: do 18 okt 2007, 16:53
door Danieln
mogguh...
kheb nu dit gemaakt... de compiler geeft alleen nog een paar fouten aan.. weten jullie waar ze zitten..
bij nader navragen bij leraar hoefden er geen commandline arguments gegeven te worden.
/* Fibonacci.cpp
INPUT: twee cijfers willekeurig gekozen
VERW.: De getallen optellen a la fibonacci tot aan 32767
OUTPUT: alle opgetelde getallen*/
include<iostream.h>
int main()
{
int c1;
cout << Geef het eerste getal!! ";
cin >> C1;
//Lees het eerste getal
int c2;
cout << Geef het tweede getal!! ";
cin >> C2;
//Lees het tweede getal
int c1, c2, c3;
cin >> c1;
cin >> c2;
c3=c1+c2;
cout << c1 << " ";
cout << c2 << " ";
while (c3>0)
{
cout << c3 << " ";
c1=c2;
c2=c3;
c3=c2+c1;
}
return 0;
}
mvrgr. daniel
Re: C++ probleem fibonacci
Geplaatst: do 18 okt 2007, 18:22
door Rogier
Danieln schreef:mogguh...
kheb nu dit gemaakt... de compiler geeft alleen nog een paar fouten aan.. weten jullie waar ze zitten..
Dat geeft je compiler toch aan?
Maar zo op het eerste gezicht: #-teken voor include vergeten, geen quotes aan begin van strings, hoofd- en kleine letters door elkaar gebruikt voor variabelen, dubbele declaratie van c1 en c2 (en je leest ze ook twee keer in met cin trouwens).