Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_F2.doc
Скачиваний:
0
Добавлен:
21.11.2019
Размер:
112.13 Кб
Скачать

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

Лаб.работа F2

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

  1. Знакомство с ФОРТРАНОМ

  2. Знакомство с оболочкой Compaq Development Studio

  3. Операторы IF, DO

  4. Вложенные циклы

  5. Массивы в Фортране

  6. Отладчик

  7. Проверка лаб.F2

  8. Подготовка к лаб.F3

Чтобы Ваши файлы были Вам всегда доступны, ЗАВЕДИТЕ себе “флешку” и храните все свои исходные файлы на ней !!!

0. Повторение

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

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

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

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

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

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

E: - Exchange - X-Files\ Students\Exchange .

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

Проверьте свою работу с файлами:

У Вас на диске Z: должен быть каталог – Inform ( создавали на 1 занятии).

Всё, что относится к Информатике должно быть в этом каталоге. Например, у Вас должен остаться каталог Inform\Lab_F1. ЛИШНИХ каталогов и файлов быть НЕ ДОЛЖНО. Удалите ВСЁ лишнее.

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

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

Откройте текст лабораторной работы Lab_F2.doc

10 мин. От начала занятия:

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

Загрузить программу F2_1.FOR

a) Нажать (2 раза) на имя файла F2_1.FOR, автоматически вызвав оболочку Fotran’a для файлов с расширением FOR (F90).

б) Или Пуск-Программы-Compaq Visual Fortran 6 – Developer Studio

(File – Open - … - F2_1.FOR)

Программа имеет расширение FOR и по умолчанию написана в позиционной форме записи: 1-5 позиции – метка, 6 - колонка продолжения, 7-… инструкция

Обратите внимание на структуру программы, все наши программы должны

иметь такую же структуру.

НАЧАЛО

ОПИСАНИЯ

[ИНИЦИАЛИЗАЦИЯ]

Исполняемая часть

КОНЕЦ

- Блок: ИНСТРУКЦИИ ОПИСАНИЯ

DOUBLE PRECISION A,B - вещественные переменные двойной точности

Выделите мышкой оба слова DOUBLE PRECISION (или установите курсор внутрь слова) и нажмите F1 : загрузится окошко справки

COMPLEX - так вводятся комплексные переменные

CHARACTER - так вводятся текстовые переменные, здесь вводится 1 символ

- Блок: ИНСТРУКЦИИ ИНИЦИАЛИЗАЦИИ

PARAMETER(BOOL1=.FALSE.) ! инструкция PARAMETER, служит для задания значения именованных констант (логическая переменная BOOL1 теперь не может измениться в программе)

DATA I, A, B /10, 3, 123456789D+5/ ! инициализация списка переменных явным списком констант I=10, A=3, B=123456789D+5 ( D означает, что константа имеет двойную точность и значение надо умножить на 105)

- Блок: ИНСТРУКЦИИ Присваивания

Обратите внимание, что в операции Y= 1/7, осуществляется целочисленное деление, целое 1 делится на целое 7 и поэтому результат имеет такой же тип – целый, равный о затем происходит присваивание Y, с преобразованием целого значения к вещественному.

PAUSE – команда приостановки выполнения программы. PAUSE может (или не может) сопровождаться отладочной информацией: числом или строкой, разной длины под разными компиляторами

- Блок: ИНСТРУКЦИИ УПРАВЛЕНИЯ

Блоковое и логическое IF (повтор):

Блоковое IF – имеет условие в круглых скобках, затем !!! THEN. Множество альтернатив с условиями ELSE IF(…) и одна безусловная альтернатива ELSE. Заканчивается оператор END IF

IF (Условие1) THEN

Действия1

ELSE IF (Условие2) THEN

Действия2

ELSE

Действия3

END IF

Логическое IF: запись в ! одну строку, поэтому нет THEN

Следует откомпилировать, скомпоновать и запустить программу F2_1.FOR.

2. Разбор работы программы F2_2.FOR

- Блок: МАССИВЫ

Массив - данные одного типа, которые хранятся в последовательных ячейках памяти, например, значения функции в некоторых точках.

REAL ARRAY(5) в массиве ARRAY 5 элементов вещественного типа:

ARRAY(1) , ARRAY(2) , ARRAY(3) , ARRAY(4) , ARRAY(5) ,

REAL SUM(-5:30) ! SUM – массив вещественных переменных, индексы элементов массива Фортрана могут быть отрицательными. Массив начинается с элемента SUM(-5), а заканчивается элементом SUM(30), всего в массиве SUM 36 элементов.

