Autor Beitrag
roadster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17


D 7 PE
BeitragVerfasst: So 12.02.06 23:26 
Hallo,

wir versuchen gerade ein kleines Programm das eine der vier Grundrechenarten festlegt,
eine einfache Aufgabe daraus formuliert und mit einer Eingabe vergleicht.

Irgendwie stellen wir und zu d....!

Kann jemand helfen ?

Danke

ausblenden volle Höhe 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:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
 public

    Zahl1, zahl2, Rechenart, eingabe : integer;
    Ergebnis                          : real;
    art : string;
    { Public-Deklarationen }
  end;



procedure TForm4.StartClick(Sender: TObject);
begin


  Rechenart := random(4);
  case rechenart of
    0:  art := '+';
    1:  art := '-';
    2:  art := '*';
    3:  art := '/';
  end;

  eingabe:= strtoint(edit1.Text);
  Zahl1     := random (1000)+1 ;
  Zahl2     := random (1000)+1 ;
  case rechenart of
    0:  Ergebnis := Zahl1 + Zahl2;
    1:  Ergebnis := Zahl1 - Zahl2;
    2:  Ergebnis := Zahl1 * Zahl2;
    3:  Ergebnis := Zahl1 div Zahl2;
  end;
  label1.Caption := inttostr(zahl1) + '  '
  + '  '+ art+ '  ' + inttostr(zahl2);
  // test
  label3.Caption := floattostr(ergebnis);
  try
  //eingabe:= strtoint(edit1.Text);

  if ergebnis = eingabe then
    label2.Caption := 'ok'
  else
    label2.Caption := 'falsch';

except
  end;
end;


end.


Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt


Zuletzt bearbeitet von roadster am So 12.02.06 23:50, insgesamt 1-mal bearbeitet
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 12.02.06 23:40 
Moin!

Der entscheidende Punkt ist, dass du das ganze auf zwei Buttons aufteilen mußt:
ausblenden volle Höhe 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:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
  public
    Zahl1, Zahl2, Rechenart, Eingabe, Ergebnis: Integer;
    Art: Char;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Rechenaufgabe erzeugen
procedure TForm1.Button1Click(Sender: TObject);
begin
  Rechenart := Random(4);
  case Rechenart of
    0:  Art := '+';
    1:  Art := '-';
    2:  Art := '*';
    3:  Art := '/';
  end;
  Zahl1 := Random(1000) +1;
  Zahl2 := Random(1000) +1;
  case Rechenart of
    0:  Ergebnis := Zahl1 + Zahl2;
    1:  Ergebnis := Zahl1 - Zahl2;
    2:  Ergebnis := Zahl1 * Zahl2;
    3:  Ergebnis := Zahl1 div Zahl2;
  end;
  Label1.Caption := IntToStr(Zahl1)+' '+Art+' '+IntToStr(Zahl2);
  Label3.Caption := IntToStr(Ergebnis);
end;

// Eingabe prüfen
procedure TForm1.Button2Click(Sender: TObject);
begin
  try
    Eingabe := StrToInt(Edit1.Text);
    if (Ergebnis = Eingabe) then
      Label2.Caption := 'ok'
    else
      Label2.Caption := 'falsch';
  except
  end;
end;

Mit dem einen Button erzeugst du die Aufgabe, mit dem Anderen prüfst du die Eingabe.

cu
Narses
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: So 12.02.06 23:44 
Hallo,

bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image klicken und den Titel ändern. Dank Dir!

Viele Grüße,

Uwe
roadster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17


D 7 PE
BeitragVerfasst: So 12.02.06 23:57 
Vielen Dank,

gibt es eine Möglichkeit, dass der Programmablauf im Feld Edit1 stoppt
und erst nach Beendigung mit "Return" der Vergleich "Eingabe"="Ergebnis" stattfindet?

PS:

Sorry, mir ist kein besserer Titel eingefallen.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 13.02.06 00:14 
Moin!

user profile iconroadster hat folgendes geschrieben:
gibt es eine Möglichkeit, dass der Programmablauf im Feld Edit1 stoppt
und erst nach Beendigung mit "Return" der Vergleich "Eingabe"="Ergebnis" stattfindet?

Nein, da ist auf jeden Fall eine weitere Ereignis-Prozedur für fällig; ob jetzt ein zweiter Button oder ein KeyPress-Handler ist da eigentlich egal. Du hast zwei Ereignisse: Aufgabe stellen und Lösung bewerten, dann brauchst du auch zwei Prozeduren dafür.

cu
Narses
roadster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17


D 7 PE
BeitragVerfasst: Mo 13.02.06 10:08 
Vielen Dank für Deine Mühe.

Gruß

Peter