Скачать презентацию Операции с матрицами Матрицей A размерности n m Скачать презентацию Операции с матрицами Матрицей A размерности n m

Лекция_5_TP.ppt

  • Количество слайдов: 35

Операции с матрицами Матрицей A размерности n m называется двумерный массив из n строк Операции с матрицами Матрицей A размерности n m называется двумерный массив из n строк и m столбцов : где - элементы матрицы A. • сложение матриц; • • транспонирование матрицы; умножение матриц. 1

Сложение матриц Пример сложения двух матриц A и B размерности 3 4: 2 Сложение матриц Пример сложения двух матриц A и B размерности 3 4: 2

Блок-схема 3 Блок-схема 3

Программа: Program Sum_Matr; Type Matrix = Array[1. . 3, 1. . 4] of integer; Программа: Program Sum_Matr; Type Matrix = Array[1. . 3, 1. . 4] of integer; Var A, B, C : Matrix; i, j : Integer; Begin A[1, 1]: =2; A[1, 2]: =1; A[1, 3]: =3; A[1, 4]: =0; A[2, 1]: =1; A[2, 2]: =5; A[2, 3]: =4; A[2, 4]: =2; A[3, 1]: =0; A[3, 2]: =3; A[3, 3]: =1; A[3, 4]: =1; B[1, 1]: =0; B[1, 2]: =2; B[1, 3]: =4; B[1, 4]: =1; B[2, 1]: =3; B[2, 2]: =6; B[2, 3]: =2; B[2, 4]: =0; B[3, 1]: =5; B[3, 2]: =4; B[3, 3]: =3; B[3, 4]: =2; For i : = 1 to 3 do For j : = 1 to 4 do C[i, j] : = A[i, j] + B[i, j]; 4

Программа (продолжение) Writeln('Исходные данные'); Write. Ln('Массив A'); For i : = 1 to 3 Программа (продолжение) Writeln('Исходные данные'); Write. Ln('Массив A'); For i : = 1 to 3 do begin For j : = 1 to 4 do Write(A[i, j]: 1, ' '); Write. Ln; end; Write. Ln('Массив B'); For i : = 1 to 3 do begin For j : = 1 to 4 do Write(B[i, j]: 1, ' '); Write. Ln; end; Write. Ln('Результат - Массив C'); For i : = 1 to 3 do begin For j : = 1 to 4 do Write(C[i, j]: 2, ' '); Write. Ln; end END. 5

Вид печати: Исходные данные Массив A 2 1 3 0 1 5 4 2 Вид печати: Исходные данные Массив A 2 1 3 0 1 5 4 2 0 3 1 1 Массив B 0 2 4 1 3 6 2 0 5 4 3 2 Результат - Массив C 2 3 7 1 4 11 6 2 5 7 4 3 6

Транспонирование матрицы Пусть дана матрица размерности n m. Матрица размерности m n называется транспонированной Транспонирование матрицы Пусть дана матрица размерности n m. Матрица размерности m n называется транспонированной к матрице A, если ее элементы определены по формуле . 7

Пример транспонирования матрицы размерности 2 3: Дана Найти 8 Пример транспонирования матрицы размерности 2 3: Дана Найти 8

Блок-схема 9 Блок-схема 9

Программа: Program Transp_Matr; Const n=2; m=3; Var A: Array[1. . n, 1. . m] Программа: Program Transp_Matr; Const n=2; m=3; Var A: Array[1. . n, 1. . m] of Real; B: Array[1. . m, 1. . n] of Real; i, j : Integer ; Begin A[1, 1]: =2. 5; A[1, 2]: =-4. 3; A[1, 3]: =0. 8; A[2, 1]: =-9. 1; A[2, 2]: =8. 4; A[2, 3]: =3. 6; For i : = 1 to m do For j : = 1 to n do B[i, j] : = A[j, i] ; 10

