Pascal ABC Имеется массив данных о K работающих в фирме: фамилия, имя, отчество,...

0 голосов
26 просмотров

Pascal ABC
Имеется массив данных о K работающих в фирме: фамилия, имя, отчество, адрес(улица, дом, квартира) и дата поступления на работу(месяц, год). Во второй массив записать только тех из них, кто проживает по определённой улице. Название этой улицы ввести с клавиатуры.


Информатика (15 баллов) | 26 просмотров
0

Как я понял, вам нужен массив record. Я прав?

0

да, вы правильно поняли

0

Месяц и год случайно не типа DateTime?

0

случайно, вводится с клавиатуры

Дан 1 ответ
0 голосов
Правильный ответ

//Большую часть времени убил на тесты
//Pascal ABC.NET v3.1 сборка 1172

Type
 ty=record
  sub,name,ot,ul,kv,ho:string;
  mo,ye:integer;
 end;

Var
 ar1,ar2:array of ty;
 k,i,n:integer;
 s:string;
begin
 readln(k);
 setlength(ar1,k);
 n:=0;
 for i:=0 to k-1 do
  begin
   write('Введите фамилию рабочего №',i+1,':'); readln(ar1[i].sub);
   write('Введите имя рабочего:№',i+1,':'); readln(ar1[i].name);
   write('Введите отчество рабочего:№',i+1,':'); readln(ar1[i].ot);
   write('Введите улицу проживания рабочего:№',i+1,':'); readln(ar1[i].ul);
   write('Введите дом проживания рабочего:№',i+1,':'); readln(ar1[i].ho);
   write('Введите квартиру проживания рабочего:№',i+1,':'); readln(ar1[i].kv);
   write('Введите месяц поступления на работу рабочего:№',i+1,':'); readln(ar1[i].mo);
   write('Введите год поступления на работу рабочего:№',i+1,':'); readln(ar1[i].ye);
  end;
 write('Введите искомую улицу:'); readln(s);
 writeln('Результаты:');
 for i:=0 to k-1 do
  begin
   if ar1[i].ul=s then
    begin
     inc(n);
     setlength(ar2,n);
     ar2[n-1]:=ar1[i];
     writeln('Рабочий #',i+1,',', ar2[n-1].sub,' ',ar2[n-1].name,' ',ar2[n-1].ot);
     writeln('Адрес:',ar2[n-1].ul,' ',ar2[n-1].ho,',',ar2[n-1].kv);
     writeln('Дата поступления на работу:',ar2[n-1].mo,',',ar2[n-1].ye);
    end;
  end;
end.
    
Пример ввода:
3
Введите фамилию рабочего №1:Хацуне
Введите имя рабочего:№1:Мику
Введите отчество рабочего:№1:Ивановна
Введите улицу проживания рабочего:№1:Омотесандо
Введите дом проживания рабочего:№1:23
Введите квартиру проживания рабочего:№1:34
Введите месяц поступления на работу рабочего:№1:1
Введите год поступления на работу рабочего:№1:1998
Введите фамилию рабочего №2:Двачевская
Введите имя рабочего:№2:Алиса
Введите отчество рабочего:№2:Петровна
Введите улицу проживания рабочего:№2:Пушкина
Введите дом проживания рабочего:№2:223
Введите квартиру проживания рабочего:№2:34
Введите месяц поступления на работу рабочего:№2:2
Введите год поступления на работу рабочего:№2:1997
Введите фамилию рабочего №3:Персунов
Введите имя рабочего:№3:Семён
Введите отчество рабочего:№3:Олегович
Введите улицу проживания рабочего:№3:Омотесандо
Введите дом проживания рабочего:№3:23
Введите квартиру проживания рабочего:№3:34
Введите месяц поступления на работу рабочего:№3:6
Введите год поступления на работу рабочего:№3:2000
Введите искомую улицу:Омотесандо

Пример вывода:
Результаты:
Рабочий #1,Хацуне Мику Ивановна
Адрес:Омотесандо 23,34
Дата поступления на работу:1,1998
Рабочий #3,Персунов Семён Олегович
Адрес:Омотесандо 23,34
Дата поступления на работу:6,2000


(38.6k баллов)