• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

сортировка выбором в паскале

  • Автор темы kirill97097
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

kirill97097

Привет! Мне нужно сделать работу, а я в этом полный НОЛЬ! Нужно сформировать при помощи генератора псевдослучайных чисел линейный целочисленный массив A[20], таким образом, чтобы элементы массива принадлежали отрезку [-50, 50], выполнить в нём линейный поиск введенного с клавиатуры элемента, отсортировать выбором и выполнить бинарный поиск элемента.
Программа в интернете нашлась вроде полезная:

procedure SelectSort(var d:vector;kol2:integer);
var j,min,nmin,k:integer;
begin
j := 1;
repeat
min := 100;
for i := j to kol2 do
if d < min then begin min := d; nmin := i; end;
for k := nmin downto j+1 do d[k] := d[k-1];
d[j] := min;
j := j + 1;
until j = kol2;
end;


но что с ней делать и как ее адаптировать к моему случаю ума не приложу. Для меня это все китайский язык!
Помогите, пожалуйста!
 
I

isqoff

выполнить в нём линейный поиск введенного с клавиатуры элемента = это вводим индекс или любое число в диапазоне от -50 до 50??
 
I

isqoff

Код:
 uses Crt;
var i,j,x,min,max,middle,buf : integer;
a : array [1..20] of integer;
ok : boolean;

BEGIN
{--------- создание линейного массива генератором случайных чисел --------------}
Randomize;

for i := 1 to 20 do a[i]:= Random(100)-50;

for i := 1 to 20 do write('a[',i,']= ',a[i],' ');
writeln;
writeln;

{------------------ поиск искомого элемента в массиве --------------------------}

writeln('Введите число для поиска в массиве из');
write('диапазона чисел (от -50 до 50) :');
readln(x);

for i:= 1 to 20 do
begin
if (x = a[i])then begin
write('Число в массиве под индексом [',i,']');
writeln;
ok := true;
end;
end;


if not ok then write('Искомого числа в массиве нет!');

{--------------------------- сортировка выбором --------------------------------}

for i := 1 to 19 do
begin
min := i;
for j:= i+1 to 20 do
if a[j]< a[min] then min := j;
buf :=a[i];
a[i]:=a[min];
a[min]:=buf;

end;

writeln;
writeln;
writeln('Массив отсортирован методом прямого выбора :');
for i := 1 to 20 do write('a[',i,']= ',a[i],' ');

writeln;
writeln;

{-------------------- бинарный поиск эллемента ---------------------------------}

if not ok
then begin
writeln('Выполнить бинарный поиск несуществующего эллемента');
write('массива невозможно!!!');
end
else begin
min := 1;
max := 20;
i := 0;
middle := 0;
ok := false;
repeat
middle := (max - min) div 2 + min;
i := i + 1;

if a[middle] = x
then ok := true
else if x < a[middle]
then max := middle - 1
else min := middle + 1;

until(min > max)or ok;

end;

if ok then write('Бинарный поиск завершён! Искомый эллемент'+
' в массиве под номером [',middle,']');


END.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!