AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bruchrechenprogramm mit Selbsteingabe

Ein Thema von timmy19 · begonnen am 22. Dez 2011 · letzter Beitrag vom 6. Mär 2012
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
timmy19

Registriert seit: 18. Nov 2011
28 Beiträge
 
#1

Bruchrechenprogramm mit Selbsteingabe

  Alt 22. Dez 2011, 13:32
Delphi-Version: 5
Hallo,

ich habe mal wieder ein Problem.

Ich möchte ein Bruchrechenprogramm mit Selbsteingabe schreiben.
Habe schon die Randomize-Ausgabe von Brüchen.

Nun möchte ich, das man die Lösung selbst eingeben kann und das Programm dann nur noch überprüft.
Zerbreche mir seit Tagen den Kopf darüber, wie das gehen soll.

Also wende ich mich an euch. Wie geht das?

Gruß und im Hoffen auf eine Antwort
timmy19


PS: Hier mal mein bisheriger Quelltext:


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,d,e,f, gggt : integer ;
begin
a:= IntEdit1.Value ;
b:= IntEdit2.Value ;
c:=IntEdit3.value ;
d:= IntEdit4.Value ;
e:= IntEdit5.Value ;
f:= IntEdit6.Value ;

randomize ;
a:=random(10) ;
IntEdit1.Value:= a ;

randomize;
b:= random(10) ;
IntEdit2.Value:= b ;

randomize;
c:= random(6) ;
IntEdit3.Value:= c ;

randomize;
d:= random(10) ;
IntEdit4.Value:= d ;




ggT(c,d, gggT) ;


IntEdit6.Value:= gggt ;

IntEdit5.Value := IntEdit1.Value + IntEdit2.Value;






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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Bruchrechenprogramm mit Selbsteingabe

  Alt 22. Dez 2011, 14:03
Hab ich jetzt nicht ganz verstanden. Du gibst die Rechenaufgabe vor, der Benutzer gibt seine Lösung ein, und Du überprüfst die dann auf richtig oder falsch? Übrigens sollte man Randomize einmalig im Programm aufrufen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
timmy19

Registriert seit: 18. Nov 2011
28 Beiträge
 
#3

AW: Bruchrechenprogramm mit Selbsteingabe

  Alt 22. Dez 2011, 14:34
Hab ich jetzt nicht ganz verstanden. Du gibst die Rechenaufgabe vor, der Benutzer gibt seine Lösung ein, und Du überprüfst die dann auf richtig oder falsch? Übrigens sollte man Randomize einmalig im Programm aufrufen.

Genau! Kannst du mir da weiterhelfen?

OK, ich lösch die anderen randomize!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Bruchrechenprogramm mit Selbsteingabe

  Alt 22. Dez 2011, 14:40
Definiere die beiden Zahlen als Felder Deines Formulars und stelle sie in der Aufgabe dar. Bei der Lösung errechenst Du das Ergebnis und vergleichst mit der Eingabe... fertig.
Delphi-Quellcode:
type
  TDeinForm = class(TForm)
  private
    Zahl1, Zahl2: integer;
  ...
  end;

procedure TDeinForm.NeueAufgabe;
begin
  Zahl1 := Random(...);
  Zahl2 := Random(...);
  EditZahl1.Text := IntToStr(Zahl1);
  EditZahl2.Text := IntToStr(Zahl2);
end;

procedure TDeinForm.ButtonLoesungClick(Sender: TObject);
var
  Ergebnis: integer;
begin
  Ergebnis := Berechnung_mit_Zahl1_und_Zahl2;
  if IntToStr(Ergebnis) = EditLoesung.Text then
    Applaus;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
timmy19

Registriert seit: 18. Nov 2011
28 Beiträge
 
#5

AW: Bruchrechenprogramm mit Selbsteingabe

  Alt 22. Dez 2011, 15:21
OK, soweit bin ich jetzt. Nun:

Wie überprüfe ich dann das Ergebnis eines Bruchs? Weil der Besteht ja aus 2 Editfeldern...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Bruchrechenprogramm mit Selbsteingabe

  Alt 22. Dez 2011, 15:27
Ich kann Dir nicht folgen. Du hast doch beide Zahlen selbst zugewiesen, da musst Du doch nur das Ergebnis errechnen und mit der Eingabe vergleichen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
timmy19

Registriert seit: 18. Nov 2011
28 Beiträge
 
#7

AW: Bruchrechenprogramm mit Selbsteingabe

  Alt 22. Dez 2011, 15:38
Ich kann Dir nicht folgen. Du hast doch beide Zahlen selbst zugewiesen, da musst Du doch nur das Ergebnis errechnen und mit der Eingabe vergleichen.
Ich zeig mal kurz den Quelltext:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin

randomize;

Zahl1:= random(10) ;
Zahl2:= random(10) ;
Zahl3:=random(6) ;
Zahl4:=random(6) ;

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

end;

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

Ergebnis:= Zahl1 + Zahl2 ;

ggT(c,d, gggT) ;


EditZahl6.Text:= gggt ;

If IntToStr(Ergebnis) = EditZahl5.Text and InttoStr(ggT) = EditZahl6.Text then
Showmessage('Sehr gut gemacht, weiter so!!!') ;


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.
In Zeile 74, "ggT(c,d,gggT)" zeigt er mir noch die Fehler "Operator oder Semikolon fehlt" und "Anweisung erforderlich, aber Ausdruck vom Typ 'Integer" gefunden an.

Und wie siehts aus mit dem Vergleich der Ergbnisse, geht das so?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Bruchrechenprogramm mit Selbsteingabe

  Alt 22. Dez 2011, 15:41
If (IntToStr(Ergebnis) = EditZahl5.Text) and (InttoStr(ggT) = EditZahl6.Text) then Bei mehreren Vergleichen mit Operatoren musst Du die Einzelvergleiche in Klammern setzen.

[edit] Schlecht ausgedrückt. Besser: bei Verknüpfung mehrerer Bedingungen musst Du mindestens diejenigen, die Vergleichsoperatoren verwenden, in Klammern setzen.

Delphi-Quellcode:
if Bedingung1 and Bedingung2 then //geht
if Wert = 1 then //geht
if Wert1 = 1 and Wert 2 = 42 then //geht nicht
if (Wert1 = 1) and (Wert2 = 42) then //geht
if Bedingung1 and (Wert1 = 100) then //geht
if (Bedingung1) and (Wert1 = 100) then //geht
[/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH (22. Dez 2011 um 15:51 Uhr)
  Mit Zitat antworten Zitat
timmy19

Registriert seit: 18. Nov 2011
28 Beiträge
 
#9

AW: Bruchrechenprogramm mit Selbsteingabe

  Alt 22. Dez 2011, 15:50
If (IntToStr(Ergebnis) = EditZahl5.Text) and (InttoStr(ggT) = EditZahl6.Text) then Bei mehreren Vergleichen mit Operatoren musst Du die Einzelvergleiche in Klammern setzen.

Danke. Trotzdem werden nun noch 3 Fehler angezeigt, welche wären:

-Weiterhin "Operator oder Semikolon fehlt" und "Anweisung erforderlich,aber Ausdruck vom Typ Integer gefunden" bei "ggTeiler(c,d,gggT)"
- "Nicht genügend wirkliche Parameter" beim Vergleich.

danke, das du mir so hilfst!
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Bruchrechenprogramm mit Selbsteingabe

  Alt 22. Dez 2011, 15:55
ggT(c,d, gggT) ; ist eine Funktion oder Prozedur?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:07 Uhr.
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