Помощь - Поиск - Пользователи - Календарь
Полная версия: Записная книжка
Форум «Всё о Паскале» > 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 не в состоянии? Тогда извини, вопрос: "А зачем тебе эта программа?" Ты хочешь, чтобы ЗА тебя и дальше продолжали все делать? Или будем УЧИТЬСЯ?

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

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