Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
95
Добавлен:
14.04.2015
Размер:
3.38 Mб
Скачать
  1. End Subroutine MaxAbs

  2. Program Sub1 ! ФИО Лаб 6 Группа. Вар.

  3. Implicit none

  4. Interface ! шаблон вызываемой подпрограммы

  5. Subroutine MaxAbs(Array, eLem, Num)

  6. Implicit none

  7. Real,intent(in),dimension(:)::Array ! входной массив

  8. Real,intent(out)::eLem ! выходной: max по модулю элемент

  9. Integer,intent(out)::Num ! выходной: номер max по модулю

  10. End Subroutine MaxAbs

  11. End Interface

  12. Real,dimension(1:12)::B

  13. Real,dimension(1:10)::C

  14. Real MaxB, MaxC ! max по модулю элементы для В,C

  15. Integer NumB, NumC ! и их порядковые номера в массивах

  16. ... ! ввод и вывод в результирующий файл массива B

  17. Call MaxAbs(B, MaxB, NumB)

  18. ... ! вывод в результирующий файл NumB, MaxB

  19. ... ! ввод и вывод в результирующий файл массива C

  20. Call MaxAbs(C, MaxC, NumC)

  21. ... ! вывод в результирующий файл NumC, MaxC

  22. End Program Sub1

Результаты работы программы Sub1

Массив В

1.0 -4.0 6.0 20.0 45.0 -71.0

4.0 -17.0 .0 .0 .0 11.0

max по модулю элемент -71.0 его номер 6 в массиве B

Массив С

-122.0 .0 45.0 71.0 4.0 -17.0

.0 .0 .0 11.0

max по модулю элемент -122.0 его номер 1 в массиве C

Контрольные вопросы

  1. Назовите четыре вида программных единиц в Фортране.

  2. Что такое процедура? Когда целесообразно использование процедур? Сколько разновидностей процедур в Фортане?

  3. Каковы основные атрибуты функции?

  4. Как результат функции передается в вызывающую программу?

  5. Что в программировании называют подпрограммой? Сколько разновидностейподпрограмм в Фортане?

  6. Зачем подпрограмме имя? Есть ли значение, связанное с именем подпрограммы? Как передаются результаты подпрограммы в вызывающуюпрограмму?

  7. Что такое формальные и фактическиеаргументы? Правила согласования формальных и фактических аргументов, поясните примерами.

  8. Какими по назначению могут быть формальные аргументыпроцедуры? Приведите примеры описанияназначения формальных аргументов.

  9. Где и для чего пишут интерфейсы?

  10. Чем процедура отличается от функции? Сравните на примере, оформив как функцию и как подпрограммувычисление количества повторений цикла.

Примеры задач контрольного задания

  1. В функции: вычислить среднее геометрическое положительных элементов одномерного массива. Если в массиве нет положительных элементов, результат приравнять нулю. В главной программе применить функцию к трем массивам разной длины. Вывести результаты с именами массивов. Найти и вывести минимум среди полученных значений, не равных нулю.

Блок-схема функции обязательна.

  1. В подпрограмме: вычислить сумму элементов, расположенных ниже, выше и на главной диагонали квадратной вещественной матрицы.В главной программе: применить подпрограмму к матрице размером 88. Вывести три значащих цифры результатов.

Блок-схема подпрограммы обязательна.

  1. В вещественном массиве обнулить элементы, синус которых превышает 0.5 (операторwhere). Как получить тот же результат без использования оператораwhere?

  2. Исправьте ошибку

Integer I

Real, dimension(7,4):: А

write(*,10) ’Массив’,(A(i,:), i=1,4)

10 Format(a/(4F10.2))

Таблица 14.

Соседние файлы в папке Фортран_Лекции