Выполнить два задания. Оформить отчеты. Пример оформления приведен в приложении 1.
Требования к заданию 1
1. Использовать статический массив с переменной верхней границей.
2. Размер массива определить в через define констант.
3. Тип массива определить в разделе типа с указанным в разделе констант размером.
4. Ввод данных в массив с помощью клавиатуры оформить функцией с параметрами: массив, количество обрабатываемых элементов (в пределах размера выделенной памяти). Функция обеспечивает: ввод значений, контроль вводимых значений.
5. Ввод данных в массив с помощью датчика случайных чисел оформить функцией с параметрами: массив, количество обрабатываемых элементов. Функция обеспечивает заполнение массива датчиком случайных чисел в соответствии с диапазоном значений.
6. Определить дополнительные операции над элементами массива из условия задачи и оформить эти операции в виде функций.
7. Управление программой обеспечить с помощью интерфейса (текстовое меню), включив в него: пункт ввод, код которого содержит: реализацию запроса на количество обрабатываемых элементов массива и контроль введенного значения и вызов одной из функций ввода по выбору пользователя; вывод, и обработку массива согласно условию задачи и завершение программы.
|
|
Требования к заданию 2
1. Использовать только динамический массив.
2. Для каждой задачи варианта выполните декомпозицию и для каждой разработайте отдельную функцию.
3. В программу включите интерфейс пользователя для выбора пользователем способа ввода элементов массива: с клавиатуры и датчиком случайных чисел, вывода массива и выполнение всех задач задания.
Варианты заданий
ВАРИАНТ 1
1. Дан массив Х из М целых чисел(0<M<97;1000<X[i]<100). Найти максимальное из чисел, встречающееся в данном массиве более 1 раза.
2. Дан одномерный целочисленный массив А, состоящий из N элементов. N заданное натуральное число.
· Cформировать массив В из элементов массива А, являющихся простыми числами.
· Выполнить сортировку части массива В между первым минимальным и последним минимальным значениями методом прямого обмена.
· Удалить все элементы массива, сумма цифр которых кратна 7.
· Найти самую длинную подпоследовательность массива А, состоящую из элементов, которые являются четными числами.
ВАРИАНТ 2
1. Дан массив М, состоящий из К целых чисел (0<K<100;-10000<M[i]<10000). Найти минимальное число среди четных чисел чисел этого массива.
2. Дан одномерный целочисленный массив А состоящий из N различных элементов. N заданное натуральное число.
· Найти среднее арифметическое значение элементов, расположенных между первым наибольшим и первым наименьшим элементами, включая эти элементы.
|
|
· Сформировать массив В, из тех элементов массива А, у которых двоичный код содержит более трех единиц.
· Выполнить упорядочение массива А по правилу: с младших индексов разместить элементы большие нуля, затем меньшие нуля, затем нули (порядок следования элементов в исходном массиве оставить прежним).
· Удалить все элементы массива, являющиеся простыми числами.
ВАРИАНТ 3
1. Дан массив К состоящий из М целых чисел (0<M<97; 0<K[i]<1000000). Определить НОК (наименьшее общее кратное) среди элементов массива, имеющих четные индексы.
2. Дан одномерный целочисленный массив А состоящий из N элементов. N заданное натуральное число.
· Определить образуют ли элементы массива А строго возрастающую последовательность.
· Сформировать массив В, из тех элементов массива А, которые являются палиндромами.
· Упорядочить массив А по убыванию методом Вставки.
· Найти самую короткую подпоследовательность, массива А, состоящую из элементов, которые являются простыми числами.
ВАРИАНТ 4
1. Дан массив A состоящий из N целых чисел (0<N<97; 0<A[i]<10000).Определить НОД (наибольший общий делитель) тех элементов этого массива. у которых совпадают младшая и старшая цифры.
2. Дан одномерный целочисленный массив А состоящий из N элементов. N заданное натуральное число.
· Определить образуют ли элементы массива арифметическую прогрессию.
· Сформировать массив В, поместив в элемент В[i] значение равное количеству делителей элемента А[i].
· Выполнить упорядочение элементов массива А по правилу: с младших индексов нули, затем положительные, затем отрицательные (порядок следования элементов в исходном массиве оставить прежним).
· Удалить из массива самую длинную подпоследовательность, состоящую из простых чисел.
ВАРИАНТ 5
1. Дан массив M состоящий из N целых чисел (0<N<1000; 0<M[i]<1000). Определить, сколько элементов массива начинаются с цифры 1, сколько с цифры 2, сколько с цифры 3 и т.д. Вывести ту цифру, с которой в массиве начинается больше всего элементов.
2. Дан одномерный целочисленный массив А состоящий из N элементов. N заданное натуральное число.
· Найти последнее максимальное значение массива и его индекс.
· Выполнить сортировку массива А методом прямого выбора.
· Сжать массив А, удалив из него элементы, значения которых принадлежат сегментам [1,10] либо [20,30], сохранив взаимное расположение остальных элементов в массиве А, если таких элементов нет, то выдать соответствующее сообщение.
· Сформировать массив В из элементов массива А, являющихся совершенными числами (сумма делителей числа, исключая само число, равна самому числу).
ВАРИАНТ 6
1. В одномерном массиве Х состоящем из N целых чисел (0<N<100;-10000<X[i]<1000) расположить элементы в следующем порядке:
· отрицательные элементы в порядке возрастания их модулей
· положительные элементы в порядке убывания их модулей
· нулевые элементы
2. Дан одномерный целочисленный массив А, состоящий из N элементов.
· Выполнить сортировку массива А методом улучшенного Пузырька, располагая элементы в порядке возрастания.
· Найти индекс заданного элемента, используя метод бинарного поиска.
· Найти в массиве самую длинную возрастающую подпоследовательность.
· Удалить из массива А все числа, являющиеся числами Армстронга (натуральное число, удовлетворяющее условию: сумма цифр, возведенных в степень n равна самому числу 153=13+53+33 степень n определяется путем подбора).
ВАРИАНТ 7
1. В одномерном массиве А, состоящем из N целых чисел (0<N<1000; 0<A[i]<100) расположить серии повторяющихся элементов в порядке убывания длин серий. Например: 33333336666662222277778845. Подсказка: использовать массив из 99 счетчиков, для каждого возможного значения массива А.
|
|
2. Дан одномерный целочисленный массив А, состоящий из N элементов. N заданное натуральное число.
· Найти количество элементов массива, расположенных между первым минимальным и последним максимальным элементами.
· Выполните сортировку части массива А, между первым минимальным и последним максимальным, располагая элементы в порядке возрастания их значений, методом прямой вставки.
· Удалить из массива А все повторные вхождения элементов, оставив только первое вхождение.
· Найти наибольший общий делитель элементов массива, имеющих индексом простое число.
ВАРИАНТ 8
1. Дан массив N состоящий из К целых чисел (0<K<=50;-10000<N[i]<10000). Определить НОК (наименьшее кратное) тех элементов массива, которые имеют в своем представлении цифру 5.
2. Заданы два упорядоченных по возрастанию одномерных целочисленных массива А и В, состоящие из N элементов каждый.
· Объединить элементы этих двух массивов в один также упорядоченный по возрастанию массив (примените алгоритм сортировки последовательным слиянием).
· Сформируйте массив из равных элементов массивов А и В(пересечение двух массивов).
· Удалите из массива А элементы равные элементам В (вычитание из А массива В).
· Найдите самую длинную подпоследовательность в массиве А, состоящую из нечетных чисел.
ВАРИАНТ 9
1. Дан массив Х, состоящий из N целых чисел (0<N<1000;0<X[i]<10000). Выполнить упорядочение массива по правилу: все положительные четные элементы массива Х перенести в начало, а все остальные элементы в конец, сохраняя взаимное расположение, как среди четных элементов, так и среди остальных элементов
2. Дан одномерный целочисленный массив А, состоящий из N элементов. N заданное натуральное число.
· Определить, образуют ли значения элементов массива последовательность чисел Фиббоначи.
· Сформировать массив В из простых множителей элемента массива А, являющегося наибольшего среди элементов массива имеющих нечетное значение.
· Удалить из массива А все элементы, сумма цифр корторых кратна 7.
|
|
· Выполнить циклический сдвиг массива влево на число элементов равное заданному К.
ВАРИАНТ 10
1. Дан массив Z состоящий из M целых чисел (0<M<1000;0<Z[i]<1000000). Сформировать массив В из тех элементов массива А, значения которых являются числами – палиндромами.
2. Дан одномерный целочисленный массив А состоящий из N элементов. N заданное натуральное число.
· Определить, симметричен ли массив (т.е. первый элемент равен последнему, второй предпоследнему и т.д.).
· Выполнить сортировку массива А, располагая элементы в порядке возрастания сумм цифр, применяя метод прямого выбора (можно использовать дополнительный массив).
· Удалить из массива А, все элементы (числа) массива, цифры которых образуют строго возрастающую последовательность.
· Найти самую длинную подпоследовательность, составленную из чисел, у которых первая и последняя цифры равны.
ВАРИАНТ 11
1. Даны два одинаково упорядоченных массива А и В, состоящие соответственно из N и M целых чисел. Сформировать массив С, состоящий из M+N целых чисел, в котором элементы также упорядочены и по тому же правилу.
2. Дан одномерный целочисленный массив А из N элементов. N заданное натуральное число.
· Сформировать массив В, из элементов массива А, которые являются числами Мерсена (число N является числом Мерсена, если это простое число и N+1=2P, где Р. также простое число).
· Удалить из массива А те элементы в записи которых есть цифра 5.
· Выполнить циклический сдвиг массива А вправо на заданное число элементов К.
· Упорядочить массив по правилу перед элементом, который был первым в массиве разместить все большие его, а за ним все остальные, сохраняя взаимное расположение, как среди элементов, стоящих перед первым, так и среди остальных элементов.
ВАРИАНТ 12
1. Дан массив А из N+1 вещественных чисел. Элементы массива А – это коэффициенты многочлена N-ой степени. Вычислить значение многочлена и его первой производной в точке Х (значение Х вводиться).
2. Заданы два одномерных целочисленных массива А и В,состоящие из N и М элементов соответственно (где
0≤i<N; 0≤i<M). Массив А упорядочен по не убыванию.
· Сформировать массив С, элементами которого являются натуральные числа –индексы элементов массива А, значения которых равны элементу Bi (где 0≤i<M), применяя для поиска индекса метод бинарного поиска.
· Удалить из массива В все элементы кратные 3, массив сжать.
· Упорядочить массив В по правилу: с младших индексов четные, затем нечетные, затем нулевые элементы.
· Вставить новый элемент в упорядоченный массив А, не нарушая упорядоченности.
ВАРИАНТ 13
1. В одномерном массиве Y, состоящем из М целых чисел, (0<M<10000;0<Z[i]<100) найти и вывести максимально длинную возрастающую подпоследовательность. Если их несколько, то вывести первую из них.
2. Дан одномерный целочисленный массив А, состоящий из N элементов.
· Присвоить значение флажковой переменной F единицу, если все элементы массива А образуют строго возрастающую арифметическую прогрессию, и F=-1 если строго убывающую арифметическую прогрессию, или 0, если она не упорядочена по указанным правилам.
· Сформировать массив из тех элементов массива А, которые делятся на каждую из своих цифр.
· Если элементы массива не упорядочена по возрастанию, то упорядочить ее применяя метод центрированной вставки.
· Удалить все элементы массива, являющиеся простыми числами.
ВАРИАНТ 14
1. Дан одномерный целочисленный массив А состоящий из N элементов(0<N<20;-10000<A[i]<10000).. найти наибольший среди элементов массива А, являющихся простыми числами
2. Дан массив A, состоящий из N целых чисел
· Сформировать массив В из неповторяющихся элементов массива А.
· Удалить из массива А элементы, шестнадцатеричный код которых содержит буквы.
· Упорядочить массив по правилу: с младших индексов числа начинающиеся с цифры 1, затем 2, затем 3 и т.д.(сохраняя взаимное расположение всех перемещаемых элементов).
· Найти НОД всех элементов массива, сумма цифр которых кратна 7.
ВАРИАНТ 15
1. Дан массив Y, состоящий из М целых чисел (0<M<=10; -1000<y[i]<1000). Определить количество элементов массива, являющихся числами –палиндромами.
2. Дан одномерный целочисленный массив А, состоящий из N элементов.
· Найти МАХ - наибольшее, а MIN - наименьшее среди элементов массива А.
· Сформировать массив В из чисел, являющихся степенью двух и принадлежащих сегменту [MIN,MAX].
· Удалить из массива В те элементы, которые не являются элементами массива A, если таких элементов нет, то выдать соответствующее сообщение.
· Упорядочить элементы массива В по не убыванию, используя метод Вставки.
Приложение 1 Форма отчета
Задание 1
Условие задания
Дан статический массив из целых беззнаковых элементов.
· Вставить новый элемент перед каждым элементом, у которого четное количество цифр.
· Удалить все числа массива, следующие за простым числом.
· Найти максимальное число среди четных чисел массива.
· Для сортировки массива использовать алгоритм линейного выбора элемента.
Декомпозиция
Задачу следует разбить на следующие подзадачи:
· Проверка количества цифр в числе на четность
· Вставка нового элемента перед каждым, у которого четное количество цифр
· Проверка, является ли число простым
· Удаление все числа массива, следующие за простым числом
· Поиск максимального числа среди четных чисел массива
· Сортировка массива методом линейного выбора
Определение функций
1) Проверять, четное ли количество цифр в числе, будем с помощью функции