Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Zwei Arrays vergleichen - aber wie ??
Mühli - Do 03.03.11 14:00
Titel: Zwei Arrays vergleichen - aber wie ??
Hallo Leute!
Also ich habe folgende Aufgabe zu lösen und benötige ihre Hilfe: Ich muss ein Quiz erstellen. Ich habe 2 Arrays definiert von 0 - 266 und es soll array 1 mit array 2 vergleichen (die richtige antwort trägt die gleiche arrayzahl, d.h. die richtige antwort auf frage 1 ist die gleiche zahl wie die frage (z.B. frage Fragen[32] - antwort Antwort[32])). Wie vergleiche ich das ???
Ich hoffe ihr könnt mir helfen
lg
zuma - Do 03.03.11 14:27
wenn ichs richtig verstanden hab, ist das also in etwa so aufgebaut:
Frage1 := Array1[0];
Lösung zu Frage 1 := Array2[0];
ob nun richtig geantwortet wurde, ist doch ganz einfach
Delphi-Quelltext
1:
| Result := (Antwort = Array2[NrFrage]); |
Moderiert von
Narses: Delphi-Tags hinzugefügt
Mühli - Do 03.03.11 14:31
Moderiert von
Narses: Komplett-Zitat des letzten Beitrags entfernt.
??????????????????????????????
Kay E. - Do 03.03.11 14:55
Ich übersetz das mal.
Er ging davon aus, dass deine Antworten zu deinen Fragen in Array2 stehen. Die Antworten, die der Benutzer gibt, werden in Array1 eingetragen an die gleichen Stellen.
Wenn du jetzt eine Frage mit einer Antwort vergleichen willst, kannst du das machen mit
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| function AnswerCorrect(ID: Byte): Boolean; begin if array1[ID] = array2[ID] then result := true else result := false; end; |
Zuma hat in der letzten Zeile das ganze nur stark vereinfacht von der Syntax her, wobei "antwort" bei mir "array1" ist. Das wäre dann
Delphi-Quelltext
1:
| array1[NrFrage] = Array2[NrFrage] |
Das ist ein Vergleich und liefert eben True oder False zurück, wie in der If-bedingung. Und dieses Ergebnis weisst er result zu.
Grüße Kay
FinnO - Do 03.03.11 15:17
Kay E. hat folgendes geschrieben : |
Ich übersetz das mal.
Wenn du jetzt eine Frage mit einer Antwort vergleichen willst, kannst du das machen mit
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| function AnswerCorrect(ID: Byte): Boolean; begin if array1[ID] = array2[ID] then result := true else result := false; end; |
|
Warum nicht gleich
Delphi-Quelltext
1: 2: 3: 4:
| function AnswerCorrect(ID: Byte): Boolean; begin result := Array1[ID] = Array2[ID]; end; |
;) LG,
FinnO
zuma - Do 03.03.11 15:45
hmm... wenn ich die ausgangslage richtig gelesen hab, hat er nur 2 Array's, eines mit den Fragen und eines mit den Lösungen, wie die Antworten erfasst werden, hat er gar nicht erwähnt, daher ging ich von z.b. nem edit aus. ich versuchs mal bildlich darzustellen
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| IA / AF / AL / Userantwort
0 / 1+1 / 2 / 3 1 / 1+2 / 3 / 3 2 / 1+3 / 4 / 5
... usw, etc, pp
IA = Index Array AF = Array mit Fragen AL = Array mit richtigen Antworten (Lösungen) |
In AF an Index 1 steht also die Frage 1+2,
In AL an Index 1 steht die korrekte Antwort
um nun rauszufinden, ob der User richtig geantwortet hat, muss du nur wissen,
welche Antwort er auf welche Fragennummer gegeben hat, und kannst dann mit
Result := (AL[NrFrage] = Antwort);
den Vergleich machen
bummi - Do 03.03.11 15:56
Oder ein Array of Record ((ID)/Frage/Antwort)
Kay E. - Do 03.03.11 17:37
@ Finno: Ich hab's ja extra mal ausgeschrieben, weil OP obv mit dem Einzeiler nicht zurecht kam. Ich habs dann drunter aber auch erklärt, warum das auch mit dem Einzeiler geht und was der macht ;)
Grüße Kay
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!