| Autor |
Beitrag |
volkerb.
Hält's aus hier
Beiträge: 9
|
Verfasst: Di 03.04.07 13:43
Hallo!!!
Ich beschäftige mich seit einigen Tagen mit Delphi und habe jetzt mein erstes Problem wo ich nich weiterkomme.
Ich habe mir aus dem Internet eine Aufgabe heruasgesucht (Gewichtsrechner) und komme jetzt leider nicht weiter.
Es soll je nachdem ob man männlich oder weiblich ist ein bestimmtes idealgewicht ausgerechnet werden und danach soll verglichen werden ob man Idealgewicht hat oder nicht.
Hier ist der Quelltext den ich bis jetzt habe.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| procedure TForm1.b_startClick(Sender: TObject); var groese, gewicht, mideal, wideal, x, y :real; begin
gewicht := strtofloat(e_gewicht.text); groese := strtofloat(e_groese.text); mideal := (groese -100) * 0.95; wideal := (groese - 100) * 0.90;
if r_sex.ItemIndex = 0 then begin x := (groese - 100) * 0.95; end
else begin y := (groese - 100) * 0.90; end
if (x = Mideal) or (y=wideal) then begin showmessage('sie haben..'); end else begin showmessage('sie haben kein...'); end |
Wenn ich das Programm starte, meine Größe und Gewicht eingeben und dann auf Start klicke, kommt eine Fehlermeldung.
Seht ihr vielleicht einen (von vielen) Fehlern ^^
Dankeschön jetzt schon einmal für die Hilfe!!!
Zuletzt bearbeitet von volkerb. am Di 03.04.07 14:20, insgesamt 1-mal bearbeitet
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Di 03.04.07 14:02
Hallo!
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| if y := ideal then begin showmessage ('sie haben...'); end else begin showmessage('sie haben kein...'); end |
Doppelpunkt entfernen, da es ein Vergleich und keine Zuweisung ist
LG
Stefan
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Di 03.04.07 14:13
_________________ Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
|
|
volkerb. 
Hält's aus hier
Beiträge: 9
|
Verfasst: Di 03.04.07 14:22
Da hat wohl jemand das gleiche Problem wie ich^^
also ich habe den Quellcode jetzt noch etwas umgeändert (erster Beitrag editiert) aber es kommt eine Fehlermeldung wenn ich das Programm starten will.
[Error] Unit1.pas(57): Missing operator or semicolon
Wo fehlt dort ein Semikolon??
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Di 03.04.07 14:24
Nach jedem end, außer vor dem end beim else
Alles klar? ^^
LG
Stefan
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
volkerb. 
Hält's aus hier
Beiträge: 9
|
Verfasst: Di 03.04.07 14:28
ah cool...jetzt muss ich es nur noch hinbekommen dass er untergewicht und übergewicht anzeigt und einen unterscheid von +-2% mit einrechnet xD....ich glaube ich werde hier noch ein paar mal posten ^^
|
|
volkerb. 
Hält's aus hier
Beiträge: 9
|
Verfasst: Di 03.04.07 14:47
Ich habe mir jetzt noch mal Gedanken über den Quellcode gemacht und hab ihn noch etwas verändert.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| procedure TForm1.b_startClick(Sender: TObject); var groese, gewicht, mideal, wideal, x, y :real; begin
gewicht := strtofloat(e_gewicht.text); groese := strtofloat(e_groese.text); mideal := (groese -100) * 0.95; wideal := (groese - 100) * 0.90;
if r_sex.ItemIndex = 0 then begin mideal := x; end
else begin wideal := y; end ;
if (x < gewicht) or (y < gewicht) then begin showmessage('sie haben untergewicht'); end ; if (x>gewicht) or (y>gewicht) then begin showmessage('sie haben übergewicht'); end ; if (x=gewicht) or (y=gewicht) then begin showmessage('sie haben idealgewicht'); end; |
ich bin mir aber nicht sicher ob er das idealgewicht so richtig ausrechnet^^
wenn ich es starte und gewicht und größe eingebe kommt jedenfalls nur "sie haben untergewicht".
habe ich mir hier jetzt völligen schwachsinn ausgedacht oder kann man das so schreiben?? xD
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Di 03.04.07 14:49
wo belegst du denn x und y??? 
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
noidic
      
