у меня в програме
program firma;
uses crt;
type mas=array[1..15,1..8] of string;
var a:mas;
k,i:byte;
f:text;
m:char;
procedure noviy(a:mas;i:byte);
var z:char;
f:boolean;
d,m:byte;
g:word;
begin
writeln('vvedit dani novogo sotrudnika');
write('vvedit FIO ');
readln(a[1,1]);
repeat
write('vvedit datu narodjenia(d m g) ');
read(d);
read(m);
read(g);
if d>31 then
begin
writeln('takogo dnia ne isnye, povtorit vvod');
f:=false;
end
else f:=true;
if m>12 then
begin
writeln('takogo misiacia ne isnye, povtorit vvod');
f:=false;
end
else f:=true;
if g>1992 then
begin
writeln('pracivniku menshe 16 rokiv, povtorit vvod');
f:=false;
end
else f:=true;
until f=true;
a[1,2]:=d+' '+m+' '+g;
repeat
write('viberit pol(m/f)' );
readln(z);
f:=false;
if z='m' then begin
a[1,3]:='male';
f:=true;
end
else if z='f' then begin
a[1,3]:='female';
f:=true;
end
else writeln('nepravilniy vvod, vvedit sche raz');
until f=true; }
write('vvedit staj roboti ');
readln(a[1,4]);
write('domashnia adresa ');
readln(a[1,5]);
write('telefon ');
readln(a[1,6]);
write('doljnost ');
readln(a[1,7]);
write('oklad ');
readln(a[1,8]);
end;
begin
writeln('Vvedit nomer operacii:');
writeln('1.noviy sotrudnik');
writeln('2.uvolit');
writeln('3.posmotret');
writeln('4.uporiado4it');
writeln('5.nayti');
readln(k);
case k of
1:begin
assign(f,'workers.dat');
reset(f);
while not eof(f) do
begin
readln(f,m);
i:=i+1;
end;
noviy(a,i);
end;
{2:
3:
4:
5:}
else
begin
writeln('vvedeno nepravilniy nomer');
end;
end;
readkey;
end.
в процедуре noviy возле слова begin выдаёт 202 ошибку (переполнение стэка). Почему???
и как сделать ограничение по дате, если в
repeat
write('vvedit datu narodjenia(d m g) ');
read(d);
read(m);
read(g);
if d>31 then
begin
writeln('takogo dnia ne isnye, povtorit vvod');
f:=false;
end
else f:=true;
if m>12 then
begin
writeln('takogo misiacia ne isnye, povtorit vvod');
f:=false;
end
else f:=true;
if g>1992 then
begin
writeln('pracivniku menshe 16 rokiv, povtorit vvod');
f:=false;
end
else f:=true;
until f=true;
a[1,2]:=d+' '+m+' '+g;
a[1,2] типа string, а d,m и g-byte???