Программа (продолжение) Writeln('Исходная матрица A'); For i : = 1 to n do begin Программа (продолжение) Writeln('Исходная матрица A'); For i : = 1 to n do begin For j : = 1 to m do Write(A[i, j]: 4: 1, ' '); Write. Ln; end; Write. Ln('Транспонированная матрица - массив B'); For i : = 1 to m do begin For j : = 1 to n do Write(B[i, j]: 4: 1, ' '); Write. Ln; end END. 11

Вид печати: Исходная матрица A 2. 5 -4. 3 0. 8 -9. 1 8. Вид печати: Исходная матрица A 2. 5 -4. 3 0. 8 -9. 1 8. 4 3. 6 Транспонированная матрица - массив B 2. 5 -9. 1 -4. 3 8. 4 0. 8 3. 6 12

Умножение матриц Пусть даны матрица размерности n m и матрица размерности m k. Матрица Умножение матриц Пусть даны матрица размерности n m и матрица размерности m k. Матрица размерности n k равна произведению матриц A и B, если ее элементы определены по формуле 13

Пример умножения матрицы размерности 2 3 на матрицу размерности 3 4. Матрица , равная Пример умножения матрицы размерности 2 3 на матрицу размерности 3 4. Матрица , равная произведению матриц A и B будет иметь размерность 2 4. 14

Блок-схема 15 Блок-схема 15

