
Вопрос задан 22.10.2023 в 20:09.
Предмет Информатика.
Спрашивает Сушко Анюта.
PASCAL Срочно!!!!! Напишите программу, работающую с одним массивом из 10 элементов целочисленного
типа. Программа просит пользователя заполнить массив целыми значениями, затем упорядочивает этот массив по возрастанию, используя сортировку методом простого выбора. После этого программа просит пользователя ввести одно целое значение, и, используя алгоритм двоичного поиска, определяет, имеется ли данное значение в массиве. В процессе сортировки программа считает, сколько раз производились перестановки элементов (обмен значениями двух разных элементов считается за одну перестановку), и сколько раз производились сравнения значений элементов массива с какими либо другими значениями. Количество сравнений и перестановок выводится на экран перед завершением работы программы.

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

Отвечает Варнина Дарья.
Увидимся в субботу))



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




Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Вот программа на языке Pascal, выполняющая заданные вами действия и выводящая количество сравнений и перестановок:
pascalprogram 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.
Эта программа сначала сортирует массив методом простого выбора, затем выполняет двоичный поиск заданного значения и выводит количество сравнений и перестановок.


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

Информатика 575

Информатика 33

Информатика 39

Информатика 24

Информатика 34

Информатика 136

Информатика 18
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili