Напишите программу, работающую с одним массивом из 10 элементов целочисленного типа. программа просит пользователя заполнить массив целыми значениями, затем упорядочивает этот массив по возрастанию, используя сортировку методом простого выбора. после этого программа просит пользователя ввести одно целое значение, и, используя алгоритм двоичного поиска, определяет, имеется ли данное значение в массиве. в процессе сортировки программа считает, сколько раз производились перестановки элементов (обмен значениями двух разных элементов считается за одну перестановку), и сколько раз производились сравнения значений элементов массива с какими либо другими значениями. количество сравнений и перестановок выводится на экран перед завершением работы программы. pascal abc
214
427
Ответы на вопрос:
Const n = 10; var a: array[1..n] of integer; i,j,m,b,c,p,s: integer; begin randomize; {заполнение и вывод} write('исходный массив: '); for i: = 1 to n do begin a[i]: =random(n); write(' ',a[i]); end; writeln; {сортировка} p: =0; for i: = 1 to n do begin m: =i; for j: = i+1 to n do if a[j]< a[m] then m: =j; if m< > i then begin b: =a[m]; a[m]: =a[i]; a[i]: =b; p: =p+1; {вывод каждого шага сортировки} write('перестановка №',p,': '); for j: = 1 to n do write(' ',a[j]); writeln; end; end; writeln; write('отсортированный массив: '); for i: = 1 to n do write(' ',a[i]); {бинарный поиск} writeln; write('введите число: '); readln(c); m: =n div 2; i: =1; j: =n; s: =0; while (a[m]< > c)and(i< =j) do begin if c > a[m] then i: =m+1 else j: =m-1; s: =s+1; m: =(i+j) div 2; end; writeln; if a[m]=c then writeln('в массиве есть данное число') else writeln('в массиве нет данного числа'); writeln('кол-во перестановок за сортировку: ',p); writeln('кол-во сравнений за поиск: ',s); end. примеры: исходный массив: 0 4 5 4 1 2 6 7 0 7 перестановка №1: 0 0 5 4 1 2 6 7 4 7 перестановка №2: 0 0 1 4 5 2 6 7 4 7 перестановка №3: 0 0 1 2 5 4 6 7 4 7 перестановка №4: 0 0 1 2 4 5 6 7 4 7 перестановка №5: 0 0 1 2 4 4 6 7 5 7 перестановка №6: 0 0 1 2 4 4 5 7 6 7 перестановка №7: 0 0 1 2 4 4 5 6 7 7 отсортированный массив: 0 0 1 2 4 4 5 6 7 7 введите число: 3 в массиве нет данного числа кол-во перестановок за сортировку: 7 кол-во сравнений за поиск: 4 исходный массив: 4 4 1 3 4 4 5 0 7 2 перестановка №1: 0 4 1 3 4 4 5 4 7 2 перестановка №2: 0 1 4 3 4 4 5 4 7 2 перестановка №3: 0 1 2 3 4 4 5 4 7 4 перестановка №4: 0 1 2 3 4 4 4 5 7 4 перестановка №5: 0 1 2 3 4 4 4 4 7 5 перестановка №6: 0 1 2 3 4 4 4 4 5 7 отсортированный массив: 0 1 2 3 4 4 4 4 5 7 введите число: 5 в массиве есть данное число кол-во перестановок за сортировку: 6 кол-во сравнений за поиск: 2
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
sankasypper235816.04.2020 23:55
-
rusnaktaniusha16.01.2022 14:59
-
matve22823.04.2020 18:13
-
negricho07.09.2021 08:30
-
ПростоФедя21.07.2020 06:26
-
dikozzz05.02.2021 21:59
-
арина137615.07.2022 20:14
-
dikoshadobro129.07.2020 17:32
-
niuaki21.02.2021 14:15
-
znatokchok27.01.2023 22:03
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.