Autor |
Beitrag |
Stread
Beiträge: 188
Win 7
Delphi XE
|
Verfasst: So 22.02.09 16:46
Hi
Ich möchte gerne ein Programm schreiben welches 5 per Checkbox angeklickte Zahlen und 5 Random Zahlen vergleicht.
Für die Checkboxen habe ich bisjetzt das
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm12.Button3Click(Sender: TObject); var checked: array [0..11] of Integer; i: Integer; begin for i := 0 to 11 do checked[i]:=0; if Checkbox1.Checked=true then begin checked[0]:=1; end; if Checkbox2.Checked=true then begin checked[1]:=2; end; |
Das geht bis checked[11] weiter.
Und für die 5 Random Zahlen das hier
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| procedure TForm12.Button4Click(Sender: TObject); var randomzahl: array [0..4] of Integer; begin randomize; randomzahl[0]:=random(5)+1; randomzahl[1]:=random(5)+1; |
Und hier geht es bis randomzahl[4] weiter.
Wie kann ich nun vergleichen welche Zahlen richtig waren und wie kann ich die richtigen Zahlen in ein Edit Feld eintragen?
|
|
jaenicke
Beiträge: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 22.02.09 17:11
Du machst es dir viel zu schwer...
Statt zu fragen was du an dem eigentlich viel einfacheren Quelltext aus dem vorigen Thread nicht verstehst, machst du dir lieber das Leben schwer und schreibst viel mehr Code als nötig.
Und das Thema, dass Delphi-Quelltext 1:
| if Checkbox1.Checked=true then | falsch ist, hatten wir glaube ich auch schon, oder?
Mehr dazu steht hier:
www.delphi-treff.de/...olean-werten/page/4/
|
|
Stread
Beiträge: 188
Win 7
Delphi XE
|
Verfasst: So 22.02.09 18:33
Super. Dank deiner Hilfe bin ich schon viel weiter.
Bei meinem anderem Thread hast du ja selbst gesagt dass ich es nicht verstehe obwohl ich es solange probiert habe. Und da man mir nicht den Quelltext geben wollte probiere ich es jetzt halt auf dieses andere weise in der Hoffnung das man mir bei dem hier hilft.
Ich dachte dieser Ansatz ist einfacher. Wenn wir mal den einen Anfängerfehler weglassen, ist das so falsch?
|
|
jaenicke
Beiträge: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 22.02.09 19:00
Naja, falsch ist das abgesehen von dem "=true" nicht gerade, aber du musst so für jede CheckBox den selben Code schreiben. Das macht es eben sehr aufwendig und unübersichtlich.
Stread hat folgendes geschrieben : | Bei meinem anderem Thread hast du ja selbst gesagt dass ich es nicht verstehe obwohl ich es solange probiert habe. |
Ja, du hast aber auch nicht gefragt was etwas macht. Ich weiß ja nicht, was du daran nicht verstanden hast, wie soll ich es dann erklären?
Ich hatte ja geschrieben: Frag was du nicht verstehst...
Jedenfalls musst du danach das Array durchgehen und vergleichen, ob das andere Array an der Stelle auch ein Häkchen hatte. Bei jeder Fundstelle erhöhst du die Anzahl, am Ende hast du dann die Anzahl der Übereinstimmungen.
|
|
Stread
Beiträge: 188
Win 7
Delphi XE
|
Verfasst: So 22.02.09 19:10
Ich kann ja schlecht jede Zeile fragen. Am besten wäre es gewesen wenn einer mir den richtigen Quelltext zu dem anderen Thread gegeben hätte und nicht immer nur gesagt was ich machen soll oder nur ein Beispeil und ich absolut keine Ahnung habe wie denn.
Und da ich noch ein Anfänger bin ist das "du musst nur die Arrays vergleichen" ja genau das Problem. Ich habe keine Ahnung wie man das macht.
|
|
Chemiker
Beiträge: 194
Erhaltene Danke: 14
XP, Vista 32 Bit, Vista 64 Bit, Win 7 64 Bit
D7, BDS 2006, RAD Studio 2009+C++, Delphi XE2, XE3, VS 2010 Prof.
|
Verfasst: So 22.02.09 19:19
Hallo Stread,
Crossposts: forum.delphi-treff.d...?p=187116#post187116
Bis bald Chemiker
|
|
Stread
Beiträge: 188
Win 7
Delphi XE
|
Verfasst: So 22.02.09 19:30
Danke Chemiker Wäre mir ohne dich garnicht aufgefallen
Ich dachte dass mir wenigstens irgendwo geholfen wird aber ihr mögt mich anscheinend alle nicht
|
|
jaenicke
Beiträge: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 22.02.09 19:35
Stread hat folgendes geschrieben : | Ich kann ja schlecht jede Zeile fragen. |
Doch, was du daran nicht verstehst. Und so viele Zeilen waren das ja auch nicht.
Stread hat folgendes geschrieben : | Und da ich noch ein Anfänger bin ist das "du musst nur die Arrays vergleichen" ja genau das Problem. Ich habe keine Ahnung wie man das macht. |
Indem du jeden Eintrag vergleichst: Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| var IdenticalEntries: Integer; begin IdenticalEntries := 0; for i := 0 to High(Array1) do if Array1[i] = Array2[i] then Inc(IdenticalEntries); | Mit der for-Schleife gehst du jeden Eintrag durch. Wenn der Eintrag in beiden Arrays übereinstimmt, dann erhöhst du die Variable IdenticalEntries. Am Ende steht dann in dieser Variablen die Anzahl der identischen Einträge.
Was Chemiker meinte:
Es ist nicht gerade höflich, wenn man Crossposts nicht angibt. Schließlich könnte es sein, dass man sich Mühe macht das selbe zu schreiben, was in einem anderen Forum schon jemand geschrieben hat.
Wenn man dort nachschauen kann, weil man die Posts untereinander verlinkt, dann ist das zwar auch nicht gern gesehen, aber in Ordnung.
// EDIT:
Und darum ist den anderer Post jetzt auch geschlossen, in dem Forum ist das nämlich in den Regeln verboten, Crossposts nicht anzugeben.
|
|
jaenicke
Beiträge: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 08.03.09 20:30
Ich dachte eigentlich, dass du dich noch einmal melden würdest. Ich hatte auch eine Lösung gebastelt. Die hänge ich jetzt einmal an, ich habe gerade wieder an den Thread gedacht.
Einloggen, um Attachments anzusehen!
|
|
Stread
Beiträge: 188
Win 7
Delphi XE
|
Verfasst: So 08.03.09 20:57
Hey danke das du noch daran gedacht hast. Da ich leider nicht soviel Zeit hatte habe ich es mit vielen if Abfragen gemacht und habe es dann dabei gelassen. Ich zeig das lieber nicht.
Ich habe es mir kurz angeschaut und muss sagen: Top Danke, aus dem Programm werde ich noch viel lernen können.
|
|