//Большую часть времени убил на тесты //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
Предполагаю 55555 - 29 - Ы мой вариант - немного не логичный с некоторой стороны, но попытаюсь объяснить почему 29: -- О - 16 - 10000 в двоичной системе, если посмотреть, то именно 5 цифр получается, что возможно нам и подходит. Д - 5 - 101 возможно, это потому что две 55, и добавляем единицу в конце Т - 20 - 10100 тут образуются все 5 цифр, и как перед этим (Д - 5), получаем 101 Ч - 26 - 11010 тут просто добавляется 1 в перед и далее 55555, так как с 5555 получили просто впереди 1, то скорее всего, и тут добавляется 1, и получаем число 11101 = 29
//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
мой вариант - немного не логичный с некоторой стороны, но попытаюсь объяснить почему 29:
--
О - 16 - 10000 в двоичной системе, если посмотреть, то именно 5 цифр получается, что возможно нам и подходит.
Д - 5 - 101 возможно, это потому что две 55, и добавляем единицу в конце
Т - 20 - 10100 тут образуются все 5 цифр, и как перед этим (Д - 5), получаем 101
Ч - 26 - 11010 тут просто добавляется 1 в перед
и далее 55555, так как с 5555 получили просто впереди 1, то скорее всего, и тут добавляется 1, и получаем число 11101 = 29