Домашнее задание#
Согласно вашему номеру по списку реализуйте два консольных приложения для обработки данных массивов и множеств.
В каждом из приложений вся обработка, за исключением ввода и вывода осуществляется при помощи функций.
Используйте указатели для работы с переменными.
В случае затруднейний смотрите практику 6 и практику 7 (объявление динамическиз структур 6, функции практика 7)
Указания к работе#
Пример 1.
Заданы два массива А(N) и В(N). Первым на печать вывести массив, сумма значений которого окажется наибольшей.
Для выполнения задания необходимо:
- Считать размер массива N с клавиатуры.
- Создать два массива A и B размером N.
- Ввести элементы массивов A и B.
- Реализовать функции для вычисления суммы элементов массивов и определения массива с наибольшей суммой.
- Вывести на экран массив, сумма значений которого окажется наибольшей.
#include <iostream>
void calculateSum(const int* arr, int size, int& sum) {
sum = 0; // Инициализация суммы
for (int i = 0; i < size; i++) {
sum += arr[i];
}
}
void findArrayWithMaxSum(const int* arrA, const int* arrB, int size) {
int sumA = 0, sumB = 0;
// Вычисляем суммы массивов
calculateSum(arrA, size, sumA);
calculateSum(arrB, size, sumB);
// Сравниваем суммы и выводим массив с наибольшей суммой
if (sumA > sumB) {
std::cout << "Массив A имеет наибольшую сумму: " << sumA << std::endl;
std::cout << "Элементы массива A: ";
for (int i = 0; i < size; i++) {
std::cout << arrA[i] << " ";
}
} else {
std::cout << "Массив B имеет наибольшую сумму: " << sumB << std::endl;
std::cout << "Элементы массива B: ";
for (int i = 0; i < size; i++) {
std::cout << arrB[i] << " ";
}
}
std::cout << std::endl;
}
int main() {
int N; // Размер массивов
// Ввод размера массивов
std::cout << "Введите размер массивов (N): ";
std::cin >> N;
int* A = new int[N]; // Динамическое выделение памяти для массива A
int* B = new int[N]; // Динамическое выделение памяти для массива B
// Ввод массивов
std::cout << "Введите " << N << " элементов для массива A:" << std::endl;
for (int i = 0; i < N; i++) {
std::cin >> A[i];
}
std::cout << "Введите " << N << " элементов для массива B:" << std::endl;
for (int i = 0; i < N; i++) {
std::cin >> B[i];
}
// Поиск массива с наибольшей суммой
findArrayWithMaxSum(A, B, N);
// Освобождение выделенной памяти
delete[] A;
delete[] B;
return 0;
}
В функции calculateSum
массив передается по указателю const int* arr
.
Использование указателя позволяет функции работать с массивом, не создавая его копию.
Указатель const
указывает на то, что элементы массива не будут изменены внутри функции.
Параметр int& sum
передается по ссылке. Это позволяет функции изменять значение переменной sum
, объявленной в main,
и возвращать результат через этот параметр. Благодаря этому подходу не нужно возвращать значение из функции.
Структура отчета#
Структура отчета:
- Титульный лист, оформленный согласно шаблону. Лабораторная работа №4 "Разработка консольного приложения с использованием функций".
- Номер задания. Формулировки.
- Даете ссылку на GitHub.
- Листинг 1 с фрагментом кода приложения, далее описывается логика работы с массивами (Какая функция была создана, за что она отвечает, какие аргументы принимает)
- Таблица для тестирования 1 (не менее 3 примеров входных данных)
- Листинг 2 с фрагментом кода приложения, далее описывается логика работы с множествами (Какая функция была создана, за что она отвечает, какие аргументы принимает)
- Таблица для тестирования 2 (не менее 3 примеров входных данных)
Варианты#
Вариант 1
- Заданы два массива А(5) и В(4). Первым на печать вывести массив, сумма значений которого окажется наименьшей.
- Даны два множества A и B. Вывести наименьший элемент из объединения множеств A и B.
Вариант 2
- Заданы два массива А(5) и В(4). Первым на печать вывести массив, произведение значений которого окажется наименьшим.
- Даны два множества A и B. Вывести множество, состоящее из элементов, которые присутствуют в обоих множествах и кратны числу 3.
Вариант 3
- Заданы два массива А(5) и В(5). В каждом из массивов найти наименьшее значение и прибавить его ко всем элементам массивов. На печать вывести исходные и преобразованные массивы.
- Даны два множества A и B. Вывести множество, состоящее из элементов, которые присутствуют хотя бы в одном из множеств и являются нечетными числами.
Вариант 4
- Заданы два массива А(5) и В(5). В каждом из массивов найти наибольшее значение и вычесть его из всех элементов массивов. На печать вывести исходные и преобразованные массивы.
- Даны два множества A и B. Вывести наименьший элемент, который не принадлежит A, но есть B.
Вариант 5
- Заданы два массива А(5) и В(5). В каждом из массивов найти среднее арифметическое всех элементов массивов. На печать вывести исходные массивы и найденные значения.
- Даны два множества A и B. Вывести четные элементы из объединения множеств A и B.
Вариант 6
- Заданы два массива А(5) и В(4). Первым на печать вывести массив, содержащий наибольшее значение. Напечатать также это значение и его порядковый номер.
- Даны два множества A и B. Из разницы множеств А и В найти максимальный элемент.
Вариант 7
- Заданы два массива А(5) и В(5). Подсчитать в них количество отрицательных элементов и первым на печать вывести массив, имеющий наименьшее их количество.
- Даны два множества A и B. Найти симметрическую разницу множеств и вывести нечетные элементы.
Вариант 8
- Заданы два массива А(5) и В(5). Подсчитать в них количество положительных элементов и первым на печать вывести массив, имеющий наименьшее их количество.
- Даны два множества A и B. Найти пересечение множеств А и В и посчитать среднее арифметическое найденных элементов.
Вариант 9
- Заданы два массива А(5) и В(5). Подсчитать в них количество отрицательных элементов и первым на печать вывести массив, имеющий наибольшее их количество.
- Даны два множества A и B. Найти объединение множеств А и В, вывести элементы, входящие в промежуток от [-10 до 10].
Вариант 10
- Заданы два массива А(5) и В(5). Подсчитать в них количество положительных элементов и первым на печать вывести массив, имеющий наибольшее их количество.
- Даны два множества A и B. Вывести множество, состоящее из элементов, которые присутствуют хотя бы в одном из множеств и кратны 5.
Вариант 11
- Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, больших значения t и первым на печать вывести массив, имеющий наименьшее их количество.
- Даны два множества A и B. Вывести множество, состоящее из элементов, которые присутствуют в обоих множествах и больше t.
Вариант 12
- Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, меньших значения t и первым на печать вывести массив, имеющий наименьшее их количество.
- Даны два множества A и B. Найти симметрическую разницу множеств и посчитать математическое ожидание найденных элементов.
Вариант 13
- Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, больших значения t и первым на печать вывести массив, имеющий наибольшее их количество.
- Даны два множества A и B. Посчитать количество элементов каждого множества и вывести то множество, у которого элементов больше.
Вариант 14
- Заданы два массива А(5) и В(5). В каждом из массивов найти наименьшее значение и умножить на него все элементы массивов. На печать вывести исходные и преобразованные массивы.
- Даны два множества A и B. Найти пересечение множеств А и В и вывести четные элементы.
Вариант 15
- Заданы два массива А(5) и В(5). В каждом из массивов найти наибольшее значение и умножить на него все элементы массивов. На печать вывести исходные и преобразованные массивы.
- Даны два множества A и B. Вывести множество, состоящее из элементов, которые присутствуют только в А и меньше t.
Вариант 16
- Заданы два массива А(5) и В(5). В каждом из массивов найти наименьшее значение и разделить на него все элементы массивов. На печать вывести исходные и преобразованные массивы.
- Даны два множества A и B. Найти разность множеств А и В, вывести элементы, входящие в промежуток от [-5 до 5].
Вариант 17
- Заданы два массива А(5) и В(5). В каждом из массивов найти наибольшее значение и разделить на него все элементы массивов. На печать вывести исходные и преобразованные массивы.
- Даны два множества A и B. Вывести множество, состоящее из элементов, которые присутствуют только в множестве В и меньше 0.
Вариант 18
- Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, кратных двум и первым на печать вывести массив, имеющий наибольшее их количество.
- Даны два множества A и B. Посчитать количество элементов каждого множества и вывести то множество, у которого элементов меньше.
Вариант 19
- Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, кратных трем и первым на печать вывести массив, имеющий наибольшее их количество.
- Даны два множества A и B. Найти множество, которое состоит из элементов, присутствующих только в A и не присутствующих в B.
Вариант 20
- Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, меньших значения t и первым на печать вывести массив, имеющий наибольшее их количество.
- Даны два множества A и B. Найти множество, которое состоит из элементов, присутствующих только в множестве B и меньших 0.
Вариант 21
- Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые больше 0.
- Даны два множества A и B. Найти пересечение множеств А и В, посчитать сумму найденных элементов.
Вариант 22
- Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые меньше 0.
- Даны два множества A и B. Найти симметрическую разность множеств А и В, посчитать среднее арифметическое найденных элементов.
Вариант 23
- Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые кратны двум.
- Даны два множества A и B. Найти множество, которое состоит из элементов, присутствующих в обоих множествах и не делящихся на 3.
Вариант 24
- Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые больше значения T.
- Даны два множества A и B. Найти множество, которое состоит из элементов, присутствующих в обоих множествах и являющихся числами, начинающимися с 1.
Вариант 25
- Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые кратны трем.
- Даны два множества A и B. Найти симметрическую разность множеств и вывести количество таких элементов.
Вариант 26
- Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые нечетны.
- Даны два множества A и B. Вывести множество, состоящее из элементов, которые присутствуют в обоих множествах и больше 0.
Вариант 27
- Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые меньше 50 и больше 10.
- Даны два множества A и B. Найти пересечение множеств А и В, посчитать сумму найденных элементов.
Вариант 28
- Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, квадрат которых меньше тысячи.
- Даны два множества A и B. Найти сумму множеств и вывести количество таких элементов.
Вариант 29
- Заданы два массива А(5) и В(5). Вывести третий массив С, который представляет сумму массива А и B.
- Даны два множества A и B. Вывести множество, состоящее из элементов, которые присутствуют только в А и меньше t.
Вариант 30
- Заданы два массива А(5) и В(5). Подсчитать в них количество положительных элементов и первым на печать вывести массив, имеющий наибольшее их количество.
- Даны два множества A и B. Найти множество, которое состоит из элементов, присутствующих в обоих множествах и являющихся числами, у которых все цифры одинаковые.