![]() |
Brauche dringend Hilfe
Liste der Anhänge anzeigen (Anzahl: 4)
Hallo Leute, ich möchte ein Programm schreiben bei dem der Computer zwei zufällige Zahlen generieren soll, und man dan z.B über ein Edit-Feld die Summe der beiden Zahlen eingeben muss, wobei dann entsprechend eine Antowrt RICHTIG, oder FALSCH angezeigt wird.
Delphi-Quellcode:
also wenn man auf Label1 klickt werden die Zahlen generiert, so weit klappt es , wenn ich jedoch das Ergebnis eingbe und auf z.b + klicke , dann wird die Eingabe zu null und FALSCH wir angezeigt. Beim ersten Bild habe ich das Programm gestartet beim zweiten habe ich die Zahlen generieren lassen, und in 3 habe ich die Summe eingegeben, im vierten Bild habe ich bereits auf + geklickt, und das geschah dann so. Bitte ich brauche dringend Hilfe, was mache ich falsch, ich denke schon seit über einer Stunde nach was ich tun kann aber nichts klappt mfg.
unit AUFGABEN;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, XPMan; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Edit1: TEdit; Button1: TButton; Button2: TButton; Label5: TLabel; XPManifest1: TXPManifest; Label3: TLabel; procedure Label1Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; a, b, c : Integer; implementation {$R *.dfm} procedure TForm1.Label1Click(Sender: TObject); begin randomize; a := random(100); b := random(100); Label2.Caption := IntToStr(a); Label5.Caption := IntToStr(b); Label1.Caption := ' Hol dir eine neue Aufgabe oder wähle die Rechenart'; end; procedure TForm1.Button1Click(Sender: TObject); begin try edit1.Text:=IntToStr(c); if (c = (a+b)) then Label3.Caption := 'RICHTIG !!!' else Label3.Caption := 'FALSCH !!!'; except Label3.Caption := 'Gib nur Zahlen ein !!!'; end; end; procedure TForm1.Button2Click(Sender: TObject); begin try edit1.Text:= IntToStr(c); if (c = (a-b)) then Label3.Caption := 'RICHTIG !!!' else Label3.Caption:= 'FALSCH !!!'; except Label3.Caption:= 'Gib nur Zahlen ein'; end; end; end. |
AW: Brauche dringend Hilfe
Hi, mach mal aus
Delphi-Quellcode:
ein
edit1.Text:=IntToStr(c);
Delphi-Quellcode:
mfg
c := StrToInt(edit1.text);
Edit: Oder nutze StrToIntDef, dann kannst du einen Default-Wert angeben, wenn es sich bei "edit1.Text" um keine Zahl handelt... |
AW: Brauche dringend Hilfe
Und könntest Du Deinem Thema dann noch bitte einen aussagekräftigen Titel verpassen? Hilfe brauchen - in der einen oder andern Form- viele von uns. :cyclops:
|
AW: Brauche dringend Hilfe
@Patty: Eine Fehlerbehandlung in
![]() ![]() ![]() XxxDef = Default (Standardwert) und bei TryXxx kann man einfach an Try-Except denken |
AW: Brauche dringend Hilfe
@himitsu: Der Einwand ist natürlich berechtigt, aber in diesem Fall finde ich, ist StrToIntDef gar nicht so verkehrt. Er könnte zum Beispiel als Standard-Wert "-1" setzen. Die Addition von zwei positiven Zahlen ist immer positiv, im Falle einer fehlerhaften Eingabe würde der Vergleich dann mit -1 statfinden, was "FALSCH" ergeben würde und das ist denke ich in diesem Fall auch so gewollt... Gut, für die Subtraktion müsste man das vielleicht anders machen, aber mein Hinweis mit StrToIntDef war ja eh nur zur Ergänzung gedacht... Jetzt kennt er gleich zwei Möglichkeiten :-D
|
AW: Brauche dringend Hilfe
Du gibts der Variable c keinen Wert. Bei der Addition fehlt
Delphi-Quellcode:
in der ersten Zeile. Bei der Subtraktion ist der gleiche Fehler.
c := strtoint(edit1.text);
|
AW: Brauche dringend Hilfe
Zitat:
"c", also das Ergebnis soll der Benutzer eingeben und dieses soll dann geprüft werden. |
AW: Brauche dringend Hilfe
@himitsu
also in der Ursprungsform fällt c vom Himmel, nur a und b werden mit random(100) vorbelegt, da hat Martin recht. Und patti hat ja auch gleich darauf hingewiesen. Und die Konstruktion (a-b) halte ich auch nicht für so glücklich, da schon eher ABS(a-b) Gruß K-H |
AW: Brauche dringend Hilfe
Danke ich habe pattis Vorschlag
Zitat:
|
AW: Brauche dringend Hilfe
Und das nächste mal bitte mit aussagekräftigem Titel! Darauf wurdest du übrigens schon hingewiesen und innerhalb von 24 Stunden kannst du ihn noch selber ändern, indem du den ersten Beitrag editierst.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz