7. ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

Подведем первые итоги. У нас есть переменные, массивы и тексты. Мы умеем задавать значения переменным, проводить вычисления в циклах и в зависимости от различных условий, умеем все это записывать в виде текстов и показывать на экране в виде сообщений. Не так уж и мало для выполнения расчетов, оформления текстов, даже написания информационных картотек. Но арсенал не полон. Даже самые первые и примитивные языки программирования типа бейсика и фортрана умели записывать и считывать данные из файлов. Правда в нашем случае, в отличие от компилируемых языков, сам текст программы может содержать внутри себя все необходимое, что обычно записывают в файлы. Но дело в том, что нужно уметь оперировать файлами, записанными в специальном формате или другими программами. А более продвинутые современные языки умеют создавать также и средства графического общения с пользователем.

Не беспокойтесь. Все это есть в ACL и даже немного больше, чем в других базовых языках. Но этими средствами надо научиться пользоваться. И это не всегда просто, так как требует знаний о работе компьютера, об операционной системе, о структуре и способах записи файлов. Впереди еще много работы и делать ее надо постепенно и планомерно. А сейчас перечислим команды, которые мы уже знаем.

    p | stop | exit | pro | e | pri | m | c | d | pas | case | end | rep

и обсудим некоторые детали организации памяти RAM (random access memory) и HD (hard disk). Первая -- это оперативная память компьютера, она работает только при включенном компьютере и пропадает при его выключении, вторая -- это память на жестких носителях, которую можно переносить из одного компьютера в другой и хранить долгое время. Язык ACL -- это всего лишь набор данных для программы, написанной на языке программирования Java. Поэтому он оперирует с теми же типами данных, что и язык Java. В языке Java определены следующие типы данных
byte -- целые числа длиной 1 байт со знаком и не более 27=128 по модулю
short -- целые числа длиной 2 байта со знаком и не более 215=32678 по модулю
int -- целые числа длиной 4 байта со знаком и не более 231=2147483648 по модулю
long -- целые числа длиной 8 байт со знаком и не более 263 по модулю
float -- вещественные числа длиной 4 байт со знаком, точность примерно в 7 десятичных знаков
double -- вещественные числа длиной 8 байт со знаком, точность примерно 15 десятичных знаков
char -- двухбайтовые символы -- юникоды.
Реально для положительных чисел модуль на единицу меньше, так как есть еще ноль. В языке ACL переменные и элементы реального массива имеют тип double, а элементы целого массива имеют тип int. Элементы текстового массива имеют тип char. Остальные типы данных в расчетах не используются, но при записи в файлы могут использоваться.

Что касается файловой структуры на жестких носителях, то она делится на диски, обозначаемые обычно одной буквой: a-дискета, b-дискета во втором дисководе. Дискеты, как и эти буквы, уже давно не используются. Далее, с-системная часть винчестера, d-программная часть винчестера, но не всегда, остальные буквы могут обозначать компакт-диски, флеш-память и так далее. Буквы могут быть как маленькие, так и большие, это не различается. Каждый диск имеет набор вложенных папок, внутри которых параллельно с папками могут находиться файлы. Имя файла поэтому может быть как коротким (собственно имя) так и длинным (то есть путь к файлу). В коротком имени файла могут присутствовать одна или несколько точек. Часть имени после последней точки обычно называют расширением имени и используют для определения типа файла. Например, exe - для исполняемого файла, acl - для файла с кодом программы на языке ACL, java - для файла с кодом программы на языке Java, jar - для файла с архивом кода программы на языке Java и так далее. Например, vkACL.jar - это архив кода программы на языке Java и одновременно исполняемая программа -- интерпретатор ACL.

Полный путь к файлу в языке Java (и ACL) записывается так
c:/первая-папка/вторая-папка/третья-папка/файл
но можно писать укороченный путь относительно другой программы. Пусть, например, файл vkACL.jar находится в папке
c:/programs/vkACL/vkACL.jar
Тогда укороченный путь относительно программы vkACL.jar для файла, который находится в любых папках внутри данной будет путь, в котором
c:/programs/vkACL/
не пишут. В языке ACL первоначально использовались только укороченные пути файлов, то есть все используемые файлы ОБЯЗАТЕЛЬНО должны были находиться в папке интерпретатора или в более внутренних папках. Более того, в ACL есть понятие "рабочей папки", которую можно определить заранее, и тогда имена файлов многих команд отсчитываются от этой рабочей папки. Последнюю можно переопределять по ходу выполнения программы. В последних версиях интерпретатора есть возможность работать со всеми файлами на компьютере и указывать полный путь к файлу, начиная с диска. Но это специальные случаи, и о них будет говориться в каждом конкретном случае индивидуально. Ну вот этой информации вполне достаточно, чтобы перейти к командам работы с файлами.