Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2010, 13:46   #1
Sos1
Пользователь
 
Регистрация: 07.06.2010
Сообщений: 12
По умолчанию Блок_Схема

program telefon;
uses crt;
type room=record
nmb:integer;
name:string[20];
end;
type abonent=record
rabota:string[30];
familia:string[20];
imya:string[15];
end;
type tfon=record
troom:room;
abont:abonent;
ntfon:longint;
end;
var
ftfon:array[1..100] of tfon;
n,i,nt,j,t:integer;
k:1..9;
na:string[20];
procedure vvod;
begin
write('kolichestvo zapisei='); readln(n);
for i:=1 to n do begin
write('familia='); readln(ftfon[i].abont.familia);
write('imya='); readln(ftfon[i].abont.imya);
write('dolznost='); readln(ftfon[i].abont.rabota);
write('telefon='); readln(ftfon[i].ntfon);
write('nomer pomeshenia='); readln(ftfon[i].troom.nmb);
write('naimenovanie='); readln(ftfon[i].troom.name);
end;end;
procedure vivod;
begin
clrscr;
for i:=1 to n do
begin
writeln('zapis ',i);
writeln('familia=',ftfon[i].abont.familia);
writeln('imya=',ftfon[i].abont.imya);
writeln('dolznost=',ftfon[i].abont.rabota);
writeln('telefon=',ftfon[i].ntfon);
writeln('nomer pomeshenia=',ftfon[i].troom.nmb);
writeln('naimenovanie=',ftfon[i].troom.name);
end;end;
procedure poisk_po_telefonu;
begin
write('N telefona='); readln(nt);
for i:=1 to n do
if ftfon[i].ntfon=nt then
writeln('pomeshenie #',ftfon[i].troom.nmb,' ','abonenti=',ftfon[i].abont.familia,' ',ftfon[i].abont.imya);
readln;
end;
procedure poisk_po_pomesheniu;
begin
write('N pomeshenia='); readln(nt);
for i:=1 to n do
if ftfon[i].troom.nmb=nt then
writeln('Telefon #',ftfon[i].ntfon);
readln;
end;
procedure poisk_po_familii;
begin
write('Familia='); readln(na);
for i:=1 to n do
if ftfon[i].abont.familia=na then
writeln('Telefon #',ftfon[i].ntfon,' ','Pomeshenie #',ftfon[i].troom.nmb);
readln;
end;
procedure odnofamilci;
begin
for i:=1 to n do
begin
nt:=pos(' ',ftfon[i].abont.familia);
na:=copy(ftfon[i].abont.familia,1,length(ftfon[i].abont.familia)-nt-1);
t:=0;
for j:=i to n do
begin
if pos(na,ftfon[j].abont.familia)<>0 then
begin
inc(t);
writeln(ftfon[j].abont.familia,' ',ftfon[j].abont.imya);
end;
end;
readln;
end;end;
procedure insert;
begin
inc(n);
i:=n;
vvod;
end;
procedure delete;
begin
write('vvedite nomer zapisi'); readln(t);
for i:=t to n-1 do
begin
ftfon[i].abont.familia:=ftfon[i+1].abont.familia;
ftfon[i].abont.imya:=ftfon[i+1].abont.imya;
ftfon[i].abont.rabota:=ftfon[i+1].abont.rabota;
ftfon[i].ntfon:=ftfon[i+1].ntfon;
ftfon[i].troom.nmb:=ftfon[i+1].troom.nmb;
ftfon[i].troom.name:=ftfon[i+1].troom.name;
end;
dec(n);
end;
begin
n:=0;
repeat
clrscr;
writeln('1-vvod dannih');
writeln('2-poisk po nomeru telefona');
writeln('3-poisk po nomeru pomeshenia');
writeln('4-poisk po familii');
writeln('5-poisk odnofamilcev');
writeln('6-prosmotr');
writeln('7-insert');
writeln('8-delete');
writeln('9-exit');
readln(k);
if (k<>1) and (n=0) and (k<>9) then
begin clrscr; writeln('net daanih'); k:=1; end;
case k of
1:vvod;
2oisk_po_telefonu;
3oisk_po_pomesheniu;
4oisk_po_familii;
5dnofamilci;
6:vivod;
7:insert;
8elete;
end;
until k=9;
end.
Sos1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц