Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на записи
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Guest
Помогите пожалуйста!

Вообщем, нужно создать телефонный справочник, т.е. файл из записей с полями: ФИО, адрес (запись из 3 полей :улица. номер дома, квартиры),
номер телефона.
Задание: найти номер АТС(первые 2 цифры номера телефона), имеющей наибольшее число абонентов.
У меня вопрос: я хотел сделать функцию, которая считала бы сколько раз встречается какое-нибудь АТС, а потом процедуру которая считает какое именно Атс встречается больше раз. Но у меня не получается с функцией.
Как можно посчитать, например, кол-во АТС первой записи?
Или вообще лучше сделать что-то другое, без функции?
volvo
Цитата(Guest @ 3.05.05 9:56)
я хотел сделать функцию, которая считала бы сколько раз встречается какое-нибудь АТС, а потом процедуру которая считает какое именно Атс встречается больше раз. Но у меня не получается с функцией.

Ты бы показал как именно ты пытался сделать, и как у тебя типы описаны, а то что-то получается "ходил туда, не знаю куда - делал то, не знаю что..."

Плюс к этому, где данные хранятся? Файл? Массив? Если в файле, то в каком (текстовый, типизированный)? Поконкретнее...
Guest
Цитата(volvo @ 3.05.05 10:04)
Ты бы показал как именно ты пытался сделать, и как у тебя типы описаны, а то что-то получается "ходил туда, не знаю куда - делал то, не знаю что..."

Плюс к этому, где данные хранятся? Файл? Массив? Если в файле, то в каком (текстовый, типизированный)? Поконкретнее...


program telepnone;
const m=1;
type adress = record
street: string[20]
house: byte
flat: byte
end;

type Telephone=RECORD
FIO: string[40]
adr: array[1..m] of adress
Tel_n: string[8]
end;

type Tel=file of Telephone;


var f: Tel;

procedure in_rec(var f: Tel); {¢¢®¤ ä ©« Telephone}
var t:student;
c:char;
i:byte;
begin
repeat
with t do
begin
write('FIO: ');
readln(fio);
write('Adress:');
for i:=1 to m do
begin
write('Street:');
readln(adr[i].street);
write('House:');
readln(adr[i].house);
write('Flat:');
readln(adr[i].flat);
end;
write('Telephone: ');
readln(Tel_n);
end;
writeln('¯à®¤®«¦e¬? (y/n)');
readln©;
until c='n';
end;
Guest
Вообщем тут полный бред! Помогите пожалуйста!

Код
Procedure Create(var M1:mas1);  {type mas1=array[1..s] of integer;}
var a:M1
begin
s:=0;
while not Eof(f) do
begin
a[ats]:=a[ats] +1;
s:=s+a[ats];
ats:=j
end;
end;

function Search(var k,s:integer) :integer;
var j:integer;
begin
k:=1
for j:=1 to s do
if a[ats][j]=a[ats][m] then k:=k+1
end;

procedure Summa()
begin
max:=a[ats][1]
for j:=1 to s do
if a[ats][i]>max then max:=a[ats][i];
end;
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.