Содержание
ВНИМАНИЕ | Для заказа программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Варианты заданий
💡 Размерности массивов задаются именованными константами.
№ | Условие |
1 | В одномерном массиве, состоящем из $n$ вещественных элементов, вычислить:
Упорядочить элементы массива по возрастанию. |
2 | В одномерном массиве, состоящем из $n$ вещественных элементов, вычислить:
Упорядочить элементы массива по убыванию. |
3 | В одномерном массиве, состоящем из $n$ целых элементов, вычислить:
Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом — все отрицательные (элементы, равные $0$, считать положительными). |
4 | В одномерном массиве, состоящем из $n$ вещественных элементов, вычислить:
Сжать массив, удалив из него все элементы, модуль которых не превышает $1$. Освободившиеся в конце массива элементы заполнить нулями. |
5 | В одномерном массиве, состоящем из $n$ вещественных элементов, вычислить:
Сжать массив, удалив из него все элементы, модуль которых находится в интервале $[a,\ b]$. Освободившиеся в конце массива элементы заполнить нулями. |
6 | В одномерном массиве, состоящем из $n$ вещественных элементов, вычислить:
Преобразовать массив таким образом, чтобы сначала располагались все элементы, равные нулю, а потом — все остальные. |
7 | В одномерном массиве, состоящем из $n$ целых элементов, вычислить:
Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в нечетных позициях, а во второй половине — элементы, стоявшие в четных позициях. |
8 | В одномерном массиве, состоящем из $n$ вещественных элементов, вычислить:
Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает $1$, а потом — все остальные. |
9 | В одномерном массиве, состоящем из $n$ вещественных элементов, вычислить:
Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных. |
10 | В одномерном массиве, состоящем из $n$ целых элементов, вычислить:
Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в четных позициях, а во второй половине — элементы, стоявшие в нечетных позициях. |
11 | В одномерном массиве, состоящем из $n$ вещественных элементов, вычислить:
Сжать массив, удалив из него все элементы, величина которых находится в интервале $[a,\ b]$. Освободившиеся в конце массива элементы заполнить нулями. |
12 | В одномерном массиве, состоящем из $n$ вещественных элементов, вычислить:
Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале $[a,\ b]$, а потом — все остальные. |
13 | В одномерном массиве, состоящем из $n$ вещественных элементов, вычислить:
Упорядочить элементы массива по убыванию модулей элементов. |
14 | В одномерном массиве, состоящем из $n$ вещественных элементов, вычислить:
Упорядочить элементы массива по возрастанию модулей элементов. |
15 | В одномерном массиве, состоящем из $n$ вещественных элементов, вычислить:
Преобразовать массив таким образом, чтобы сначала располагались все отрицательные, а потом — все положительные (элементы, равные $0$, считать положительными). |
16 | В одномерном массиве, состоящем из $n$ вещественных элементов, вычислить:
Заменить все отрицательные элементы массива их квадратами и упорядочить элементы массива по возрастанию. |
17 | В одномерном массиве, состоящем из $n$ целых элементов, вычислить:
Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых не превышает $1$, а потом — все остальные. |
18 | В одномерном массиве, состоящем из $n$ вещественных элементов, вычислить:
Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального не более чем на $20\%$, а потом — все остальные. |
19 | В одномерном массиве, состоящем из $n$ вещественных элементов, вычислить:
Изменить порядок следования элементов в массиве на обратный. |
20 | В одномерном массиве, состоящем из $n$ вещественных элементов, вычислить:
Упорядочить по возрастанию отдельно элементы, стоящие на четных местах, и элементы, стоящие на нечетных местах. |
Образец выполнения (вариант №7)
Условие задачи
В одномерном массиве, состоящем из $n$ целых элементов, вычислить:
- номер максимального элемента массива;
- произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в нечетных позициях, а во второй половине — элементы, стоявшие в четных позициях.
Реализация задачи на языке С++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 | #include <iostream> // для консольного ввода-вывода #include <iomanip> // для форматированного вывода // подключаем стандартное пространство имен using namespace std; // заполнение элементов массива вводом с клавиатуры void Fill( int values[], const size_t N ) { cout << "Вам предстоит ввести с клавиатуры " << N << " целых чисел (элементы массива)." << endl; for ( size_t i = 0; i < N; i++ ) { cout << "\t- введите элемете №" << ( i + 1 ) << ": "; cin >> values[ i ]; } } // выводим элементы массива на экран (в строку) void Print( const int const values[], const size_t N, const char* const message ) { cout << message; for ( size_t i = 0; i < N; i++ ) cout << setw( 6 ) << values[ i ]; cout << endl; } // получение номера максимального элемента size_t Get_number_max_element( const int values[], const size_t N ) { // изначально предполагаем, что самый 1ый элемент массива является максимальным size_t index_max_element = 0; for ( size_t i = 1; i < N; i++ ) // если текущий элемент больше текущего максимального, то if ( values[ i ] > values[ index_max_element ] ) // запоминаем индекс нового максимального элемента index_max_element = i; // в качестве ответа возвращаем номер максимального элемента // порядковый номер больше индекса на 1 return ( index_max_element + 1 ); } // получение индекса первого нулевого элемента // необходимо учитывать случай, когда в массиве нет ни одного нулевого элемента int Get_index_first_zero_element( const int values[], const size_t N ) { // изначально предполагаем, что в массиве нет ни одного нулевого элемента int index = -1; // перебираем последовательно все элементы массива for ( size_t i = 0; i < N; i++ ) // если встретился нулевой элемент (это 1ый нулевой элемент), то if ( values[ i ] == 0 ) { // запоминаем его индекс и досрочно прерываем цикл index = i; break; } // возвращаем индекс 1ого нулевого элемента // если в массиве нет ни одного нулевого элемента, то вернется -1 return index; } // получение индекса второго нулевого элемента // необходимо учитывать случай, когда в массиве нет второго нулевого элемента int Get_index_secod_zero_element( const int values[], const size_t N, const size_t index_first_zero_element ) { // изначально предполагаем, что в массиве нет второго нулевого элемента int index = -1; // поиск второго нулевого элемента начинаем после первого нулевого for ( size_t i = index_first_zero_element + 1; i < N; i++ ) // если встретился нулевой элемент (это 2ой нулевой элемент), то if ( values[ i ] == 0 ) { // запоминаем его индекс и досрочно прерываем цикл index = i; break; } // возвращаем индекс 2ого нулевого элемента // если в массиве нет второго нулевого элемента, то вернется -1 return index; } // произведение элементов между первым и вторым нулевым элементом double Get_multy_between_zeros( const int values[], const size_t N, const size_t index_first_zero, const size_t index_second_zero ) { double multy = 1.0; // пробегаем по всем элементам из интервала (index_first_zero, index_second_zero) for ( size_t i = index_first_zero + 1; i < index_second_zero; i++ ) multy *= values[ i ]; return multy; } // преобразуем массив таким образом, чтобы в первой его половине // оказались элементы, стоящие на нечетных позициях (счет от 1) // а во второй - элементы, стоящие на четных позициях void Sort( int values[], const size_t N ) { for ( size_t i = 2; i < N; i += 2 ) { int shift_value = values[ i ]; size_t insert_position = i / 2; for ( size_t j = i - 1; j >= insert_position; j-- ) values[ j + 1 ] = values[ j ]; values[ insert_position ] = shift_value; } } // главная функция программы (точка входа) int main( void ) { // количество элементов массива const size_t N = 8; // объявляем одномерный статический массив целых чисел, состоящий из N элементов int values[ N ]; // русификация диалогов программы setlocale( LC_ALL, "Russian" ); // заполняем массив числами вводом с клавиатуры Fill( values, N ); // выводим содержимое исходного массива Print( values, N, "\nИсходный массив имеет вид: \n" ); // получаем и выводим номер максимального элемента (счет от 1) cout << endl << "Максимальный элемент заданного массива стоит на позиции №: " << Get_number_max_element( values, N ) << endl; // находим индекс 1го нулевого элемента int index_first_zero_element = Get_index_first_zero_element( values, N ); if ( index_first_zero_element == -1 ) cout << endl << "В исходном массиве нет ни одного нулевого элемента! Расчет произведения физически невозможен." << endl; else { // нахоидм индекс 2го нулевого элемента int index_second_zero_element = Get_index_secod_zero_element( values, N, index_first_zero_element ); if ( index_second_zero_element == -1 ) cout << endl << "В исходном массиве нет второго нулевого элемента! Расчет произведения физически невозможен." << endl; else { // если 1ый и 2ой нулевые элементы стоят рядом, то произведение также невозможно рассчитать if ( index_second_zero_element - index_first_zero_element == 1 ) cout << endl << "Первый и второй нулевой элемент находятся рядом (смежные). Расчет произведения физически невозможен." << endl; else { // находим произведение элементов, расположенных между первым и вторым нулевым элементом double multy = Get_multy_between_zeros( values, N, index_first_zero_element, index_second_zero_element ); cout << endl << "Произведение элементов, расположенных между первым и вторым нулевым элементом: " << multy << endl; } } } // "сортируем" массив по заданному условию Sort( values, N ); // выводим преобразованный массив на экран Print( values, N, "\nПреобразованный массив имеет вид: \n" ); // задержка программы, чтобы у пользователя была возможность просмотреть результат cout << endl << endl; system( "pause" ); return EXIT_SUCCESS; } |
Результаты работы программы

Тест №1. В заданном массиве нет нулевых элементов

Тест №2. В заданном массиве только один нулевой элемент

Тест №3. Нулевые элементы расположены рядом

Тест №4. В массиве два нулевых элемента, которые являются не соседними
ВНИМАНИЕ | Для заказа программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Добавить комментарий