<span>1.
const n=10;
var a:array[1..n] of integer;
i,min,max:integer;
begin
for i:=1 to n do a[i]:=random(50);
for i:=1 to n do write(a[i]:4);
writeln;
min:=32000; max:=-32000;
for i:=1 to n do
if a[i]<min then min:=a[i];
for i:=1 to n do
if a[i]>max then max:=a[i];
writeln('минимальный элемент массива = ',min);
writeln('максимальный элемент массива= ',max);
end.
2.
const n=10;
var a:array[1..n] of integer;
i,j,p:integer;
begin
for i:=1 to n do a[i]:=random(20);
for i:=1 to n do write(a[i]:4);
writeln;
for i:=1 to n-1 do begin
for j:=1 to n-1 do
if a[j]<=a[j+1] then begin
p:=a[j]; a[j]:=a[j+1]; a[j+1]:=p;
end;
end;
for i:=1 to n do write(a[i]:4);
end.</span>
Ответ:
При N=5 минимальным кол-вом вопросов (при оптимальных условиях) будет 2 вопроса
Объяснение:
Допустим в диапазоне 1-N было выбрано число 4
Задём вопрос "Это число больше 3 (половина возможных чисел)?", получаем ответ "да", потом спрашиваем "это число больше 4 (половина оставшихся чисел)?", получаем ответ "нет", значит раз это число больше 3 и не больше 4, то это и есть 4, остаётся уточнить это, задав 3 вопрос "является ли это число четвёркой"
Допустим выбрано число 1
"Это число больше 3?" - "нет"
"Это число больше 1?" - "нет" -- логично что это число 1
а если бы ответ был бы "да", то осталось бы проверить является ли это число 2, иначе это 3
Var a: integer;
begin
readln (a);
if a<0 then a:=a*2;
writeln (a);
end.
Begin
var a:=ArrRandom(40,0,20).Println;
var s:=a.Where(x->x mod 3 = 0).Sum;
writeln('S = ',s);
end.
Пример:
8 11 7 18 1 9 10 16 5 1 15 17 15 20 12 7 15 18 2 15 0 7 19 4 7 17 2 19 3 11 1 15 1 2 3 4 18 5 7 1
S = 156
// PascalABC.NET 3.4.2, сборка 1785 от 06.09.2018
var c, w: integer;
procedure check;
begin
var (a, b) := (Random(0, 20), Random(0, 20));
Print($'{a}*{b}=');
if a * b = ReadInteger then begin inc(c); Println('Правильно') end
else begin inc(w); Println('Неправильно') end;
end;
procedure res;
begin
Println($'Задано вопросов {c+w}');
Println($'Правильных {c}({(c*100)/(c+w):f1}%)');
Println($'Неправильных {w}({(w*100)/(c+w):f1}%)');
end;
begin
var start := true;
while start do
begin
Println('Проверим?(0/1)');
if ReadInteger = 0 then
begin start := false; res; end
else check;
end;
end.
Пример в приложении.