Так, в стандартной библиотеке любого компилятора Ada присутствует пакет Text_IO. Ниже приводится в очень упрощенная версия описаний пакета Text_IO (полное описание приведено в приложении A RM):
package Text_IO is type File_Type is limited private; type File_Mode is (In_File, Out_File, Append_File); procedure Create (File : in out File_Type; Mode : in File_Mode := Out_File; Name : in String := ""); procedure Close (File : in out File_Type); procedure Put_Line (File : in File_Type; Item : in String); procedure Put_Line (Item : in String); end Text_IO;
Описание пакета Text_IO определяет тип 'File_Type' , который представляет собой открытый или созданный файл. Фраза 'limited private' (ограниченный приватный) означает отсутствие предопределенных операций над данным типом (подробнее об этом - ниже).
В пакете Text_IO также описывается тип 'File_Mode'; переменные данного типа могут принимать одно из трех значений (именно таким образом в Ada описываются перечисляемые типы).
За описаниями типов следует набор подпрограмм, которые принимают параметры типа File_Type. Заметим, что процедуры (подпрограммы) могут находиться внутри пакетов. Процедура 'Create' позволяет создавать файлы с заданным именем, а процедура 'Close' закрывает файл.
Существует две процедуры 'Put_Line', которые выводят текст, однако передаваемые им параметры различаются. Первая принимает в качестве параметров файл и строку, которая должна быть выведена, вторая - только выводимую строку.
Если в описании пакета содержатся описания других объектов, то где-либо должно быть тело пакета, включающее тела этих объектов. Приведенное упрощенное описание для Text_IO содержит объявления процедур, поэтому где-то дальше должно быть тело пакета Text_IO.
Сколько подпрограмм, явно требующих параметр типа File_Type описано в приведенном упрощенном описании пакета Text_IO?
Перейти к предыдущему разделу | Перейти к следующему разделу | Вернуться к содержанию Урока 2 |
---|
David A. Wheeler (dwheeler@ida.org)
Исходная копия этого документа находится по адресу
"http://www.adahome.com/Tutorials/Lovelace/s2s3.htm".
Исходная копия перевода размещена на сайте http://www.ada-ru.org
Перевод: Юрий Королев
Общая редакция перевода: Г.Ю. Сисюк