unit UnitData;
{Unita ukládající nějaká data. Zde konkrétně záznam s položkami id a jmeno.}
interface
{ Pro data vytvoříme vlastní typ. }
type TData = record
id: integer;
jmeno: string;
end;
{ Procedura, která načte data ze vstupu (id jmeno) a uloží do parametru D. }
procedure nacti( var D:TData );
{ Procedura, která vypíše data na výstup (id: jmeno). }
procedure vypis( var D:TData );
{ Vrátí "chybná data", což zde značí id=-1. }
function chybnaData:TData;
{ Rozhodne, zda jsou data chybná, či ne. }
function jsouChybna( var D:TData ):boolean;
implementation
{ Procedura, která načte data ze vstupu (id jmeno) a uloží do parametru D. }
procedure nacti( var D:TData );
var c:char;
begin
read(D.id);
read(c);
readln(D.jmeno);
end;
{ Procedura, která vypíše data na výstup (id: jmeno). }
procedure vypis( var D:TData );
begin
if (jsouChybna(D)) then
writeln('Chybná data')
else
writeln(D.id,': ',D.jmeno);
end;
{ Vrátí "chybná data", což zde značí id=-1. }
function chybnaData:TData;
begin
chybnaData.id:=-1;
chybnaData.jmeno:='';
end;
{ Rozhodne, zda jsou data chybná, či ne. }
function jsouChybna( var D:TData ):boolean;
begin
jsouChybna := (D.id = -1);
end;
end.
Kdo byste našel v nějakém z těchto programů chybu, dejte mi to vědět - můžete tak získat bonusové body (1 chyba ≈ 5 bodů). ;)