Gjest Gjest_student_* Skrevet 29. januar 2010 #1 Skrevet 29. januar 2010 Programmet skal ta inn heltall og skrive de ut. Virker så simpelt, men jeg er helt grønn på dette. void printTime(int hour, int minute, int second) { hour = 3; minute = 15; second = 7; cout << hour << "hours, " << minute << "minutes and" << second << "seconds. << endl; } Jeg får 2 feilmeldinger; expected primary-expression before 'OTHER' token error: expected `;' before 'OTHER' token Noen som vet hva jeg gjør feil?
Temposonic Skrevet 29. januar 2010 #2 Skrevet 29. januar 2010 (endret) Programmet skal ta inn heltall og skrive de ut. Virker så simpelt, men jeg er helt grønn på dette. void printTime(int hour, int minute, int second) { hour = 3; minute = 15; second = 7; cout << hour << "hours, " << minute << "minutes and" << second << "seconds. << endl; } Jeg får 2 feilmeldinger; expected primary-expression before 'OTHER' token error: expected `;' before 'OTHER' token Noen som vet hva jeg gjør feil? Etter å ha sett raskt gjennom koden din, det første jeg ser er at du mangler anførselstegn etter seconds. Edit: Forresten. Du har jo innparametre hour, minute, second, så helt i starten av funksjonen så forsøker du å skrive til disse. Det går ikke. Dessuten forsvinner jo hele hensikten med funksjonen da. Her har jeg endret litt for deg void printTime(int hour, int minute, int second) { cout << hour << " hours, " << minute << " minutes and " << second << " seconds." << endl; }[/codebox] Endret 29. januar 2010 av jmac
Gjest SmallTalk Skrevet 29. januar 2010 #3 Skrevet 29. januar 2010 Programmet skal ta inn heltall og skrive de ut. Virker så simpelt, men jeg er helt grønn på dette. void printTime(int hour, int minute, int second) { hour = 3; minute = 15; second = 7; cout << hour << "hours, " << minute << "minutes and" << second << "seconds. << endl; } Jeg får 2 feilmeldinger; expected primary-expression before 'OTHER' token error: expected `;' before 'OTHER' token Noen som vet hva jeg gjør feil? Få med deg en " etter seconds. Hvis ikke så vil du få kompileringsfeil. Får du fortsatt kompileringsfeil etter dette? Hva gjør du når du kaller denne metoden? Jeg antar at du kaller den et eller annet sted, for de fleste kompilatorer jeg kjenner til vil krasje uten en "main" av noe slag. Kaller du denne funksjonen i main? I såfall, hvordan blir den kalt opp? Jeg har endre koden din litt, og får denne til å kjøre uten problemer: #import <iostream> using namespace std; void printTime(int hour, int minute, int second) { hour = 3; minute = 15; second = 7; cout << hour << "hours, " << minute << "minutes and " << second << "seconds" << endl; } int main() { int hour, minute, second; printTime(hour,minute,second); return 0; }
Gjest ts Skrevet 29. januar 2010 #4 Skrevet 29. januar 2010 Takk for hjelpen begge to. Det var bare "-en som manglet. Nå får jeg til å kompilere og kalle opp fra main. trenger litt mer hjelp om dere har tid. jeg skal skrive funksjonen ((A^2 + 10) * 2) som "call by reference" og "call by value". Jeg skjønner ikke helt hvordan jeg skal gjøre det når jeg ikke har eksempler å se etter. Selv om jeg så det på forelesning og skjønner det da, blir jeg helt blank når jeg skal prøve selv. Håper noen kan hjelp meg.
Temposonic Skrevet 29. januar 2010 #6 Skrevet 29. januar 2010 (endret) "call by value" eller verdioverføring, er egentlig det samme som du gjorde i din forrige funksjon. Du bruker en verdi som parameter til funksjonen. #include <iostream> using namespace std; int calculate(int a) { // Returnerer verdien return ((a^2 + 10)*2); } int main() { int iNum = 2; cout << calculate(iNum); // iNum vil fremdeles være 2. cin.get(); }[/codebox] "Call by referance", eller referanseoverføring betyr at paramteteret til funksjonen er ikke verdien i seg selv, men en referanse til den variabelen som ble bruk som parameter. Dermed hvis du endrer denne verdien i funksjonen vil du i praksis endre variablen som ble brukt som parameter. (Dette ble litt rotete forklart) Har lappet sammen et lite program her. [codebox]#include <iostream> using namespace std; void calculate(int &a) { a = ((a^2 + 10)*2); } int main() { int iNum = 2; calculate(iNum); // iNum vil nå ha verdien 28. cout << iNum; cin.get(); } Endret 29. januar 2010 av jmac
Temposonic Skrevet 29. januar 2010 #7 Skrevet 29. januar 2010 Jeg fikk det til uten hjelp Bra! :D Beste måten å lære dette på er å knote og slite med det, plutselig løsner det.
Gjest SmallTalk Skrevet 30. januar 2010 #8 Skrevet 30. januar 2010 Bra! :D Beste måten å lære dette på er å knote og slite med det, plutselig løsner det. Uten tvil! Programmering er noe som må inn i fingrene, det nytter ikke lese seg til.
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!
Opprett en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå