Программа версия 2.0
Program lab2      Integer I,J,N,UM      Integer Y(100)      READ *, N       CALL CHISLO(N,Y,100,L,UM)      PRINT *,UM      PAUSE      END      SUBROUTINE CHISLO(B,H,O,L,SUM)      INTEGER B,L,SUM,O      INTEGER H(O)      DO I=1,B      H(I)=I      ENDDO      SUM=0      DO J=1,B      L=1      DO I=1,J      L=L*I      ENDDO      SUM=SUM+L      ENDDO      PRINT 99      PRINT 100,(H(I),I=1,B)   99 FORMAT ('.....',B('....'))  100 FORMAT (/':',1X,'I',1X,':',20(1X,I1,1X,':'))      END

Приложения:

Аноним: Программу нужно давать полностью
nikitok22: дал
Аноним: И что, нам теперь ее руками вбивать, чтобы посмотреть, как она работает и в какой момент что выдает?
nikitok22: Программу добавил. Все для вас.
Аноним: Что по Вашему мнению, должен выводить оператор PRINT 99, ссылающийся на 99 FORMAT ('.....',B('....')) ? Т.е. какую цель Вы преследуете, используя именно такую запись?
Аноним: Я напоминаю, что B - дескриптор ДВОИЧНОГО представления данных.
Аноним: И его описатель имеет в стандарте вид Bw[.n]
Аноним: Кстати, какой компилятор Вы использовали? Я подозреваю, что программа изначально была под Intel Visual Fortran.
nikitok22: Спасибо за ответ. Хочу чтобы программа выводила нужное мне число точек, чтобы в зависимости от переменной B, верхние точки составляли верхнюю границу таблицы вывода.
Аноним: Да, но выводимую строку формирует PRINT, а не FORMAT

Ответы

Ответ дал: Аноним
0
Program lab2
Integer I,J,N,UM
Integer Y(100)
READ *,N
CALL CHISLO(N,Y,100,L,UM)
PRINT *,UM
STOP
END

SUBROUTINE CHISLO(B,H,O,L,SUM)
INTEGER B,L,SUM,O
INTEGER H(O)
DO I=1,B
   H(I)=I
ENDDO
SUM=0
DO J=1,B
   L=1
   DO I=1,J
      L=L*I
   ENDDO
   SUM=SUM+L
ENDDO
PRINT 99,'.....',REPEAT('....',B)
PRINT 100,(H(I),I=1,B)
99 FORMAT (A,A)
100 FORMAT (/':',1X,'I',1X,':',20(1X,I1,1X,':'))
END
Вас заинтересует