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

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

.txt
Скачиваний:
0
Добавлен:
16.05.2024
Размер:
1.8 Кб
Скачать
program lab_5_2_variant_3

integer, parameter :: NMAX = 100
integer :: rows, cols, length
real :: matrix(NMAX,NMAX), array(NMAX), array_2(NMAX)
real :: value_1, value_2
logical :: flag

flag = .true.

write (*,*) "Введите кол-во строк и столбцов матрицы: "
read (*,*) rows, cols

write (*,*) "Введите матрицу: "
read (*,*) ((matrix(i,j),i=1,rows),j=1,cols)

write (*,*) "Введите длину массива: "
read (*,*) length

write (*,*) "Введите массив: "
read (*,*) (array(i),i=1,length)

write (*,*) "Введите значения переменных P и T: "
read (*,*) value_1, value_2

call check_array(array, length, value_1, value_2, flag)

if(flag .eqv. .true.) then
call transform_matrix_into_array(rows, cols, matrix,array_2)
write (*,*) (array_2(i),i=1,rows)
ELSE
write (*,*) "Значения масссива не лежат в пределах от Р до Т "
end if



end program lab_5_2_variant_3



SUBROUTINE check_array(array, length, value_1, value_2, flag)

integer, parameter :: NMAX = 100
integer :: length, i
real array(NMAX)
real :: value_1, value_2
logical :: flag

flag = .true.
i=1

do while(i<=length .AND. flag)
if(array(i)<value_2 .AND. array(i)>value_1) then
flag = .true.
ELSE
flag = .false.
end if
i=i+1
end do

end SUBROUTINE check_array


SUBROUTINE transform_matrix_into_array(rows, cols, matrix, array_2)

integer, parameter :: NMAX = 100
integer :: rows, cols
real :: matrix(NMAX,NMAX)
real :: array_2(NMAX)
real :: amount

do j=1, rows
amount = 0
do i=1, cols
amount = amount + matrix(i,j)
end do
array_2(j) = amount
end do

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