!!! Посмотрите справку для SUM (используйте «курсорную» подсказку <F1>) . В Фортране НЕТ зарезервированных имен!!!, поэтому компилятор в данной программе будет использовать имя SUM, как идентификатор, а не как вызов функции. Такое двойное использование имен опасно из-за появления неконтролируемых ошибок. Существует простая рекомендация по именам переменных пользователя – имена переменных не должны совпадать с ключевыми словами !

Массивы могут быть многомерными, т.е. у каждого элемента массива может быть несколько индексов, что соответствует математическим и физическим понятиям,

например, функциям от нескольких переменных.

Integer diff(3, 8, -1:5) ! массивы могут быть многомерными

(размерность до 7)

DIFF - трехмерный массив, по первым 2-м измерениям индексы меняются от 1 до 3 и от 1 до 8, а по 3-му от –1 до 5

Работа с текстом в Фортране 77 достаточна громоздка, так как язык предназначен для математических расчетов.

CHARACTER S1*7, S2 *4 ! текстовые переменные S1 из 7 знаков и S2 длиной 4 знака

Если в программе требуется использовать тек

CHARACTER * (*) NAME размер NAME будет задан позже, а пока описан с помощью (*)

- Блок: ИНСТРУКЦИИ ИНИЦИАЛИЗАЦИИ

PARAMETER(Name='FileName') ! инструкция параметр служит для задания значения именованных констант (не изменяются в программной компоненте)

DATA ARRAY/1.,2.,3.,4.,5./ ! инициализация списка переменных (здесь - массива ARRAY) явным списком ВЕЩЕСТВЕННЫХ констант

DATA DIFF/168*-1/ ! использование коэффициента повторения 168

DATA (SUM(I),I=-5,30)/-5.,-4.,-3.,-2.,-1.,31*0./

! использование «неявного» DO – цикла по I

! для перебора элементов массива SUM

, т.е. это DO i= -5 , 30

SUM(i) = i-ая константа из списка констант

END DO

В разделе присваивания показано, как обращаться к отдельному элементу массива, т.е. указав индекс массива в круглых скобках, мы получаем доступ к нему по операциям чтения-записи

Следует откомпилировать, скомпоновать и запустить программу F2_2.FOR

3. Учебные задачи

На занятиях Вам даются учебные задания . Если Вам в течении 5 минут не ясен алгоритм решения, то спросите про алгоритм решения задачи.

Цель занятия – набивка и отладка программ.

Решение задач самостоятельно предполагается – дома.

Это учебные задачи. В лабораторной работе даны указания по алгоритмам их решения, которыми следует пользоваться (для обучения).

Если Вам не очевидно решение, которое Вы можете записать без остановки, то освойте технологию, предлагаемую в этом курсе.

Берете ручку и на бумаге пишете «по русски» - на естественном алгоритмическом языке, решение задачи. Если Вы не можете написать решение за 5 минут (какая маленькая потеря времени!) – зовёте преподавателя для обсуждения алгоритма решения. Затем пишете алгоритм на бумаге. ПРОВЕРЯЕТЕ – быстрый прогон с очевидными тестовыми данными и только затем переносите (быстро – не надо думать!) алгоритм на компьютер.

Нажмите по ссылке Тестирующая система по ИНФОРМАТИКЕ для 1 курса ___(НОЦ)

( Эта ссылка доступна при открытии файла T:\Informatika\onlinelink.htm )

Выберите Lab_F2. Далее – Выберите ссылку “На занятие”

Зарегистрируйтесь.

Если Вы не сделали это на занятии LAB_F1, то своё имя для входа в тестирующую систему найдите в файле: T:\Informatika\ список_ejude.txt . Пароль получите у преподавателя, сообщив своё имя и фамилию. (Запишите это имя и пароль).

Цикл с ПРЕДВАРИТЕЛЬНЫМ_УСЛОВИЕМ

DO WHILE (УСЛОВИЕ)

ОПЕРАТОРЫ

END DO

Задание: Решите задачу 1201 - использовать цикл с предусловием

В качестве условия используем остаток от деления числа на 2.

Встроенная функция MOD(A, P) -возращает остаток от деления A на P (P0).

N = MOD(28, 6) , N станет равно 4

Задание: Решите задачу 1202 - использовать цикл с предусловием

Последняя цифра числа - это остаток от деления числа на 10.

Так как в задаче требуется суммирование в цикле, то вспоминаем правило:

«Сумматор обнуляется перед циклом

Цикл с ПОСТ-УСЛОВИЕМ

DO

ОПЕРАТОРЫ

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]