Hjælp til C++ (Programmet vil ikke som jeg vil)

Tags:    c++

Fold kodeboks ind/udKode 


Jeg er helt ny indenfor C++
Derfor virker koden måske en smule uoverskuelig.


Jeg arbejder lidt på et simpelt program der skal kunne teste And, or & not gates.

Mit problem er at jeg kun kan få den til at ville arbejde ud fra and gaten, hvis jeg f.eks. vælger not, sker der intet, men vælger jeg and som står først i mine if sætninger fungere det, indtil jeg har fået resultatet, så hopper den videre til OR, hvor jeg gerne vil have den til at man kan vælge en tast til at hoppe tilbage til at vælge gates og en tast til at lukke programmet.

min else sætning som står helt til sidst i koden virker heller ikke, ej heller hvis den bliver sat ind direkte i mine tre if sætninger (IF and, or, not)

Jeg kunne godt tænke mig at få en forståelse for hvad jeg skal gøre og hvorfor :)






Indlæg senest redigeret d. 27.05.2009 14:08 af Bruger #15015
9 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato

Hej Peter,

Det er forståelsen af disse, som giver første problem...
Fold kodeboks ind/udC kode 


Første gang du skriver noget ind bliver det lagt ind i variablen and.
Anden gang bliver det lagt i variablen or.
Tredie gang bliver det lagt i variablen not.

Dette burde hjælpe forståelsen - udskift med:
Fold kodeboks ind/udC kode 


Dine if'sætningers krølparanteser er sat helt hen i vejret. Lige efter if'en skal du lave krøl-parantesen rundt om det du vil have betingelsen skal dreje sig om.

Efter ovenstående prøv:
Fold kodeboks ind/udC kode 


Med venlig hilsen
Ieet



Indlæg senest redigeret d. 27.05.2009 14:36 af Bruger #12836
Kan du give et snippet af koden som ikke virker?



Indlæg senest redigeret d. 27.05.2009 14:22 af Bruger #15012
Fold kodeboks ind/udKode 



Nu har jeg forsøgt at lave lidt om.
If sætningerne er lavet som foreslået ovenfor.
cin >> and;
cin >> or;
cin >> not;

er ændret til:

cin >> and; cout << and;
cin >> or; cout << or;
cin >> not; cout << not;

Den tester stadig And gaten først og derefter kommer or og not, jeg kan ikke vælge or og not fra starten, så går den helt amok :P

Er det muligt at køre det ind på en måde, så man efter at have testet f.eks. en And gate, derefter kan hoppe tilbage til starten og vælge forfra?

@ Casper

Det er denne del der ikke fungere.
Cin:
Fold kodeboks ind/udKode 

If & else:
Fold kodeboks ind/udKode 





Hej Peter,

Er det med vilje at du ikke gør hvad det er jeg skrev?

Gør præcis hvad jeg skrev - det vil ikke få din kode til at virke, men det vil vise dig tydeligt hvorfor den ikke virker.

Med venlig hilsen
Ieet





Hej Peter,

Er det med vilje at du ikke gør hvad det er jeg skrev?

Gør præcis hvad jeg skrev - det vil ikke få din kode til at virke, men det vil vise dig tydeligt hvorfor den ikke virker.

Med venlig hilsen
Ieet



Har jeg skam prøvet :)
Jeg er helt med på at de tre variabler kommer lige efter hinanden i den rækkefølge jeg har skrevet, problemet er at jeg ikke lige kan se en løsning på det.

Jeg har forsøgt mig med at benytte switch istedet for if, hvilket heller ikke hjalp.

Er der nogle 'nye' udtryk jeg skal sætte mig ind i, for at få det til at køre?











Hej Peter,

Overvej noget i stil med denne pseudo-kode ting.

#include <string>

String inputdata;

cin >> inputdata;

switch(inputdata)
{
case "and":
cout << "Tastet: AND"
break;
case "or":
cout << "Tastet: OR"
break;
case "NOT";
case "not";
cout << "Tastet: NOT"
break;
default:
cout << "Tastet: =?????????"
break;
}

Det er tydeligt at du stadig ikke er med på at cin står og venter på en indtastning. Når den indtastning er kommet eksekveres den næste linje kode. 3 stk cin i træk = vente på 3 indtastninger.

Med venlig hilsen
Ieet





Indlæg senest redigeret d. 28.05.2009 12:11 af Bruger #12836



Det er tydeligt at du stadig ikke er med på at cin står og venter på en indtastning. Når den indtastning er kommet eksekveres den næste linje kode. 3 stk cin i træk = vente på 3 indtastninger.





Ja det er der den er gået gal :)
Jeg har nu forsøgt mig med switch.

I starten kørte jeg hver case i {}
Det gav mindre fejl meldinger end at have hele switchen i {}

Men sådna ser det ud nu:
Fold kodeboks ind/udKode 


Den skriver bl.a. undefined symbol 'String'

Tak for den tid du tager dig at gå igennem koden, er helt LOST på nogle punkter :P




Indlæg senest redigeret d. 28.05.2009 14:27 af Bruger #15015
Jeg fik det til at lykkedes nu.

Jeg takker for hjælpen, uden den var det ikke lykkedes :P :P

Smid svar Ieet så får du point :)





Indlæg senest redigeret d. 28.05.2009 20:37 af Bruger #15015
svar



t