Вопрос задан 22.10.2023 в 20:09. Предмет Информатика. Спрашивает Сушко Анюта.

PASCAL Срочно!!!!! Напишите программу, работающую с одним массивом из 10 элементов целочисленного

типа. Программа просит пользователя заполнить массив целыми значениями, затем упорядочивает этот массив по возрастанию, используя сортировку методом простого выбора. После этого программа просит пользователя ввести одно целое значение, и, используя алгоритм двоичного поиска, определяет, имеется ли данное значение в массиве. В процессе сортировки программа считает, сколько раз производились перестановки элементов (обмен значениями двух разных элементов считается за одну перестановку), и сколько раз производились сравнения значений элементов массива с какими либо другими значениями. Количество сравнений и перестановок выводится на экран перед завершением работы программы.
0 0
Перейти к ответам

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

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





0 0
Отвечает Зубко Вика.
Решение в прикрепленном файле 

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

Вот программа на языке Pascal, выполняющая заданные вами действия и выводящая количество сравнений и перестановок:

pascal
program BinarySearch; const N = 10; var arr: array[1..N] of integer; i, j, temp, key, comparisons, swaps: integer; found: boolean; procedure SimpleSelectionSort(var a: array of integer); begin swaps := 0; comparisons := 0; for i := 1 to N - 1 do begin for j := i + 1 to N do begin comparisons := comparisons + 1; if a[i] > a[j] then begin temp := a[i]; a[i] := a[j]; a[j] := temp; swaps := swaps + 1; end; end; end; end; procedure BinarySearch(var a: array of integer; key: integer; var found: boolean); var left, right, middle: integer; begin left := 1; right := N; found := false; comparisons := comparisons + 1; while (left <= right) and not found do begin middle := (left + right) div 2; comparisons := comparisons + 1; if a[middle] = key then found := true else if a[middle] > key then right := middle - 1 else left := middle + 1; end; end; begin writeln('Введите ', N, ' целых чисел:'); for i := 1 to N do read(arr[i]); SimpleSelectionSort(arr); writeln('Отсортированный массив:'); for i := 1 to N do write(arr[i], ' '); writeln; write('Введите целое значение для поиска: '); read(key); BinarySearch(arr, key, found); if found then writeln('Значение ', key, ' найдено в массиве.') else writeln('Значение ', key, ' не найдено в массиве.'); writeln('Количество сравнений: ', comparisons); writeln('Количество перестановок: ', swaps); end.

Эта программа сначала сортирует массив методом простого выбора, затем выполняет двоичный поиск заданного значения и выводит количество сравнений и перестановок.

0 0

Похожие вопросы

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

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

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