Условие: Организовать типизированный файл, содержащий сведения об адресах и телефонах сотруд-ников предприятия: ФИО, адрес (улица, дом, квартира). Напишите встроенную подпрограмму-функцию для организации безопасного ввода номеров телефонов – целое шестизначное число. Определите сколько сотрудников не имеют телефонов.
Решение:
program QQQ;
type
pred=record
Tel:byte;
adress:string;
FIO:string;
end;
var
Sved:pred;
Fsved: file of pred;
Msved:array[1..50] of pred;
i,j,a,NOTEL,N_zap:integer;
k:boolean;
function Nomer(tel:byte):boolean;
var t:byte;
begin
nomer:=False;
if tel=0
then
nomer:=true
else
if (tel>99999) and (tel<1000000)
then
nomer:=true
else
writeln('nepravilniy vvod nomera!!!');
end;
procedure File_WRITE;
begin
Writeln('Vvedite kolichestvo zapisei');
readln(N_zap);
assign(Fsved,'sved.dat');
rewrite(Fsved);
for i:=1 to N_zap do
begin
with sved do
begin
repeat
begin
Writeln('Vvedite nomer telefona esli nomer otsytstvyet vvedite 0');
readln(tel);
k:=nomer(tel);
end;
until k;
Writeln('Vvedite FIO');
readln(FIO);
Writeln('Vvedite adress');
readln(adress);
end;
write(Fsved,sved);
end;
close(fsved);
end;
begin
File_WRITE;
assign(Fsved,'sved.dat');
reset(Fsved);
NOTEL:=0;
While not eof(Fsved) do
begin
with sved do
begin
read(Fsved,sved);
if tel=0 then
NOTEL:=NOTEL+1;
end;
end;
{close(Fsved);}
Seek(Fsved,0);
Writeln('FIO ','Adres ','Telefon ');
While not eof(Fsved) do
begin
read(Fsved,sved);
begin
with sved do
begin
Writeln(FIO,' ',adress,' ',tel);
end;
end;
end;
close(Fsved);
writeln('Rabotnikov bez telefona:',NOTEl);
readln;
end.
М | тегами пользуемся Altair |