Beiträge: 851
Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
|
Verfasst: Di 03.04.07 14:53
Hm, ich würd mal nen Grundlagenkurs/buch empfehlen. Die Zuweisungen sind falsch, die Vergleiche sowieso.
Einfach mal drüber nachdenken, was wohl passiert, wenn ich a den Wert von b zuweise. Und die Bedeutung von < und > solltest du auch nochmal nachschlagen.
_________________ Bravery calls my name in the sound of the wind in the night...
|
|
volkerb. 
Hält's aus hier
Beiträge: 9
|
Verfasst: Di 03.04.07 14:58
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33:
| procedure TForm1.b_startClick(Sender: TObject); var groese, gewicht, mideal, wideal, x, y :real; begin
gewicht := strtofloat(e_gewicht.text); groese := strtofloat(e_groese.text); mideal := (groese -100) * 0.95; wideal := (groese - 100) * 0.90;
if r_sex.ItemIndex = 0 then begin mideal := (groese - 100) * 0.95; x := mideal; end
else begin wideal := (groese - 100) * 0.90; y := wideal; end ;
if (x = gewicht) or (y = gewicht) then begin showmessage('Sie haben Idealgewicht'); end ; [b]if (x > gewicht) or (y > gewicht) then begin showmessage('Sie haben Übergewicht') end; if ( x < gewicht) or (y < gewicht) then begin showmessage('Sie haben Untergewicht') end;[/b] |
so Quelltext noch mal umgeändert^^
bis auf den fett markierten bereich funktioniert alles...wenn ich den weglasse, dann zeigt er mit nur eine message wenn man genau idealgewicht hat. wenn ich den fetten teil jedoch dazu füge zeit er IMMER an die haben untergewicht UND sie haben übergewicht.
kann mir da einer helfen??
PS: ein buch habe ihc mir schon bestellt ist aber noch nicht da und deswegen fange ich jetzt so schon einmal an ^^
|
|
noidic
      
Beiträge: 851
Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
|
Verfasst: Di 03.04.07 15:03
zum einen wäre es wohl sinnvoll, unten auch mit else zu arbeiten. Zum anderen ist immer nur entweder x oder y befüllt, es wird aber immer beides verglichen. Solltest dich mal fragen, wozu du da zwei Variablen benutzt, eigentlich kannst du auf beide verzichten ( richtige nerds, denen Tippen zuviel arbeit ist, verzichten ganz auf die Variablen 
_________________ Bravery calls my name in the sound of the wind in the night...
|
|
volkerb. 
Hält's aus hier
Beiträge: 9
|
Verfasst: Di 03.04.07 15:14
ich find mit den variablen übersichtlicher ^^...und da ich ein noob und kein nerd bin darf ich das auch xD
wie kann ich das da unten denn mit if und else machen??
|
|
noidic
      
Beiträge: 851
Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
|
Verfasst: Di 03.04.07 15:26
na genau wie paar Zeilen drüber auch.
_________________ Bravery calls my name in the sound of the wind in the night...
|
|
volkerb. 
Hält's aus hier
Beiträge: 9
|
Verfasst: Di 03.04.07 15:33
ja aber unten gibt es ja 3 möglichkeiten
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| if (x = gewicht) or (y = gewicht) then begin showmessage('Sie haben Idealgewicht'); end ; if (x > gewicht) or (y > gewicht) then begin showmessage('Sie haben Übergewicht'); end else begin showmessage('Sie haben Untergewicht'); end; |
so??^^
|
|
noidic
      
Beiträge: 851
Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
|
Verfasst: Di 03.04.07 15:37
du kannst beliebig oft mit else verketten. Beispiel:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| if a < b then begin ... end else if b > a then begin ... end else if b + a > 0 then begin ... end
... |
_________________ Bravery calls my name in the sound of the wind in the night...
|
|
volkerb. 
Hält's aus hier
Beiträge: 9
|
Verfasst: Di 03.04.07 15:52
und das nächste probelm ^^ (ich glaub das dauert noch den ganzen tag )
delphi berechnet immer BEIDE gewicht, egal was ich oben in der radiogroup auswähle.
wie kann ich das verändern??
|
|
volkerb. 
Hält's aus hier
Beiträge: 9
|
Verfasst: Mi 04.04.07 09:25
DANKESCHÖN an alle die so viel geduld hatten ^^
habs endlich hinbekommen....
...mein nächster post lässt aber nicht lange auf sich warten
MfG Volker
|
|