Начинающему пользователю персонального компьютера о Turbo-паскале
Как уже упоминалось выше, трансляторы с языка паскаль имеются практически на ЭВМ всех типов. Особенно удобна для работы система Turbo Pascal на персональных компьютерах (ПК), совместимых с IBC PC (ЕС-1840/41, ЕС-1850 и др.). Эта система состоит из транслятора, сервисных и прикладных программ. Транслятор реализует стандарт языка паскаль и предоставляет ряд дополнительных возможностей, в частности, работу с данными типа BYTE (последовательность бит) и STRING (строка символов). Разрешается также использовать и прописные, и строчные буквы в любом сочетании.
В этом кратком приложении мы не ставим себе цель дать последовательное и полное описание языка паскаль для ПК. Мы хотим помочь пользователю преодолеть психологический барьер и начать работать в системе Turbo Pascal; удобный и мощный язык, комфортный сервис экранного редактора, богатые графические возможности не могут никого оставить равнодушным. Получив начальные навыки, пользователь затем в процессе работы сам освоит все необходимые ему возможности системы.
Здесь мы приводим краткое руководство по работе на ПК, иллюстрируемое на конкретных примерах. Предполагается, что пользователь знаком с клавиатурой ПК и имеет хотя бы небольшой опыт работы в системе DOS*.
* (Пул Л. Работа на персональном компьютере / Пер. с англ.- М.: Мир, 1986.- 383 с. Хаузер Д., Хирт Дж., Хоукинс Б. Операционная система MS-DOS: Популярное руководство / Пер. с англ. и дополн. А. Б. Пандре.- М.: Финансы и статистика, 1987.- 168 с.)
Чтобы отличать информацию, выводимую компьютером на экран, от информации, набираемой пользователем, последнюю будем выделять курсивом. Название не алфавитно-цифровых клавиш возьмем в угловые скобки. Например, клавишу перевода строки будем обозначать (RETURN) (<ENTER>).
Пусть мы хотим составить и выполнить программу, которая вводит с клавиатуры два вещественных числа и выводит их на экран. Вот ее текст.
Пример сеанса работы. Вы должны иметь две дискеты: одну с системой DOS, другую с системой Turbo.
1. Дискету с DOS вставьте в дисковод А, дискету с Turbo - в дисковод В.
2. Включите компьютер. Система DOS попросит набрать текущую дату. Наберите ее, нажмите клавишу <RETURN> ((ENTER)). Затем в ответ на запрос системы наберите текущее время и нажмите <RETURN> (<ENTER". В дальнейшем будем обозначать эту клавишу только ><RETURN>.
3. После загрузки DOS проведите следующий диалог:
а) А > В: <RETURN> - переключение на дисковод В;
б) В > TURBO <RETURN> - вызов системы Turbo;
в) INCLUDE ERROR MESSAGE (Y/N)? Y - включение выдачи диагностики ошибок;
г) >W - заказ рабочего файла;
д) WORK FILE NAME: TEST1 (RETURN} - присвоение файлу имени TEST1;
е) LOADING В: TEST1.PAS
NEW FILE - сообщение системы: "новый файл";
ж) >E - перевод системы в режим редактирования (EDIT)
4. После этого сверху появится строка
Система расширила имя файла, добавив точку и PAS, указывающие, что файл содержит паскаль-программу. Теперь можно набирать текст программы.
5. Если ошибок в программе вы не нашли, продолжайте диалог:
з) <F10> - выход в систему Turbo;
и) > S - запись файла с программой на дискету;
к) SAVING В: TEST1.PAS - подтверждение системы, что запись выполнена;
л) >R - запуск задачи на трансляцию и счет.
Если система не обнаружит ошибок в программе, на экране появится слово RUNNING.
м) В ответ наберите через пробел два вводимых вещественных числа, например,
5.2 3.8 <RETURN>
На экран выдается результат:
А = 5.2000000000Е + 00 В=3.8000000000Е + 00
6. Пусть в программе были допущены ошибки, например,
Тогда по команде Я во время трансляции будет выдана диагностика в нижнюю строку экрана:
ERROR 41:Unknown identifier or syntax error. Press .
7. Нажмите <ESC>. На экране появится текст программы, и мигающий курсор укажет на место первой ошибки (установится в начале слова REAAD).
8. Для устранения ошибок воспользуйтесь средствами экранного редактора. Он не требует никаких команд для своего вызова и всегда готов к работе.
В приведенном примере необходимо выполнить два действия: стереть лишнюю букву А в REAAD и вставить R в WITELN.
Вставка символа. Подведите курсор к нужной позиции (под букву I) и нажмите вставляемый символ (R). Вся строка, начиная с указанного места, сместится вправо, а вставляемый символ встанет на место.
Удаление символа. Подведите курсор под удаляемый символ и одновременно нажмите две клавиши: <CTRL> и G. Символ будет удален, а строка сомкнется.
В конце приложения приводится перечень команд экранного редактора системы Turbo.
9. После исправления ошибок нажмите клавишу <F10>, затем S. Файл с откорректированным текстом программы запишется под прежним именем (TEST1.PAS), а предыдущий файл также будет сохранен на дискете, но расширение PAS система заменит на ВАК (TEST1.BAK).
10. Чтобы посмотреть, какие файлы хранятся на дискете, достаточно набрать
11. Для выхода из системы Turbo в DOS служит команда
Наши первые программы. Эти несложные программы помогут пользователю персонального компьютера на практике познакомиться с некоторыми возможностями системы Turbo.
Программа 1. Разбиение вводимой строки на слова
Эта программа иллюстрирует некоторые возможности работы с переменными типа STRING (строка символов). Здесь стандартная функция LENGTH(Sl) дает длину строки S1, т. е. число символов в ней; оператор S2: = "' означает, что в S2 заносится "пустая" строка, не содержащая ни одного символа; операция + "сцепляет" две строки в одну.
В программе использован массив MONTHES, состоящий из переменных-строк, описанный в разделе CONST.
Программа 3. Орнамент
Эта программа рисует орнамент с заданным центром. Вводятся также цвет орнамента и цвет фона. Необходимые данные программа запрашивает в процессе выполнения.
Программа использует графический пакет GRAPH.Р, который описывается как внешний модуль посредством псевдокомментария {$1 GRAPH.Р}. В общем виде, внешний модуль с именем F описывается как {$1, .F}.
Опишем некоторые стандартные процедуры для работы с графикой.
GRAPHCOLORMODE - переводит экран в графический режим. Координаты точек на экране задаются парой чисел (X,Y), где 0 ≤ X ≤ 319, 0 ≤ Y ≤ 199.
GRAPHBACKGROUND(N) - закрашивает весь экран цветом с номером N, где 0 ≤ N ≤ 15. Соответствие параметра N и цвета фона следующее: 0 - черный; 1 - синий; 2 - зеленый; 3 - голубой; 4 - красный; 5 - малиновый; 6 - коричневый; 7 - светло серый; 8 - темно-серый; 9 - светло-синий; 10 -светло- зеленый; И - светло-голубой; 12 - светло-красный; 13 - розовый; 14 - желтый; 15 - белый.
Это соответствие справедливо, однако, не для всех мониторов. Если монитор вообще не цветной, то смена цвета приведет лишь к изменению яркости.
ARC (X,Y,ALFA,R,M) - рисует дугу, начиная от точки (X,Y), размером] ALFA градусов, радиусом R, цвета М. Если ALFA > 0, то дуга рисуется по часовой стрелке; если ALFA <>0 - против часовой стрелки. М = 0;1;2;3.
PLOT (X, Y, М) - ставит точку цвета М с координатами (X, Y). М = 0; 1 ;2;3.
DRAW (X1,Y1,X2,Y2,M) - рисует отрезок цвета М, соединяющий точки (XI,Y1) и (X2,Y2). М = 0;1;2;3.
CIRCLE (X,Y,R,M) - рисует окружность цвета М с центром в (X,Y) и радиусом R.
CetPic (A,X1,Y1,X2,Y2) - копирует в массив А(буфер) участок экрана - прямоугольник с координатами концов его диагонали (XI,Y1) и (X2,Y2).
Минимальный размер NMIN буфера в байтах следующий:
для экрана 320 × 200 точек
NMIN = ((| XI - X2 | + 1)DIV 4) 2(| Yl - Y2 | + 1) +6; для экрана 640 X 200 точек
NMIN = ((I XI - X2 | + 7) DIV 8) (| Yl - Y2 | + 1) + 6. Во втором и третьем байте буфера А после выполнения G GETPIC (A,X1,Y1,X2,Y2) запоминается высота и ширина копируемого прямоугольника.
PutPic (A,X,Y) - копирует содержимое буфера А на экран и прямоугольник, у которого нижняя левая вершина имеет координаты (X,Y). В буфере А предварительно должна быть запомнена картинка (цвет каждой точки внутри прямоугольника).
TurnLeft (ALFA) - поворот направления рисования на угол ALFA градусов. Если ALFA > 0, то поворот против часовой стрелки, ALFA < 0 - по часовой стрелке.
Программа 4. Управляемый объект.
Эта программа создает управляемый объект ("крестик"). Управление осуществляется клавишами: ↑ , ↓, →,← <PgUP>, <End>, <Ноте>, <PgDn> и <пробел> (остановка). Объект может передвигаться по экрану, не оставляя следа, а может рисовать след, подобно мелу на доске. Переключение режима "след - да/нет" производится клавишей D. При движении по горизонтали "крестик" оставляет след в виде двух цветных линий, по диагонали - трех линий. Экран можно стереть клавишей С.
Для выхода из программы в систему Turbo следует нажать клавишу Е.
Переменные KEYPRESSED и KBD известны системе и не требуют описания в программе.
KEYPRESSED имеет тип BOOLEAN и принимает значение TRUE, если нажата какая-либо клавиша на клавиатуре.
KBD - файл, куда попадает код нажатой клавиши.
Оператор READ(KBD,CH) читает из KBD код нажатой клавиши и засылает в переменную СН. Анализируя значение этого кода, программа передвигает объект на шаг в одном из направлений: вверх, вниз, влево, вправо, по биссектрисам координатных углов. Коды предваряются знаком #. Если объект пытается выйти за пределы экрана, программа ставит ему ограничения. Кодировка клавиш приведена в табл. 1.
При нажатии функциональных клавиш и клавиш с ALT вырабатываются два кода, из которых первым всегда является 27. Поэтому при чтении символа из KBD следует сделать проверку на 27; если "да", то читать второй код и его анализировать. Для клавиши второй код отсутствует.
Таблица кодов клавиш клавиатуры персонального компьютера (совместимого с IBM PC)