Информатика 1курс
Лаб.работа F5
Цель занятия:
1. Консультация задания Lab_F4
2. Форматированный ввод-вывод
3. COMMON блоки
4. Упрвление Вводом-выводом
Чтобы Ваши файлы были Вам всегда доступны, ЗАВЕДИТЕ себе дискету (usb-drive) и храните все свои исходные файлы (*.for, *.f90) на ней !!! Но никогда не работайте с дискетты (дискета – расходный материал).
0. Проверьте подключения сетевых дисков:
Работа выполняется с помощью файлового менеджера TotalCommander!!
Студенты, выполняющие работу без TotalCommanderне консультируются и не опрашиваются!
Total Commander – Сеть - Подключить сетевой диск
Откроется знакомое окно подключения к сетевым дискам.
Подключите сетевые диски: ( см. Lab_D1)
T: - Tasks - X-Files\ Students\Tasks – задания для студентов
E: - Exchange - X-Files\ Students\Exchange – диск обмена файлами для студентов
( Если эти буквы зарезервированы под другие сетевые диски, то ВНАЧАЛЕ отключите сетевой диск)
Скопируйте каталог T:\Informatika\ Lab_F5 в свой каталог Inform (на диске Z).
Перейдите в каталог Lab_F5 (диск Z:)
Откройте текст лабораторной работы Lab_F5
Внимательно проверьте каталоги!!!
Вы должны быть в каталоге Z:\ Inform\Lab_F5
У Вас открыто 2 – окна: Total Commander и и Текстовой Редактор (Word).
1. Форматированный ввод-вывод
Разбор работы программы F4_1.FOR
Программа для ввода чисел из файла
Для чтения из файла необходимо сопоставить в программе файлу определенное имя (определенный поток ввода информации), в Фортране – это называлось: НОМЕР канала ввода/вывода
OPEN(1, FILE='1.DAT') ! подключение канала с номером 1 – это файл 1.DAT
! из рабочего каталога
READ (1,*) , N,M ! чтение двух целых из этого канала, т.е. из файла.
* - означает, что чтение идет в «свободном формате», т.е. программа будет стараться прочитать, каким бы способом не были бы написаны числа N, M .
----------
Запустите программу F5_1.FOR на исполнение
1) попробуйте редактировать файл 1.dat
вставляйте пробелы, переводы строк между числами.
2) прочитайте данные из файла 1a.dat
( есть версии компиляторов Фортрана, которые выдают сообщение об ошибке, если строка не завершена символом перевода строки, как в этом файле. При этом очень сложно проконтролировать, в чём причина ошибки! )
3) Загрузите программу F5_1a.FOR
Программа аналогична предыдущей программе. В ней лишь небольшое изменение.
Запустите программу на исполнение.
Она читает данные из файла 1b.dat (это копия первоначального файла 1.dat)
?? Почему возникает ошибка при чтении из файла?
4) Запустите программу F5_1.FOR на исполнение (введите данные из файла 1с.dat).
Почему возникает ошибка при чтении из файла?
Посмотрите, как устроены входные данные в файле 1с.dat .
Там 2 целых числа, каждое в поле из 3-х символов.
Попробуйте их правильно прочитать. Для этого необходимо воспользоваться форматированным вводом. Форматированный ввод – это сокращенное указание: ЧТО мы читаем и из СКОЛЬКИХ позиций. Мы читаем INTEGER ( I ) из первых 3-х символов. Сокращенно это можно записать всего 2-мя способами: 3I или I3.
Вы читаете числа N и M . Поэтому необходимо для каждого числа задать свой формат:
3I , 3I или I3 , I3
Измените READ (1,10) , N, M
10 FORMAT( один из выше написанных вариантов )
Найдите правильный вариант.
Посмотрите, как будет меняться ввод, если задавать различные пары ширины полей ввода: 2-3 2-4 1-4 1-1
Для того, чтобы не писать, повторяющиеся спецификаторы форматных преобразований, используют коэффициент повторения вместо перечисления. В этом примере коэффициент повторения = 2. Измените формат, чтобы прочитать 2 целых числа, каждое в поле из 3-х символов.
Посмотрите теперь, как можно включить форматное преобразование в инструкцию ввода. Вместо ссылки на метку формата вставляется строка, содержащая всё, что было в инструкции FORMAT:
READ (1, ‘ ( I3, I3 ) ’ ) , N, M
Теперь рассмотрим форматные преобразования на вывод. Замените Print * на Print 10
Print 10, 'You READ: ', N, M
Ошибка вывода возникла, так как мы выводим 3 данных: строка и 2 целых. Добавим для строки спецификатор форматного преобразования – A5 . Посмотрите, что получилось, и измените вывод так, чтобы печаталась вся строка.
В старых версиях Фортрана при форматном выводе необходимо инструкцию FORMAT открывать дескриптором 1X, «поскольку первый символ каждой записи НЕ ПЕЧАТАЕТСЯ и рассматривается, как символ управления кареткой». (О.Бартенев стр. 37)
Измените поля вывода целых, чтобы печать шла в колонки 15 - 10 – 10 .
Измените 10 на 2. Посмотрите: если данное не влезает в поле вывода, то вместо числа печатаются ********.
5) Запустите программу F5_1b.FOR на исполнение.
Эта программа читает 2 вещественных числа из входного файла. Подберите ширину поля ввода F8.2 и количество знаков после десятичной точки F8.2 так, чтобы числа читались правильно.
6) Измените формат вывода в инструкции 20 FORMAT.
Поменяйте спецификаторы так, чтобы вывести 3 знака после десятичной точки.
3. COMMON блоки
Разбор работы программы F5_2.FOR
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.