5 ЛР Шацкий Е.В. ПИА. Отчёт по лабораторной работе 5 Обработка двумерных массивов данных Вариант 49 Выполнил ст гр. Баг2102 Шацкий Е. В. Проверил преподаватель каф.
![]()
|
Подборка по базе: копия6-МАКЕТ ОТЧЁТА ПО ПРАКТИКЕ 2022 преддипломная Агение И 19., пример отчета по ПП ПМ.05 (1).doc, Краткий отчет пример запонения.pdf, Мой отчет пед пр2.doc, Реализация требований обновленных ФГОС НОО, ФГОС ООО в работе уч, АЭРОПОРТ отчет ЮСПЭТ делопроизводство дораб.Жуковой.docx, Дакаев Т-А Отчет (3).docx, Краткий отчет по практике.doc, Инструкция по охране труда при работе с эфирами и ацетоном.doc, Летняя досуговая площадка Отчет 11 июня.docx Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования Уфимский государственный нефтяной технический университет Кафедра вычислительной техники и инженерной кибернетики ОТЧЁТ по лабораторной работе №5 Обработка двумерных массивов данных Вариант № 49 Выполнил ст. гр. БАГ-21-02 _____ Шацкий Е.В. Проверил преподаватель каф. ВТИК _____ Хасанова З.Р. Уфа 2022 2 1. Постановка задачи Разработать программу получения и обработки двумерного массива, состоящую из 5 частей. Часть Создание двумерного массива с помощью формулы Часть скалярное произведение побочной диагонали на i – ю строку Часть 3. Часть Заменить в исходной матрице столбцы с положительным элементом главной диагонали на вектор х Часть 5. умножить транспонированную исходную матрицу на вектор х Обязательные требования к программе. Программу разработать для решения задачи в общем виде, для произвольных значений исходных данных количества элементов n (2<=n<=100). Решение каждой части в программе реализовать в виде процедуры. 2. Анализ задачи. Исходными данными являются значения количества элементов в массиве n Порядок решения задачи сначала нужно получить двумерный маcсив (часть 1), затем можно вычислить x i и заменить отрицательные числа главной диагонали на ноль часть 2) затем вычислить значение y (часть 3). поменять местами нечетные строки счетными столбцами (часть 4) в конце мы должны умножить вектор хна измененную матрицу (часть 5) это нужно выполнить в последнюю очередь, так как перестановка элементов массива при построении перевернутого массива может повлиять на вычисление. Часть 1. Возьмем любые исходные данные, например n=2, Теперь мы можем создать двумерный массив с помощью формулы: Вычислив каждый элемент матрицы поданной формуле, получим 0.249, 0.23 0.363, 0.277 Часть 2. скалярное произведение побочной диагонали на 1 – ю строку Часть 3. y=1.0 3 Часть 4. Чтобы заменить в исходной матрице столбцы с положительным элементом главной диагонали на вектор х используем этот алгоритм for i in range(0,N): for j in range (0,N): if (G[i][i]>=0): M[i][j]=L[i] получим 0.05727, 0.05727 0.06371, 0.06371 Часть 5. Чтобы умножить транспонированную исходную матрицу на вектор х воспользуемся этим алгоритмом for i in range(0,N): for j in range(0,N): jo[j][i]=ja[i][j] print(jo) H=[] for i in range(0,N): for j in range(0,N): sumar=sumar+jo[i][j]*L[j] H.append(sumar) получим 0.03738, 0.0682 4 3.1. Основной алгоритм 5 3.2. Создание двумерного массива с помощью формулы 6 3.3 скалярное произведение побочной диагонали на i – ю строку 7 3.4 8 3.5 Замена в исходной матрице столбцов с положительным элементом главной диагонали на вектор х 9 3.6 умножение транспонированной исходной матрицы на вектор х 10 4. Таблицы переменных задачи Таблица переменных основного алгоритма Смысл переменных Обозначение Тип переменной Примечания в алгоритме в программе Исходные данные Размер массива N N Целый 1 J I J Целый Целый Результаты Матрица Матрица Вектор х Значение функции H G X Y H G X Y Двумерный массив Двумерный массив Одномерный массив Вещественная Таблица переменных алгоритма получения массива) Смысл переменных Обозначение Тип переменной Примечания в алгоритме в программе Входные данные Количество столбцов и строк N N Целый 1< n <100 Промежуточные данные Номер строки массива Номер столбца массива Факториал i Факториал j I j 𝑖𝑖! 𝑗𝑗! I J fi fj Целый Целый Целый Целый i= j= 𝑓𝑓𝑖𝑖 ∈ Z 𝑓𝑓𝑗𝑗 ∈Z Выходные данные Матрица a a Двумерный массив A ij =f(I,j) Таблица переменных алгоритма вычислениях) Смысл переменных Обозначение Тип переменной Примечания в алгоритме в программе Входные данные Количество столбцов и строк Массив N a N a Целый Двумерный массив 1 ij =f(I,j) Промежуточные данные Номер строки массива I I Целый Выходные данные Вектор x i x x Одномерный массив x i =a i,i x i < 0 12 Таблица переменных алгоритма определения y по формуле) Смысл переменных Обозначение Тип переменной Примечания в алгоритме в программе Входные данные Количество столбцов и строк Матрица Вектор x i N A x N A x Целый Двумерный массив Одномерный массив 1 ij =f(I,j) x i > 0 x n-i+1 ≠0 Промежуточные данные Интервал I I Целый Выходные данные Функция y y Вещественный) Таблица переменных алгоритма замены в исходной матрице столбца с положительным элементом главной диагонали на вектор х (part4) Смысл переменных Обозначение Тип переменной Примечания в алгоритме в программе Входные данные Количество столбцов и строк Матрица N a N a Целый Двумерный массив 1 ij =f(I,j) Промежуточные данные Номер строки массива Номер столбца массива I j I j Целый Целый i=1,n-1,1 j=1,n-i,1 Выходные данные Перевернутая матрица a a Двумерный массив a[i,j]∈ R 13 Таблица переменных алгоритма умножение транспонированной исходной матрицей на вектор х (Смысл переменных Обозначение Тип переменной Примечания в алгоритме в программе Входные данные Количество столбцов и строк Вектор x Перевернутая матрица N X b N X b Целый Одномерный массив Двумерный массив 1 Целый Вещественный Выходные данные Результат умножения перевернутой матрицы на исходную матрицу c c Одномерный массив c[i,j]∈R 5. Текст программы на Питоне import math import copy H=[] G=[] M=[] L=[] jo=[] укажите размерность матрицы N*N N=')) cx=float(N) тая строка ==>'))) матрица) print(' ↓') t=t-1 k=N-1 F=0 y=0 d=0 a=0 u=-1 14 ch=0 q=1 suma=0 sumar=0 первая часть создание и заполнение двумерного массива for i in range(0, N): for j in range(0, N): H.append(round(((((i+1)**3+math.cos((j+1)**2+(i+1)*(j+1)))**0.5)/(((j+1)**4+(i+1 )**5+math.e**(j+1+i+1))**0.5)),3)) G.append(H) H=[] M=copy.deepcopy(G) jo=copy.deepcopy(G) ja=copy.deepcopy(G) визуализация заданного массива в виде таблицы for i in range(0, N): for j in range(0, N): H.append(G[i][j]) print(H) H=[] вторая часть побочная диагональ for i in range(0, N): F=F+G[i][k] k=k-1 тая строка y=y+G[t][i] # скалярное произведение строки на побочную диагональ sum=F+y скалярное произведение строки на побочную диагональ) print(round(sum,3)) вычисление векторах) вектор х) print(L) массив для сравнения i строк for i in range(0,N): for j in range(0, N): d=d+G[i][j] 15 H.append(d) d=1 массив с суммой i-тых строк) сумма) получение y F=0 y=0 k=N-1 ja=[] for j in range(0,N): for i in range(0,N): F=F+G[i][k] k=k-1 y=y+G[j][i] ja.append(y+F) y=0 k=N-1 скалярное произведение строки на побочную диагональ sorted(ja) sam=ja[0]-(sum-2)**(N-3) print('y=',sam) H=[] for i in range(0,N): for j in range (0,N): if (G[i][i]>=0): M[i][j]=L[i] матрица после замены главной диагонали пункт 4') print(M) ja=copy.deepcopy(G) for i in range(0,N): for j in range(0,N): jo[j][i]=ja[i][j] H=[] for i in range(0,N): for j in range(0,N): sumar=sumar+jo[i][j]*L[j] H.append(sumar) print('5 задание) print(H) Результаты 16 7. Вывод Результаты ручного расчета совпали с результатами расчета программы. Это говорит о том, что программа составлена верно. |