1) zdrojáky dávaj do code, lebo je to inak neprehladné
2) mal si tam dost preklepov, chýbal ti end a plno chýb tam bolo..
Kód:
program sifra;
Var veta: string;
Function sifruj (veta:string):string;
Var sif_veta:string;
I, posun: integer;
Z: char;
Begin
Sif_veta:='';
For i:=1 to length(veta) do
Begin
Posun:=ord(veta[I])+1;
If (posun=91) or (posun=122) then z:=chr(posun+26) else z:=chr(posun);
Sif_veta:=sif_veta+z;
End;
sifruj:=sif_veta;
end;
Function desifruj(veta:string):string;
Var desif_veta: string;
I, posun:integer;
Z:char;
Begin
Desif_veta:='';
For i:=1 to length(veta) do
Begin
Posun:=ord(veta[I])-1;
If (posun=91) or (posun=122) then z:=chr(posun-26) else z:=chr(posun);
Desif_veta:=desif_veta+ z;
End;
desifruj:=desif_veta;
end;
Begin
write('Veta: ');
Readln (veta);
Writeln (' zasif veta: ', sifruj(veta));
Writeln (' desif veta: ', desifruj(sifruj(veta)));
End.
všimne si posledný riadok: Writeln (' desif veta: ', desifruj(sifruj(veta)));
ty musíš dešifrovať zašifrovanú vetu, inak to nemá význam. Aj keby máš funkciu šifruj zle, tak desifruj ti vypíše vždy do isté lebo tam posielaš pôvodný reťazec a nie ten zašifrovaný. (dalo by sa to spraviť aj inak, efektívnejšie ale keď si si vybral túto cestu..) A tiež si v každej funkcii zabudol vrátiť výsledný reťazec. iba si ho tam pospájal a nepredal si ho na vypísanie v tele funkcii.