У меня такая задача:составить телефонную киигу,так чтоб выполнялись все её функци..т.е если ты вводишь фамилию то она выдает тебе телефон, и наоборот...но предварительно нужно ввести записи:т.е. фамилии и телефоны...число страниц в книге равно кол-ву букв в алфавите..я вроде как немного разобралась...но не знаю как построить программу..
Я думаю нужны три подпрограммы, первая-вводит новую запись с фамилиями и телефонами...вторая-выдает телефон по фамилии, а третья по введенному телефону находит фамилию..всё это наверное оформляется в виде процедур...подскажите мне..я не уверена, что правильно всё распределила и не знаю как это реализовать..наведите меня на умную мысль пожалста...
Выбирай: http://forum.pascal.net.ru/index.php?act=Search&CODE=show&searchid=af4e495f2a13cb6cf07d9b68d7bc5198&search_in=posts&result_type=topics&highlite=%2B%E7%E0%EF%E8%F1%ED%E0%FF
И что ты хочешь ? куча подобных задач решенно... да вот http://forum.pascal.net.ru/index.php?s=&showtopic=9329&view=findpost&p=61807 даже есть, что-то похожее.
Используй поиск, потом FAQ, клем там в теме записи пример записной книжки приводил.
Ничего не получается...составила только первую процедуру...как мне дальше быть?
Не правльно ты организовала ввод данных ... я бы сделал наприер так :
uses crt;
const
max_users = 20;
type
TNode = record
name,number : string;
end;
TBook = array [1..max_users] of TNode;
procedure Input(var b : TBook; const n : byte);
var
i : byte;
begin
for i := 1 to n do
with b[i] do begin
writeln('Пользователь №', i);
write('Имя : '); readln(name);
write('Телефон : '); readln(number);
writeln;
end;
end;
var
book : TBook;
count : byte;
begin
clrscr;
write('Количество записей : '); readln(count);
Input(book, count);
readln;
end.
Ребят, вот что вышло...не уверена, что правильно......осталось только главную программу....
uses crt;
type Stroka=record
fam:string[16];
tel:string[8]
end;
List=array [1..20] of Stroka;
Book=array ['A'..'Z'] of List;
var
i:char;
s1:string[16];
s2:string[8];
B:Book;
j:integer;
t:string;
procedure vvod(st1,st2:string); {vvod informatsii}
var i:integer;
begin
if B[st1[1]][20].fam[0]<>'0' then begin
writeln('..');
exit
end;
for i:=1 to 20 do
if B[st1[1]][i].fam[0]='0' then
begin
B[st1[1]][i].fam:=copy(st1,0,length(st1));
B[st1[1]][i].tel:=copy(st2,0,length(st2));
clrscr;
writeln('zapisano');
exit
end;
end;
procedure telepofam(s:string; var t:string); {vydayot telefon po familii}
var i,b:integer;
begin
b:=0;
for i:=1 to 20 do
if B[s[1]][i].fam=s then
begin t:=M1[s[1]][i].tel; b:=1 end;
if b=0 then
writeln('Такого пользователя нет');
end;
procedure OldF(s:string; var t:string); {vydayot familiu po telefonu}
var i,b:integer;
j:char;
begin
b:=0;
for j:='A' to 'Z' do
for i:=1 to 20 do
if M1[j][i].tel=s then begin
t:=M1[j][i].fam; b:=1;
end;
if b=0 then
writeln('takogo polzovatelya net');
end.
хорошо...
Гелла, вот объясни мне свою логику... Я ее не понимаю. Почему КТО-ТО за тебя должен твою программу откомпилировать, исправить ошибки и выложить тебе на блюдечке? А САМА ты запустить Паскаль, и нажать F9 не в состоянии? Тогда извини, вопрос: "А зачем тебе эта программа?" Ты хочешь, чтобы ЗА тебя и дальше продолжали все делать? Или будем УЧИТЬСЯ?
Так вот: запусти СВОЙ Паскаль, проверь программу на наличие ХОТЯ БЫ явных ошибок и исправь их. Сделай так, чтобы компиляция прошла до конца. А потом присоедини (именно присоедини, а не копируй) сюда результат...
А там - посмотрим.