Hey, Ik moet een recursieve palindroom tester maken, en naar mijn idee klopt de code. Pascal is het er alleen niet mee eens. In mijn (en lerares) begrip is een palindroom een woord wat je vanaf het midden kan omdraaien. Denk dus aan:
Radar, regelnevenleger, meetsysteem, maar hij zou dus ook 12344321 en 1234321 moeten pakken. Dit is de code:
program palindroompje;
uses wincrt;
var woord:string;
teller,positie1,positie2:integer;
procedure PalinRec(t,p1,p2:integer;w:string);
begin
if t < ((length(w))/2) and (w[(p1)]) = (w[(p2)]) then
begin
PalinRec(t+1,p1+1,p2-1,w);
writeln('Het is een palindroom');
end;
else
writeln('Helaas het is GEEN palindroom');
end;
begin
teller:=0;
positie1:=1;
positie2:=(length(woord));
writeln('Geef een palindroom, en het programma zal het testen');
readln(woord);
PalinRec(teller,positie1,positie2,woord);
end.
Het probleem is dat hij het "="-teken niet snapt tussen de "(w[(p1)]) = (w[(p2)])" met als fout melding een type mismatch.
Ik weet dat er ook nog een div in moet bij de gedeeld door 2, maar das niet het probleem nu. Thanxs alvast voor reacties.
Radar, regelnevenleger, meetsysteem, maar hij zou dus ook 12344321 en 1234321 moeten pakken. Dit is de code:
program palindroompje;
uses wincrt;
var woord:string;
teller,positie1,positie2:integer;
procedure PalinRec(t,p1,p2:integer;w:string);
begin
if t < ((length(w))/2) and (w[(p1)]) = (w[(p2)]) then
begin
PalinRec(t+1,p1+1,p2-1,w);
writeln('Het is een palindroom');
end;
else
writeln('Helaas het is GEEN palindroom');
end;
begin
teller:=0;
positie1:=1;
positie2:=(length(woord));
writeln('Geef een palindroom, en het programma zal het testen');
readln(woord);
PalinRec(teller,positie1,positie2,woord);
end.
Het probleem is dat hij het "="-teken niet snapt tussen de "(w[(p1)]) = (w[(p2)])" met als fout melding een type mismatch.
Ik weet dat er ook nog een div in moet bij de gedeeld door 2, maar das niet het probleem nu. Thanxs alvast voor reacties.