Программа: Program Umn_Matr; Const n=2; m=3; k=4; Var A: Array[1. . n, 1. . Программа: Program Umn_Matr; Const n=2; m=3; k=4; Var A: Array[1. . n, 1. . m] of integer ; B: Array[1. . m, 1. . k] of integer ; C: Array[1. . n, 1. . k] of integer ; i, j, l : Integer; Begin A[1, 1]: =2; A[1, 2]: =4; A[1, 3]: =0; A[2, 1]: =1; A[2, 2]: =3; A[2, 3]: =5; B[1, 1]: =0; B[1, 2]: =2; B[1, 3]: =4; B[1, 4]: =1; B[2, 1]: =3; B[2, 2]: =6; B[2, 3]: =2; B[2, 4]: =0; B[3, 1]: =5; B[3, 2]: =4; B[3, 3]: =3; B[3, 4]: =2; For i : = 1 to n do For j : = 1 to k do begin C[i, j]: =0; For l : = 1 to m do C[i, j] : = C[i, j] + A[i, l] * B[l, j]; end; 16

Программа (продолжение) Writeln('Исходные данные'); Write. Ln('Массив A'); For i : = 1 to n Программа (продолжение) Writeln('Исходные данные'); Write. Ln('Массив A'); For i : = 1 to n do begin For j : = 1 to m do Write(A[i, j]: 1, ' '); Write. Ln; end; Write. Ln('Массив B'); For i : = 1 to m do begin For j : = 1 to k do Write(B[i, j]: 1, ' '); Write. Ln; end; Write. Ln('Результат - Массив C'); For i : = 1 to n do begin For j : = 1 to k do Write(C[i, j]: 2, ' '); Write. Ln; end ; END. 17

Вид печати: Исходные данные Массив A 2 4 0 1 3 5 Массив B Вид печати: Исходные данные Массив A 2 4 0 1 3 5 Массив B 0 2 4 1 3 6 2 0 5 4 3 2 Результат - Массив C 12 28 16 2 34 40 25 11 18

ВЫВОД В ФАЙЛ Объявление файла Имя : file of Тип Элементов Примеры: f : ВЫВОД В ФАЙЛ Объявление файла Имя : file of Тип Элементов Примеры: f : file of Integer { файл целых чисел } ; sigma : file of Real { файл вещественных чисел } ; rez : file of Char { файл символов } ; rez : text; 19

Назначение файла assign ( var f : text ; Имя Файла : string ) Назначение файла assign ( var f : text ; Имя Файла : string ) ; Примеры: assign ( f , ‘a: resultat. txt’ ) ; assign ( f, ‘e: studentsivanovkof. dat’ ) ; fname : = ‘otchet. txt’ ; assign (f, fname) ; 20

Инструкции вывода в файл WRITE или WRITELN write ( f , ‘ Корни уравнения Инструкции вывода в файл WRITE или WRITELN write ( f , ‘ Корни уравнения ‘, x 1, x 2 ) ; write. Ln ( f , ‘ Корни уравнения ‘, x 1, x 2 ) ; 21

Открытие файла для вывода • перезапись (запись нового файла поверх существующего или создание нового Открытие файла для вывода • перезапись (запись нового файла поверх существующего или создание нового файла); • добавление в существующий файл. REWRITE(f) ; APPEND(f) ; f файловая переменная типа TEXT. 22

Program Example_1; var f : text ; { текстовый файл } i : integer Program Example_1; var f : text ; { текстовый файл } i : integer ; begin assign (f, ‘test. txt’) ; rewrite ( f ) ; {открыть в режиме перезаписи} for i : = 1 to 5 do writeln(f, ‘Строка ‘ , i ) ; close(f) { закрыть файл } 23 end.

Содержимое файла test. txt : Строка 1 Строка 2 Строка 3 Строка 4 Строка Содержимое файла test. txt : Строка 1 Строка 2 Строка 3 Строка 4 Строка 5 24

Program Example_2; var f : text ; { текстовый файл } i : integer Program Example_2; var f : text ; { текстовый файл } i : integer ; begin assign (f, ‘test. txt’) ; rewrite ( f ) ; {открыть в режиме перезаписи} for i : = 6 to 7 do writeln(f, ‘Строка ‘ , i ) ; close(f) { закрыть файл } end. 25

Содержимое файла test. txt : Строка 6 Строка 7 26 Содержимое файла test. txt : Строка 6 Строка 7 26

Program Example_3; var f : text ; { текстовый файл } i : integer Program Example_3; var f : text ; { текстовый файл } i : integer ; begin assign (f, ‘test. txt’) ; append ( f ) ; {открыть в режиме добавления} for i : = 8 to 10 do writeln(f, ‘Строка ‘ , i ) ; close(f) { закрыть файл } 27 end.

Содержимое файла test. txt : Строка 6 Строка 7 Строка 8 Строка 9 Строка Содержимое файла test. txt : Строка 6 Строка 7 Строка 8 Строка 9 Строка 10 28

Ошибки открытия файла IOResult (Input-Output Result результат ввода-вывода) {$I-} {$I+} 29 Ошибки открытия файла IOResult (Input-Output Result результат ввода-вывода) {$I-} {$I+} 29

30 30

assign (f, filename) ; {$I-} append(f) ; {$I+} if IOResult<>0 then rewrite(f) ; 31 assign (f, filename) ; {$I-} append(f) ; {$I+} if IOResult<>0 then rewrite(f) ; 31

Закрытие файла close(f) ; 32 Закрытие файла close(f) ; 32

ВВОД ИЗ ФАЙЛА READ или READLN Открытие файла RESET assign(f, ‘c: data. txt’) ; ВВОД ИЗ ФАЙЛА READ или READLN Открытие файла RESET assign(f, ‘c: data. txt’) ; reset(f) ; 33

Чтение из файла read (Файловая. Переменная, Список. Переменных) ; readln (Файловая. Переменная, Список. Переменных) Чтение из файла read (Файловая. Переменная, Список. Переменных) ; readln (Файловая. Переменная, Список. Переменных) ; где Файловая. Переменная переменная типа TEXT ; Список. Переменных имена переменных, разделенные запятыми. 34

Конец файла и конец строки EOF (End Of File конец файла) EOLN (End Of Конец файла и конец строки EOF (End Of File конец файла) EOLN (End Of Line конец строки) • Seek. EOF(F) конец файла • Seek. EONL(F) конец строки 35