| Autor |
Beitrag |
MCEber
Hält's aus hier
Beiträge: 5
|
Verfasst: Mo 08.03.10 18:10
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)
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
Einloggen, um Attachments anzusehen!
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Mo 08.03.10 18:16
Hallo und  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
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
MCEber 
Hält's aus hier
Beiträge: 5
|
Verfasst: 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
      
Beiträge: 186
Erhaltene Danke: 2
|
Verfasst: 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 
Hält's aus hier
Beiträge: 5
|
Verfasst: 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
      
Beiträge: 1747
Erhaltene Danke: 15
Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
|
Verfasst: 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; |
Zuletzt bearbeitet von Jakob_Ullmann am Mo 08.03.10 19:38, insgesamt 1-mal bearbeitet
|
|
martin300
      
Beiträge: 186
Erhaltene Danke: 2
|
Verfasst: 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:
www.delphi-treff.de/...ascal/verzweigungen/
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Mo 08.03.10 19:37
martin300 hat folgendes geschrieben : |
(4): wäre mit einer if then else Schleife möglich. |
siehe: www.if-schleife.de/
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Jakob_Ullmann
      
Beiträge: 1747
Erhaltene Danke: 15
Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
|
Verfasst: 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
      
Beiträge: 186
Erhaltene Danke: 2
|
Verfasst: 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 
Hält's aus hier
Beiträge: 5
|
Verfasst: 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 
Hält's aus hier
Beiträge: 5
|
Verfasst: Do 11.03.10 15:23
Also,
hier der Quelltext des Rechentrainers:
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
|
|