Информатика: Сегментация программ. Гурьяшова Р.Н - 74 стр.

UptoLike

3. Листинг Fortran-программы
о модуля ния Код исходног Поясне
! Лабораторная работа 7
! А.Н М-11
!
INTEGER ::
108,97,105,99,100,112,96,107,98/)
)
','Март', &
нь', &
: MONTH(12)
ONTH
AMIN = 1000
HEN
IN,M, MONTH(M)
' ПОЛУГОДИЕ -',I4,&
',A)
ная
амма
Данные
(проценты)
обальные
ых
зов
кл
вод
татов
Основ
прогр
Петров
П
.
роцедура SUBROUTINE
A(12) = (/101,98,100, &
CHARACTER*10 :: MONTH(12
DATA MONTH &
/'Январь','Февраль
'Апрель','Май','Ию
'Июль','Август','Сентябрь', &
'Октябрь','Ноябрь','Декабрь'/
COMMON /A/ A, MONTH
PRINT 2, A
2 FORMAT(14X,' % ВЫПОЛНЕНИЯ ПЛАНА '/&
2X, 12I4/3X,' МИНИМАЛЬНЫЙ % ')
CALL POL(1,6,1)
CALL POL(7,12,2)
ND E
! Подпрограмма POL
SUBROUTINE POL(N,K,P)
INTEGER :: I,N,M,K,P,A(12),AMIN
CHARACTER*10 :
COMMON /A/ A, M
DO I = N,K
IF(A(I) < AMIN) T
AMIN = A(I) ; M = I
END IF
ENDDO
PRINT 3, P,AM
1,3 FORMAT(4X,I
' % ЗА ',I2,' МЕСЯЦ -
END SUBROUTINE
Данные
месяца) (
Гл
массивы
ывод даннВ
Вы
п/п POL
одпрограмма П
Ци
Определение
, AMIN M
Вы
резуль
74
             3. Листинг Fortran-программы

            Код исходного модуля              Пояснения
! Лабораторная работа 7                     Основная
! Петров А.Н. М-11                          программа
! Процедура SUBROUTINE

    INTEGER :: A(12) = (/101,98,100, &      Данные
    108,97,105,99,100,112,96,107,98/)       (проценты)

    CHARACTER*10 :: MONTH(12)
    DATA MONTH &                            Данные
       /'Январь','Февраль','Март', &        (месяца)
       'Апрель','Май','Июнь',       &
       'Июль','Август','Сентябрь', &
       'Октябрь','Ноябрь','Декабрь'/

    COMMON /A/ A, MONTH                     Глобальные
                                            массивы
    PRINT 2, A
2   FORMAT(14X,' % ВЫПОЛНЕНИЯ ПЛАНА '/&     Вывод данных
       2X, 12I4/3X,' МИНИМАЛЬНЫЙ % ')

   CALL POL(1,6,1)                          Вызов
   CALL POL(7,12,2)                         п/п POL
END

! Подпрограмма POL
   SUBROUTINE POL(N,K,P)                    Подпрограмма
      INTEGER :: I,N,M,K,P,A(12),AMIN
      CHARACTER*10 :: MONTH(12)
      COMMON /A/ A, MONTH

       AMIN = 1000
       DO I = N,K                           Цикл
          IF(A(I) < AMIN) THEN              Определение
             AMIN = A(I) ; M = I            M, AMIN
          END IF
       ENDDO

       PRINT 3, P,AMIN,M, MONTH(M)          Вывод
3      FORMAT(4X,I1,' ПОЛУГОДИЕ -',I4,&     результатов
          ' % ЗА ',I2,' МЕСЯЦ - ',A)
    END SUBROUTINE


                              74