Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Профильный формат симметричной матрицы с выделением диагонали

Автор:   •  Май 26, 2021  •  Лабораторная работа  •  1,578 Слов (7 Страниц)  •  330 Просмотры

Страница 1 из 7

Лабораторная работа №3

Вариант 10.1

Профильный формат симметричной матрицы с выделением диагонали.

Тесты:

Исходные данные:

Ожидаемый результат:

Реальный результат:

1. Вектор недопустимой размерности

[pic 1]

Неправильный вектор

[pic 2]

2. Перемножение с вещественными числами

[pic 3]

[pic 4]

[pic 5]

3. Вещественные числа в векторе

[pic 6]

[pic 7]

[pic 8]

4. Отрицательные числа

[pic 9]

[pic 10]

[pic 11]

5. Умножение на нулевой вектор

[pic 12]

[pic 13]

[pic 14]

Текст программы:        

      PROGRAM MAIN

        COMMON /size/ N, nodes

        DIMENSION mem(1000000)

 

        CALL readSizes(1000000)

       

        CALL readMatrix(mem(1), mem(N + 2), mem(2 * N + 3),

     & mem(2 * N + nodes + 4))

     

        CALL readVector(mem(2 * N + 2 * nodes + 5))  

           

        CALL mult(mem(1), mem(N + 2), mem(2 * N + 3),

     & mem(2 * N + nodes + 4), mem(2 * N + 2 * nodes + 5),

     & mem(3 * N + 2 * nodes + 6))

      END

      SUBROUTINE readSizes(mem_size)

        COMMON /size/ N, nodes

       

        OPEN(1, FILE = 'matrix_size.txt', STATUS = 'OLD', ERR=1)

        READ(1, *) N

        CLOSE(1)

       

        OPEN(1, FILE = 'vector_size.txt', STATUS = 'OLD', ERR=2)

        READ(1, *) Nv

        CLOSE(1)

       

        IF (N .NE. Nv) GOTO 3

        OPEN(1, FILE = 'ia.txt', STATUS = 'OLD', ERR = 4)

        READ(1, *) (values, i = 1, N + 1)

        nodes = INT(values) - 1

        CLOSE(1)  

         

        IF (mem_size .LT. (4 * N + 2 * nodes + 2 + 100)) GOTO 5

        PRINT *, 'Sizes reading success.'

        RETURN

    1   PRINT *, 'matrix_size.txt file does not exist!'

        PAUSE

        STOP

    2   PRINT *, 'vector_size.txt does not exist!'

        PAUSE

        STOP

    3   PRINT *, 'Incorrect size of matrix/vector!'

        PAUSE

        STOP

    4   PRINT *, 'ia.txt does not exist!'

        PAUSE

        STOP

    5   PRINT *, 'Out of memory!'

        PAUSE

        STOP

      END

     

      SUBROUTINE readMatrix(iA, Di, Al, Au)

        COMMON /size/ N, nodes

        DIMENSION iA(*), Di(*), Al(*), Au(*)

       

        OPEN(1, FILE = 'ia.txt', STATUS = 'OLD', ERR = 1)

...

Скачать:   txt (5 Kb)   pdf (123.3 Kb)   docx (582.2 Kb)  
Продолжить читать еще 6 страниц(ы) »
Доступно только на Essays.club