Entwickler-Ecke
Sonstiges (Delphi) - Rechentrainer (HA 11 Klasse) Delphi
MCEber - Mo 08.03.10 18:10
Titel: Rechentrainer (HA 11 Klasse) Delphi
Hallo,
ich bin neu hier (und völliger Anfänger) und mir wurde das Forum hier empfohlen.
Vielleicht könnt ihr mir helfen?
Ich soll einen Rechentrainer für Addition erstellen und ich auch einen kleinen Ansatz:
(Ich hoffe es ist nicht falch den Quellcode einfach zu posten)
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: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Edit1: TEdit; Edit2: TEdit; Label6: TLabel; Edit3: TEdit; Label7: TLabel; Button1: TButton; Button2: TButton; Edit4: TEdit; Label8: TLabel; Label9: TLabel; Button3: TButton; procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); Var x,y,z:double; begin if x+y=z then edi4.Text:='Richtig' if x+y (nicht) z edit4.Text='Falch'
end;
procedure TForm1.Button2Click(Sender: TObject); begin Application.Terminate; end;
procedure TForm1.Button3Click(Sender: TObject); Var x,y,z:double; begin edit3.Clear; edit4.Clear; randomize; x := random (100+1); y := random (100+1); x := StrtoFloat(edit1.Text); y := StrtoFloat(edit2.Text);
end;
end. |
Hier ist noch das Bild vom Interface
Moderiert von
Narses: Bild als Anhang hochgeladen.
Ich bedanke mich im Voraus :)
Gruß MCEber
Moderiert von
Narses: Delphi-Tags hinzugefügt
elundril - Mo 08.03.10 18:16
Hallo und :welcome: im Delphi-Forum!
Wobei sollen wir dir denn genau helfen? Wo stecken deine Probleme?
bitte markiere deine Quelltext mit den [Delphi]Dein Quelltext[/delphi]-Tags.
lg elundril
MCEber - Mo 08.03.10 18:32
Vielen Dank!
Mein Problem ist das ich einen Error im Momment bekomme wenn ich auf "Neu" drücke das im Edit1.Text Feld nichts (also " ") steht.
Die Beenden Funktion funktioniert, aber bei der Vergleichen Fuktion nicht fuktioniert und ich nicht weis nicht wie ich das anstellen soll.
Gruß MCEber
PS: Danke für den Tipp mit dem Tags.
Werde ich nächstes mal verwenden!
martin300 - Mo 08.03.10 18:38
Hallo,
Button Neu:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Button3Click(Sender: TObject); Var x,y,z:double; begin edit3.Clear; edit4.Clear; randomize; x := random (100+1); y := random (100+1); x := StrtoFloat(edit1.Text); y := StrtoFloat(edit2.Text); end; |
Bei (1) was willst du da machen?
Bei (2) wo sind die Variablen gültig? Werden sie noch an einer anderen Stelle benötigt? Was passiert mit denen jetzt?
Moderiert von
Narses: Hinweise im QT als Kommentar markiert.
MCEber - Mo 08.03.10 18:46
Hallo, :)
martin300 hat folgendes geschrieben : |
| Bei (1) was willst du da machen? |
Hier dachte ich das dieser Befehl die Variable X in Edit1.Text ausgegeben wird (Also die Zufallszahl).
martin300 hat folgendes geschrieben : |
| Bei (2) wo sind die Variablen gültig? Werden sie noch an einer anderen Stelle benötigt? Was passiert mit denen jetzt? |
Ich glaube ich hätte die Variablen in den Hauptteil schreiben müssen weil ich die Variablen noch an anderen Stellen brauche.
Gruß MCEber
Moderiert von
Narses: Zitate kenntlich gemacht.
Jakob_Ullmann - Mo 08.03.10 19:31
(2): richtig. Wenn du lokal eine Variable definierst, dann gilt si nur und genau in der Prozedur / Funktion. Aber dann hat sie auch vor allem anderen Vorrang. Wesentlich besser als die globale Definition ist jedoch diese hier:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| type TForm1 = class(TForm) private ... public ... x, y, z: Double; end; |
(1) Bei einer Zuweisung mit
:= wird in Delphi (und auch in allen anderen Programmiersprachen, die ich kenne) der linken Seite die rechte zugewiesen, nicht anders herum! Beide Versionen sind nämlich nicht gleich:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| var a, b, c: Integer; begin a := 1; b := 5;
a := b;
a := 1; b := 5; b := a; end; |
martin300 - Mo 08.03.10 19:35
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.Button1Click(Sender: TObject); Var x,y,z:double; <-- (3) begin if x+y=z then edi4.Text:='Richtig' <--(4) if x+y (nicht) z edit4.Text='Falch' end; |
(3): müsstest du eigentlich schon gelöst haben.
(4): wäre mit einer if then else Schleife möglich. siehe:
http://www.delphi-treff.de/sprachen/object-pascal/verzweigungen/
Jakob_Ullmann - Mo 08.03.10 19:41
martin300 hat folgendes geschrieben : |
(4): wäre mit einer if then else Schleife möglich. |
Du bist jetzt schon über ein Jahr dabei? Autsch...
Die Struktur if-then-else weist nicht die Merkmale einer Schleife auf, nämlich, dass ein bestimmter Code mehrfach ausgeführt wird! Die Tatsache, dass du mit Labels, Gotos und IF-THEN eine schleifenartige Konstruktion machen kannst, ändert daran nichts.
martin300 - Mo 08.03.10 19:49
Also war das doch nicht meine Eigenkreation und es gibt eine Lobby die sich dafür, öh dagegen stark macht. :(
MCEber - Do 11.03.10 01:15
Danke für eure Tipps,
ich werde dann morgen posten was ich eigentlich hätte erstellen wollen (was die HA war) :)
Gruß MCEber
MCEber - Do 11.03.10 15:23
Also,
hier der Quelltext des Rechentrainers:
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: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Edit1: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; Label6: TLabel; Label8: TLabel; Label9: TLabel; Label7: TLabel; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); private public end;
var Form1: TForm1; implementation
{$R *.dfm} Var a,b,c,d,e:integer;
procedure TForm1.Button1Click(Sender: TObject); begin d:=d+1; label9.Caption:=(inttostr(d));
Button2.Enabled:=true; edit1.clear; label2.Caption:=' '; label4.Caption:=' '; a:=random(99)+1; b:=random(99)+1; label2.caption:=(IntToStr(a)); label4.caption:=(IntToStr(b)); end;
procedure TForm1.FormCreate(Sender: TObject); begin randomize; end;
procedure TForm1.Button3Click(Sender: TObject); begin Application.terminate; end;
procedure TForm1.Button2Click(Sender: TObject); begin Button2.Enabled:=false; if edit1.text=(inttostr(a+b)) then label8.Caption:='Die Antwort '+(inttostr(a+b))+' ist richtig!' else label8.Caption:='Falsch! Die richtige Antwort ist '+(inttostr(a+b)); end;
end. |
Falls jemand interesse an der exe hat kann er mir eine Anfrage senden :)
Gruß MCEber
Edit: aus Dephli Delphi gemacht
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!