Задачка на массивы
-
- Сообщения: 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.
-
- Сообщения: 14
- Зарегистрирован: 31 мар 2009, 20:16
- Откуда: Кубинка
- Контактная информация:
а можно с комментариями?! ото я не силен в паскале)) а мне ее еще защищать
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Что там комментировать?
Сначала вывод на экран того что было до (before)
Потом цикл по всем людям:
Для кадлого человека цикл по всем регионам пока они не кончатся (j>3) или пока не будет найден телефонный номер, начинающийся с префикса региона.
Если найден (if j<=3, т.е. мы не "выскочили" из массива регионов), то i-му человеку вписывается регион, иначе вписывается "unknown!!!"
Дальше вывод результата, точно такой же как в начале.
Сначала вывод на экран того что было до (before)
Потом цикл по всем людям:
Для кадлого человека цикл по всем регионам пока они не кончатся (j>3) или пока не будет найден телефонный номер, начинающийся с префикса региона.
Если найден (if j<=3, т.е. мы не "выскочили" из массива регионов), то i-му человеку вписывается регион, иначе вписывается "unknown!!!"
Дальше вывод результата, точно такой же как в начале.
-
- Сообщения: 14
- Зарегистрирован: 31 мар 2009, 20:16
- Откуда: Кубинка
- Контактная информация:
еще проблемка... у меня почему что она не запускается а паскале...... 

-
- Сообщения: 526
- Зарегистрирован: 03 янв 2009, 23:17
- Откуда: Voronezh
- Контактная информация:
Всё нормально запускается. Поставь в конце
Код: Выделить всё
readln;
Нет религии выше истины