вторник, 3 апреля 2012 г.

Работа с матрицами

Объявим константы N,M - максимально допустимая размерность матрицы (Понятие матрицы):

const
  n=10; // col count
  m=10; // row count
Объявим тип данных матрица:

type
    TMatrix = array[1..n,1..m] of integer;
    TMassiv = array[1..n] of integer; 

Задание: реализовать следующие функции для работы с матрицей:

  1. function RandomMatrix(ACol,ARow:integer):TMatrix; 
     возвращает матрицу размера ARow строк и  ACol столбцов заполненную случайными числами
  2. function ReadMatrix(FName:string; var A:TMatrix; var ACol, ARow:integer):boolean;
    Считывает размер матрицы и ее содержимое из файла с именем FName. Возвращает true, если файл существует и данные в нем корректны и false - в обратном случае
  3. procedure PrintMatrix(A:TMatrix;  ACol,ARow :integer);
    Выводит матрицу на экран.
  4. procedure SaveMatrix( FName:string; A:TMatrix;  ACol,ARow :integer);
    Сохраняет размер и содержимое матрицы в файл с именем FName 
  5. function GetRow(A:TMatrix,  ACol,ARow,No:integer):TMassiv
    Возвращает строку с номером No из матрицы
  6. function GetCol(A:TMatrix,  ACol,ARow,No:integer):TMassiv
    Возвращает столбец с номером No из матрицы
  7. function PascalTriangle(K:integer):TMatriix
    Генерирует треугольник Паскаля из K строк вида:
    1  0  0  0  0
    1  1  0  0  0
    1  2  1  0  0
    1  3  3  1  0
    1  4  6  4  1
  8. function SumMatrix(A,B:TMatrix; ACol, ARow, BCol, BRow: integer; Err: integer):TMatrix;
    Реализует сложение матриц A и B. Если размерность матриц не совпадает - переменная Err принимает значение 1, если операция успешно прошла - 0.
  9. function ScalarAndMatrix(A: TMatrix; Scalar, ACol, ARow: integer):TMatrix;
    Реализует умножение матрицы на число.
  10. function MultMatrix(A,B:TMatrix; ACol, ARow, BCol, BRow: integer; Err: integer):TMatrix;
    Реализует умножение матриц A и B. Если умножение невозможно, переменная Err принимает значение 1, если операция успешно прошла - 0.
  11. function Transp(A:TMatrix; ACol, ARow:integer):TMatrix;
    Транспонирует матрицу.
  12. function IsSymmetric (A:TMatrix; ACol, ARow:integer):boolean;
    Проверяет матрицу на симметричность. Возвращает true, если матрица симметрична и false в обратном случае.
  13. function CutXY(A:TMatrix; ACol, ARow:integer; X,Y:integer):TMatrix;
    Возвращает матрицу, с удаленными строкой и столбцом, содержащими элемент с индексом [X,Y]. (То есть удаляет столбец номер Y и строку номер X);
  14. function Determinant( (A:TMatrix; ACol, ARow:integer):integer;
    Возвращает определитель матрицы. (Задание повышенной сложности!!!) Что такое определитель см. здесь



Комментариев нет:

Отправить комментарий