Windows8 Skrevet 17. august 2007 Del Skrevet 17. august 2007 (endret) Jeg har et kalkulatorprogram, men den tar kun 2 og 2 operasjoner. Feks: 2+2, 32421*12222 osv.. Isteden for at jeg skriver 2+2+2+22+2+2+2+2+2+2 og deklarerer mange variabler, vil jeg gjøre det på en annen måte, noen forslag? Isåfall er jeg nybegynner, så gjerne utfyllende forslag? Endret 17. august 2007 av RePaC Lenke til kommentar
StormKnight Skrevet 17. august 2007 Del Skrevet 17. august 2007 Jeg kan ikke c++, men skulle jeg ha programert det der, ville jeg ha lagt alle tallene i en tabell, for så å gå gjennom tabellen i ei løkke som legger sammen alle tall (eller en annen opperasjon). Lenke til kommentar
Frysning Skrevet 18. august 2007 Del Skrevet 18. august 2007 (endret) #Du kan bare legge de sammen fortløpende, da slipper du å støtte lengre rekker. Noe du like godt kan gjøre, for du skal ikke støtte lange regneuttrykk uansett. Det blir jo også litt avhengig av om det er et console program eller GUI. Gi meg litt mer info, så skal jeg komme med litt kode. Du kan jo lagre alt i en vektor, eller i en Array. Men det hvis ikke alt har samme regnetegn, hvordan skal du da gjøre det? Det er jo liten sak hvis alt bare skal ligges sammen, lage en loop å kjøre igjennom arrayen/vectoren og ligge sammen alt. Endret 18. august 2007 av Frysning Lenke til kommentar
Windows8 Skrevet 18. august 2007 Forfatter Del Skrevet 18. august 2007 Det er i en console ja. Og vil gjerne at det skal være mulig å gjøre flere regneledd i en setning som sagt. Altså 2+2+2+2+2+2 osv osv.. i en så lang rekke man sku ønske:) Lenke til kommentar
Peter Skrevet 27. august 2007 Del Skrevet 27. august 2007 Bruk et binærtre der tallene er bladnoder mens operatørene er foreldrenoder. Lenke til kommentar
Emancipate Skrevet 28. august 2007 Del Skrevet 28. august 2007 Sånn? #include <iostream> using namespace std; string input; char look; int pos; void next_char() { look = input[pos]; pos += 1; } double number() { double value = 0; while (look >= '0' && look <= '9') { value = 10*value + (look-'0'); next_char(); } return value; } double muldiv() { double value = number(); while ('*' == look) { next_char(); value *= muldiv(); } while ('/' == look) { next_char(); value /= muldiv(); } return value; } double addsub() { double value = muldiv(); while ('+' == look) { next_char(); value += addsub(); } while ('-' == look) { next_char(); value -= addsub(); } return value; } double eval(string expr) { input = expr; pos = 0; next_char(); return addsub(); } int main() { cout << eval("2+3*5") << endl; cout << eval("3*5+2") << endl; system("pause"); return EXIT_SUCCESS; } Lenke til kommentar
Windows8 Skrevet 1. september 2007 Forfatter Del Skrevet 1. september 2007 Jeg har levert inn oppgava i forrige uke:( Men tusen takk anyway;) Lenke til kommentar
Orjanp Skrevet 5. september 2007 Del Skrevet 5. september 2007 Hvordan løste du den da? Liste, tabell, vektor eller tre? Ørjan... Lenke til kommentar
Windows8 Skrevet 5. september 2007 Forfatter Del Skrevet 5. september 2007 Jeg løste den ikke med hensyn på flere variable, tok kun int x og int y. Var min. kravet for å bestå oppgave. Og jeg fikk bestått, så spilte egentlig ingen rolle om jeg ville ha avansert eller enkel;) Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå