Перейти к содержанию

Домашнее задание#

Согласно вашему номеру по списку реализуйте два консольных приложения для обработки данных массивов и множеств.
В каждом из приложений вся обработка, за исключением ввода и вывода осуществляется при помощи функций.
Используйте указатели для работы с переменными.
В случае затруднейний смотрите практику 6 и практику 7 (объявление динамическиз структур 6, функции практика 7)

Указания к работе#

Пример 1.

Заданы два массива А(N) и В(N). Первым на печать вывести массив, сумма значений которого окажется наибольшей.

Для выполнения задания необходимо:

  1. Считать размер массива N с клавиатуры.
  2. Создать два массива A и B размером N.
  3. Ввести элементы массивов A и B.
  4. Реализовать функции для вычисления суммы элементов массивов и определения массива с наибольшей суммой.
  5. Вывести на экран массив, сумма значений которого окажется наибольшей.
#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
  1. Заданы два массива А(5) и В(4). Первым на печать вывести массив, сумма значений которого окажется наименьшей.
  2. Даны два множества A и B. Вывести наименьший элемент из объединения множеств A и B.
Вариант 2
  1. Заданы два массива А(5) и В(4). Первым на печать вывести массив, произведение значений которого окажется наименьшим.
  2. Даны два множества A и B. Вывести множество, состоящее из элементов, которые присутствуют в обоих множествах и кратны числу 3.
Вариант 3
  1. Заданы два массива А(5) и В(5). В каждом из массивов найти наименьшее значение и прибавить его ко всем элементам массивов. На печать вывести исходные и преобразованные массивы.
  2. Даны два множества A и B. Вывести множество, состоящее из элементов, которые присутствуют хотя бы в одном из множеств и являются нечетными числами.
Вариант 4
  1. Заданы два массива А(5) и В(5). В каждом из массивов найти наибольшее значение и вычесть его из всех элементов массивов. На печать вывести исходные и преобразованные массивы.
  2. Даны два множества A и B. Вывести наименьший элемент, который не принадлежит A, но есть B.
Вариант 5
  1. Заданы два массива А(5) и В(5). В каждом из массивов найти среднее арифметическое всех элементов массивов. На печать вывести исходные массивы и найденные значения.
  2. Даны два множества A и B. Вывести четные элементы из объединения множеств A и B.
Вариант 6
  1. Заданы два массива А(5) и В(4). Первым на печать вывести массив, содержащий наибольшее значение. Напечатать также это значение и его порядковый номер.
  2. Даны два множества A и B. Из разницы множеств А и В найти максимальный элемент.
Вариант 7
  1. Заданы два массива А(5) и В(5). Подсчитать в них количество отрицательных элементов и первым на печать вывести массив, имеющий наименьшее их количество.
  2. Даны два множества A и B. Найти симметрическую разницу множеств и вывести нечетные элементы.
Вариант 8
  1. Заданы два массива А(5) и В(5). Подсчитать в них количество положительных элементов и первым на печать вывести массив, имеющий наименьшее их количество.
  2. Даны два множества A и B. Найти пересечение множеств А и В и посчитать среднее арифметическое найденных элементов.
Вариант 9
  1. Заданы два массива А(5) и В(5). Подсчитать в них количество отрицательных элементов и первым на печать вывести массив, имеющий наибольшее их количество.
  2. Даны два множества A и B. Найти объединение множеств А и В, вывести элементы, входящие в промежуток от [-10 до 10].
Вариант 10
  1. Заданы два массива А(5) и В(5). Подсчитать в них количество положительных элементов и первым на печать вывести массив, имеющий наибольшее их количество.
  2. Даны два множества A и B. Вывести множество, состоящее из элементов, которые присутствуют хотя бы в одном из множеств и кратны 5.
Вариант 11
  1. Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, больших значения t  и первым на печать вывести массив, имеющий наименьшее их количество.
  2. Даны два множества A и B. Вывести множество, состоящее из элементов, которые присутствуют в обоих множествах и больше t.
Вариант 12
  1. Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, меньших значения t  и первым на печать вывести массив, имеющий наименьшее их количество.
  2. Даны два множества A и B. Найти симметрическую разницу множеств и посчитать математическое ожидание найденных элементов.
