Лабораторный практикум по информатике. Гурьяшова Р.Н - 88 стр.

UptoLike

88
6.
Макет печати результатов
По C-программе По Fortran-программе
Матрица A(3,3)
1 -2 -3
2 6 -4
-1 3 2
Массив B(3)
-1 5 1
P = 5
Как видно, результаты ручного и машинного расчётов совпадают.
7. Листинг Fortran-программы
Программный код
! Формирование одномерного массива B
PROGRAM
MACCIF
! Объявление типа данных
- целого типа
INTEGER
:: A(1:3,1:3),B(3)
INTEGER
:: I,J,K,N = 3,P = 1
Задание матрицы по столбцам
DATA
A/1,2,-1,-2,6,3,-3,-4,2/
Вывод матрицы по строкам
WRITE
(*,*) ' МАТРИЦА А(3,3) '
WRITE
(*,2)((A(I,J),J = 1,3),I = 1,3)
FORMAT(2X,3I4)
I = 1,N ! Внешний цикл по I (по строкам)
K = 0
DO J = 1,N ! Внутренний цикл по J (по столбцам)
IF(A(I,J) < 0) K = K + 1
END DO ! Конец цикла по J
Вычисление элементов B(I)
B(I) = A(I,I)
- K
(B(I) > 0) P = P * B(I)
END
DO ! Конец цикла по I
! Вывод массива
B и произведения P
WRITE
(*,*) ' МАССИВ B(3) '
WRITE
(*,"( 3I4/2X,A,I3)") B,' P = ',P
END
Результаты работы представлены в макете печати (п.6).
                 6. Макет печати результатов
       По C-программе               По Fortran-программе
                                       Матрица A(3,3)
                                         1    -2  -3
                                         2     6  -4
                                        -1     3   2
                                         Массив B(3)
                                          -1   5 1
                                            P = 5

Как видно, результаты ручного и машинного расчётов совпадают.
               7. Листинг Fortran-программы
                        Программный код
! Формирование одномерного массива B
PROGRAM MACCIF
! Объявление типа данных - целого типа
INTEGER :: A(1:3,1:3),B(3)
INTEGER :: I,J,K,N = 3,P = 1
! Задание матрицы по столбцам
DATA A/1,2,-1,-2,6,3,-3,-4,2/
! Вывод матрицы по строкам
WRITE(*,*) '        МАТРИЦА А(3,3) '
WRITE(*,2)((A(I,J),J = 1,3),I = 1,3)
2 FORMAT(2X,3I4)
DO I = 1,N ! Внешний цикл по I (по строкам)
  K = 0
  DO J = 1,N ! Внутренний цикл по J (по столбцам)
    IF(A(I,J) < 0) K = K + 1
  END DO ! Конец цикла по J
! Вычисление элементов B(I)
B(I) = A(I,I) - K
IF(B(I) > 0) P = P * B(I)
END DO ! Конец цикла по I
! Вывод массива B и произведения P
WRITE(*,*) '      МАССИВ B(3) '
WRITE(*,"( 3I4/2X,A,I3)") B,' P = ',P
END
   Результаты работы представлены в макете печати (п.6).
                              88