Помощь - Поиск - Пользователи - Календарь
Полная версия: Записная книжка
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Гелла
У меня такая задача:составить телефонную киигу,так чтоб выполнялись все её функци..т.е если ты вводишь фамилию то она выдает тебе телефон, и наоборот...но предварительно нужно ввести записи:т.е. фамилии и телефоны...число страниц в книге равно кол-ву букв в алфавите..я вроде как немного разобралась...но не знаю как построить программу..
Я думаю нужны три подпрограммы, первая-вводит новую запись с фамилиями и телефонами...вторая-выдает телефон по фамилии, а третья по введенному телефону находит фамилию..всё это наверное оформляется в виде процедур...подскажите мне..я не уверена, что правильно всё распределила и не знаю как это реализовать..наведите меня на умную мысль пожалста...
volvo
Выбирай: Поиск: "Записная"
Altair
И что ты хочешь ? куча подобных задач решенно... да вот здесь даже есть, что-то похожее.
Используй поиск, потом FAQ, клем там в теме записи пример записной книжки приводил.
Гелла
Цитата
И что ты хочешь ?

Конкретно от Вас,Altair,я ничего не хочу...

[quote]да вот здесь даже есть, что-то похожее.
Используй поиск, потом FAQ, клем там в теме записи пример записной книжки приводил.[quote]

Я просто не знала о такой функции...спасибо за ссылку...попробую разобраться
Гелла
Ничего не получается...составила только первую процедуру...как мне дальше быть?

Цитата
program zapisnaya_kniga;
uses crt;
type note=record
fam:string[16];
tel:string[8];
end;
var
list:array[1..20] of note;
book:array['A'..'Z'] of string;
procedure vvodinf(f:fam;i:integer; t:tel)
begin
for i:=1 to 20 do
writeln('vvedite familiyu');
readln(f.note);
writeln('vvedite telefon');
readln(t.note);
if i:=true then i:=i+1;
end;
klem4
Не правльно ты организовала ввод данных ... я бы сделал наприер так :

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.


Мне кажется у тебя не очень с пониманием организации самой структуры записи ... по этому советую почитать материал из FAQ : FAQ : Записи
Гелла
Ребят, вот что вышло...не уверена, что правильно......осталось только главную программу....

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.


Теги !
Гелла
хорошо... unsure.gif
volvo
Гелла, вот объясни мне свою логику... Я ее не понимаю. Почему КТО-ТО за тебя должен твою программу откомпилировать, исправить ошибки и выложить тебе на блюдечке? А САМА ты запустить Паскаль, и нажать F9 не в состоянии? Тогда извини, вопрос: "А зачем тебе эта программа?" Ты хочешь, чтобы ЗА тебя и дальше продолжали все делать? Или будем УЧИТЬСЯ?

Так вот: запусти СВОЙ Паскаль, проверь программу на наличие ХОТЯ БЫ явных ошибок и исправь их. Сделай так, чтобы компиляция прошла до конца. А потом присоедини (именно присоедини, а не копируй) сюда результат...

А там - посмотрим.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.