Вариант 13
  1. Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, больших значения t  и первым на печать вывести массив, имеющий наибольшее их количество.
  2. Даны два множества A и B. Посчитать количество элементов каждого множества и вывести то множество, у которого элементов больше.
Вариант 14
  1. Заданы два массива А(5) и В(5). В каждом из массивов найти наименьшее значение и умножить на него все элементы массивов. На печать вывести исходные и преобразованные массивы.
  2. Даны два множества A и B. Найти пересечение множеств А и В и вывести четные элементы.
Вариант 15
  1. Заданы два массива А(5) и В(5). В каждом из массивов найти наибольшее значение и умножить на него все элементы массивов. На печать вывести исходные и преобразованные массивы.
  2. Даны два множества A и B. Вывести множество, состоящее из элементов, которые присутствуют только в А и меньше t.
Вариант 16
  1. Заданы два массива А(5) и В(5). В каждом из массивов найти наименьшее значение и разделить на  него все элементы массивов. На печать вывести исходные и преобразованные массивы.
  2. Даны два множества A и B. Найти разность множеств А и В, вывести элементы, входящие в промежуток от [-5 до 5].
Вариант 17
  1. Заданы два массива А(5) и В(5). В каждом из массивов найти наибольшее значение и разделить на него все элементы массивов. На печать вывести исходные и преобразованные массивы.
  2. Даны два множества A и B. Вывести множество, состоящее из элементов, которые присутствуют только в множестве В и меньше 0.
Вариант 18
  1. Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, кратных двум  и первым на печать вывести массив, имеющий наибольшее их количество.
  2. Даны два множества A и B. Посчитать количество элементов каждого множества и вывести то множество, у которого элементов меньше.
Вариант 19
  1. Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, кратных трем  и первым на печать вывести массив, имеющий наибольшее их количество.
  2. Даны два множества A и B. Найти множество, которое состоит из элементов, присутствующих только в A и не присутствующих в B.
Вариант 20
  1. Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, меньших значения t и первым на печать вывести массив, имеющий наибольшее их количество.
  2. Даны два множества A и B. Найти множество, которое состоит из элементов, присутствующих только в множестве B и меньших 0.
Вариант 21
  1. Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые больше 0.
  2. Даны два множества A и B. Найти пересечение множеств А и В, посчитать сумму найденных элементов.
Вариант 22
  1. Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые меньше 0.
  2. Даны два множества A и B. Найти симметрическую разность множеств А и В, посчитать среднее арифметическое найденных элементов.
Вариант 23
  1. Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые кратны двум.
  2. Даны два множества A и B. Найти множество, которое состоит из элементов, присутствующих в обоих множествах и не делящихся на 3.
Вариант 24
  1. Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые больше значения T.
  2. Даны два множества A и B. Найти множество, которое состоит из элементов, присутствующих в обоих множествах и являющихся числами, начинающимися с 1.
Вариант 25
  1. Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые кратны трем.
  2. Даны два множества A и B. Найти симметрическую разность множеств и вывести количество таких элементов.
Вариант 26
  1. Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые нечетны.
  2. Даны два множества A и B. Вывести множество, состоящее из элементов, которые присутствуют в обоих множествах и больше 0.
Вариант 27
  1. Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые меньше 50 и больше 10.
  2. Даны два множества A и B. Найти пересечение множеств А и В, посчитать сумму найденных элементов.
Вариант 28
  1. Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, квадрат которых меньше тысячи.
  2. Даны два множества A и B. Найти сумму множеств и вывести количество таких элементов.
Вариант 29
  1. Заданы два массива А(5) и В(5). Вывести третий массив С, который представляет сумму массива А и B.
  2. Даны два множества A и B. Вывести множество, состоящее из элементов, которые присутствуют только в А и меньше t.
Вариант 30
  1. Заданы два массива А(5) и В(5). Подсчитать в них количество положительных элементов и первым на печать вывести массив, имеющий наибольшее их количество.
  2. Даны два множества A и B. Найти множество, которое состоит из элементов, присутствующих в обоих множествах и являющихся числами, у которых все цифры одинаковые.