Помогите пожалуйста написать программку!Заполнить массив случайными числами и отсортировать
Помогите пожалуйста написать программку!Заполнить массив случайными числами и отсортировать его. Ввести число 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 не встречается.
Вера Пульнева
Теснее приходилось решать эту задачку.
2 ответа
Оксана Дуварова
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] gt; 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] gt; 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.
Дарья
Const n=20;
var a:array[1..n] of integer;
i,j,t,i1,i2,x:integer;
begin
Randomize;
Writeln('Исходный массив:');
for i:=1 to n do begin
a[i]:=Random(15);
Write(a[i],' ')
end;
Writeln;
for i:=1 to n-1 do
for j:=1 to n-i do
if a[j]gt;a[j+1] then
begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t end;
Writeln('Отсортированный массив:');
for i:=1 to n do Write(a[i],' ');
Writeln;
write('x = '); readln(x);
i1:=1; i2:=n;
repeat
i:=(i1+i2) div 2;
if a[i]lt;x then i1:=(i1+i2) div 2+1;
if a[i]gt;x then i2:=(i1+i2) div 2-1;
until (a[i]=x)or(i1gt;i2);
if a[i]=x then
begin
while (igt;0)and(a[i]=x) do i:=i-1;
i:=i+1; j:=i;
while (ilt;=n)and(a[i]=x) do i:=i+1;
writeln('Число ',x,' встречается ',i-j,' раз(а)');
end
else writeln('Число ',x,' не встречается');
writeln;
end.
Пример:
Исходный массив:
4 13 5 3 14 12 12 8 9 6 3 2 4 4 14 1 12 2 5 9
Отсортированный массив:
1 2 2 3 3 4 4 4 5 5 6 8 9 9 12 12 12 13 14 14
x = 5
Число 5 встречается 2 раз(а)
var a:array[1..n] of integer;
i,j,t,i1,i2,x:integer;
begin
Randomize;
Writeln('Исходный массив:');
for i:=1 to n do begin
a[i]:=Random(15);
Write(a[i],' ')
end;
Writeln;
for i:=1 to n-1 do
for j:=1 to n-i do
if a[j]gt;a[j+1] then
begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t end;
Writeln('Отсортированный массив:');
for i:=1 to n do Write(a[i],' ');
Writeln;
write('x = '); readln(x);
i1:=1; i2:=n;
repeat
i:=(i1+i2) div 2;
if a[i]lt;x then i1:=(i1+i2) div 2+1;
if a[i]gt;x then i2:=(i1+i2) div 2-1;
until (a[i]=x)or(i1gt;i2);
if a[i]=x then
begin
while (igt;0)and(a[i]=x) do i:=i-1;
i:=i+1; j:=i;
while (ilt;=n)and(a[i]=x) do i:=i+1;
writeln('Число ',x,' встречается ',i-j,' раз(а)');
end
else writeln('Число ',x,' не встречается');
writeln;
end.
Пример:
Исходный массив:
4 13 5 3 14 12 12 8 9 6 3 2 4 4 14 1 12 2 5 9
Отсортированный массив:
1 2 2 3 3 4 4 4 5 5 6 8 9 9 12 12 12 13 14 14
x = 5
Число 5 встречается 2 раз(а)
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов