Задать вопрос
23 сентября, 00:26

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

Pascal ABC

+4
Ответы (1)
  1. 23 сентября, 01:01
    0
    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]
    if Mi 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
Знаете ответ?
Сомневаетесь в ответе?
Найдите правильный ответ на вопрос ✅ «Напишите программу, работающую с одним массивом из 10 элементов целочисленного типа. Программа просит пользователя заполнить массив целыми ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы
Похожие вопросы по информатике
1) Заполнить массив размером N целыми числами последовательно от 1 до N. Вывести его на экран. Найти сумму элементов массива и вывести ее на экран. 2) Заполнить массив размером N целыми числами последовательно от N до 1. Вывести его на экран.
Ответы (1)
Решите задачи: 1) Составьте программу ввода элементов массива [1 ... 8] с клавиатуры и вывода на экран элементов массива с отрицательными значениями. 2) Составьте программу, которая заполняет массив а [1 ...
Ответы (1)
Даны три одномерных массива. Упорядочить их по возрастанию элементов. Составить программу проверки, сколько раз повторяется заданное число в каждом массиве.
Ответы (1)
1. Возвести в квадрат все элементы массива A. Размер массива и значения элементов массива - произвольные. 2. Увеличить на 4 все элементы в первой половине массива A (считать, что в массиве чётное число элементов).
Ответы (1)
Решить не могу задачи по информатике: 1. Составьте программу ввода элементов массива h [1 ... 8] с клавиатуры и вывода на экран элементов с отрицательными значениями. 2. Составьте программу, которая заполняет массив h [1 ...
Ответы (1)