Autor Beitrag
Carolaiin
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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.
ausblenden volle Höhe Delphi-Quelltext
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..6of String{15 Fragen, 4 Antwortmöglichkeiten,richtige Antwort+Frage selbst)}

function quizfragen(n,m: Integer): string{Einlesen der Quizfragen}
{var feld: array [1..15,1..6] of 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;
{var feld: array [1..15,1..6] of 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;

{var feld: array [1..15,1..6] of 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 user profile iconNarses: Delphi-Tags hinzugefügt
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Do 01.03.12 19:04 
user profile iconCarolaiin hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 01.03.12 23:16 
Moin und :welcome: in der EE!

user profile iconCarolaiin hat folgendes geschrieben Zum zitierten Posting springen:
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. :nixweiss: Auch wenn die Ausführungen von user profile iconDelphi-Laie sicher Off-Topic, vielleicht auch unangebracht sind, hat er nichts desto Trotz recht... 8) Aber diesen Teil der Diskussion wollen wir hiermit endgültig einstellen, das bringt uns alle nicht weiter. :|

user profile iconCarolaiin hat folgendes geschrieben Zum zitierten Posting springen:
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). :nixweiss:

  • 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. :idea: 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:
    ausblenden Delphi-Quelltext
    1:
    2:
    3:
    4:
    function QuizFrage(n: Integer): String// Frage zu Runde n ermitteln
    begin
      Result := feld[n,1]; // Die Frage in der n. Runde steht im Unterindex 1, Result ist das Funktionsergebnis
    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 Threadstarter
Hält's aus hier
Beiträge: 3



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