Autor |
Beitrag |
Carolaiin
Hält's aus hier
Beiträge: 3
|
Verfasst: Do 01.03.12 17:53
Hey,
Ich habe seit 2 Jahren Informatik in der Schule, leider dabei aber noch nicht wirklich gelernt mit Delphi um zugehen, da unser Lehrer der Meinung ist das er uns nichts beibringen müsse weil ja eh alles im Internet steht. Um zum Punkt zu kommen soll jeder unseres Kurses ein Spiel programmieren. Ich habe die Aufgabe ein Quiz zu programmieren. Die Schwierigkeit der Fragen soll nach und nach erhöht werden.Das Quiz soll aus 15 Fragen bestehen. Ich habe bereits etwas Quelltext, jedoch kommt immer wieder eine Fehlermeldung. Habe bereits meinen Informatik Lehrer drüber schauen lassen, der hat aber auch keinen Fehler gefunden. Deswegen will ich es nun hier versuchen und hoffe , dass man mir weiter helfen kann
Hier mal der Quelltext der bis jetzt vorhanden ist.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59:
| var feld: array [1..15,1..6] of String;
function quizfragen(n,m: Integer): string;
begin feld[1,1]:='Aus welchem Pflanzenteil der Kamille wird Tee hergestellt?'; feld[2,1]:='Wie heißt der höchste Berg Deutschlands?'; feld[3,1]:='Was sind Pumps?';
end;
function quizantwort(n,m: Integer): string;
begin feld[1,2]:='Blüte' ; feld[1,3]:='Stiel' ; feld[1,4]:='Blätter' ; feld[1,5]:='Wurzel' ; feld[2,2]:='Zugspitze'; feld[2,3]:='Schneefernerkopf'; feld[2,4]:='Mount Everest'; feld[2,5]:='Ätna'; feld[3,2]:='Damenschuhe'; feld[3,3]:='Werkzeuge'; feld[3,4]:='Gewürze'; feld[3,5]:='Seen';
end;
function quizrichtig(n,m: Integer): string;
begin feld[1,6]:='Blüte'; feld[2,6]:='Zugspitze'; feld[3,6]:='Damenschuhe';
end;
procedure TForm1.BitBtn1Click(Sender: TObject); var n : integer; quizfragen,quizantwort : string; begin randomize; n:=random(3)+1; Panel1.Caption:=quizfragen (feld[n,1]); Checkboxa.caption:=quizantwort(feld[n,2]); Checkboxb.Caption:=quizantwort(feld[n,3]); Checkboxc.caption:=quizantwort(feld[n,4]); Checkboxd.Caption:=quizantwort(feld[n,5]);
if Checkboxa.checked then showmessage('Richtig');
end; |
In dieser Zeile Panel1.Caption:=quizfragen (feld[n,1]); kommt dann immer der Fehler
Zitat: | Semikolon oder anderer Operator fehlt
|
Hoffe ihr könnt mir irgendwie helfen, und ihr blickt einigermaßen durch
Moderiert von Narses: Delphi-Tags hinzugefügt
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Do 01.03.12 18:06
quizfragen erwartet 2 Integerparameter (n,m: Integer)
Du übergibst aber einen String z.B. feld[n,1]
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
Delphi-Laie
      
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Do 01.03.12 19:04
Carolaiin hat folgendes geschrieben : | Ich habe seit 2 Jahren Informatik in der Schule, leider dabei aber noch nicht wirklich gelernt mit Delphi um zugehen, da unser Lehrer der Meinung ist das er uns nichts beibringen müsse weil ja eh alles im Internet steht. |
Das bezweifele ich. Ob da wohl Frustration dieser m.E. etwas anmaßenden Einschätzung vorausging? Es liest sich so, als täte er gar nichts, und das wäre ein massiver Dienstverstoß (stimmt also höchstwahrscheinlich nicht). Vermutlich bist Du Gymnasiast (oder anderweitiger Abiturient), und Euer Lehrer will Euch zu selbständiger Arbeit(sweise) erziehen (vielleicht (!) sich auch ein wenig Arbeit vom Halse halten). Aus Diskussionen erfuhr ich, daß im Informatikstudium auch keine Programmiersprache gelehrt wird, sondern das Beherrschen einer solchen Voraussetzung und als selbständige Aneignung gefordert ist. Im Studium, egal welchem, wirst Du noch ganz anders zu selbständiger Arbeit(sweise) gezwungen sein (oder elend scheitern).
Aber zum Erlernen gibt es neben Büchern und Anleitungen im Internet natürlich auch die Foren.
Konkrete Fragen muß allerdings Dein Lehrer beantworten, (auch) dafür wird er schließlich bezahlt.
|
|
Carolaiin 
Hält's aus hier
Beiträge: 3
|
Verfasst: Do 01.03.12 20:12
Es steht ja hier auch nicht zur Debatte wie nun der Unterricht gehalten wird. Es geht viel mehr darum, was ich bei dem, was ich mir selbst angeeignet habe falsch gemacht habe bzw. worauf ich acht geben sollte damit das Programm endlich läuft  .
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 01.03.12 23:16
Moin und  in der EE!
Carolaiin hat folgendes geschrieben : | Es steht ja hier auch nicht zur Debatte wie nun der Unterricht gehalten wird. |
Das ist richtig, deshalb wollen wir auch gleich zu beginn festhalten, dass wir nicht deine Hausaufgaben machen werden.  Nur damit wir das schonmal klargestellt haben.  Auch wenn die Ausführungen von Delphi-Laie sicher Off-Topic, vielleicht auch unangebracht sind, hat er nichts desto Trotz recht...  Aber diesen Teil der Diskussion wollen wir hiermit endgültig einstellen, das bringt uns alle nicht weiter.
Carolaiin hat folgendes geschrieben : | Es geht viel mehr darum, was ich bei dem, was ich mir selbst angeeignet habe falsch gemacht habe bzw. worauf ich acht geben sollte damit das Programm endlich läuft . |
Dann fangen wir mal an: - Deine Funktionen quizfragen(), quizantwort() und quizrichtig() sehen von der Deklaration her eher so aus, als sollten dort die entsprechenden Teile des Quiz ermittelt werden, also z.B. sollte bei quizfragen() zu der übergebenen Nummer die entsprechende Frage als Ergebnis der Funktion geliefert werden. Statt dessen schreibst du in diesen Funktionen die Fragen erst in den Speicher (=das Array).
- Erstelle eine neue Prozedur, in die du den Code, der aktuell in den drei Funktionen ist, verschiebst. Du könntest diese Prozedur z.B. procedure QuizFragenLaden nennen.
Diese rufst du dann einmal bei Programmstart auf, damit die Werte in das Array geschrieben werden.
- Deine function quizfragen(n,m: Integer): string; erwartet heute zwei Parameter, das ist aber doch gar nicht nötig, es gibt ja in jeder der 15 Runden nur eine Frage.
Diese Funktion sollte wohl eher so aussehen:
Delphi-Quelltext 1: 2: 3: 4:
| function QuizFrage(n: Integer): String; begin Result := feld[n,1]; end; | Versuche die andern beiden Funktionen analog zu diesem Beispiel neu zu schreiben, so dass diese auch den erwarteten Teil des Quiz zurückliefern.
Damit solltest du schonmal weiter kommen.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Carolaiin 
Hält's aus hier
Beiträge: 3
|
Verfasst: Mo 05.03.12 18:29
Ah Dankeschön  habe die Funktionen jetzt als Prozedur geschrieben , und anstatt der Checkboxen nun Radiobutton verwendet:) Jetzt läuft es erstmal  Werde einfach mal weiter Programmieren & hoffe das keine Probleme mehr auftreten ^^
Danke für eure Hilfe ! 
|
|
|