Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Bruchrechenprogramm mit Selbsteingabe (https://www.delphipraxis.net/165299-bruchrechenprogramm-mit-selbsteingabe.html)

timmy19 22. Dez 2011 17:39

AW: Bruchrechenprogramm mit Selbsteingabe
 
Zitat:

Zitat von DeddyH (Beitrag 1142798)
Woher soll ich das wissen, ich weiß doch nicht, was Du geschrieben hast?

Hoffe ich habe es richtig gemacht, habs so geschrieben:

Delphi-Quellcode:
   if IntToStr(Ergebnis) = EditZahl5.Text then
  begin
    if InttoStr(gggT) = EditZahl6.Text then
  Showmessage('Sehr gut gemacht, weiter so!!!')
    else
    showmessage('Das war nicht richtig, versuch es noch einmal!')    ;
  end
else
showmessage('Fast richtig, probier es noch einmal!')     ;
  begin
    if InttoStr(gggT) = EditZahl6.Text then
     showmessage('Der Nenner ist richtig, nur der Zähler ist falsch!')
    else
     showmessage ('Das war nicht richtig, versuch es noch einmal!') ;
  end;

DeddyH 22. Dez 2011 17:43

AW: Bruchrechenprogramm mit Selbsteingabe
 
Nee, nicht ganz. Nochmal:
Delphi-Quellcode:
if Bedingung1 then
  begin
    if Bedingung2 then
      //beides richtig
    else
      //nur Bedingung1 richtig, Bedingung2 falsch
  end
else
  begin
    if Bedingung2 then
      //Bedingung1 falsch, Bedingung2 richtig
    else
      //komplett falsch
  end;

timmy19 22. Dez 2011 17:50

AW: Bruchrechenprogramm mit Selbsteingabe
 
Zumindest gibt er mir jetzt nur eine showmessage aus. Aber die "komplett richtig" showmessage will er mir immer noch nicht ausgeben. :(

Delphi-Quellcode:
  if IntToStr(Ergebnis) = EditZahl5.Text then
  begin
    if InttoStr(gggT) = EditZahl6.Text then
    showmessage('Sehr gut gemacht!')
    else
     showmessage('Das ist nicht ganz richtig, versuch es noch einmal')
  end
else
  begin
    if InttoStr(gggT) = EditZahl6.Text then
    showmessage('Das ist nicht ganz ricthig, versuch es noch einmal')
    else
    showmessage('Das ist leider falsch, versuch es doch noch einmal')
  end;

end;

DeddyH 22. Dez 2011 17:52

AW: Bruchrechenprogramm mit Selbsteingabe
 
Dann musst Du einmal die Werte im Debugger vergleichen, logisch ist das zumindest korrekt so.

timmy19 16. Jan 2012 17:34

AW: Bruchrechenprogramm mit Selbsteingabe
 
Jetzt komm ich nochmal mit dem Programm.
Möchte das Programm erweitern mit Subtraktion und Muliplikation.
Habe das MainMenu auch schon erstellt. Aber wie mach ich es jetzt, das dich die Vorzeichen ändern und man dann das jeweilige rechnen kann, wenn ich auf den Teil im MainMenu drücke.

Habe es bisher so:

Delphi-Quellcode:
procedure TForm1.Addition1Click(Sender: TObject);
begin
Label5.Enabled:= true ;
Label6.Enabled:= false;
Label7.Enabled:= false;

  procedure TForm1.Button1Click(Sender: TObject);
begin



randomize;

Zahl1:= random(9)+1  ;
Zahl2:= random(9)+1  ;
Zahl3:=random(4) +2     ;
Zahl4:=random(4) +2      ;

EditZahl1.Text:= IntToStr(Zahl1) ;
EditZahl2.Text:= IntToStr(Zahl2) ;
EditZahl3.Text:= IntToStr(Zahl3) ;
EditZahl4.Text:= IntToStr(Zahl4)  ;

end;

procedure TForm1.Button2Click(Sender: TObject);
var Ergebnis, gggT:integer ;
begin

  Ergebnis:= Zahl1 + Zahl2 ;

  ggT(Zahl1, Zahl2, gggT) ;

  if IntToStr(Ergebnis) = EditZahl5.Text then
  begin
    if InttoStr(gggT) = EditZahl6.Text then
    showmessage('Sehr gut gemacht!')
    else
     showmessage('Das ist nicht ganz richtig, versuch es noch einmal!')
  end
else
  begin
    if InttoStr(gggT) = EditZahl6.Text then
    showmessage('Das ist nicht ganz richtig, versuch es noch einmal!')
    else
    showmessage('Das ist leider falsch, versuch es doch noch einmal!')
  end;

end;

procedure TForm1.Subtraktion1Click(Sender: TObject);
begin
 Label5.Enabled:= false;
Label6.Enabled:= True ;
Label7.Enabled:= false;

 procedure TForm1.Button1Click(Sender: TObject);
begin

randomize;

Zahl1:= random(9)+1  ;
Zahl2:= random(9)+1  ;
Zahl3:=random(4) +2     ;
Zahl4:=random(4) +2      ;

EditZahl1.Text:= IntToStr(Zahl1) ;
EditZahl2.Text:= IntToStr(Zahl2) ;
EditZahl3.Text:= IntToStr(Zahl3) ;
EditZahl4.Text:= IntToStr(Zahl4)  ;

end;

procedure TForm1.Button2Click(Sender: TObject);
var Ergebnis, gggT:integer ;
begin

  Ergebnis:= Zahl1 + Zahl2 ;

  ggT(Zahl1, Zahl2, gggT) ;

  if IntToStr(Ergebnis) = EditZahl5.Text then
  begin
    if InttoStr(gggT) = EditZahl6.Text then
    showmessage('Sehr gut gemacht!')
    else
     showmessage('Das ist nicht ganz richtig, versuch es noch einmal!')
  end
else
  begin
    if InttoStr(gggT) = EditZahl6.Text then
    showmessage('Das ist nicht ganz richtig, versuch es noch einmal!')
    else
    showmessage('Das ist leider falsch, versuch es doch noch einmal!')
  end;

procedure TForm1.ggT(c,d:integer; var ggTeiler: integer);
var merk: integer;
begin
repeat

merk:= c mod d    ;
c:= d ;
d:=merk

until d= 0  ;
ggTeiler:=c


end; {of ggT}
end;


end.
Ist wahrscheinlich viel zu aufwendig gemacht, vllt. könnt ihr mir ja weiterhelfen...

himitsu 16. Jan 2012 18:51

AW: Bruchrechenprogramm mit Selbsteingabe
 
Delphi-Referenz durchsuchenRandomize
Zitat:

Zitat von OH: Randomize
Kombinieren Sie in einer Schleife nicht den Aufruf von Randomize mit Aufrufen der Funktion Random. Normalerweise wird Randomize vor den Aufrufen von Random nur einmal aufgerufen.

Also nur einmal bei Programmstart aufrufen und nicht bei jedem Buttonklick erneut.

Zitat:

Delphi-Quellcode:
{of ggT}

Mit einer halbwegs ordentlichen Codeformatierung und einem übersichtlichen Codeaufbau ist sowas vollkommen unnötig.

Insgesammt ist vorallem die Codeeinrückung grauenhaft.
Es würde dann sogar auffallen, daß da so Einiges nicht stimmt. (z.B. mehrere fehlende ENDs)

Laut deiner Beschreibung klingt es so, als wenn das Ganze erstmal funktioniert, bzw sich winigstens kompilieren ließe.
Von einer Fehlerbeschreibung ist nichts zu finden oder zu erahnen.
(aber auf den ersten Blick müßte da sofort der Compiler aufgeben)

Vorallem daß einige Dinge doppelt vorhanden sind (z.B. die komplette Button1-Klickmethode), das kann nicht ganz richtig sein.

Zitat:

Delphi-Quellcode:
if InttoStr(gggT) = EditZahl6.Text then

Besser andersrum
Delphi-Quellcode:
if gggT = StrToInt(EditZahl6.Text) then
, denn du willst ja eigentlich den Wert der Zahl vergleichen und nicht die Darstellung der Zahl.

bernhard_LA 6. Mär 2012 19:03

AW: Bruchrechenprogramm mit Selbsteingabe
 
der link geht vermutlich über die Anfrage hinaus , trotzdem ..... http://www.delphi-treff.de/tutorials...e-am-beispiel/


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:36 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz