Консультация № 139435
07.06.2008, 12:45
0.00 руб.
0 1 1
В записной книжке записаны фамилии и номера телефонов 30 человек. Определить, есть ли в записной книжке:
- Телефон некоторого человека, и если есть, то вывести этот номер телефона.
- Человек с заданным номером телефона, и если есть, то вывести фамилию.

Обсуждение

давно
Профессор
401888
1232
07.06.2008, 18:41
общий
это ответ
Здравствуйте, Пухов Никита Евгеньевич!
Один из многих возможных вариантов решения этой задачи в приложении. При тестировании примите n поменьше, типа 3, 5.

Приложение:
uses crt;const n=30;type Tzap=record {тип запись с полями по условию} fam:string[20]; tel:string[20]; {номер телефона лучше строкой, т.к. есть разные виды записи номеров} end;var sp:array[1..n]of Tzap; {массив записей-записная книжка} i,k:integer; fm,tl:string[20]; {переменные при поиске фамилий и телефонов} label 1,2,3,4; {метки-указатели что делать дальше}beginclrscr;for i:=1 to n do {заполняем массив} begin writeln(‘Abonent ‘,i); write(‘Familia: ‘);readln(sp[i].fam); write(‘Telefon: ‘);readln(sp[i].tel); end;clrscr;1:writeln(‘Iskat # telefona? 1; Familiu? 2; Vyjti? 3‘);{меню} readln(i); if i=1 then goto 2 else if i=2 then goto 3 else if i=3 then goto 4;2:write(‘Vvedite familiu: ‘);readln(fm); {поиск телефона по фамилии} k:=0; for i:=1 to n do if sp[i].fam=fm then begin writeln(‘Nomer telefona ‘,sp[i].tel); k:=k+1; end; if k=0 then writeln(‘Takogo telefona net!‘);readln;writeln;goto 1;3:write(‘Vvedite nomer telefona: ‘);readln(tl);{поиск фамилии по телефону} k:=0; for i:=1 to n do if sp[i].tel=tl then begin writeln(‘Familia ‘,sp[i].fam); k:=k+1; end; if k=0 then writeln(‘Takoj familii net!‘);readln;writeln;goto 1;4:exit; {выход}end.
Форма ответа