Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Записи.Записная книжка

56K
26 октября 2010 года
Katish
5 / / 28.03.2010
Добрый вечер. Условие следующее:
 
Код:
type slovo=array[1..9]of char;
     NumberTelephone=1000000..9999999;
     friend=record
            surname:slovo;
            num:nt;
            end;
     page=array[1..20] of friend;
     notebook=array['A'..'Z'] of page;

Считается что на каждой странице указаны фамилии, которые начинаются с одной и той же буквы - индекса этой страницы. НУжно написать логическую функцию nomer(s,kor,tn), которая определяет,есть ли в записной книжке ведомости про друга с фамилией kor. Если есть то присвоить переменной tn его номер телефона. Пыталась сделать, но потом окончательно запуталась:
Код:
program l5z4;
uses crt;
type slovo=array[1..9]of char;
     nt=1000000..9999999;
     friend=record
            sname:slovo;
            num:nt;
            end;
     page=array[1..20] of friend;
     nbook=array['A'..'Z'] of page;
 var cbuf,c:char;
     b:nbook;
     fr:friend;
     p:page;
     i,j,k,l:integer;
     kor:slovo;
     tn:nt;
     f:text;
function nomer(s:nbook;t:slovo;var tn:nt):integer;    
begin
 l:=1;
 for cbuf:='A' to 'Z' do
  begin
   if t[1]=cbuf then
    c:=t[1];
  end;
  p:=s[c];
   for i:=1 to 20 do
    begin
     for j:=1 to 9 do
      if friend.sname[j]=kor[j] then
       l:=l*1
      else
       l:=l*0;
    end;
   if l=1 then
    tn:=friend.num;
  nomer:=1;
end;
procedure dop(f:text;c:char);      
begin
 with b[c] do  // знаю что так нельзя, но не в курсе как работать со сложенными один в один массивами
  begin
   for p:=1 to 20 do
    while not eof do
     begin
      j:=1;
      k:=1;
      while not eoln do
       begin
        if friend.sname[j]<>':' then          
         begin
          read(f,friend.sname[j]);
          inc(j);
         end
        else
         begin
          inc(j);
          read(f,friend.num[k]);
          inc(k);
         end;
       end;
     end;
  end;
end;
begin
 clrscr;
 assign (f,'c:/tex.txt');
 reset(f);
 for cbuf:='A' to 'Z' do
  dop(f,cbuf);
 writeln('Enter surname of friend');
 for i:=1 to 9 do
  read(kor);
 k:=nomer(b,kor);
 writeln('Nomer:',tn);
 readkey;
end.

Зараннее спасибо за помощь или советы.
1.8K
27 октября 2010 года
LM(AL/M)
332 / / 20.12.2005
вот что должно быть в процедуре
 
Код:
friendPage := s[kor[1]];
  for i := 1 to 20 do
    if friendPage.surname = kor then begin
      tn := friendpage.num;
      exit;
    end;
  // Что-то на случай если не найдено...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог