КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Способы печати результатов работы
Массивы файлов
Файловая переменная может быть элементом массива или записи. В этом случае для текстовых и типизированных файлов становится возможным создать индексную организацию файлов (массив файлов). Целесообразно применять массивы файлов для решения задач, требующих одновременной работы с несколькими файлами. Пример объявления массива файлов: CONST KF = 10; { - количество файлов в массиве } TYPE FL = FILE OF REAL; { - тип компонент файла } VAR MFL: ARRAY [1..KF] OF FL; { - массив файлов типа 'FL' } Массивы файлов можно использовать для ускорения поиска данных в больших файлах. Например, в типизированных файлах телефонного справочника, кадровых сведений. Для этого все данные надо упорядочить по определенному признаку и по частям разместить их в файлах - элементах массива файлов. Например, каждый файл из массива файлов может содержать сведения об абонентах одной АТС (автоматизированной телефонной станции). При этом номер элемента в массиве файлов должен быть функцией от номера АТС; например, он может быть равен трем первым цифрам семизначного номера телефона. Пример программы с использованием массива файлов для телефонного справочника. Номера файлов всех АТС в массиве файлов F пронумерованы начиная с номера 100: от 100 до 100 + COLATS. Имена физических файлов можно формировать из номера АТС, т. е. из первых трех цифр номера телефона. В примере имена физических файлов изменяются от 100.DAT до 100+COLATS.DAT. Поиск сведений об абоненте с заданным номером телефона производится только в файле с номером АТС, заданным в требуемом номере телефона. Для этого надо открыть для поиска только один файл этой АТС. В программе используется STR - встроенная процедура, которая формирует строку IMF из I - целого значения, номера АТС. Использование массива файлов. CONST COLATS =10; { - количество АТС } ТУРЕ STRUC = RECORD { - тип записей файла } NOM: INTEGER; { - номер телефона } FIO: STRING [20] { - Ф.И.О. абонента } END; FL = FILE OF STRUC; { - тип файла } VAR ST: STRUC; F: ARRAY [100.. COLATS + 100 ] OF FL; { - массив файлов } IMF: STRING[3]; { - имя, номер файла } ………………………………………….. FOR I:= 100 TO COLATS + 100 DO BEGIN STR (I, IMF); ASSIGN (F[I], IMF + '.DAT'); { - связь файлов } REWRITE (F[I]); { открытие I-файла } ... { Запись в I - файл: } WRITE (F[I], ST);... CLOSE (F[I]); RESET (F[I]>;... READ (F[I], ST); { - чтение из 1-файла } CLOSE (F[IJ);...
Результаты работы программы могут быть выведены на печать или в файлы, текстовые или типизированные. Как правило, результаты, которые должны быть распечатаны, формируются в виде текстовых файлов, а для длительного хранения и последующего использования - в виде типизированных файлов. Рассмотрим некоторые способы организации просмотра и печати результатов выполнения программы: 1) вывод результатов на экран, а после отладки программы вывод результатов из программы на печать во время выполнения программы (средствами Паскаля); 2) вывод результатов на экран, после отладки вывод результатов в текстовый файл, а из файла - на печать средствами DOS; 3) вывод результатов только в текстовый файл, а после отладки и анализа полученных результатов печать из файла средствами DOS; 4) вывод данных на экран: формирование экрана с результатами в том виде (меню, ответ пользователя), в котором они должны быть на печати; останов программы в требуемой точке, печать содержимого экрана (командой Shift+Print Screen) и продолжение выполнения программы. Для вывода данных на экран можно использовать файлы OUTPUT или файл пользователя, который связан с экраном. Если количество прогонов программы (например, с разными вариантами исходных данных) более одного, то целесообразно использовать один или ряд файлов пользователя для накопления в них результатов работы программы. Для вывода результатов на экран с помощью стандартного файла OUTPUT его не надо связывать с физическим файлом процедурой Assign: по умолчанию в качестве физического файла будет использоваться экран. Вызов процедуры вывода данных на экран будет в виде: Write (список данных); После отладки программы можно связать файл Output: 1) с принтером с помощью Assign (Output, 'PRN');; 2) с файлом на МД; например: Assign (Output, 'F:\REZ.DAT');. Если в качестве файла результатов надо использовать FL - текстовый файл пользователя, то для вывода результатов на экран во время отладки ему надо назначить в качестве физического пустой файл (' '). Например: Assign (FL, ''); Rewrite (FL); Вызов процедуры вывода данных в файл будет в виде: Write (FL, список-данных); Для того чтобы после отладки программы с помощью тех же операторов вывести данные в текстовый файл пользователя, надо файлу FL назначить в качестве физического файла файл на МД; например: Assign (FL, 'LR.RES'); Еще проще в качестве имени физического файла использовать строковую константу, которой присвоить пустое значение для вывода результатов на экран, имя физического файла для вывода результатов в текстовый файл или имя устройства для печати. Например: CONST FNAME = ''; { - для вывода результатов на экран) CONST FNAME = 'LR.RES'; { - для вывода в файл) CONST FNAME = 'PRN'; { - для вывода на печать) где FNAME - идентификатор наименования физического файла. В программе при этом можно, например, вызвать процедуры: Assign (FL, FNAME); Rewrite (FL); Определение приемника результатов сводится в этом случае к изменению значения строковой константы FNAME. Остальные операторы программы при этом остаются без изменения. В таком виде программа более универсальна, так как с ее помощью путем незначительной корректировки (одной константы) можно выводить результаты в любой файл или на любое логическое устройство. Этот способ удобно использовать также при тестировании программы, т. е. при прогоне программы с разными вариантами исходных данных и с выводом результатов в разные текстовые файлы; при этом в константе FNAME задается имя текстового файла результатов. Этот же прием можно использовать и при работе со стандартными файлами Input и Output. Например: Assign (Input, FINAME); Reset (Input); Assign (Output, FNAME); Rewrite (Output); При этом операторы ввода (Read) и вывода (Write) не будут содержать имя файловой переменной. Для прогона программы с выводом результатов только на печать можно использовать имя файла (имя файловой переменной) LST. Использование файловой переменной LST требует применения стандартного библиотечного модуля Printer и имени LST в качестве файловой переменной. Стандартный библиотечный модуль PRINTER, входящий в библиотеку Turbo. TPL, объявляет имя файловой переменной LST и связывает его с логическим устройством LPT1. Это дает возможность использовать в программе файл LST для печати результатов работы программы. Например: PROGRAM PR; USES PRINTER; BEGIN WRITELN (LST, ' ПРИВЕТ! '); END. Все операции по связыванию файла LST с принтером и открытие файла LST выполняет модуль PRINTER. Печать содержимого экрана. Например, если на экран выдается запрос пользователю в виде меню, пользователь набирает с клавиатуры ответ, который будет введен в ОП только после нажатия клавиши Enter. Чтобы отпечатать с экрана запрос и ответ пользователя, необходимо после набора ответа сначала отпечатать содержимое экрана (ввести команду Shift+Print Screen), и только потом нажать клавишу Enter.
Дата добавления: 2014-01-06; Просмотров: 304; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |