Rozdział 9 sortowanie przez wstawianie powinno być:
/* niech k będzie indeksem przenoszonego elementu
/* zmienna wstawiany przechowuje wartość przenoszonego elementu
i:=k
while (i>0)AND(wstawiany < W[i-1])
w[i]:=w[i-1]
i--
w[i]:=wstawiany
oraz dalej:
void insertSort(integer[] *A, Integer n) def:
for(k:=1, k< n,k++)
wstawiany:=*A[k]
i:=k
while(i>0)AND(wstawiany<*A[k-1])
A[i]:=A[i-1]
i --
A[i]:=wstawiany
return
Rozdział 13 kod funkcji rot13 powinien wygladać tak:
String rot13(Char tekst[],Integer dlugosc){
Integer i,kod;
char znak;
String tekstrot13:="";
for(i:=0,i="a")AND(znak<"n"))OR((znak>="A")AND(znak<"N"))
znak:=char(charCode(znak)+13)
else
if((znak>="n")AND(znak<="z"))OR((znak>="N")AND(znak<="Z"))
znak:=char(charCode(znak)-13)
tekstrot13:=tekstrot13+znak;
}
return tekstrot13
}
Kod funkcji szyfrP powinien wygladać tak:
function szyfrP(Char haslo[], Integer dlHasla, Char tekst[], Integer dlTekstu){
char tablica[5,5]
char alfabet[25,2]
char tPomoc[25,2]
Integer i, j, l, k, y, poz
Integer znak1x, znak1y, znak2x, znak2y
Integer znak, szyfr1, szyfr2
String szyfrogram:=""
//Budowanie tablicy zawierającej znaki dozwolonego alfabetu
for(i=0,i<9,i++)
alfabet[i,0]:=char(charCode("A")+i)
alfabet[i,1]:="N"
for(i=10,i<26,i++)
alfabet[i-1,0]:=charASCII(charCode("A")+ i)
alfabet[i-1,1]:="N"
//Cześć budowania tablicy szyfrującej
//Usuwanie z hasła powtarzających się znaków
i=0
while(i < dlHasla)
znak:=haslo[i]
j:=i+1
while(j < dlHasla)
if(haslo[j]==znak)
for(l:=j,l < dlHasla,l++)
haslo[l]:=haslo[l+1]
j--
dlHasla--
j++
i++
//zaznaczenie w alfabecie liter wystepujących w haśle
for(i:=0,i < dlHasla,i++)
for(j:=0,j<25,j++)
if(alfabet[j,0]==haslo[i])
alfabet[j,1]:="T"
//właszciwa część budowania tablicy szyfrującej
poz=0
y=0
for(i:=0,i<5,i++)
for(j:=0,j<5,j++)
if(poz < dlHasla)
tablica[i,j]:=haslo[poz]
tPomoc[kodP(haslo[poz]),0]:=i
tPomoc[kodP(haslo[poz]),1]:=j
poz++
else
do
pomoc:=false;
if(alfabet[y,1]=="T")
pomoc:=true
y++
while(pomoc)
tablica[i,j]:=alfabet[y,0]
tPomoc[kodP(alfabet[y,0]),0]=i
tPomoc[kodP(alfabet[y,0]),1]=j
y++
//część szyfrująca
for(i:=0,i<(dlTekstu/2),i++)
znak1x:=tPomoc[kodP(tekst[i*2]),0]
znak1y:=tPomoc[kodP(tekst[i*2]),1];
znak2x:=tPomoc[kodP(tekst[i*2+1]),0];
znak2y:=tPomoc[kodP(tekst[i*2+1]),1];
if(znak1x==znak2x)OR(znak1y==znak2y)
szyfr1:=tablica[znak1x,mod((znak1y+1),5)]
szyfr2:=tablica[znak2x,mod((znak2y+1),5)]
else
szyfr1:=tablica[znak1x,znak2y]
szyfr2:=tablica[znak2x,znak1y]
szyfrogram:=szyfrogram+szyfr1+szyfr2
return szyfrogram