Файл: Лабораторная работа 2 по дисциплине Информатика и программирование студент фдо тусур направление подготовки 38. 03. 05.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 30.11.2023

Просмотров: 107

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Министерство науки и высшего образования РФ
Федеральное государственное бюджетное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Факультет дистанционного обучения (ФДО)

ЛАБОРАТОРНАЯ РАБОТА №2

по дисциплине «Информатика и программирование»

Выполнил:

студент ФДО ТУСУР

направление подготовки 38.03.05

Шидловский Евгений Васильевич

ТОМСК 2023

Индивидуальный вариант №5

В одномерном массиве, состоящем из n целых элементов, вычислить:

  1. количество нулевых элементов массива;

  2. сумму индексов максимального и минимального элементов массива, значения которых не попали в интервал [a, b], значения a, b задавать с клавиатуры;

  3. произведение элементов массива, равных заданному 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.