var arr: array[1..20] of Integer; i, key, low, high, mid, sum, minElement: Integer; average: Real;
procedure SortArray(); var i, j, temp: Integer; begin for i := 1 to 20 do begin for j := i + 1 to 20 do begin if arr[i] > arr[j] then begin temp := arr[i]; arr[i] := arr[j]; arr[j] := temp; end; end; end; end;
begin sum := 0; minElement := MaxInt;
// Заполнение массива случайными числами Randomize; for i := 1 to 20 do begin arr[i] := Random(100); sum := sum + arr[i]; if arr[i] < minElement then minElement := arr[i]; end;
// Вычисление среднего арифметического average := sum / 20; WriteLn('Среднее арифметическое: ', average:0:2);
// Сортировка массива для бинарного поиска SortArray();
// Бинарный поиск наименьшего элемента low := 1; high := 20; key := minElement; while low <= high do begin mid := (low + high) div 2; if key < arr[mid] then high := mid - 1 else if key > arr[mid] then low := mid + 1 else begin WriteLn('Наименьший элемент массива: ', arr[mid]); break; end; end; end.
program BinarySearchAverage;
var
arr: array[1..20] of Integer;
i, key, low, high, mid, sum, minElement: Integer;
average: Real;
procedure SortArray();
var
i, j, temp: Integer;
begin
for i := 1 to 20 do
begin
for j := i + 1 to 20 do
begin
if arr[i] > arr[j] then
begin
temp := arr[i];
arr[i] := arr[j];
arr[j] := temp;
end;
end;
end;
end;
begin
sum := 0;
minElement := MaxInt;
// Заполнение массива случайными числами
Randomize;
for i := 1 to 20 do
begin
arr[i] := Random(100);
sum := sum + arr[i];
if arr[i] < minElement then
minElement := arr[i];
end;
// Вычисление среднего арифметического
average := sum / 20;
WriteLn('Среднее арифметическое: ', average:0:2);
// Сортировка массива для бинарного поиска
SortArray();
// Бинарный поиск наименьшего элемента
low := 1;
high := 20;
key := minElement;
while low <= high do
begin
mid := (low + high) div 2;
if key < arr[mid] then
high := mid - 1
else if key > arr[mid] then
low := mid + 1
else
begin
WriteLn('Наименьший элемент массива: ', arr[mid]);
break;
end;
end;
end.