Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
ПРИМЕР ОФОРМЛЕНИЯ ОТЧЕТА
Лабораторная работа № 7 ПОДПРОГРАММЫ
Цель работы– уяснение общего и основных различий между процедурой и функцией; составление программ с использованием процедур; решение задач, связанных с операциями над массивами. Постановка задачи: 1. Выполнить задание с использованием процедур. 2. Исходные данные (кроме размерности массивов) ввести из текстового файла, который представить вместе с листингом программы и результатами счета. Ввод данных оформить как процедуру. 3. Решение задачи оформить в виде процедуры. 4. Исходную матрицу и результаты вывести в другой текстовый файл. Вывод данных в файл оформить в виде процедуры. 5. Весь обмен данными между основной программой и процедурами организовать через список формальных/фактических параметров. Вариант № 1 Найти максимальный и минимальный элементы и разность между ними для массива Содержание работы 1. Текст программы:
! Lab8_V1.f90 ! FUNCTIONS: ! Lab8_V1 - Entry point of console application. !**************************************************************************** ! PROGRAM: Lab8_V1 ! PURPOSE: Entry point for the console application. !**************************************************************************** SUBROUTINE ReadFromFile(A1,Mmax,m1) INTEGER A1(Mmax,Mmax),m1,Mmax integer i,j ! счетчики по строкам, столбцам integer:: fi=1 ! Номер устройства ввода ! Файловой переменной fi назначается файл Lab8_V1.txt open(fi,file='Lab8_V1.txt') ! Текстовый файл открывается read(fi,*) m1 ! Чтение количества строк и столбцов do i=1,m1 ! цикл по строкам read(fi,*) (A1(i,j),j=1,m1) ! чтение массива по строкам enddo close(fi) ! Закрывается прочитанный файл fi END SUBROUTINE ReadFromFile !------------------------------------------------- SUBROUTINE MaxMin(a1,m1,min,max,r,Mmax) INTEGER a1(Mmax,Mmax),m1,min,max,r integer i,j ! счетчики по строкам, столбцам ! поиск минимального и максимального элементов min=a1(1,1) ! начальное значение минимального элемента max=a1(1,1) ! начальное значение максимального элемента do j=1,m1 ! цикл по столбцам do i=1,m1 ! цикл по строкам if (a1(i,j)<min) min=a1(i,j) ! проверка на минимум if (a1(i,j)>max) max=a1(i,j) ! проверка на максимум enddo enddo r=max-min ! разность между максимальным и минимальным END SUBROUTINE MaxMin !------------------------------------------------- SUBROUTINE SaveToFile(a,m,min,max,r,Mmax) INTEGER a(Mmax,Mmax),m,min,max,r integer i,j ! счетчики по строкам, столбцам integer::fo=2 ! Номера устройства вывода ! Файловой переменной fo назначается файл Lab8_V1.out open(fo,file='Lab8_V1.out') ! Текстовый файл fo открывается write(fo,*) '-----------------------------------' write(fo,*) 'Check elements of array A:' do i=1,m write(fo,'(100i5)') (a(i,j),j=1,m) ! чтение массива по строкам enddo write(fo,*) '-----------------------------------' write(fo,'(2(a,i4))') ' Amin=',min,' Amax=',max write(fo,'(a,i4)') ' Result: R=',r ! вывод результата на экран close(fo) ! Закрывается файл fo,созданный программой END SUBROUTINE SaveToFile !------------------------------------------------- SUBROUTINE ShowToScreen(a,m,min,max,r,Mmax) INTEGER a(Mmax,Mmax),m,min,max,r ! Вывод массива на экран - проверка правильности ввода print *,'-----------------------------------' print *, 'Check elements of array A:' do i=1,m write(*,'(100i5)') (A(i,j),j=1,m) ! вывод по строкам enddo print *,'-----------------------------------' write(*,'(2(a,i4))') ' Amin=',min,' Amax=',max write(*,'(a,i4)') ' Result: R=',r ! вывод результата на экран END SUBROUTINE ShowToScreen !------------------------------------------------- program Lab8_V1 implicit none ! ----- Объявления переменных ----- integer,parameter:: Mmax=100 ! максимальное количество строк-столбцов integer m ! количество строк и столбцов integer A(Mmax,Mmax) ! массив А integer R ! искомая разность integer Amax ! максимальный элемент integer Amin ! минимальный элемент integer i,j ! счетчики по строкам, столбцам ! ----- Выполняемые операторы ----- CALL ReadFromFile(A,Mmax,m) ! Вводим данные из файла CALL MaxMin(A,m,Amin,Amax,R,Mmax) ! Расчет результатов CALL SaveToFile(A,m,Amin,Amax,R,Mmax) ! Выводим информацию в файл CALL ShowToScreen(A,m,Amin,Amax,R,Mmax) ! Вывод информации на экран end program Lab8_V1
2. Файл исходных данных. 3. Окно консольного приложения с результатами расчета. 4. Файл с результатами расчета. 5. Выводы: · изучены общие характеристики и основные различия между подпрограммой и функцией; · составлена программа с использованием подпрограмм; · решена задача, связанная с операциями над массивами; · получены навыки передачи массивов в качестве параметров в подпрограммы.
Дата добавления: 2015-07-26; просмотров: 205; Нарушение авторских прав Мы поможем в написании ваших работ! |