Kode spørgsmål

Tags:    c++

<< < 12 > >>
Hej, har et lille problem med mig program

Fold kodeboks ind/udKode 


umiddelbart har jeg fundet ud af problemet er p4 = p4 + p5;.. eller i p5 udregningen med at den ikke udregner.
Har i nogen bud?

På forhånd tak.




Indlæg senest redigeret d. 09.01.2008 21:48 af Bruger #7638
19 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Zaixu, både dala og p2 er flydende tal (float), så if (dala == p2) vil næsten aldrig være sand. Flydende tal er meget upræcise så man skal aldrig bruge == operatoren med flydende tal. Brug istedet if(dala-p2 < epsilon) hvor epsilon er en variabel med en for dig passende lille afstand som vil antyde at de to værdier er ens, f.eks. 0.00001 eller lignende.




Hej Zaixu,

Hvis jeg var dig ville jeg overveje at strukturere koden bedre, med kommentarer om hvad hver del skal gøre og hvornår den skal hoppe ud.

Og benyt en "break;" til at hoppe ud af for løkken.

Med venlig hilsen
Ieet

Ps. Når så mange folk ikke engang har en ide om hvad din kode burde gøre, er det på tide med kommentarer og omstrukturering.
Pps. De "mærkelige tal" er formentlig Floats, som ikke er helt præcise, prøv at afrunde til et tal med N decimaler, og så vis det tal.



Indlæg senest redigeret d. 10.01.2008 05:36 af Bruger #12836
Hej, har et lille problem med mig program

Fold kodeboks ind/udKode 


umiddelbart har jeg fundet ud af problemet er p4 = p4 + p5;.. eller i p5 udregningen med at den ikke udregner.
Har i nogen bud?

På forhånd tak.



Jeg bemærkede lige at du bruger GOTO. Det skal du undgå at bruge ligesom du skal undgå at bruge BREAK o.lign. Det er ikke pænt hverken at bruge GOTO, BREAK eller lignede, da det ødelægger din logik og gør den uoverskuelig. Opstil en invariant for dit loop og du vil finde løsningen. :-)




Indlæg senest redigeret d. 22.01.2008 21:25 af Bruger #10448
siden hvornår er break blevet en don't-do ting?
Jeg bruger da break i switch() og hvis jeg skal ud af et loop.. Det sparer jo en masse CPU hvis man hopper ud når man er færdig, istedet for at lade loopet køre hele vejen igennem...



Kan du poste hele koden.

Og et lille tip: Du bør virkelig undgå brugen goto af hvis du kan, og det kan du stort set i alle tilfælde.



koden er meget stor..

:P

Fold kodeboks ind/udKode 


kan overhovedet ikke få min for funktion til at køre :/ i opgave 4



Indlæg senest redigeret d. 09.01.2008 22:00 af Bruger #7638
Er du sikker på at det skal "dala = p8" i:

for (dala = p1; dala = p8; dala += 0.000001)

Det ser forkert ud i mine øjne, måske skulle det være:
for (dala = p1; dala <= p8; dala += 0.000001)

Jeg har sjældent set så ... gennemført kode...



Er du sikker på at det skal "dala = p8" i:

for (dala = p1; dala = p8; dala += 0.000001)

Det ser forkert ud i mine øjne, måske skulle det være:
for (dala = p1; dala <= p8; dala += 0.000001)

Jeg har sjældent set så ... gennemført kode...


Haha :P man skal jo starte et sted :D.

Har siddet det meste af dagen, for at få det til at virke, k, har ændret den du snakkede om, mente også det skulle se sådan ud... men nu har jeg bare det næste problem at skulle få den til at stoppe ved det rigtige syntes jeg...

hvis jeg har det sådan her:

Fold kodeboks ind/udKode 


på den måde kan jeg ikke få et resultat frem.., er ikke så god til "for" funktioner :lol:

men hvis jeg sletter if kommandoen, vil den skrive alle udregningerne på displayet, og det vil jeg gerne undgå, men med if funktionen kommer der ikke noget resultat. kan det være pga. p7's plads?

undskyld mig, men kan godt ske at jeg er gået fuldstændig kold lige nu haha.



Jeg har ingen idé om hvad dala eller p2 er på det sted i koden, eller hvad koden skal gøre.

Måske skulle du prøve at skrive dem ud for at se om de indeholder det du forventer.



Skal lige notere at det helt korrekt skal være if(abs(dala-p1) < epsilon)



<< < 12 > >>
t