Обработка двумерных массивов данных
Автор: Nika9472882 • Май 29, 2023 • Лабораторная работа • 2,299 Слов (10 Страниц) • 142 Просмотры
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Уфимский государственный нефтяной технический университет»
Кафедра вычислительной техники и инженерной кибернетики
ОТЧЁТ
по лабораторной работе №5
“Обработка двумерных массивов данных”
Вариант № ____
Выполнил: ст. гр. Б___-21-0_ ____________
Проверил:
ст. преподаватель каф. ВТИК Р.М.Харисов
Уфа 2022
- Постановка задачи
Разработать программу получения и обработки двумерного массива, состоящую из 5 частей.
Часть 1. Создание двумерного массива с помощью формулы [pic 1]
- Часть 2[pic 2]элементы главной диагонали матрицы, полученной из матрицы A заменой отрицательных элементов нулями;
- Часть 3. y – среднеарифметическое значение ненулевых элементов вектора X
- Часть 4. поменять местами нечетные строки с четными столбцами.
Часть 5. умножить вектор х на измененную матрицу.
Обязательные требования к программе.
1. Программу разработать для решения задачи в общем виде, для произвольных значений исходных данных: количества элементов n (2<=n<=100).
2. Решение каждой части в программе реализовать в виде процедуры.
Анализ задачи.
Исходными данными являются значения количества элементов в массиве n
Порядок решения задачи: сначала нужно получить двумерный маcсив (часть 1), затем можно вычислить xi и заменить отрицательные числа главной диагонали на ноль (часть 2) затем вычислить значение y (часть 3). поменять местами нечетные строки с четными столбцами (часть 4) в конце мы должны умножить вектор х на измененную матрицу. (часть 5) это нужно выполнить в последнюю очередь, так как перестановка элементов массива при построении перевернутого массива может повлиять на вычисление.
Часть 1.
Возьмем любые исходные данные, например n=2, Теперь мы можем создать двумерный массив с помощью формулы: [pic 3]
Вычислив каждый элемент матрицы по данной формуле, получим:
0.13534 0.00785
0.00785 0.01832
Часть 2.
[pic 4]элементы главной диагонали матрицы, получим из матрицы A заменой отрицательных элементов нулями.
Элементы главной диагонали:
0.13534 0.01832
Часть 3.
Значение y вычисляется по формуле y=y*|x[i]|i*ln|x[n-i+1]|, причем x[i]> 0, x[n-i+1]≠ 0
Значение y равно: 0.00036
Часть 4.
Чтобы поменять поменять местами нечетные строки с четными столбцами ввести матрицу b:
b[i,j]:=a[i,j];
a[i,j]:=a[n-j+1,n-i+1];
a[n-j+1,n-i+1]:=b[i,j];
В итоге получится:
0.01832 0.00785
0.00785 0.13534
Часть 5.
Для лучшего понимания задачи, выявления её особенностей выполним тестовый расчёт. Возьмём любые исходные данные, например n=4. Запишем 16 случайных целых чисел элементов массива X для тестового расчёта: 3 3 1 5 4 1 1 3 5 7 6 7 3 3 6 1
Далее нужно сформировать вектор X.
2 Запишем вектор X(сначала перестановка 2 и 4 строк): 3 3 1 5 3 3 6 1 5 7 6 7 4 1 1 3 Вектор X: 5 6 7 4 Вычислим У по заданной формуле: Считаем 𝑦 = 0, т.к. есть вероятная ошибка в постановке задачи (у знака суммы нижний предел суммирования больше верхнего). Транспонируем матрицу: 3 -4 5 3 -3 1 7 -3 1 -1 6 -6 -5 3 -7 1 Умножим вектор на измененную матрицу: c1 = x1 · b11 + x2 · b21 + x3 · b31 + x4 · b41 = 5 · 3+ 6 · 3 + 7 · 1 + 4 · 5 = = 30 c2 = x1 · b12 + x2 · b22 + x3 · b32 + x4 · b42 =5 · 4+ 6 · 1 + 7 · 1 + 4 · 3 = = 5 c3 = x1 · b13 + x2 · b23 + x3 · b33 + x4 · b43 = 5 · 5+ 6 · 7 + 7 · 6 + 4 · 7 = 3 c4 = x1 · b14 + x2 · b24 + x3 · b34 + x4 · b44 = 5 ·3+6·3+7·6+4·1= 43
Вектор: 30 5 3 43
Алгоритм решения задачи
При разработке алгоритме будем использовать метод декомпозиции: решение задачи сначала опишем в виде основного алгоритма, использующего вспомогательные алгоритмы решения задач частей задания. Затем опишем вспомогательные алгоритмы – модули решения задач каждой части. При разработке и описании алгоритмов используются элементарные структуры алгоритмов, составляющие основу структурного программирования.
...