//Задача 1
begin
var a := ArrRandom(20, -20, 20).Println;
Println(a.Min, ' ', a.Max);
end.
//Задача 2
begin
var a := ReadArrInteger(10);
a.Where(p -> p.IsOdd).Count.Println;
end.
//Задача 3
begin
SeqGen(90, 10, x -> x + 1).Where(x -> x mod 3 = 0).Println;
end.
//Задача 4
begin
ArrRandom(10,-20,20).Println;
end.
//Задача 5
begin
var (a, b) := ReadInteger2;
Range(a, b).Product.Println
end.
//Задача 4
var
n, i, sum, count: integer;
begin
Writeln('Введите число: ');
Readln(n);
count := 0;
while n <> 0 do
begin
i := n mod 10;
sum += i;
count += 1;
n := n div 10;
end;
Writeln('Сумма цифр: ', sum);
Writeln('Количество: ', count);
end.
//Задача 7
var
n, i, sum, count: integer;
begin
Writeln('Введите число: ');
Readln(n);
count := 0;
while n <> 0 do
begin
i := n mod 10;
if not Odd(i) then count += 1;
n := n div 10;
end;
if count <> 0 then Writeln('True')
else Writeln('False');
end.
Задача 8
begin
var n := ReadInteger;
for var i := 1 to n do
begin
Println('Я НЕ учусь программировать');
end;
end.
n = 15;
var
a, b: array[1..n] of integer;
i, j, step, t: integer;
flag: boolean;
begin
Randomize;
Writeln('Исходные элементы массива');
for i := 1 to n do
begin
a[i] := Random(10) - 5;
Write(a[i]:4)
end;
{ Сортируем массив (метод Шелла) }
step := n div 2;
while step > 0 do
begin
for j := n - step downto 1 do
begin
i := j;
while i <= n - step do
begin
if a[i] > a[i + step] then
begin
t := a[i]; a[i] := a[i + step]; a[i + step] := t
end;
i := i + step
end
end;
step := step div 2
end;
{
проходим по массиву и если элемент встречается более одного раза подряд,
переносим его в другой массив
}
j := 0; t := a[1]; flag := false;
for i := 2 to n do
begin
if (a[i] = t) and (not flag) then
begin
j := j + 1; b[j] := t; flag := true
end
else begin flag := false; t := a[i] end
end;
Writeln;
Writeln('Отобранные элементы массива');
for i := 1 to j do Write(b[i]:4);
Writeln
end.
Тестовое решение:
Исходные элементы массива
-2 4 1 -3 -1 -2 -5 -1 2 4 1 3 -5 -2 -3
Отобранные элементы массива
-5 -3 -2 -1 1 4