<u>PascalABC.NET 3.3.5, сборка 1660 от 20.04.2018</u>
<u>Внимание! Если программа не работает, обновите версию!</u>
begin
var a:=ArrRandom(ReadInteger('n='),-31,45); a.Println;
var b:=a.Where(t->t.IsOdd).ToArray; b.Println
end.
<u>Пример</u>
n= 13
-2 14 -27 20 -12 38 -16 31 13 29 21 -24 41
-27 31 13 29 21 41
Var a:real;
Begin
Write('a = ');ReadLn(a);
WriteLn('S = ',a*a);
End.
Var
A:integer;
Begin
Write('Введите целое число: ');ReadLn(A);
if A > 0 then A:=A+1;
WriteLn(A)
End.
<span>а)1000011110101=4341
</span>1010010111011=5307
<span>110011001100110101=209717
</span>б)123=1111011
456=<span>111001000
1024=</span><span>10000000000
4095=</span><span>111111111111</span>
Короче, я с теорией не работаю, поэтому объясню алгоритм более практичней. Итак, нам нужно проверить каждый элемент массива и выяснить, является ли он трехзначным числом. Какой-то переменной мы присваем значение 1000. И как только мы находим трехзначное число, мы проверяем ниже ли это число той переменной(в первый раз, соответственно да). если ответ положительный, то присваем переменной значение числа, сс которым мы работали и которое, естественно меньше. Теперь проверяем дальше трехзначные числа. Если они ниже переменной, то присваевам их к этой же переменной. В конце цикла, переменная будет иметь значение минимального 3х знач элемента. Если переменная по прежнему равна 1000. Значит 3х знач числа не нашлось и мы выводим надпись "таких чисел нет".