AGB  ·  Datenschutz  ·  Impressum  







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

Magische 21

Ein Thema von Jansteger · begonnen am 23. Jun 2013 · letzter Beitrag vom 23. Jun 2013
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Kalakmul
Kalakmul

Registriert seit: 11. Apr 2008
27 Beiträge
 
Delphi 2010 Professional
 
#11

AW: Magische 21

  Alt 23. Jun 2013, 09:44
@Sir Rufo
Deine Lösung ist sicher fachmännisch, ich hatte aber bei meiner Antwort versucht, den offenbaren Kenntnisstand des Fragestellers mit einzubeziehen. Man kann schlecht alles auf einmal erklären.
Wer fragt, ist ein Narr für 5 Minuten, wer nicht fragt, ist ein Narr ein Leben lang.
  Mit Zitat antworten Zitat
Benutzerbild von Kalakmul
Kalakmul

Registriert seit: 11. Apr 2008
27 Beiträge
 
Delphi 2010 Professional
 
#12

AW: Magische 21

  Alt 23. Jun 2013, 09:47
Du solltest die Variablen wSumme und wVorher global (im Variablendeklarationteil des Programms) definieren
Und wie mache ich das?
Über "Implementation" die Variablen so deklarieren, wie du es lokal in der Prozedur gemacht hast.
Wer fragt, ist ein Narr für 5 Minuten, wer nicht fragt, ist ein Narr ein Leben lang.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#13

AW: Magische 21

  Alt 23. Jun 2013, 09:49
Du kannst auch einfach deinen Original-Code nehmen und wvorher aus ESumme und nicht Edit1 beziehen. Ansonsten war dein Code schon ganz richtig und der Aufgabe völlig angemessen.

DIe Verwendung von Integer statt real und StrToInt/IntToStr statt der Float-Funktionen wurde ja schon angesprochen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#14

AW: Magische 21

  Alt 23. Jun 2013, 09:57
Ach ja, und für globale Variablen besteht kein Anlass, da du die relevanten Daten ja schon in den Edit-Feldern speicherst.

Natürlich kann man das Problem auch komplexer oder mit unterschiedlichen Paradigma lösen. Aber wenn der ganze relevante Code in eine Handvoll Zeilen im Button-Click Event passt, ist jedes andere Vorgehen Overkill.

Etwas anderes ist es allerdings, wenn das Projekt erweiterbar sein soll, aber dann fehlen dazu die Spezifikationen. Auch wenn du objektorientierte Programmierung lernen willst, kann man das natürlich auch entsprechend lösen. Aber dafür gibt es bessere Beispiele.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#15

AW: Magische 21

  Alt 23. Jun 2013, 10:24
Auch auf die Gefahr hin, der böse zu sein..
Aber ich glaube es hilft ihm mehr, einfach mal zu zeigen, wie der Code umgeschrieben ausschaut
(also Integer, statt real)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  wAugenzahl: Integer;
  wSumme : Integer;
  wVorher : Integer;

begin
  wAugenzahl := random(6) + 1;
  wVorher := StrToInt(Edit1.Text);
  wSumme := wVorher + wAugenzahl;

  ESumme.Text := IntToStr(wSumme);
  Edit1.Text := IntToStr(wAugenzahl);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
end;
SirRufo´s Ausführung ist natürlich die Profi-Ausführung (wenn man das so sagen darf)

[Edit]
Delphi7 kennt schon "TryStrToInt"
Dann würde auch folgende Fehlerbehandlung gehen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  wAugenzahl: Integer;
  wSumme : Integer;
  wVorher : Integer;

begin
  If not TryStrtoInt(Edit1.Text, wVorher) then
    begin
      ShowMessage('Edit1 beinhaltet keine Zahl!');
      exit;
    end;

  wAugenzahl := random(6) + 1;
  wSumme := wVorher + wAugenzahl;

  ESumme.Text := IntToStr(wSumme);
  Edit1.Text := IntToStr(wAugenzahl);
end;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<

Geändert von Helmi (23. Jun 2013 um 10:29 Uhr)
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#16

AW: Magische 21

  Alt 23. Jun 2013, 17:05
Randomize - Reposition the Random number generator next value

randomize; //z.B. in FormCreate einfügen

http://www.delphibasics.co.uk/RTL.asp?Name=Randomize
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 11:49 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