Ein newb am Pascal

Also ich hab mich vom Webdesign
und das kann ich ziemlich gut =)
nun entschlossen auf pascal umzusteigen
unddann später tp
aber ich will einen rechner mit 3 Speicherfunktionen
(KEIN POINTER !(Zeiger)) Schreiben
Ich habe eine Repeat schleife verwendet
ich bekomme dat ding aber nich „zu“
Hier is mein ziemlich lachhafter code:

repeat
rechart[1]:=‚Multiplikation‘;
rechart[2]:=‚Division‘;
rechart[3]:=‚Addition‘;
rechart[4]:=‚Subtraktion‘;
rechart[5]:=‚Programm beenden‘;
writeln(‚Was möchten Sie tun ?‘);

for i := 1 to 5
do writeln(i, '. ', rechart[i]); readln(art);
writeln;

write('Geben Sie ihre erste Zahl ein: ');readln(zahl1);
write('Geben Sie ihre zweite zahl ein: ');readln(zahl2);
if art = 1 then zahl3:=zahl1*zahl2;
if art = 2 then zahl3:=zahl1/zahl2;
if art = 3 then zahl3:=zahl1+zahl2;
if art = 4 then zahl3:=zahl1-zahl2;
writeln;
write(‚Das Ergebniss lautet‘, Round(zahl3));
writeln;
write('Möchten Sie das Ergebniss speichern ? (j/n) ');readln(abfrag);
if (abfrag = ‚j‘ ) AND (abfrag = ‚J‘ ) then speicher:=zahl3;
until
/*so und hier fängt das eigentlich Problem an
ich weiss nciht ob die schleife boolean ist oder nciht
zumindest wollte ich das am anfang so machen das der
rechner das so bekommt
schleife = 1;
schleife++;
until ( schleife == 3) …
sowas in der art ich hab das mal zusammen geraft die syntax stimmt natürlich nicht…
kann mir jemand den rest der da dran muss sagen wie es geht
ach und nebenbei wie mach ich das das ich den speicher in 3 Variablen aufteile und darauf zugegriffen wird aber das immer die gleiche abfrage ist §möchten sie das …"*/

schleife = 1;
schleife++;
(schleife := 3);

Deine Frage ist unklar formuliert.
Wozu brauchst du die Repeat-Schleife ?
Was soll die Abbruchbedingung sein ?
Ich entnehme deinem Text, daß die Variable „Schleife“ den Wert drei erreichen soll…insgesamt das Ergebnis also dreimal abgespeichert werden soll, bevor die Repeat-until-Schleife verlassen wird. Dann mußt du jedesmal, wenn der Benutzer „j“ antwortet, einen Zähler („schleife“) hochzählen. Den zu speichernden Wert kannst du dann in einem Array unter dem Index „Schleife“ speichern.

Im If-Konstrukt mit „abfrag“ muß übrigends ein OR statt eines AND hin.

var 
 rechart: Array[1..5] of String;
 i,art,Schleife: Integer;
 zahl1,zahl2,zahl3: Real;
 speicher: Array[1..3] of Real;
 abfrag: char;

begin
 rechart[1]:='Multiplikation';
 rechart[2]:='Division';
 rechart[3]:='Addition';
 rechart[4]:='Subtraktion';
 rechart[5]:='Programm beenden';

 Schleife := 0;

 repeat

 writeln('Was möchten Sie tun ?');
 for i := 1 to 5 do writeln(i, '. ', rechart[i]); 
 readln(art);
 writeln;

 write('Geben Sie ihre erste Zahl ein: ');readln(zahl1);
 write('Geben Sie ihre zweite zahl ein: ');readln(zahl2);

 case art of
 1: zahl3:=zahl1\*zahl2;
 2: zahl3:=zahl1/zahl2;
 3: zahl3:=zahl1+zahl2;
 4: zahl3:=zahl1-zahl2;
 end;

 writeln;
 write('Das Ergebniss lautet', Round(zahl3));
 writeln;
 write('Möchten Sie das Ergebniss speichern ? (j/n)');
 read(abfrag);

 if (abfrag = 'j' ) OR (abfrag = 'J' ) then begin
 Schleife := Schleife + 1;
 Speicher[Schleife] := Zahl3;
 end;

 until Schleife = 3;
end;

Gruß Jochen