
Онуфрий
5 год назад
Пожалуйста посчитайте пожалуйста написать программу!Заполнить массив случайными числами и отсортировать его. Ввести число X. Используя двоичный поиск, определить, Как узнать сколько чисел, равных X, находится в массиве.Пример:Массив:1 4 7 3 9 2 4 5 2После сортировки:1 2 2 3 4 4 5 7 9Введите число X:4Число 4 встречается 2 раз(а).Пример:Массив:1 4 7 3 9 2 4 5 2После сортировки:1 2 2 3 4 4 5 7 9Введите число X:14Число 14 не встречается.
ОТВЕТЫ

Radko
Oct 24, 2020
const
t = 10;// количество чисел в массиве
var
a: array[1..t] of integer;
i, min, k, tmp, klv, z: integer;
b: boolean;
begin
for i := 1 to t do
a[i] := random(10) + 1; //Рандом чисел от 1 до 10
writeln('Массив:');
for i := 1 to t do
write(' ', a[i]:2);
writeln;
for i := 1 to t - 1 do
for k := i + 1 to t do
if a[i] > a[k] then
begin
tmp := a[k];
a[k] := a[i];
a[i] := tmp;
end;
writeln('После сортировки:');
for i := 1 to t do
write(' ', a[i]:2);
writeln;
klv := 0;
writeln('Введите число X:');
readln(z);
for i := 1 to t do
if a[i] = z then
begin
b := true;
inc(klv);
end;
if b then
begin
writeln('Число ', z, ' встречается ', klv, ' раз(а).');
end;
if b = false then writeln('Число ', z, ' не встречается.');
end.
t = 10;// количество чисел в массиве
var
a: array[1..t] of integer;
i, min, k, tmp, klv, z: integer;
b: boolean;
begin
for i := 1 to t do
a[i] := random(10) + 1; //Рандом чисел от 1 до 10
writeln('Массив:');
for i := 1 to t do
write(' ', a[i]:2);
writeln;
for i := 1 to t - 1 do
for k := i + 1 to t do
if a[i] > a[k] then
begin
tmp := a[k];
a[k] := a[i];
a[i] := tmp;
end;
writeln('После сортировки:');
for i := 1 to t do
write(' ', a[i]:2);
writeln;
klv := 0;
writeln('Введите число X:');
readln(z);
for i := 1 to t do
if a[i] = z then
begin
b := true;
inc(klv);
end;
if b then
begin
writeln('Число ', z, ' встречается ', klv, ' раз(а).');
end;
if b = false then writeln('Число ', z, ' не встречается.');
end.
256
Смежные вопросы: