Проверка умения работать с отладчиком по заданию Lab_F3. Функции и подпрограммы. Передача массивов подпрограммам. Знакомство с Операторами Ввода ФОРТРАНА-77

Страницы работы

Содержание работы

Информатика   1курс

Лаб.работа F4

Цель занятия:

1.  Проверка умения работать с отладчиком по заданию Lab_F3

2.  Функции и подпрограммы

3.  Передача  массивов подпрограммам

4.   Знакомство с Операторами  Ввода     ФОРТРАНА-77

5.  Решение задачи

Чтобы Ваши файлы были Вам всегда доступны, ЗАВЕДИТЕ себе дискету (usb-drive) и храните все свои исходные файлы на ней !!!   Но никогда не работайте с дискетты (дискета – расходный материал).

0.       Проверьте    подключения сетевых дисков:

Работа выполняется с помощью файлового менеджера TotalCommander!!

 Студенты, выполняющие работу без TotalCommanderне консультируются и не опрашиваются!

Total Commander – Сеть  -  Подключить сетевой диск

Откроется знакомое окно подключения к сетевым дискам.

Подключите сетевые диски:  ( см. Lab_D1)

T:   -  Tasks            -      X-Files\ Students\Tasks –  задания для студентов

E:   -  Exchange     -      X-Files\ Students\Exchange –  диск обмена файлами  для студентов

( Если эти буквы зарезервированы под другие сетевые диски, то ВНАЧАЛЕ отключите сетевой диск)

Скопируйте каталог T:\Informatika\ Lab_F4   в свой каталог Inform   (на диске Z).

Перейдите в каталог  Lab_F4  (диск Z:)

Откройте текст лабораторной работы Lab_F4 

Внимательно проверьте каталоги!!!

Вы должны быть в каталоге   Z:\ Inform\Lab_F4

У Вас открыто 2 – окна: Total Commander  и Текстовой Редактор (Word).

1.    Проверка  Lab_F3

       ПРОВЕРЯЕТСЯ   Решение  задачи  1302

       Перейдите в каталог  Z:\Inform\Lab_F3   (диск Z:)

Для демонстрации выполнения задания скопируйте файл

input.1310    в   каталог под именем   input.txt   

Следует ПОКАЗАТЬ:

  1. Показать вызов справочной системы (Help) для инструкции FORMAT
  2. Показать умение пользоваться отладчиком: пошаговое движение по инструкциям программы с заходом в подпрограмму в режиме отладки.

     (Ctrl + F10, F10, F11, shift-F11, F5, shift-F5)

     Продемонстрировать работу с отладчиком: ( и знание комбинаций Ctrl + F10, F10,   F11, shift-F11, F5, shift-F5 )

Запуск сеанса отладки.

Пошаговое движение

Движение до курсора

Добавление элемента массива (2,1) в окно просмотра

Заход в подпрограмму

Пошаговое движение

Добавление элемента массива (2,1) в окно просмотра

Быстрое Возвращение в программу shift-F11 (без пошагового выполнения подпрограммы)

Пошаговое движение

Конец отладки

Продемонстрируйте всё это БЫСТРО, без переспрашивания, что надо показать.

2.    Функции и подпрограммы

1. Разбор работы программы F4_1.FOR

Каждая программная компонента в Фортране компилируется отдельно, независимо от других. Поэтому компилятор должен понять всё, что встретит в тексте программы.

Всё, что мы используем в программе ДОЛЖНО БЫТЬ ОПИСАНО!!! Когда компилятор встретит при компиляции  новое слово, то компилятор должен легко понять, какой тип связан с этим новым словом.

Программа использует две функции. У функций есть два идентификатора. С каждой функцией связано возвращаемое значение,  например функция sin(0.2) – даёт нам вещественное значение.  Поэтому в ПРОГРАММЕ !!!  необходимо описать типы значений, возвращаемых этими функциями:

INTEGER F_FORM                        ! целый тип     для  функции-формулы F_FORM

Real FUNCT                                   ! вещественный тип для функции FUNCT

F_FORM вводится, как функция-формула. Функция-формула должна располагаться после блока описания переменных, но обязательно  до исполняемых операторов.

          F_FORM(A,B,D)=A+B+D                   ! определение функции-формулы

Задаем значения переменным A, B, C = 1, 2, 3

Для их вывода используем 2 оператора вывода: для текста и для чисел

        PRINT * , '   A=  B=  C=  D='

        PRINT '(1X, 4I4)', A, B, C, D

Выражение в  ‘  ‘ , т.е. строка, стоящая в кавычках,  задает способ вывода на печать = вид форматного преобразования:

1X – «для управления кареткой» - устаревшее

4I4 – 4 раза повторенное I4 – 4 знака для вывода значения целой (Integer) переменной таких, как  A, B, C, D

Вызываем функцию-формулу.

Ей передаются фактические параметры A, B и С, поэтому сумма равна 6, хотя функция-формула использует формальный параметр D.

Затем вызываем функцию FUNCT

D=FUNCT(A,B)

Возвращаемое значение внутри функции определено, как   FUNCT=A1+B1, поэтому D станет = 9.

 Но у такой функции есть побочный эффект. В фортране, для простоты работы компилятора, в подпрограммы и функции всегда передается ПАМЯТЬ, т.е. передаются настоящие адреса размещения переменных в памяти. Поэтому, изменяя формальные параметры (переменные в функции) A1=3  и B1=6,  мы тем самым изменяем, фактические параметры («настоящие» переменные в программе)  A и B,  что и показывает их распечатка.

Затем при вызове подпрограммы    CALL SUBROUT(A,B)   мы также передаем подпрограмме фактические значения  A и B, а затем изменяем их значения в подпрограмме. Но так как принимающие формальные  параметры имеют другой тип данных – REAL, а не INTEGER, то происходит  преобразование типов, нами не контролируемое !!! Поэтому при обратном преобразовании от REAL к INTEGER при возврате из подпрограммы мы получаем странное значение.

Похожие материалы

Информация о работе

Предмет:
Информатика
Тип:
Методические указания и пособия
Размер файла:
58 Kb
Скачали:
0