niedziela, 3 lutego 2008

Zakończ program z zabezpieczeniem

Zaintrygowany, prostym pytaniem, postanowiłem napisać procedurę pozwalającą zakończyć program, wcześniej prosząc o podanie znaku z klawiatury T, aby zakończyć, N, aby kontynuować. Zastanówmy się co się stanie jeśli nie podamy, ani T, ani N, tylko np. H, wtedy wbrew naszym oczekiwaniom, program będzie się zachowywał tak jakbyśmy podali T. W wielu przypadkach taka sytuacja może doprowadzić do rozstroju nerwowego użytkownika, dlatego napisałem prostą procedurę, która zabezpiecza nas przed niechcianą kontynuacją.

Całość można pobrać z tąd, wersję z i bez komentarzy, objaśniających działanie. http://bzyx90.googlepages.com/zakoncz-v2.zip Całość na licencji:

Creative Commons License





Treść programu, na żywca proszę bardzo:

var
c:char;

procedure zakoncz;
begin
write('Zakonczyć T/N ?');
readln(c);
c:=upcase(c);
if c <> 'T' then
begin
if c <> 'N' then
begin
writeln('Podano zły znak');
zakoncz;
end;
end;
end;

begin
repeat
zakoncz;
until c='T'
end.

Sposób użycia, po prostu piszemy program, między0 "repeat", a "zakoncz;" reszta, zrobi się sama. Jeśli podamy nieprawidłowy znak otrzymamy komunikat "Zły znak" i zostaniemy poproszeni o podanie innego. W tej chwili program zakańcza się po podaniu T lub t, ale nic nie szkodzi na przeszkodzie aby zakańczał się po podaniu N lub n, wystarczy zmienić c='T' na c='N'. W razie pytań proszę o komentarze, wszelkie oceny, problemy, i wszystko inne proszę w komentarzach.

Całość sprawdzona w Free Pascal Compiler . Poprawione, pliki wersja bez komentarzy nie działała.

Brak komentarzy: