Показать сообщение отдельно
Старый 17.08.2008, 22:46   #9 (permalink)
lexel
Новичок
 
Регистрация: 16.08.2008
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

у меня в програме
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???
lexel вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070