Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Фортран / Коды 5.2 / 1 вариант

.txt
Скачиваний:
0
Добавлен:
16.05.2024
Размер:
1.22 Кб
Скачать
program variant
integer, parameter :: N = 100
real :: matrix(N,N)
real :: C(N)
real :: VECTOR(N)
real :: minimum
LOGICAL :: flag
flag = .TRUE.
read (*,*) NMAX
read (*,*) ((matrix(i,j),J=1,NMAX),i=1,NMAX)
read (*,*) (C(i),i=1,NMAX)

call full_compare(matrix, C, flag, NMAX)
if(flag) THEN
do i =1, NMAX
do j=1, NMAX
VECTOR(j) = matrix(i,j)
end do
call find_min(VECTOR, minimum, NMAX)
C(i) = minimum
end do
end if

write (*,*) (C(i),i=1,NMAX)

end program

subroutine compare (A, B, flag)

real :: A, B
LOGICAL :: flag
flag = .FALSE.
if (A > B) THEN
flag = .TRUE.
end if

end subroutine

subroutine full_compare (MATRIX, ARRAY, flag_2, NMAX)

integer, parameter :: N = 100
integer :: NMAX
real :: MATRIX(N, N), ARRAY(N)
LOGICAL :: flag_2, flag
integer :: i
flag_2 = .TRUE.
i = 1
do while (i <= NMAX .AND. flag_2)
call compare(ARRAY(i), MATRIX(i,i), flag)
if (flag .eqv. .FALSE.) THEN
flag_2 = .FALSE.
end if
i = i + 1
end do

end subroutine

subroutine find_min(VECTOR, minimum, NMAX)

integer :: NMAX
real :: VECTOR(NMAX)
real :: minimum
minimum = VECTOR(1)
do i=2, NMAX
if (VECTOR(i) < minimum) THEN
minimum = VECTOR(i)
end if
end do

end subroutine
Соседние файлы в папке Коды 5.2