Вопрос задан 27.04.2019 в 14:00. Предмет Информатика. Спрашивает Zhienbayev Nyrlan.

Очень срочно. даю 100 пунктов.Pascal ABC.Если не сдам, будет 3 за четверть((((((((((((((Написать

программу, которая сортирует массив ПО УБЫВАНИЮ и ищет в нем элемент, равный X (это число вводится с клавиатуры). Использовать двоичный поиск.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Камнева Антонина.

var
l, i , n, z, j,r,m, key: integer;
a: array [1..100] of integer;

begin
readln(key, n);
for i := 1 to n do
read(a[i]);
for i := 1 to n-1 do
for j := i to n do
if a[i] < a[j] then
begin
z := a[i];
a[i] := a[j];
a[j] := z
end;

l := 1;
r := n + 1;
While l < r - 1 do
begin
m := (l + r) div 2;
if a[m] < key then r := m
else l := m;
end;
if a[l] = key then WriteLn(l);
end.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Программа на языке Pascal:

```pascal program SearchAndSort; var arr: array[1..10] of integer; // пример массива из 10 элементов x, i, j, temp, first, last, middle: integer;

begin // заполняем массив случайными числами randomize; for i := 1 to 10 do arr[i] := random(100); // случайные числа от 0 до 99

// сортировка массива по убыванию for i := 1 to 10 do for j := i+1 to 10 do if arr[i] < arr[j] then begin temp := arr[i]; arr[i] := arr[j]; arr[j] := temp; end;

// вывод отсортированного массива writeln('Отсортированный массив по убыванию:'); for i := 1 to 10 do write(arr[i], ' ');

// ввод числа X с клавиатуры writeln; writeln('Введите число X для поиска:'); readln(x);

// двоичный поиск элемента, равного X first := 1; last := 10; middle := (first + last) div 2;

while (first <= last) and (arr[middle] <> x) do begin if x < arr[middle] then first := middle + 1 else last := middle - 1; middle := (first + last) div 2; end;

if arr[middle] = x then writeln('Элемент ', x, ' найден в массиве на позиции ', middle) else writeln('Элемент ', x, ' не найден в массиве');

end. ```

Это программа на языке Pascal, которая сначала заполняет массив случайными числами, затем сортирует его по убыванию. После этого программа запрашивает число X для поиска и применяет двоичный поиск для поиска этого числа в отсортированном массиве. Если число X найдено, программа выводит его позицию в массиве, если нет - сообщает об этом.

Надеюсь, это поможет вам выполнить задание. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос