Содержание
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Цель лабораторной работы
Разработка программ на языке С++ с функциями, обрабатывающие массивы.
Задание №1
Варианты заданий
💡 В пользовательской функции не должно быть операторов ввода или вывода.
№ | Условие |
1 | Оформить функцию поиска количества отрицательных элементов массива. В главной программе дано $3$ одномерных массива $a,\ b,\ c$ длиной $10$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов. |
2 | Оформить функцию поиска количества положительных элементов массива. В главной программе дано $2$ одномерных массива $x,\ y$ длиной $20$ элементов каждый и один массив $z$ длиной $5$ элементов. Применить функцию для каждого из $3$-х заданных массивов. |
3 | Оформить функцию поиска количества элементов равных $5$. В главной программе дано $3$ одномерных массива $p,\ q,\ r$ длиной $10$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов. |
4 | Оформить функцию поиска количества нулевых элементов массива. В главной программе дано $3$ одномерных массива $arr_1,\ arr_2,\ arr_3$ длиной $10$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов. |
5 | Оформить функцию поиска количества элементов массива, больших заданного числа $\alpha$. В главной программе дано $2$ одномерных массива $a,\ b$ длиной $15$ элементов каждый. Применить функцию для каждого из $2$-х заданных массивов. |
6 | Оформить функцию поиска суммы отрицательных элементов массива. В главной программе дано $2$ одномерных массива $x,\ y$ длиной $10$ элементов каждый и один массив $z$ длиной $5$ элементов. Применить функцию для каждого из $3$-х заданных массивов. |
7 | Оформить функцию поиска суммы элементов массива больших $5$. В главной программе дано $3$ одномерных массива $a,\ b,\ c$ длиной $10$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов. |
8 | Оформить функцию поиска суммы элементов массива больших $1$. В главной программе дано $2$ одномерных массива $mass_1,\ mass_2$ длиной $10$ элементов каждый и один массив $z$ длиной $5$ элементов. Применить функцию для каждого из $3$-х заданных массивов. |
9 | Оформить функцию поиска суммы элементов массива, больших заданного числа $\alpha$. В главной программе дано $4$ одномерных массива $a,\ b,\ c,\ d$ длиной $10$ элементов каждый. Применить функцию для каждого из $4$-х заданных массивов. |
10 | Оформить функцию поиска суммы элементов массива, больших заданного числа $\alpha$ и меньшего заданного числа $\beta$. В главной программе дано $3$ одномерных массива $a,\ b,\ c$ длиной $10$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов. |
11 | Оформить функцию поиска произведения положительных элементов массива. В главной программе дано $4$ одномерных массива $a,\ b,\ c,\ d$ длиной $10$ элементов каждый. Применить функцию для каждого из $4$-х заданных массивов. |
12 | Оформить функцию поиска произведения отрицательных элементов массива. В главной программе дано $4$ одномерных массива $x,\ y,\ z,\ f$ длиной $10$ элементов каждый. Применить функцию для каждого из $4$-х заданных массивов. |
13 | Оформить функцию поиска произведения элементов массива, больших заданного числа $\alpha$ и меньшего заданного числа $\beta$. В главной программе дано $2$ одномерных массива $a,\ b$ длиной $10$ элементов каждый и один массив $z$ длиной $5$ элементов. Применить функцию для каждого из $3$-х заданных массивов. |
14 | Оформить функцию поиска среднего арифметического отрицательных элементов массива. В главной программе дано $3$ одномерных массива $a,\ b,\ c$ длиной $10$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов. |
15 | Оформить функцию поиска среднего арифметического положительных элементов массива. В главной программе дано $3$ одномерных массива $a,\ b,\ c$ длиной $10$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов. |
16 | Оформить функцию поиска среднего геометрического элементов массива. В главной программе дано $3$ одномерных массива $a,\ b,\ c$ длиной $10$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов. |
17 | Оформить функцию поиска среднего арифметического элементов массива меньшего заданного числа $\beta$. В главной программе дано $3$ одномерных массива $a,\ b,\ c$ длиной $10$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов. |
Образец выполнения (вариант №4)
Условие задачи
Оформить функцию поиска количества нулевых элементов массива. В главной программе дано $3$ одномерных массива $arr_1,\ arr_2,\ arr_3$ длиной $10$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов.
Реализация задачи на языке С++
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 | #include <iostream> // для консольного ввода-вывода #include <string> // для работы со строками #include <iomanip> // для форматированного вывода // подключаем стандартное пространство имен using namespace std; // функция поиска количества нулевых элементов в заданном массиве size_t Get_count_zero_elements( const int v[], const size_t SIZE ) { // хранит количество нулевых элементов массива size_t count = 0; // перебираем все элементы массива for ( size_t i = 0; i < SIZE; i++ ) // если значение текущего элемента равно 0, то if ( v[ i ] == 0 ) // увеличиваем счетчик на +1 count++; // в качестве ответа возвращаем из функции кол-во нулевых элементов return count; } // функция, печатающая значение элементов заданного массива void Print_vector( const int v[], const size_t SIZE, const string message ) { cout << message; for ( size_t i = 0; i < SIZE; i++ ) cout << setw( 6 ) << v[ i ]; cout << endl; } // функция, в которой происходит заполнение заданного массива случайными числами из отрезка [-2; +2] void Fill_vector_random_values( int v[], const size_t SIZE ) { const int MIN_VALUE = -2; const int MAX_VALUE = +2; for ( size_t i = 0; i < SIZE; i++ ) v[ i ] = MIN_VALUE + rand() % ( MAX_VALUE - MIN_VALUE + 1 ); } // главная функция программы (точка входа) int main ( void ) { const size_t SIZE = 10; // количество элементов в заданных массивах // заданных 3 одномерных целочисленных массива длиной 10 элементов каждый int arr1[ SIZE ], arr2[ SIZE ], arr3[ SIZE ]; // заполняем заданные 3 массива случайными числами srand( time( NULL ) ); // чтобы при каждом запуске генерировались новые псевдослучайные числа Fill_vector_random_values( arr1, SIZE ); Fill_vector_random_values( arr2, SIZE ); Fill_vector_random_values( arr3, SIZE ); // выводим значения элементов массивов на экран setlocale( LC_ALL, "Russian" ); Print_vector( arr1, SIZE, "Массив arr1 имеет вид: " ); Print_vector( arr2, SIZE, "Массив arr2 имеет вид: " ); Print_vector( arr3, SIZE, "Массив arr3 имеет вид: " ); // получаем количество нулевых элементов в каждом массиве cout << endl << "Количество нулевых элементов в массиве arr1: " << Get_count_zero_elements( arr1, SIZE ); cout << endl << "Количество нулевых элементов в массиве arr2: " << Get_count_zero_elements( arr2, SIZE ); cout << endl << "Количество нулевых элементов в массиве arr3: " << Get_count_zero_elements( arr3, SIZE ); // задержка программы, чтобы у пользователя была возможность просмотреть результат cout << endl << endl; system( "pause" ); return 0; } |
Результаты работы программы
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Задание №2
Варианты заданий
💡 В пользовательской функции не должно быть операторов ввода или вывода.
№ | Условие |
1 | Оформить функцию поиска суммы элементов, стоящих на четных местах (использовать шаг цикла $\neq 1$). В главной программе дано $3$ одномерных массива $a,\ b,\ c$ длиной $30$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов. Найти произведение найденных сумм элементов. |
2 | Оформить функцию поиска максимального элемента в одномерном массиве. В главной программе дано $3$ одномерных массива $a,\ b,\ c$ длиной $20$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов. Найти сумму найденных максимальных элементов. |
3 | Оформить функцию поиска номера последнего нулевого элемента в массиве. В главной программе дано $3$ одномерных массива $a,\ b,\ c$ длиной $20$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов. Найти сумму найденных номеров элементов. |
4 | Оформить функцию поиска минимального элемента среди положительных в одномерном массиве. В главной программе дано $4$ одномерных массива $a,\ b,\ c,\ d$ длиной $10$ элементов каждый. Применить функцию для каждого из $4$-х заданных массивов. Найти сумму найденных минимальных элементов. |
5 | Оформить функцию поиска номера последнего отрицательного элемента в массиве. В главной программе дано $3$ одномерных массива $a,\ b,\ c$ длиной $20$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов. Найти разность найденных номеров элементов. |
6 | Оформить функцию поиска минимального элемента среди элементов, стоящих на четных местах (использовать шаг цикла $\neq 1$). В главной программе дано $4$ одномерных массива $a,\ b,\ c,\ d$ длиной $10$ элементов каждый. Применить функцию для каждого из $4$-х заданных массивов. Найти произведение найденных минимальных элементов. |
7 | Оформить функцию поиска номера последнего положительного элемента в массиве. В главной программе дано $2$ одномерных массива $a,\ b$ длиной $15$ элементов каждый. Применить функцию для каждого из $2$-х заданных массивов. Найти произведение найденных номеров элементов. |
8 | Оформить функцию поиска максимального элемента массива среди элементов, стоящих на нечетных местах (использовать шаг цикла $\neq 1$). В главной программе дано $4$ одномерных массива $a,\ b,\ c,\ d$ длиной $10$ элементов каждый. Применить функцию для каждого из $4$-х заданных массивов. Найти произведение найденных максимальных элементов. |
9 | Оформить функцию поиска номера максимального элемента массива среди элементов, стоящих на нечетных местах (использовать шаг цикла $\neq 1$). В главной программе дано $3$ одномерных массива $a,\ b,\ c$ длиной $30$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов. Найти произведение найденных номеров максимальных элементов. |
10 | Оформить функцию поиска произведения положительных элементов массива. В главной программе дано $4$ одномерных массива $a,\ b,\ c,\ d$ длиной $10$ элементов каждый. Применить функцию для каждого из $4$-х заданных массивов. Найти сумму найденных произведений. |
11 | Оформить функцию поиска номера максимального элемента массива среди отрицательных элементов. В главной программе дано $3$ одномерных массива $a,\ b,\ c$ длиной $30$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов. Найти произведение найденных номеров максимальных элементов. |
12 | Оформить функцию поиска номера минимального элемента массива среди положительных элементов массива. В главной программе дано $2$ одномерных массива $a,\ b$ длиной $30$ элементов каждый. Применить функцию для каждого из $2$-х заданных массивов. Найти разность найденных номеров минимальных элементов. |
13 | Оформить функцию поиска суммы положительных элементов. В главной программе дано $4$ одномерных массива $a,\ b,\ c,\ d$ длиной $10$ элементов каждый. Применить функцию для каждого из $4$-х заданных массивов. Найти произведение найденных сумм элементов. |
14 | Оформить функцию поиска суммы положительных элементов, стоящих на четных местах (использовать шаг цикла $\neq 1$). В главной программе дано $3$ одномерных массива $a,\ b,\ c$ длиной $30$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов. Найти произведение найденных сумм элементов. |
15 | Оформить функцию поиска произведения положительных элементов массива, стоящих на четных местах (использовать шаг цикла $\neq 1$). В главной программе дано $3$ одномерных массива $a,\ b,\ c$ длиной $30$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов. Найти произведение найденных произведений элементов. |
16 | Оформить функцию поиска суммы квадратов элементов массива. В главной программе дано $4$ одномерных массива $a,\ b,\ c,\ d$ длиной $10$ элементов каждый. Применить функцию для каждого из $4$-х заданных массивов. Найти произведение найденных сумм элементов. |
Образец выполнения (вариант №2)
Условие задачи
Оформить функцию поиска максимального элемента в одномерном массиве. В главной программе дано $3$ одномерных массива $a,\ b,\ c$ длиной $20$ элементов каждый. Применить функцию для каждого из $3$-х заданных массивов. Найти сумму найденных максимальных элементов.
Реализация задачи на языке С++
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 | #include <iostream> // для консольного ввода-вывода #include <string> // для работы со строками #include <iomanip> // для форматированного вывода // подключаем стандартное пространство имен using namespace std; // функция поиска максимального элемента в заданном одномерном массиве int Get_max_element( const int v[], const size_t SIZE ) { // хранит значение максимального элемента массива int max = v[ 0 ]; // перебираем все элементы массива for ( size_t i = 1; i < SIZE; i++ ) // если значение текущего элемента больше текущего максимального, то if ( v[ i ] > max ) // запоминаем значение нового максимального элемента max = v[ i ]; // в качестве ответа возвращаем из функции значение максимального элемента return max; } // функция, печатающая значение элементов заданного массива void Print_vector( const int v[], const size_t SIZE, const string message ) { cout << message; for ( size_t i = 0; i < SIZE; i++ ) cout << setw( 5 ) << v[ i ]; cout << endl; } // функция, в которой происходит заполнение заданного массива случайными числами из отрезка [-20; +20] void Fill_vector_random_values( int v[], const size_t SIZE ) { const int MIN_VALUE = -20; const int MAX_VALUE = +20; for ( size_t i = 0; i < SIZE; i++ ) v[ i ] = MIN_VALUE + rand() % ( MAX_VALUE - MIN_VALUE + 1 ); } // главная функция программы (точка входа) int main ( void ) { const size_t SIZE = 20; // количество элементов в заданных массивах // заданных 3 одномерных целочисленных массива длиной SIZE элементов каждый int a[ SIZE ], b[ SIZE ], c[ SIZE ]; // заполняем заданные 3 массива случайными числами srand( time( NULL ) ); // чтобы при каждом запуске генерировались новые псевдослучайные числа Fill_vector_random_values( a, SIZE ); Fill_vector_random_values( b, SIZE ); Fill_vector_random_values( c, SIZE ); // выводим значения элементов массивов на экран setlocale( LC_ALL, "Russian" ); Print_vector( a, SIZE, "Массив a: " ); Print_vector( b, SIZE, "Массив b: " ); Print_vector( c, SIZE, "Массив c: " ); // получаем значение максимального элемента вкаждом массиве int a_max = Get_max_element( a, SIZE ); int b_max = Get_max_element( b, SIZE ); int c_max = Get_max_element( c, SIZE ); // выводим значения максимальных элементов каждого массива на экран cout << endl << "Максимальный элемент в массиве a: " << a_max; cout << endl << "Максимальный элемент в массиве b: " << b_max; cout << endl << "Максимальный элемент в массиве c: " << c_max; // выводим на экран сумму найденных максимальных элементов cout << endl << endl << "Сумма найденных максимальных элементов: " << ( a_max + b_max + c_max ); // задержка программы, чтобы у пользователя была возможность просмотреть результат cout << endl << endl; system( "pause" ); return 0; } |
Результаты работы программы
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Задание №3
Варианты заданий
№ | Условие |
1 | Описать функцию, вычисляющую количество появлений заданного символа в заданной строке («заданные» — это входные параметры функции). В главной программе дано $2$ строки символов $S_1$ и $S_2$. Выяснить, что больше количество символов $<*>$ в строке $S_1$ или количество символов $<+>$ в строке $S_2$, используя функцию. |
2 | Описать функцию, вычисляющую количество всех слов в заданной строке. В главной программе дано $3$ строки символов $S_1,\ S_2,\ S_3$. Найти количество всех слов в этих строках, используя функцию. |
3 | Описать функцию, вычисляющую количество слов «Иванушка» в тексте. В главной программе дано $3$ текста $S_1,\ S_2,\ S_3$. Выяснить, в каком тексте больше слов «Иванушка», используя функцию. |
4 | Описать функцию, вычисляющую количество цифр в тексте. В главной программе дано $2$ строки символов $S_1,\ S_2$. Выяснить, совпадает ли количество цифр в этих текстах, используя функцию. |
5 | Описать функцию, вычисляющую количество круглых скобок в тексте. В главной программе дано $2$ текста $S_1,\ S_2$. Выяснить, в каком тексте больше скобок, используя функцию. |
6 | Описать функцию, вычисляющую количество появлений заданного символа в заданной строке («заданные» — это входные параметры функции). В главной программе дана $1$ строка символов $S_1$. Выяснить, совпадает ли количество круглых открывающихся скобок и круглых закрывающихся скобок в этом тексте, используя функцию. |
7 | Описать функцию, определяющую номер последней цифры в тексте. В главной программе дано $2$ текста $S_1,\ S_2$. Найти и вывести номера последних цифр в текстах. |
8 | Описать функцию, определяющую номер последнего символа равного заданному символу в заданном тексте («заданные» — это входные параметры функции). В главной программе даны $2$ строки символов $S_1,\ S_2$. Найти номер последнего символа $<:>$ в $S_1$ и номер последнего символа $<;>$ в $S_2$. |
9 | Описать функцию, вычисляющую количество латинских букв в тексте. В главной программе дано $2$ текста $S_1,\ S_2$. Выяснить, в каком тексте больше латинских букв, используя функцию. |
10 | Описать функцию, вычисляющую количество появлений заданного символа в заданной строке («заданные» — это входные параметры функции). В главной программе даны $2$ строки символов $S_1,\ S_2$. Выяснить, что больше количество символов $<@>$ в строке $S_1$ или количество символов $<\$>$ в строке $S_2$, используя функцию. |
11 | Описать функцию, вычисляющую количество предложений в заданной строке. В главной программе даны $3$ строки символов $S_1,\ S_2,\ S_3$. Найти количество всех предложений в этих строках, используя функцию. |
12 | Описать функцию, вычисляющую количество квадратных скобок в тексте. В главной программе даны $2$ текста $S_1,\ S_2$. Выяснить, в каком тексте больше скобок, используя функцию. |
13 | Описать функцию, определяющую номер последней закрывающейся скобки (круглой или квадратной) в тексте. В главной программе даны $2$ текста $S_1,\ S_2$. Найти и вывести номера последних скобок в текстах. |
14 | Описать функцию, вычисляющую количество появлений заданного слова в заданной строке («заданные» — это входные параметры функции). В главной программе даны $2$ строки символов $S_1,\ S_2$. Выяснить, что больше количество появлений слова «Pascal» в строке $S_1$ или в строке $S_2$, используя функцию. |
15 | Описать функцию, вычисляющую количество появлений заданного символа в заданной строке («заданные» — это входные параметры функции). В главной программе даны $2$ строки символов $S_1,\ S_2$. Выяснить, что больше количество букв $<Z>$ в строке $S_1$ или в строке $S_2$, используя функцию. |
16 | Описать функцию, вычисляющую количество появлений заданного слова в заданной строке («заданные» — это входные параметры функции). В главной программе дана $1$ строка символов $S_1$. Выяснить, совпадает ли количество появлений слова «Begin» в строке $S_1$ и количество появлений слова «End», используя функцию. |
17 | Описать функцию, вычисляющую количество появлений заданного слова в заданной строке («заданные» — это входные параметры функции). В главной программе даны $2$ строки символов $S_1,\ S_2$. Выяснить, что больше количество появлений слова «Иванов» в строке $S_1$ или количество появлений слова «Петров» в строке $S_2$, используя функцию. |
18 | Описать функцию, вычисляющую количество появлений заданного символа в заданной строке («заданные» — это входные параметры функции). В главной программе даны $2$ строки символов $S_1,\ S_2$. Выяснить, что больше количество букв $<к>$ в строке $S_1$ или количество букв $<н>$ в строке $S_2$, используя функцию. |
19 | Описать функцию, вычисляющую количество появлений заданного слова в заданной строке («заданные» — это входные параметры функции). В главной программе даны $2$ строки символов $S_1,\ S_2$. Выяснить, что больше количество появлений слова «Информатика» в строке $S_1$ или количество появлений слова «Технология» в строке $S_2$, используя функцию. |
Образец выполнения (вариант №1)
Условие задачи
Описать функцию, вычисляющую количество появлений заданного символа в заданной строке («заданные» — это входные параметры функции). В главной программе дано $2$ строки символов $S_1$ и $S_2$. Выяснить, что больше количество символов $<*>$ в строке $S_1$ или количество символов $<+>$ в строке $S_2$, используя функцию.
Реализация задачи на языке С++
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 | #include <iostream> // для консольного ввода-вывода #include <string> // для работы со строками #include <iomanip> // для форматированного вывода // подключаем стандартное пространство имен using namespace std; // функция, вычисляющая количество появлений символа search_char в строке input_string size_t Get_count_char_in_string( const string input_string, const char search_char ) { // хранит количество появлений заданного символа в заданной строке size_t count = 0; // перебираем все символы заданной строки for ( size_t i = 0; i < input_string.size(); i++ ) // если значение текущего символа равно заданному символу, то if ( input_string[ i ] == search_char ) // увеличиваем кол-во вхождений заданного символа на +1 count++; // в качестве ответа возвращаем из функции количество появлений заданного символа return count; } // главная функция программы (точка входа) int main ( void ) { setlocale( LC_ALL, "Russian" ); string s1, s2; // хранят входные строковые значения // вводим с клавиатуры входные строковые данные cout << "Введите строку S1: "; getline( cin, s1 ); cout << "Введите строку S2: "; getline( cin, s2 ); // определяем 2 константы, отвечающие за заданные поисковые символы const char STAR = '*'; const char PLUS = '+'; // считаем количество появлений '*' в строке S1 и выводим это количество на экран size_t star_count = Get_count_char_in_string( s1, STAR ); cout << endl << "Символ \'" << STAR << "\' встречается в строке S1: " << star_count << " раз."; // считаем количество появлений '+' в строке S2 и выводим это количество на экран size_t plus_count = Get_count_char_in_string( s2, PLUS ); cout << endl << "Символ \'" << PLUS << "\' встречается в строке S2: " << plus_count << " раз."; // выясняем каких символов больше cout << endl; if ( star_count > plus_count ) cout << endl << "Количество появлений символа \'" << STAR << "\' больше."; else if ( star_count < plus_count ) cout << endl << "Количество появлений символа \'" << PLUS << "\' больше."; else cout << endl << "Количество появлений символов \'" << STAR << "\' и \'" << PLUS << "\' одинаковое."; // задержка программы, чтобы у пользователя была возможность просмотреть результат cout << endl << endl; system( "pause" ); return 0; } |
Результаты работы программы
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Задание №4
Варианты заданий
💡 Во всех программах будет уместно описать процедуру ввода комбинированного массива и процедуру вывода.
№ | Условие |
1 | Создать комбинированный (структурный) тип для сведений о периодических изданиях (наименование изделия, тираж, годовая стоимость). Описать функцию нахождения общей суммы стоимостей изданий в одном таком комбинированном массиве. Пользователь задает два комбинированных массива по $N$ элементов в каждом (для двух библиотек). Применить функцию два раза для заданных двух библиотек. |
2 | Создать комбинированный (структурный) тип для меню детского кафе (наименование изделия, вес, стоимость). Описать функцию нахождения наименования самого дорого блюда дня в одном таком комбинированном массиве. Пользователь задает два комбинированных массива по $N$ элементов в каждом (два меню для разных дней). Применить функцию два раза для заданных двух меню. |
3 | Создать комбинированный (структурный) тип для меню ресторана «Дракон» (наименование изделия, весь, стоимость). Описать функцию нахождения общего веса изделий в одном таком комбинированном массиве. Пользователь задает два комбинированных массива по $N$ элементов в каждом (для двух отделений ресторана). Применить функцию два раза для заданных двух отделений ресторана. |
4 | Создать комбинированный (структурный) тип для списка CD-дисков (название альбома, исполнитель, стиль, год выпуска, длительность, стоимость). Описать функцию нахождения общей длительности всей музыки на всех дисках в коллекции. Пользователь задает два комбинированных массива по $N$ элементов в каждом (для двух коллекций). Применить функцию два раза для заданных двух коллекций. |
5 | Создать комбинированный (структурный) тип для списка CD-дисков (название альбома, исполнитель, стиль, год выпуска, длительность, стоимость). Описать функцию нахождения количества дисков с указанным исполнителем в коллекции. Пользователь задает два комбинированных массива по $N$ элементов в каждом (для двух коллекций). Применить функцию два раза для заданных двух коллекций. |
6 | Создать комбинированный (структурный) тип для анкетных данных студентов (Ф.И.О, год рождения, адрес, сведения о родителях, средний балл). Описать функцию нахождения лучшего студента в группе (по среднему баллу). Пользователь задает два комбинированных массива по $N$ элементов в каждом (для двух групп). Применить функцию два раза для заданных двух групп. |
7 | Создать комбинированный (структурный) тип для расписания полетов самолетов (пункт посадки, время отправления, время прибытия, время полета, стоимость билета). Описать функцию нахождения самого короткого полета в одном таком комбинированном массиве. Пользователь задает два комбинированных массива по $N$ элементов в каждом (для двух аэропортов). Применить функцию два раза для заданных двух аэропортов. |
8 | Создать комбинированный (структурный) тип для списка CD-дисков (название альбома, исполнитель, стиль, год выпуска, длительность, стоимость). Описать функцию нахождения самого дорогого диска в коллекции. Пользователь задает два комбинированных массива по $N$ элементов в каждом (для двух коллекций). Применить функцию два раза для заданных двух коллекций. |
9 | Создать комбинированный (структурный) тип для списка CD-дисков (название альбома, исполнитель, стиль, год выпуска, длительность, стоимость). Описать функцию нахождения количества дисков не старше указанного года в коллекции. Пользователь задает два комбинированных массива по $N$ элементов в каждом (для двух коллекций). Применить функцию два раза для заданных двух коллекций. |
10 | Создать комбинированный (структурный) тип для перечень товаров, имеющихся в продаже в магазине «Океан» (наименование, единица измерения, цена, количество). Описать функцию нахождения общей суммы стоимостей (цена $\cdot$ количество) в одном таком комбинированном массиве. Пользователь задает два комбинированных массива по $N$ элементов в каждом (для двух магазинов). Применить функцию два раза для заданных двух магазинов. |
11 | Создать комбинированный (структурный) тип для списка CD-дисков (название альбома, исполнитель, стиль, год выпуска, длительность, стоимость). Описать функцию нахождения количества дисков с указанным годом в коллекции. Пользователь задает два комбинированных массива по $N$ элементов в каждом (для двух коллекций). Применить функцию два раза для заданных двух коллекций. |
12 | Создать комбинированный (структурный) тип для график отпусков (Ф.И.О., дата начала отпуска, дата выхода на работу, количество дней). Описать функцию нахождения самого короткого отпуска в одном таком комбинированном массиве. Пользователь задает два комбинированных массива по $N$ элементов в каждом (для двух организаций). Применить функцию два раза для заданных двух организаций. |
13 | Создать комбинированный (структурный) тип для информации о тестируемом (Ф.И.О., IQ, возраст). Описать функцию нахождения фамилии самого умного у группе. Пользователь задает два комбинированных массива по $N$ элементов в каждом (для двух групп). Применить функцию два раза для заданных двух групп. |
14 | Создать комбинированный (структурный) тип для списка CD-дисков (название альбома, исполнитель, стиль, год выпуска, длительность, стоимость). Описать функцию нахождения количества дисков с указанным стилем в коллекции. Пользователь задает два комбинированных массива по $N$ элементов в каждом (для двух коллекций). Применить функцию два раза для заданных двух коллекций. |
15 | Создать комбинированный (структурный) тип для списка CD-дисков (название альбома, исполнитель, стиль, год выпуска, длительность, стоимость). Описать функцию нахождения общей суммы стоимостей дисков в коллекции. Пользователь задает два комбинированных массива по $N$ элементов в каждом (для двух коллекций). Применить функцию два раза для заданных двух коллекций. |
Образец выполнения (вариант №13)
Условие задачи
Создать комбинированный (структурный) тип для информации о тестируемом (Ф.И.О., IQ, возраст). Описать функцию нахождения фамилии самого умного у группе. Пользователь задает два комбинированных массива по $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 | #include <iostream> // для консольного ввода-вывода #include <string> // для работы со строками #include <iomanip> // для форматированного ввода-вывода #include <Windows.h> // для руссификации диалогов // подключаем стандартное пространство имен using namespace std; // определяем сущность "Испытуемый" struct TPerson { string name; // имя string surname; // фамилия string father_name; // отчество int IQ; // IQ, балл int age; // возраст }; // ввод данных о тестируемых void Input_data_from_keyboard( TPerson* persons, const size_t N, const size_t number_group ) { cout << endl << "Вам предстоит ввести данные о " << N << " тестируемых из группы №" << number_group << endl; for ( size_t i = 0; i < N; i++ ) { cout << endl << "Ввод информации о тестируемом №" << ( i + 1 ) << endl; cout << "\t - введите фамилию: "; fflush( stdin ); SetConsoleCP( 1251 ); getline( cin, persons[ i ].surname ); SetConsoleCP( 866 ); cout << "\t - введите имя: "; SetConsoleCP( 1251 ); getline( cin, persons[ i ].name ); SetConsoleCP( 866 ); cout << "\t - введите отчество: "; SetConsoleCP( 1251 ); getline( cin, persons[ i ].father_name ); SetConsoleCP( 866 ); cout << "\t - введите IQ (натуральное число): "; cin >> persons[ i ].IQ; cout << "\t - введите возраст (натуральное число): "; cin >> persons[ i ].age; } } // вывод информации о тестируемых на экран void Print_data_on_screen( const TPerson* const persons, const size_t N, const string message ) { cout << message; cout << endl << "---------------------------------------------------------"; cout << endl << " № ФИО IQ Возраст "; cout << endl << "---------------------------------------------------------"; for ( size_t i = 0; i < N; i++ ) { cout << endl << setw( 3 ) << ( i + 1 ) << setw( 17 ) << persons[ i ].surname << " " << persons[ i ].name[ 0 ] << "." << persons[ i ].father_name[ 0 ] << "." << setw( 10 ) << persons[ i ].IQ << setw( 17 ) << persons[ i ].age; } cout << endl << "---------------------------------------------------------"; } // функция нахождения фамилии самого умного (самый умный имеет самый высокий IQ) string Get_surname_smart_person( const TPerson* const persons, const size_t N ) { // до начала всей обработки принимаем самого 1ого испытуемого за самого умного size_t index_smart_person = 0; // просматриваем всех испытуемых for ( size_t i = 1; i < N; i++ ) // если индекс IQ у текущего испытуемого больше, чем из всех из проверенных, то if ( persons[ i ].IQ > persons[ index_smart_person ].IQ ) // запоминаем индекс данного испытуемого index_smart_person = i; // в качестве ответа возвращаем фамилию самого умного (у него самый высокий IQ) return persons[ index_smart_person ].surname; } // главная функция программы (точка входа) int main( void ) { // настройка руссификации диалогов программы SetConsoleOutputCP( 1251 ); // хранит количество испытуемых в группах int N; cout << "Введите количество тестируемых в каждой группе (натуральное число): "; cin >> N; // создаем группу №1, заполняем ее информацией и выводим на экран в табличном виде TPerson* group1 = new TPerson[ N ]; Input_data_from_keyboard( group1, N, 1 ); Print_data_on_screen( group1, N, "\nИнформация о тестируемых из группы №1 имеет вид" ); // получаем фамилию самого умного из группы №1 (у него самый высокий IQ) cout << endl << "Самый умный тестируемый из группы №1: " << Get_surname_smart_person( group1, N ) << endl; // полсе обработки испытуемых из группы №1 следует удалить динамическую память delete[] group1; // создаем группу №2, заполняем ее информацией и выводим на экран в табличном виде TPerson* group2 = new TPerson[ N ]; Input_data_from_keyboard( group2, N, 2 ); Print_data_on_screen( group2, N, "\nИнформация о тестируемых из группы №2 имеет вид" ); // получаем фамилию самого умного из группы №2 (у него самый высокий IQ) cout << endl << "Самый умный тестируемый из группы №2: " << Get_surname_smart_person( group2, N ) << endl; // полсе обработки испытуемых из группы №2 следует удалить динамическую память delete[] group2; // задержка работы программы, чтобы у пользователя была возможность просмотреть результат cout << endl << endl; system( "pause" ); return EXIT_SUCCESS; } |
Результаты работы программы
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Задание №5
Варианты заданий
№ | Условие |
1 | Описать функции нахождения min в одномерном массиве и функцию нахождения max в одномерном массиве. Дано $3$ одномерных массива $a,\ b,\ c$ длиной $20$ элементов каждый. Использовать функции для облегчения решения задачи. Вычислить $\begin{equation*} $ min(a_i) $ — означает наименьший элемент из массива $a$. |
2 | Описать функции нахождения min в одномерном массиве и функцию нахождения max в одномерном массиве. Дано $3$ одномерных массива $x,\ y,\ d$ длиной $40$ элементов каждый. Использовать функции для облегчения решения задачи. Вычислить $\begin{equation*} $ min(a_i) $ — означает наименьший элемент из массива $a$. |
3 | Описать подпрограмму-функцию для вычисления суммы кубов элементов массива — $\sum\limits_{i = 1}^{40} y_i^3$ для облегчения решения задачи. Дано $3$ одномерных массива $x,\ y,\ d$ длиной $40$ элементов каждый. Вычислить $\begin{equation*} |
4 | Описать подходящую подпрограмму-функцию вычисления суммы элементов массива — $\sum\limits_{i\ =\ 1}^{10} y_i$ для облегчения решения задачи. Дано $3$ одномерных массива $a,\ b,\ d$ длиной $10$ элементов каждый. Вычислить $\begin{equation*} |
5 | Описать подходящую подпрограмму-функцию вычисления суммы элементов массива — $\sum\limits_{i\ =\ 1}^{10} y_i$ для облегчения решения задачи. Дано $3$ одномерных массива $a,\ b,\ d$ длиной $10$ элементов каждый. Вычислить $\begin{equation*} |
6 | Описать подпрограмму-функцию вычисления произведения элементов массива — $\prod\limits_{i\ =\ 1}^{20} a_i$ для облегчения решения задачи. Дано $3$ одномерных массива $a,\ b,\ d$ длиной $20$ элементов каждый. Вычислить $\begin{equation*}
|
7 | Описать подходящую подпрограмму-функцию (вычисление суммы произведений элемента массива на число в степени — $a_1 x^{10} + a_2 x^9 + a_3 x^8 + … + a_9 x + a_{10}$) для облегчения решения задачи. Дано $2$ одномерных массива $a,\ b$ длиной $10$ элементов каждый и $2$ числа $x,\ y$. Вычислить выражение, вызвав $3$ раза созданную функцию $\frac{(a_1 x^{10} + a_2 x^9 + a_3 x^8 + … + a_9 x + a_{10})^2 — (b_1 y^{10} + b_2 y^9 + b_3 y^8 + … + b_9 y + b_{10})}{b1 (x + y)^{10} + b_2 (x + y)^9 + … + b_{10}}$ |
8 | Описать подходящую подпрограмму-функцию (вычисление суммы произведений элемента массива на число в степени — $a_1 x^{10} + a_2 x^9 + a_3 x^8 + … + a_9 x + a_{10}$) для облегчения решения задачи. Дано $3$ одномерных массива $a,\ b,\ c$ длиной $10$ элементов каждый и $3$ числа $x,\ y,\ z$. Вычислить выражение, вызвав $3$ раза созданную функцию $\frac{(a_1 x^{10} + a_2 x^9 + a_3 x^8 + … + a_9 x + a_{10})^5 — (b_1 y^{10} + b_2 y^9 + b_3 y^8 + … + b_9 y + b_{10})^3}{(b1 (x + y)^{10} + b_2 (x + y)^9 + … + b_{10})^2 + (a_1 z^{10} + a_2 z^9 + … + a_{10})}$ |
9 | Дано $3$ одномерных массива $a,\ b,\ c$ длиной $10$ элементов каждый и $3$ числа $x,\ y,\ z$. Описать подходящую подпрограмму-функцию (вычисление суммы произведений элемента массива на число в степени) для облегчения решения задачи. Вычислить выражение, вызвав $3$ раза созданную функцию $\frac{(a_1 x^1 + a_2 x^2 + a_3 x^3 + … + a_9 x^9 + a_{10} x^{10})^2 + (b_1 y^1 + b_2 y^2 + b_3 y^3 + … + b_9 y^9 + b_{10} y^{10})^3}{(b1 (x + y)^1 + b_2 (x + y)^2 + … + b_{10} (x + y)^{10})^2 + (a_1 z^1 + a_2 z^2 + … + a_{10} z^{10})}$ |
10 | Описать подпрограмму-функцию вычисления скалярного произведения векторов (массивов) $(x,\ y) = x_1 \cdot y_1 + x_2 \cdot y_2 + … + x_n \cdot y_n$ для облегчения решения задачи. Дано $3$ одномерных массива (вектора) $a,\ b,\ c$ длиной $10$ элементов каждый и $3$ числа $x,\ y,\ z$. Вычислить |
11 | Описать подпрограмму-функцию вычисления скалярного произведения векторов (массивов) $(x,\ y)$ = $x_1 \cdot y_1 + x_2 \cdot y_2 + … + x_n \cdot y_n$ для облегчения решения задачи. Дано $3$ одномерных массива (вектора) $a,\ b,\ c$ длиной $20$ элементов каждый и $3$ числа $x,\ y,\ z$. |
12 | Описать подходящую подпрограмму-функцию (вычисление суммы произведений элемента массива на число в степени) для облегчения решения задачи. Дано $3$ одномерных массива $a,\ b,\ c$ длиной $10$ элементов каждый и $3$ числа $x,\ y,\ z$. Вычислить выражение, вызвав $3$ раза созданную функцию $\frac{(a_1 x^1 + a_2 x^2 + a_3 x^3 + … + a_9 x^9 + a_{10} x^{10})^2 + (b_1 y^1 + b_2 y^2 + b_3 y^3 + … + b_9 y^9 + b_{10} y^{10})^3}{(b1 (x + y)^1 + b_2 (x + y)^2 + … + b_{10} (x + y)^{10})^2}$ |
13 | Описать подпрограмму-функцию вычисления произведения элементов массива — $\prod\limits_{i\ =\ 1}^{20} a_i$ для облегчения решения задачи. Дано $3$ одномерных массива $a,\ b,\ d$ длиной $20$ элементов каждый. Вычислить $\begin{equation*} |
14 | Описать подпрограмму-функцию вычисления суммы кубов элементов массива — $\sum\limits_{i\ =\ 1}^{40} y_i$ для облегчения решения задачи. Дано $3$ одномерных массива $x,\ y,\ d$ длиной $10$ элементов каждый. Вычислить $\begin{equation*} |
15 | Описать подходящую подпрограмму-функцию (вычисление суммы произведений элемента массива на число в степени — $a_1 x^{10} + a_2 x^9 + a_3 x^8 + … + a_9 x + a_{10}$) для облегчения решения задачи. Дано $3$ одномерных массива $a,\ b,\ c$ длиной $10$ элементов каждый и $3$ числа $x,\ y,\ z$. Вычислить выражение, вызвав $3$ раза созданную функцию $\frac{(a_1 x^{10} + a_2 x^9 + a_3 x^8 + … + a_9 x + a_{10})^5 — (b_1 y^{10} + b_2 y^9 + b_3 y^8 + … + b_9 y + b_{10})^3}{(b1 (x + y)^{10} + b_2 (x + y)^9 + … + b_{10})^3 + (a_1 z^{10} + a_2 z^9 + … + a_{10})}$ |
Образец выполнения (вариант №10)
Условие задачи
Описать подпрограмму-функцию вычисления скалярного произведения векторов (массивов) $(x,\ y) = x_1 \cdot y_1 + x_2 \cdot y_2 + … + x_n \cdot y_n$ для облегчения решения задачи. Дано $3$ одномерных массива (вектора) $a,\ b,\ c$ длиной $10$ элементов каждый и $3$ числа $x,\ y,\ z$. Вычислить
$(a,\ b) \cdot x\ +\ (b,\ c) \cdot y\ -\ (a,\ c) \cdot ((a + c),\ b) \cdot z$, где
$(a,\ b)$ обозначает скалярное произведение векторов.
Реализация задачи на языке С++
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 | #include <iostream> // для консольного ввода-вывода #include <string> // для работы со строками #include <iomanip> // для форматированного вывода // подключаем стандартное пространство имен using namespace std; // функция, вычисляющая скалярное произведение двух векторов одной длины int Scalar_vectors( const int x[], const int y[], const size_t SIZE ) { // хранит скалярное произведение двух векторов int scalar = 0; // перебираем все элементы массивов for ( size_t i = 0; i < SIZE; i++ ) scalar = scalar + x[ i ] * y[ i ]; // в качестве ответа возвращаем из функции скалярное произведение (x, y) return scalar; } // функция, печатающая значение элементов заданного массива void Print_vector( const int v[], const size_t SIZE, const string message ) { cout << message; for ( size_t i = 0; i < SIZE; i++ ) cout << setw( 5 ) << v[ i ]; cout << endl; } // функция, в которой происходит заполнение заданного массива случайными числами из отрезка [-5; +5] void Fill_vector_random_values( int v[], const size_t SIZE ) { const int MIN_VALUE = -5; const int MAX_VALUE = +5; for ( size_t i = 0; i < SIZE; i++ ) v[ i ] = MIN_VALUE + rand() % ( MAX_VALUE - MIN_VALUE + 1 ); } // главная функция программы (точка входа) int main ( void ) { const size_t SIZE = 10; // количество элементов в заданных массивах // заданных 3 одномерных целочисленных массива длиной SIZE элементов каждый int a[ SIZE ], b[ SIZE ], c[ SIZE ]; // заполняем заданные 3 массива случайными числами srand( time( NULL ) ); // чтобы при каждом запуске генерировались новые псевдослучайные числа Fill_vector_random_values( a, SIZE ); Fill_vector_random_values( b, SIZE ); Fill_vector_random_values( c, SIZE ); // выводим значения элементов массивов на экран setlocale( LC_ALL, "Russian" ); Print_vector( a, SIZE, "Массив a: " ); Print_vector( b, SIZE, "Массив b: " ); Print_vector( c, SIZE, "Массив c: " ); // заданные коэффициенты x, y, z int x, y, z; cout << endl << "Введите через пробел 3 целых числа (значения x, y, z): "; cin >> x >> y >> z; // вычисляем значение заданного выражения long result = Scalar_vectors( a, b, SIZE ) * x + Scalar_vectors( b, c, SIZE ) * y - Scalar_vectors( a, c, SIZE) * Scalar_vectors( a, b, SIZE ) * z; // выводим на экран рассчитанное значение cout << "Значение заданного выражения: " << result; // задержка программы, чтобы у пользователя была возможность просмотреть результат cout << endl << endl; system( "pause" ); return 0; } |
Результаты работы программы
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Добавить комментарий