Autor Beitrag
Mühli
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 03.03.11 14:00 
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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: 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
ausblenden Delphi-Quelltext
1:
Result := (Antwort = Array2[NrFrage]);					


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
Mühli Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 03.03.11 14:31 
Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

??????????????????????????????
Kay E.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 118



BeitragVerfasst: 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
ausblenden 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

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: Do 03.03.11 15:17 
user profile iconKay E. hat folgendes geschrieben Zum zitierten Posting springen:
Ich übersetz das mal.
Wenn du jetzt eine Frage mit einer Antwort vergleichen willst, kannst du das machen mit
ausblenden 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

ausblenden Delphi-Quelltext
1:
2:
3:
4:
function AnswerCorrect(ID: Byte): Boolean;
begin
  result := Array1[ID] = Array2[ID];
end;


;) LG,

FinnO
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: 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

ausblenden 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

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Do 03.03.11 15:56 
Oder ein Array of Record ((ID)/Frage/Antwort)

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Kay E.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 118



BeitragVerfasst: 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