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

UptoLike

FOR I = 1 TO 5
READ A(I)
PRINT A(I)
NEXT
CALL MINMAX(A(), 5, AMIN, AMAX)
PRINT "AMIN= ", AMIN, "AMAX= ", AMAX
END
SUB MINMAX (A(), N, AMIN, AMAX)
AMIN = 1E+37
AMAX = -1E+37
FOR I = 1 TO N
IF A(I) < AMIN THEN AMIN = A(I)
IF A(I) > AMAX THEN AMAX = A(I)
NEXT
END SUB
Ввод/вывод
данных
Вызов п/п
Вывод
результата
П/п, A -
параметр-
массив
Результаты работы:
МАССИВ А
2
3
1
4
2
AMIN= 1 AMAX= 4
На Fortran'е соответствующие формальные параметры должны
быть описаны как массивы (см. пример предыдущего пункта).
Часто язык позволяет внутри подпрограммы определить размер
переданного массива. В QBasic'е и Фортране есть функции для оп-
ределения:
нижней границы массива LBOUND(массив, номер_измерения);
верхней границы массива UBOUND(массив, номер_измерения).
Если таких средств нет, то можно передать в подпрограмму
вместе с массивом и его размер.
В некоторых языках имеется возможность передавать вместо
формального параметра-массива только его часть (сечение). Это
можно сделать в Фортране 9х и старше, но такие подпрограммы
обязательно должны быть описаны в блоке интерфейса. В QBasic'е
этого сделать нельзя.
16
 FOR I = 1 TO 5                                 Ввод/вывод
    READ A(I)                                   данных
    PRINT A(I)
 NEXT

 CALL MINMAX(A(), 5, AMIN, AMAX)                Вызов п/п
 PRINT "AMIN= ", AMIN, "AMAX= ", AMAX           Вывод
                                                результата
 END

 SUB MINMAX (A(), N, AMIN, AMAX)                П/п, A -
    AMIN = 1E+37                                параметр-
    AMAX = -1E+37                               массив
    FOR I = 1 TO N
       IF A(I) < AMIN THEN AMIN = A(I)
       IF A(I) > AMAX THEN AMAX = A(I)
    NEXT
 END SUB

   Результаты работы:
 МАССИВ А
  2
  3
  1
  4
  2
 AMIN=            1                AMAX=           4

   На Fortran'е соответствующие формальные параметры должны
быть описаны как массивы (см. пример предыдущего пункта).
   Часто язык позволяет внутри подпрограммы определить размер
переданного массива. В QBasic'е и Фортране есть функции для оп-
ределения:
• нижней границы массива LBOUND(массив, номер_измерения);
• верхней границы массива UBOUND(массив, номер_измерения).
   Если таких средств нет, то можно передать в подпрограмму
вместе с массивом и его размер.
   В некоторых языках имеется возможность передавать вместо
формального параметра-массива только его часть (сечение). Это
можно сделать в Фортране 9х и старше, но такие подпрограммы
обязательно должны быть описаны в блоке интерфейса. В QBasic'е
этого сделать нельзя.

                              16