Задачка на массивы

Ответить
shahid1991
Сообщения: 14
Зарегистрирован: 31 мар 2009, 20:16
Откуда: Кубинка
Контактная информация:

Организовать массив записей, содержащий информацию о ФИО и номере телефона 5 друзей. Поместить в массив сведения о районе проживания этих товарищей, определив его по первым 2-3 цифрам телефона.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Turbo Pascal 7

Код: Выделить всё

type
  TRecTel = record
    fio:string;
    tel:string;
    region:string;
  end;
  TRecRegion = record
    prefix:string;
    name:string;
    region:string;
  end;
const
  regions:array[1..3] of TRecRegion =(
    (prefix:'495';name:'Moscow'),
    (prefix:'499';name:'Moscow2'),
    (prefix:'851';name:'Astrakhan'));
  people:array[1..5] of TRecTel =(
    (fio:'Ivanov';tel:'4951234567'),
    (fio:'Petrov';tel:'4991111111'),
    (fio:'Sidorov';tel:'8512222222'),
    (fio:'Kuznetsov';tel:'4953333333'),
    (fio:'Pupkin';tel:'9997654321'));
var
  i,j:integer;
begin
  writeln('BEFORE:');
  writeln('fio':12,'tel':15,'region':12);
  for i:=1 to 5 do
    with people[i] do
      writeln(fio:12,tel:15,region:12);

  for i:=1 to 5 do with people[i] do begin
    j:=1;
    while (j<=3) and (pos(regions[j].prefix,tel)<>1) do inc(j);
    if j<=3
      then region:=regions[j].name
      else region:='unknown!!!';
  end;

  writeln('AFTER:');
  writeln('fio':12,'tel':15,'region':12);
  for i:=1 to 5 do
    with people[i] do
      writeln(fio:12,tel:15,region:12);
end.
shahid1991
Сообщения: 14
Зарегистрирован: 31 мар 2009, 20:16
Откуда: Кубинка
Контактная информация:

а можно с комментариями?! ото я не силен в паскале)) а мне ее еще защищать
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Что там комментировать?
Сначала вывод на экран того что было до (before)

Потом цикл по всем людям:
Для кадлого человека цикл по всем регионам пока они не кончатся (j>3) или пока не будет найден телефонный номер, начинающийся с префикса региона.
Если найден (if j<=3, т.е. мы не "выскочили" из массива регионов), то i-му человеку вписывается регион, иначе вписывается "unknown!!!"

Дальше вывод результата, точно такой же как в начале.
shahid1991
Сообщения: 14
Зарегистрирован: 31 мар 2009, 20:16
Откуда: Кубинка
Контактная информация:

еще проблемка... у меня почему что она не запускается а паскале...... :confused:
dr.Jekill
Сообщения: 526
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

Всё нормально запускается. Поставь в конце
Нет религии выше истины
Ответить