Файл: Лабораторная работа 2 по дисциплине Информатика и программирование студент фдо тусур направление подготовки 38. 03. 05.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 30.11.2023
Просмотров: 107
Скачиваний: 8
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство науки и высшего образования РФ
Федеральное государственное бюджетное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Факультет дистанционного обучения (ФДО)
ЛАБОРАТОРНАЯ РАБОТА №2
по дисциплине «Информатика и программирование»
Выполнил:
студент ФДО ТУСУР
направление подготовки 38.03.05
Шидловский Евгений Васильевич
ТОМСК 2023
Индивидуальный вариант №5
В одномерном массиве, состоящем из n целых элементов, вычислить:
-
количество нулевых элементов массива; -
сумму индексов максимального и минимального элементов массива, значения которых не попали в интервал [a, b], значения a, b задавать с клавиатуры; -
произведение элементов массива, равных заданному k.
Запишем блок-диаграммы пунктов А, Б и В, выделив отдельно ввод элементов массива и вывод элементов массива.
Задание А. Для решения задачи необходимо выполнить следующие действия: поочередно сравнить все элементы массива, с заданным значением 0, при этом увеличивать счетчик в том случае, если сравниваемый элемент равен заданному значению.
Задание Б. Для решения задачи необходимо задать с клавиатуры значения границ интервала a и b. Для нахождения минимального и максимального значений воспользуемся классическим алгоритмом поиска: найдем первый встреченный элемент массива, значение которого ∈[ a,b ] и будем считать этот элемент и максимальным и минимальным элементом.
Алгоритм поиска максимального и минимального значения просматривает элементы массива, значения которых принадлежат интервалу [a, b]. Если просматриваемый элемент с индексом i больше элемента с индексом maxi, то изменяется значение индекса текущего максимального элемента. Аналогичным образом ищется индекс текущего минимального элемента.
Задание В. Для решения задачи необходимо выполнить следующие действия: поочередно сравнить все элементы массива с заданным значением K, при этом записывать в отдельный массив элементы, равные K. После перебора всего массива мы выводим произведение элементов нового массива.
Код программы, решающий поставленную задачу, может быть следующим:
#include
#include
#include
int main() {
int const n = 100;
int arr[n];
int quantity = 0, product = 1, k, a, b, min = INT_MAX, max = INT_MIN, mini, maxi;
std::cout << "Enter k,a,b:\n"; std::cin >> k >> a >> b;
for (int i = 0; i < n; i++)
arr[i] = (time(NULL) * rand())%21; //заполнение массива случайными числами
for (int i = 0; i < n; i++) {
if (arr[i] == 0) quantity++;
if (arr[i] == k) product *= arr[i];
if (arr[i]<=a || arr[i]>=b) {
if (arr[i] > max) {
max = arr[i];
maxi = i;
}
if (arr[i] < min) {
min = arr[i];
mini = i;
}
}
}
std::cout << std::endl << "Your array:" << std::endl;
for (int i = 0; i < n; i++)
std::cout << arr[i] << ' ';
std::cout << std::endl << "Sum of zero-point elements:" << quantity << std::endl;
std::cout << "Sum of index max and min elements:" << maxi + mini << std::endl;
std::cout << "Product elements which equalent to " << k << " is:" << product << std::endl;
return 0;
}
Результаты тестирования программы
На прикрепленных ниже скриншотах, представлены экранные формы исправной работы программы:
-
При введенных значениях k,a,b (2, -5, 10) в случайном массиве из 100 элементов, встречается два раза нулевое значение. Поэтому ниже выдается, что сумма нулевых элементов массива равна 3.
-
При введенных значениях k,a,b (5, -18, 6) в случайном массиве из 100 элементов, сумма индексов первого встречающегося максимального и минимального элемента массива, не вошедшие в интервал [-18;6], равно 97. Потому что минимальный элемент массива (-20), его индекс 5, а максимальный элемент (17), с индексом 92. Следовательно, их сумма будет равна 97. -
При введенных значениях k,a,b (5, -18, 6) в случайном массиве из 100 элементов, значения равных заданному k встречаются два раза. Поэтому ниже выдается, что произведения элементов равных заданному k равно 25.