3. Пользователь вводит число N. Затем вводит еще N чисел добавьте каждое из этих чисел в список. Преобразуйте каждое из этих чисел в целое число. Найдите максимальный элемент списка.
Сумма номеров от 1 до 9 равна 45. Сумма от 10 до 19 равна 10 + 45 = 55. Сумма от 20 до 29 равна 2*10 + 45 = 65. Сумма от 30 до 39 равна 3*10 + 45 = 75. ... Сумма от 90 до 99 равна 9*10 + 45 = 135. Сумма всех цифр от 1 до 99 равна 45 + 55 + 65 + ... + 135 = (45 + 135)*10/2 = 180*10/2 = 900 В номерах от 100 до 199 та же сумма цифр 900 + 100*1 = 1000 В номерах от 200 до 209 сумма цифр 2*9 + 45 = 18 + 45 = 63 В номерах от 210 до 212 сумма цифр 2+1+0+2+1+1+2+1+2 = 12 Итого сумма всех цифр 900 + 1000 + 63 + 12 = 1975
//Большую часть времени убил на тесты //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
Сумма от 10 до 19 равна 10 + 45 = 55.
Сумма от 20 до 29 равна 2*10 + 45 = 65.
Сумма от 30 до 39 равна 3*10 + 45 = 75.
...
Сумма от 90 до 99 равна 9*10 + 45 = 135.
Сумма всех цифр от 1 до 99 равна
45 + 55 + 65 + ... + 135 = (45 + 135)*10/2 = 180*10/2 = 900
В номерах от 100 до 199 та же сумма цифр 900 + 100*1 = 1000
В номерах от 200 до 209 сумма цифр 2*9 + 45 = 18 + 45 = 63
В номерах от 210 до 212 сумма цифр 2+1+0+2+1+1+2+1+2 = 12
Итого сумма всех цифр 900 + 1000 + 63 + 12 = 1975
//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