1. Современный вариант (коротко, быстро и наглядно, кто знает). Так уже начали учить в некоторых школах.
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017 // Внимание! Если программа не работает, обновите версию!
begin var s:=ArrRandom(ReadInteger('n='),1,300).Println. Where(k->(k>=100) and ((k mod 100) div 10=0)); if s.Count>0 then Writeln(s.Max) else Writeln('Нет элементов') end.
2. А так по-прежнему учат в большинстве школ. Стиль "80-х годов века". Долго, длинно, можно наделать ошибок, но по-другому эти учителя сами не могут.
const nn=100; var i,n,max:integer; a:array[1..nn] of integer; begin Write('n='); Read(n); Randomize; max:=0; for i:=1 to n do begin a[i]:=Random(300)+1; Write(a[i],' '); if (a[i]>=100) and ((a[i] mod 100) div 10=0) then if a[i]>max then max:=a[i] end; Writeln; if max>0 then Writeln(max) else Writeln('Нет элементов') end.
1) Набираем 8ми литровый кувшин 2) отливаем 3 литра в 3х литровый и сливаем из него воду 3) в 8ми литровом осталось 5л воды, сливаем снова в 3х литровый, и в 8ми литровом осталось 2 литра воды. 4) выливаем из 3х литрового воду, и переливаем в него 2 литра, оставшиеся в 8литровом кувшине. 5)Снова наполняем 8ми литровый кувшин, и доливаем из него воду в 3х литровый кувшин, так как в 3х литровом налито 2 литра - там не хватает одного литра, значит отлив из 8ми литрового литр в нем останется 7 литров :)
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!
begin
var s:=ArrRandom(ReadInteger('n='),1,300).Println.
Where(k->(k>=100) and ((k mod 100) div 10=0));
if s.Count>0 then Writeln(s.Max) else Writeln('Нет элементов')
end.
Пример
n= 15
76 283 171 140 113 65 185 35 202 42 93 51 205 76 138
205
2. А так по-прежнему учат в большинстве школ. Стиль "80-х годов века". Долго, длинно, можно наделать ошибок, но по-другому эти учителя сами не могут.
const
nn=100;
var
i,n,max:integer;
a:array[1..nn] of integer;
begin
Write('n=');
Read(n);
Randomize;
max:=0;
for i:=1 to n do begin
a[i]:=Random(300)+1;
Write(a[i],' ');
if (a[i]>=100) and ((a[i] mod 100) div 10=0) then
if a[i]>max then max:=a[i]
end;
Writeln;
if max>0 then Writeln(max)
else Writeln('Нет элементов')
end.
Пример
n=15
219 68 131 115 104 169 80 288 143 108 124 214 50 101 1
108
2) отливаем 3 литра в 3х литровый и сливаем из него воду
3) в 8ми литровом осталось 5л воды, сливаем снова в 3х литровый, и в 8ми литровом осталось 2 литра воды.
4) выливаем из 3х литрового воду, и переливаем в него 2 литра, оставшиеся в 8литровом кувшине.
5)Снова наполняем 8ми литровый кувшин, и доливаем из него воду в 3х литровый кувшин, так как в 3х литровом налито 2 литра - там не хватает одного литра, значит отлив из 8ми литрового литр в нем останется 7 литров :)