КАТЕГОРИИ: Архитектура-(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) |
Работа с файлами
Модули Модули используют в более поздних версиях Паскаля для создания библиотек разделения больших программ на логически связанные независимые друг от друга составные части. В состав модуля входят следующие разделы: заголовок, интерфейс, реализация, инициализация. Заголовок необходим для ссылок на модуль. Интерфейс содержит объявления, включая процедуры и функции, представленные списком заголовке: и доступные пользователям в теле основной программы. Раздел «реализация» содержит тела процедур и функций, перечисленных в интерфейсной части модуля Раздел «инициализация» содержит операторы, необходимые для инициализации модуля. Таким образом, модуль – это набор констант, типов данных, переменных, процедур и функций. Каждый модуль компилируется отдельно; результат компиляции – файл с расширением.tpu (Turbo Pascal Unit). Каждый элемент модуля можно использовать в программе пользователя без дополнительного объявления, для чего достаточно записать имя используемого модуля в директиве uses в начале программы после его заголовка. В Турбо Паскале версии 5.0 и выше применяют стандартные модули CRT, GRAPH и др. В этих модулях содержатся сервисные процедуры и функции по работе с экраном дисплея, с клавиатурой, графическими примитивами и т.п. Модули подключаются к программе путем специальной команды, размещаемой сразу после заголовка: uses <имя модуля> Программист может сам создать модуль. Ниже приведен пример с соответствующими комментариями. Пример 4. Создать модуль, дополняющий математические возможности Паскаля арифметическими действиями над комплексными числами. Будем представлять комплексные числа парами действительных: (а, b). Как известно, действия над ними выполняются по правилам (a, b) + (с, d) = (а + с, b + d); (a,b) - (c,d) = (a-c,b-d); (a,b)*(c,d) = (a*c-b*d,a*d+b*c); (a, b)/(c, d) = ((a*c + b*d)/(c*c+d*d),(b*c-a*d)/(c*c + d*d)). Создаваемый модуль будет включать четыре процедуры: Sum – сумма, Raz – разность, Proiz – произведение, Chastn – частное. Этот модуль может быть отдельно откомпилирован. После этого любая программа, написанная на Паскале, может получить доступ к интерфейсным объектам (в данном случае – процедурам) этого модуля с помощью директивы Uses CompChisla. Обратим внимание, что в интерфейсной части модуля от процедур присутствуют лишь заголовки, а в части «реализация» от заголовков процедур остаются лишь их имена.
Файл (последовательность) – это одна из наиболее фундаментальных структур данных. Программная организация компьютеров, их связь с внешними устройствами основаны на файловой структуре. Благодаря файлам становится возможным: 1) формирование и сохранение значений для последующего использования другими программами (например, в программах многократной обработки информационных систем, таких как платежные ведомости, различные АСУ, базы данных, необходимость длительного хранения информации очевидна); 2) взаимодействие программ с внешними устройствами ввода-вывода: дисплеем, принтером, АСП и т.п. В Паскале это обеспечивается с помощью структурированных данных файлового типа. Файловый тип данных в программе задается следующим образом: type <имя файлового типа> = file of <тип компонентов> В качестве типа компонентов файла разрешается использовать любой тип данных, кроме файлового. Например: type intfile = file of integer; refile = file of real; chfile = file of char; ran = 1..10; st = set of ran; vector = array[ran] of real; compl = record re,im: integer; end; setfile = file of st; vecfile = file of vector; compfile = file of compl; Описание файловой переменной задается обычным способом в разделе описаний. Например: var f: intfile; или var f: file of integer; Файловая переменная является буфером между Паскаль-программой и внешним устройством и должна быть логически с ним связана. Связь осуществляется oпepатором языка Паскаль: assign (<имя файловой переменной>,'<имя устройства>’) Как правило, файлы для хранения данных связаны с устройством внешней памяти на магнитных носителях (дисковод) и носят название внешние файлы. Если, например, файл с именем primer.dat логически связан с дисководом А то все данные, помещаемые в файл, будут храниться на этом дисковом накопителе, а установка «окна» между программой и файлом будет определяться через файловую переменную f оператором assign (f,'primer.dat') Если внешним устройством является принтер, то связь осуществляется oпepатором assign (f, '1st:'). Здесь 1st – логическое имя печатающего устройства. Ниже приведены логические имена внешних устройств ввода-вывода: con – консоль; trm – терминал; kbd – клавиатура; 1st – принтер; aux – буфер сети; usr – драйвер пользователя. После осуществления связи файловая переменная f отождествляется с соответствующим файлом. Для работы с файлом его необходимо открыть, а по окончании работы – закрыть. Файл открывается для чтения оператором reset (f), для записи –оператором rewrite(f). Чтение и запись данных осуществляется известными командами read/write, только в начале списка помещается имя файловой переменной: read (f, <список ввода>); readln (f, <список ввода>); write (f, <список вывода>); writeln(f, <список вывода>) Закрытие файла осуществляется командой close (f). На практике широко используются текстовые файлы, которые состоят из литерных (логических) строк. Поэтому в языке Паскаль предусмотрен стандартный файловый тип text (он не является file of char, скорее всего, это file of string [ n ]). Логические строки бывают разной длины, в том числе и нулевой. В конец каждой строки помещается специальный символ «конец строки» (eoln — «end оf line»). В качестве печатного символа конца строки используют литеру #. Текстовый файл (text) является строго последовательным, к нему неприменимы некоторые встроенные функции, в частности seek. В отличие от типизированных файлов, с текстовым файлом нельзя одновременно проводить операции чтения (read) и записи (write). Однако допустимы операторы writeln и readln. Числовые данные, целые и вещественные, в текстовом файле должны записываться через пробел. Ниже приведен пример, иллюстрирующий работу с файлами. Пример. Вывод данных на печатающее устройство – принтер (1st:). Программа 23 program print; var fal: text; x: real; name: string[25]; begin assign(fal,’1st:’); rewrite(fal); x:=2.5; name:=’Слава’; writeln(fal,x:8:2); writeln(fal,’Привет, ‘,name); close (fal) end. {Здесь файловая переменная fal связывается с принтером 1st:, и запись в файл fal практически означает вывод на печать}.
Дата добавления: 2014-01-07; Просмотров: 274; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |