 
                          Введение
 
     Вы начинаете знакомство с  версией  5.0  Турбо-Паскаля.
Турбо-Паскаль  удовлетворяет требованиям самых разнообразных
пользователей, работающих  на  персональных компьютерах  IBM
РС  и совместимых с ними. Он представляет собой структуриро-
ванный язык высокого уровня, который можно использовать  для
написания программ любого размера и любого назначения.
     Настоящая версия Турбо-Паскаля является четвертым поко-
лением передового программного изделия фирмы Борланд. Верси-
ей 1.0 Турбо-Паскаля фирма Борланд положила начало  созданию
быстродействующих  компиляторов для микрокомпьютеров. Версия
5.0 еще более  повышает  значение  Турбо-Паскаля  как  языка
серьезных  разработок.  Благодаря версии 5.0 предоставляется
все средства версии 4.0 Турбо-Паскаля:
 
     - скорость компиляции (строк в минуту), в два-три  раза
превышающая  скорость, обеспечиваемую версией 3.0 (на персо-
нальном компьютере АТ фирмы ИБМ с 8МГц);
     - значительно улучшенная генерация кода, обеспечивающая
более быстрое выполнение;
     - высококачественный встроенный редактор связей, удаля-
ющий неиспользуемые части кода на этапе компиляции, благода-
ря чему создается код меньшего размера;
     - возможность создания отдельно компилируемых блоков;
     - встроенная систмема управления разработкой  программ,
осуществляющая  автоматическую  перекомпиляцию зависимых ис-
ходных файлов (включая блоки);
     - несколько стандартных модулей, а именно: System, Dos,
Crt и Graph;
     - эффективный интерфейс с языком ассемблера и его прог-
раммными средствами;
     - возможность вложения файлов до восьмого уровня;
     - несколько новых типов данных, а именно:  длинное  це-
лое,  короткое  целое,  целое длиной в слово и типы данных с
плавающей запятой стандарта IЕЕЕ (с одинарной  точностью,  с
двойной  точностью, с повышенной точностью и сложный) в слу-
чае использования процессора 8087;
     - несколько новых  встроенных  процедур  и  функций,  а
именно: Inc() и Dec().
     - совместимость со стандартом ANSI (Американского  Инс-
титута Национальных Стандартов);
     - выполняемые программы, превышающие по размеру 64К;
     - поддержка встроенного сопроцессора 8087/80287;
     - вычисление булевых выражений по короткой схеме;
     - директивы условного компилирования;
     - высокая степень совместимости с версией 3.0, а  также
утилиты и модули для преобразования программ, написанных для
версии 3.0, в программы версии 4.0 и 5.0;
     - версии компилятора с использованием командной  строки
и с использованием интегрированной среды программирования.
 
     А также:
 
     - интегрированные средства отладки на уровне  исходного
кода,  полную проверку меременных, структур данных и выраже-
ний по шагам или в заданных точках останова  и  присваивание
новых значений переменным и структурам данных в процессе от-
ладки;
     - полная эмуляция операций с плавающей  запятой  сопро-
цессора 8087, позволяющая использовать типы данных в формате
с плавающей запятой (IEEE) даже при отсутствии  сопроцессора
8087;
     - использование оверлеев на основе программных модулей,
а также развитая подсистема управления оверлеями;
     - совместимость  с  автономным  Турбо-отладчиком  фирмы
Борланд,  позволяющая  выполнять автономную отладку программ
версии 5.0;
     - поддержка средств расширенной памяти  (EMS),  включая
возможность загрузки оверлеем в расширенную память и исполь-
зование  расширенной  памяти  интегрированной  интерактивной
средой;
     - более быструю скорость компиляции;
     - значительно более эффективную генерацию  выполняемого
кода, позволяющую повысить скорость выполнения;
     - эффективный встроенный компоновщик, который во  время
компоновки  удаляет  неиспользуемый  код и создает программы
меньшего размера;
     - средства и модули, позволяющие преобразовывать  прог-
раммы версии 4.0 в программы версии 5.0.
 
                 Разъяснения для версии 5.0
 
     Ваше ознакомление с основными понятиями будет  происхо-
дить по мере чтения настоящего руководства. Однако, в начале
в целях разъяснения дадим краткое описание некоторых  основ-
ных идей версии 5.0.
 
   Компилятор с интегрированной средой программирования 
      и компилятор с использованием командной строки
 
     Компилятор Турбо-Паскаля в действительности представля-
ет собой два компилятора: компилятор с использованием коман-
дной строки и компилятор  с  использованием  интегрированной
среды программирования. 
     Характерная для фирмы Борланд интерактивная среда прог-
раммирования сочетает возможности редактора текстов и компи-
лятора. Среда программирования обеспечивает меню, окна, бло-
ки  ввода, управление конфигурацией и контекстную диалоговую
документацию. Этот компилятор  представлен  на  вашем  диске
файлом TURBO.ЕХЕ.
     Обычный режим с использованием командной строки или ко-
мандный файлов позволяют вам использовать для создания и из-
менения исходного кода использовать свой собственный  редак-
тор.  Затем вы можете запустить компилятор с помощью команды
или командного файла, задав имя файла илил другие возможнос-
ти  компилятора.  Этот компилятор на вашем диске представлен
файлом ТРС.ЕХЕ.
     Встроенный отладчик позволяет легко выполнять программы
по  шагам (построчно), приверяя или модифицируя при этом пе-
ременные и ячейки памяти, устанавливая точки останова и  ос-
танавливая выполнение программы с помощью клавиш Ctrl-Break.
 
               Обеспечение автономной отладки
 
     Оба компилятора (компилятор, работающий в режиме коман-
дной  строки  и  компилятор  с интегрированной интерактивной
средой) обеспечивают поддержку отладки с использованием Тур-
бо-отладчика - автономного отладчика фирмы Борданд.
 
                   Раздельная компиляция
 
     Раздельная компиляция позволяет разбивать программы  на
части  и  компилировать их отдельно. Таким образом Вы можете
проверить любую часть и удостовериться,  что  она  работает.
Затем  можно скомпоновать все части вместе и построить зада-
чу. Это имеет смысл, поскольку нет необходимости заново ком-
пилировать  все  составные части программы каждый раз, когда
она используется. Кроме того, это средство позволяет создать
набор заранее откомпилированных и проверенных кодов, которые
можно использовать во всех программах.
 
                     Программы и модули
 
     Программа представляет собой основную  часть  исходного
кода,  которая  пишется  на Паскале и выполняется. Для того,
чтобы обеспечить раздельную компиляцию и при этом  сохранить
строгую проверку связей между частями программы, используют-
ся модули. Модуль представляет собой часть  исходного  кода,
которую можно откомпилировать как самостоятельное целое. Мо-
дули можно рассматривать как библиотеку данных и программно-
го  кода. Они обеспечивают описание интерфейса между кодом и
данными модуля и  другими  программами,  которые  используют
этот модуль. Модули могут использоваться в программах и дру-
гих модлуях; программы не могут использоваться в модулях.
 
             Компиляция, создание и потсроение
 
     Возможен такой случай, что вы вносите изменения  в  ис-
ходный код нескольких используемых аами модулей, но не тран-
слируете их повторно. Однако,  при  этом  необходимо,  чтобы
ваша  основная  программа использовала последние версии этих
модулей. Как можно добиться,  чтобы  программа  использовала
модули,  измененные  в  самое недавнее время? Существует два
способа обеспечить использование обновленных вариантов  фай-
лов модулей.
     Средство Make указывает  компилятору  на  необходимость
проверки  даты  и времени создания всех исходных или оттран-
слированных файлов модулей, которые используются  вашей  ос-
новной  программой  (или другим модулем, поскольку в модулях
могут использоваться другие модули). Если  в  исходный  файл
вносились  изменения после того, как этот модуль был оттран-
слирован, то компилятор заново оттранслирует этот  обновлен-
ный модуль.
     Средство Build аналогично средству Make за тем исключе-
нием,  что  оно  заново компилирует все модули, используемые
вашей основной программой (или другим модулем), не  проверяя
дату  и  время  их  создания. Используйте это средство в том
случае, если вы хотите быть абсолютно уверенным, что вы  ис-
пользуете самые последние версии оттранслированных модулей.
 
                   Список файла указания
 
     Файл указания (pick file) содержит информацию о состоя-
нии интергрированной инетрактивной среды программирования, и
поэтому если вы завершаете работу в TURBO.ЕХЕ, а  затем  во-
зобновляете  ее,  то  вы оказываетесь в том месте файла, где
работали в прошлый раз. Список файла указания,  кроме  того,
обеспечивает  простой  доступ к файлам в случае, если вы ре-
дактируете несколько файлов. В списке  указания  сохраняются
имена  последних восьми отредактированных вами файлов и сос-
тояние каждого из этих файлов. При выборе файла,  содержаще-
гося  в списке указания, производится загрузка этого файла и
курсор помещается в ту точку файла, где  Вы  находились  при
выходе  из него. Вы можете установить или отменить генерацию
файла указания (TURBO.РСК).
 
                     Расширения файлов
                              
     В Турбо-Паскале возможны все виды расширений  в  именах
файлов, используемые в среде ДОС; многие из них обычно зави-
сят от области применения или от вида программы.  (Напомним,
что  имя  файла содержит до восьми символов и имеет необяза-
тельное расширение из трех символов). Турбо-Паскаль  исполь-
зует несколько выделенных расширений для имен файлов:
 
     - .ЕХЕ: выполняемый файл. Оба компилятора сами являются
файлами с расширением .ЕХЕ. Оттранслированные программы, ко-
торые строятся с помощью компиляторов, также будут файлами с
расширением .ЕХЕ. Турбо-Паскаль версии 3.0, кроме того, соз-
давал файлы с расширением .COM, которые также были выполняе-
мыми  файлами.  Турбо-Паскаль версии 5.0 не создает файлов с
расширением .СОМ.
     - .ТРU: предварительно откомпилированный  файл  модуля.
При  компиляции паскалевского модуля создается файл с расши-
рением ТРU и с именем из тех же восьми символов, что исполь-
зовалиь в имени исходного файла. Файл с расширением .ТРU со-
держит символьную информацию и оттранслированный код для мо-
дуля.
     - .ТРL: файл библиотеки Турбо-Паскаля. Вы можете за раз
использовать только один такой файл. Файл стандартной библи-
отеки на диске называется TURBO.ТРL. Вы  можете  модифициро-
вать TURBO.ТРL с тем, чтобы он отвечал Вашим потребностям.
     - .ТР и .СFG: файлы конфигурации для двух компиляторов.
Эти файлы позволяют отменить значения по умолчанию, установ-
ленные в компиляторах, и приспособить эти значения по  умол-
чанию для Ваших собственных нужд. 
     Файл с расширением .ТР является двоичным файлом, содер-
жащим  средства, которые Вы устанавливаете для интегрирован-
ной среды программирования. Вы можете иметь несколько файлов
с расширением .ТР для установки различных значений.
     ТРС.СFG является файлом  конфигурации  для  той  версии
компилятора,  где  используется командная строка. Может быть
только один файл ТРС.СFG. Он  представляет  собой  текстовый
файл, содержащий информацию о каталогах для компилятора.
     - .РАS: используйте это расширение для файлов, содержа-
щих  исходный  код на Паскале. Вы можете использовать другие
расширения в именах этих файлов, однако обычно  используется
расширение .РАS.
     - .ВАК: расширение для резервной копии исходного файла.
Редактор интегрированной среды программирования всегда пере-
именовывает существующий файл на диске в файл резервной  ко-
пии,  если на диск записывается модифицированная копия этого
файла. Вы можете установить или отменить генерацию файлов  с
расширением .ВАК.
     - .РСК: расширение для  файла  указания  Турбо-Паскаля.
Файл  указания содержит информацию о состоянии интегрирован-
ной среды программирования, и поэтому если вы завершаете ра-
боту TURBO.ЕХЕ, а затем позже возобновляете ее, то вы оказы-
ваетесь в том месте файла, где вы находились при  завершении
последнего  сеанса работы. Вы можете установить или отменить
генерацию файла указания.
     - .МАР: Этот файл генерируется, если вы установили меню
"Опции/Компоновщик/Файл  МАР"  (Options/Compiler/MAP File) в
значение On.
 
                  О настоящем руководстве
 
     В этом руководстве рассматриваются  вопросы  написания,
компиляции  и сохранения на диске программ на Турбо-Паскале.
В нем детально разъясняются многие новые программные средст-
ва  и  их  использование. Кроме того, здесь описывается, как
преобразовать программы, написанные для существующих  версий
3.0  и 4.0, с тем, чтобы их можно было выполнять под версией
5.0 Турбо-Паскаля. 
     На дистрибутивных дисках имеются примеры программ,  по-
лезных для обучения. Вы можете также использовать эти приме-
ры для своих конкретных нужд.
     Прежде чем приступить к работе, вы должны иметь  предс-
тавление о принципах работы персонального компьютера РС фир-
мы ИБМ (и совместимых с ним)  под  управлением  операционной
системы  ДОС  (МS-DOS или РС-DOS). Вам необходимо знать, как
запускаются на выполнение программы, как копируются и удаля-
ются  файлы и как используются другие базисные команды ДОСа.
Если вы не вполне уверены в знании этих вещей, потратьте не-
которое  время  на работу с компьтером IBM РС и заново прос-
мотрите руководство  пользователя  по  операционной  системе
ДОС, которое поставляется вместе с этим персональным компью-
тером. Кроме того, вы можете изучить Приложение Е  "Начинаю-
щему  изучать ДОС" с тем, чтобы ознакомиться с основными по-
нятиями. В Приложении F перечислены многие термины,  введен-
ные в этом руководстве.
     Данную книгу можно рассматиривать,  как  вводную  часть
руководства.  Она разделена на две большие части: "Использо-
вание Турбо-Паскаля" и приложения.
     Второй том, "Справочное руководство по  Турбо-Паскалю",
содержит полное описание версии 5.0 Турбо-Паскаля.
 
                Использование Турбо-Паскаля
 
     Первый раздел  "Использование  Турбо-Паскаля"  является
вводным  разделом.  В нем описывается, как пользоваться Тур-
бо-Паскалем, и включает в себя главы, посвященные таким спе-
цифическим  средствам  и  вопросам, как программные модули и
отладка. Опишем кратко содержимое каждой главы:
 
     В Главе 1 "Начало работы" разъясняется, как сделать ре-
зервные  копии  дисков  Турбо-Паскаля, описываются различные
файлы на дисках и указывается, как установить  Турбо-Паскаль
для конкретной системы.
     Глава 2 "Начало работы с Турбо-Паскалем" непосредствен-
но знакомит с тем, как загрузить Турбо-Паскаль, как написать
простые программы, а затем откомпилировать их  и  выполнить.
Кроме  того,  в  ней  описываются несколько распространенных
ошибок программирования и то, как их избежать. Здесь вы так-
же  получите  некоторые основные представления об интегриро-
ванной среде  программирования.  В  конце  главы  содержатся
предложения  относительно чтения остальной части руководства
в зависимости от знания Паскаля.
     Глава 3 "Программирование  на  Турбо-Паскале"  является
введением в язык программирования Паскаль.
     В Главе 4 "Модули и связанные с ними тонкости" описыва-
ется,  что такое модуль, как он используется, какие встроен-
ные модули (библиотеки) поддерживаются Турбо-Паскалем и  как
создать  свои собственные библиотеки. В главе также рассмат-
ривается общая структура модуля, вопросы  его  интерфейса  и
реализации, а также его инициализация и компиляция.
     В Главе 5  "Разработка  программ"  рассказывается,  как
разрабатывать  большие программы, используя несколько исход-
ных файлов и библиотек, и описывается условная компиляция.
     В Главе 6 "Отладка программ в Турбо-Паскале"  говорится
о том, как использовать интегрированный интерактивный отлад-
чик и даются советы по выявлению и устранению ошибок в вашей
программе.
     Глава 7 "Все об  интегрированной  интерактивной  среде"
представляет  собой  полное руководство по меню команд инте-
рактивной среды Турбо-Паскаля.
     Глава 8 "Справочник  по  меню  Турбо-Паскаля"  является
полным  описанием  команд меню в интегрированной среде прог-
раммирования Турбо-Паскаля.
     Глава 8 "Справочник по командным строкам"  представляет
собой  руководство  по версии компилятора Турбо-Паскаля, ис-
пользующей командную строку (ТРС.ЕХЕ).
 
                         Приложения
 
     Наконец, Часть 3 настоящего руководства содержит девять
приложений, касающихся следующих тем:
 
     - В Приложении А "Различие между версиями  3.0,  4.0  и
5.0"  перечисляются  различия  между тремя версиями, которые
влияют на совместимость.
     - В Приложении В "Использование редактора"  поясняется,
как  использовать  для  открытия, редактирования и изменения
файлов, сохранения файла и  т.д.  встроенный  редактор  Тур-
бо-Паскаля.
     - В Приложении С  "Утилиты  Турбо-Паскаля"  обсуждаются
вопросы,  касающиеся  некоторых других программ-утилит, пос-
тавляемых с Турбо-Паскалем: МАКЕ, TPUMOVER,  TOUCH,  GREP  и
BINOBJ.
     - В Приложении D "Настройка Турбо-Паскаля"  показывает-
ся,  как использовать средство TINST для настройки вашей ко-
пии Турбо-Паскаля.
     - В Приложении E "Начинающему изучать ДОС" говорится  о
том,  что  вы  должны  знать для того, чтобы работать с Тур-
бо-Паскалем версии 5.0.
     Приложение F "Глоссарий" содержит список  общеупотреби-
тельный терминов данного руководства и поясняет, что они оз-
начают.
 
           Примечание: Настоящее руководство было  полностью
      подготовлено  с  помощью  профессионального текстового
      процессора Sprint фирмы Борланд на  записывающем  уст-
      ройстве "Лазеррайтер-плюс" фирмы Эппл.

 
                          Глава 1 
 
 
                       Начало работы
 
     В этой главе предлагается описание начала работы с Тур-
бо-Паскалем, даются инструкции, как загрузить его в систему,
используя дисковод для гибких дисков или жесткий диска. Кро-
ме  того, здесь приводятся соображения относительно дальней-
шего чтения этого руководства с учетом опыта  программирова-
ния читателя.
     Три дистрибутивных диска, поставляемых  в  комплекте  с
этим  руководством,  имеют формат стандартных 5 1/4-дюймовых
дисков, требуют дисковод для 360К и могут  быть  считаны  на
персональных  компьютерах РС фирмы ИБМ или совместимых с ни-
ми. (В случае, если вы имеете дисковод  для  3  1/2-дюймовых
дисков с 720К, то вы получите два дистрибутивных диска). Те-
перь прежде чем начать работу,  вам  следует  сделать  копии
этих  двух  дисков, а оригиналы убрать в безопасное место. В
случае  уничтожения  или  повреждения  дисков-оригиналов  вы
должны  будете  оплатить замену, поэтому будьте предусмотри-
тельны и используйте оригиналы только для того,  чтобы  сде-
лать рабочие или резерные копии. В связи с этим:
 
     - Возьмите два новых (или неиспользованных) гибких дис-
ка.
     - Включите компьютер для загрузки операционной системы.
     - В ответ на подсказку системы напечатайте diskcopy  А:
В:  и  нажмите  клавишу  Enter. На экране появится сообщение
"Insert source diskette in  drive  A:"  ("Вставьте  исходный
гибкий диск в дисковод А:"). Выньте системный диск из диско-
вода А и вставьте туда дистрибутивный диск 1.
     - Если система имеет два дисковода для  гибких  дисков,
то  на  экране  будет сообщение "Insert destination diskette
into drive B" ("Вставьте целевую дискетту в дисковод В:"). В
этом  случае  нет  необходимости вынимать какой-либо диск из
дисковода В, заменяя его пустым диском. Если  система  имеет
один дисковод для гибких дисков, то вам нужно будет заменять
диски в дисководе А. При этом  помните,  что  дистрибутивный
диск  является исходным диском, а пустой диск - целевым дис-
ком.
     - Нажмите клавишу "Enter" (если вы этого еще не  сдела-
ли). Компьютер начнет считывать информацию с исходного диска
в дисководе А.
     - В случае системы с двумя дисководами компьютер  будет
сразу  записывать эту информацию на целевой диск в дисководе
В, и процесс считывания с диска в А и записи на диск в В бу-
дет продолжаться до завершения копирования. В случае системы
с одним дисководом вы получите сообщение вставить в дисковод
А целевой диск, затем - исходный диск, затем вновь - целевой
диск и так далее, пока не будет завершено копирование.
     - Завершив копирование, выньте  дистрибутивный  (исход-
ный)  диск  из  дисковода  А и уберите его. Выньте (целевой)
диск-копию из дисковода В и пометьте его как "Диск 1".
     - Повторите указанные выше  действия  с  дистрибутивным
диском 2 и вторым пустым диском.
 
     Теперь, когда сделаны копии,  вы  можете  приступить  к
чтению этой главы.
 
             Информация, содержащаяся на дисках
 
     Два дистрибутивных диска, поставляемые  в  комплекте  с
настоящим руководством, содержат две различные версии компи-
лятора Паскаля: версию, использующую  интегрированную  инте-
рактивную среду программирования, и отдельно версию, исполь-
зующую командные строки.
     Нет необходимости все файлы дистрибутивных дисков  рас-
полагать  на вашем системном диске Турбо-Паскаля, фактически
может потребоваться только TURBO.ТРL (резидентная  библиоте-
ка)  и - или TURBO.ЕХЕ (интегрированная среда программирова-
ния), или ТРС.ЕХЕ (компилятор, использующий командные  стро-
ки)  в зависимости от того, какой компилятор вы предпочтете.
Здесь приводится краткое описание основных файлов на дисках,
которое  послужит для вас справочником и поможет определить,
какие файлы нужно сохранить.
 
TURBO.ЕХЕ Это версия Турбо-Паскаля с интегрированной  средой
программирования (управляемая с помощью меню). Если вы хоти-
те использовать среду разработки программ Турбо-Паскаля  для
редактирования, компиляции и выполнения программ, не забудь-
те скопировать этот файл.
 
TURBO.ТРL Этот файл содержит модули  (библиотеки  программ),
ко-  торые  поставляются  вместе с Турбо-Паскалем, а именно:
System, Crt, Dos, Printer, Graph, Turbo3 и Graph3. Этот файл
обязательно должен быть скопирован!
 
ТINSТ.ЕХЕ Эта утилита  позволяет  использовать  определенные
возможности TURBO.ЕХЕ. Если вы используете TURBO.ЕХЕ, скопи-
руйте этот файл. Вы сможете удалить его, как только  внесете
изменения в TURBO.ЕХЕ по своему усмотрению.
 
ТРС.ЕХЕ Это  версия  Турбо-Паскаля,  использующая  командные
строки.  Если  вы работаете с отдельным редактором, привыкли
использовать пакетные файлы и так далее, то  вам,  вероятно,
следует скопировать этот файл.
 
ТРUМОVER.ЕХЕ Эта утилита  позволяет  осуществлять  пересылку
модулей  между  файлами  с  расширением .ТРL; в частности ее
можно использовать  для  присоединения  модулей  (написанных
вами)  к TURBO.ТРL или удаления модулей из этого файла. Ско-
пируйте этот файл, если вы  планируете  модифицировать  файл
TURBO.ТРL (см Приложение С "Утилиты Турбо-Паскаля").
 
READМЕ.СОМ Это программа, осуществляющая выведение на  экран
файла  READМЕ. Этот файл можно удалить после прочтения файла
READМЕ.
 
READМЕ Для ознакомления с обновленной  информацией  запусти-
те этот файл, напечатав README в ответ на подсказку системы.
(Если имеется печатающее устройство, вы  можете  распечатать
этот  файл).  Просмотрев  материал,  вы  можете удалить этот
файл.
 
UPGRADЕ.ЕХЕ и UPGRADE.DTA Эта утилита  осуществляет  быстрое
преобразование  исходных  файлов,  созданных в Турбо-Паскале
версии 3.0, модифицируя их таким  образом,  чтобы  они  были
совместимы с Турбо-Паскалем версии 5.0. Если у вас нет прог-
рамм, написанных для версии 3.0, то не копируйте этот файл.
 
ТРСОNFIG.ЕХЕ Эта утилита преобразует файл  конфигурации  ин-
тегрированной среды программирования для работы с компилято-
ром, использующим командные строки (в виде ТРС.СFG). Это по-
лезное средство, если вы хотите использовать интегрированную
среду программирования для установки всех средств,  а  затем
выполнять  компиляцию с помощью командных строк. Эта утилита
также преобразует файл ТРС.СFG в файл с расширением .ТР.
 
МАКЕ.ЕХЕ  Это  интеллектуальный  программный  администратор,
позволяющий  автоматически обновлять файлы (при компоновке и
компиляции), которые были вами модифицированы.  Он  работает
только   в   компиляторе,   использующем   командные  строки
(ТРС.ЕХЕ).
 
ТОUСН.СОМ Эта утилита изменяет дату и время создания  одного
или  нескольких  файлов  на текущие дату и время и тем самым
делает эти файлы более "новыми" по сравнению с теми, которые
от них зависят.
 
GRЕР.СОМ Это  мощное  средство  поиска,  позволяющее  осуще-
ствлять одновременный поиск нескольких файлов.
 
Файлы  *.РАS.  К  ним  относятся   исходные   файлы   пакета
МicroCalc, а также примеры. Эти файлы можно проигнорировать,
если вы не хотите поэкспериментировать с ними.
 
Файлы *.DOC. Эти файлы содержат листинги интерфейсных секций
всех модулей.
 
Файлы *.BGI. Эти файлы представляют собой драйверы графичес-
ких устройств в формате BGI (формат фирмы Борланд).
 
Файлы *.CHR представляют собой "штриховые" символьные шрифты
в формате BGI.
 
GRAPH3.TPU и TURBO3.TPU - модули, предназначенные  дял  сов-
местимости  с версией 3.0 Турбо-Паскаля. Если эти модели вам
нужны, поместите их в каталог, указанный в маршруте  доступа
(см. Приложение D "Настройка Турбо-Паскаля", где говорится о
том, как можно это сделать, а текже Приложение  А  "Различия
между версиями 3.0, 4.0 и 5.0 Турбо-Паскаля").
 
GRAPH.TPU содержит модуль Graph (графический интерфейс фирмы
Борланд). См. Главу 12 "Справочного руководства".
 
BINOBJ.EXE используется в качестве утилиты, позволяющей пре-
образовать двоичный файл данных в файл .OBJ.
 
             Установка Турбо-Паскаля в системе
 
     Пакет Турбо-Паскаля включает все файлы и программы, не-
обходимые  для запуска как варианта компилятора с интегриро-
ванной средой программирования, так и варианта, использующе-
го командные строки. Выбор файлов для копирования зависит от
того, какой вариант компилятора вы хотите использовать.
 
     Установка в системе с дисководом для гибких дисков
 
     Основные файлы, необходимые для работы  с  Турбо-Паска-
лем, достаточно малы, и поэтому они могут быть легко запуще-
ны в системе с одним дисководом  для  гибких  дисков;  кроме
того, возможно, вам потребуется только один вариант компиля-
тора (TURBO.ЕХЕ или ТРС.ЕХЕ), а не сразу два на диске. Преж-
де  всего  вам  необходимо  создать  загружаемый (системный)
диск. Достаньте еще один пустой диск и в ответ на  подсказку
операционной системы ДОС введите:
 
     format b:s
 
     Система даст запрос вставить диск с операционной систе-
мой  ДОС  в  дисковод А. Вам нужно вставить Ваш обычный диск
системной загрузки. Если система имеет два дисковода, помес-
тите  пустой  диск  в дисковод В и нажмите клавишу "Enter" в
ответ на подсказку. Если система имеет один дисковод, помес-
тите пустой диск в этот дисковод, даже если вам дается сооб-
щение вставить пустой диск в дисковод  В,  и  исходный  диск
загрузки поместите в этот дисковод, даже если вам указывает-
ся вставить его в дисковод А.
     При завершении этой работы Ваш пустой диск будет отфор-
матирован  и будет содержать копию операционной системы ДОС.
Пометьте его как системный диск Турбо-Паскаля и переходите к
выполнению следующего шага.
     Вставьте ваш системный диск Турбо-Паскаля в дисковод А.
Если  в  системе имеется второй дисковод, то вставьте в него
дистрибутивный диск 1 Турбо-Паскаля и введите:
 
     A>dir b:
 
     По этой команде будут  распечатаны  все  файлы  первого
дистрибутивного диска. Эти файлы можно скопировать с дистри-
бутивного диска Турбо-Паскаля на системный диск, введя  одну
команду:
 
     A>copy b:имя-файла а:
 
     Как уже упоминалось, вы обязательно должны  скопировать
два файла: TURBO.ТРL и - TURBO.ЕХЕ или ТРС.ЕХЕ (или оба).
 
                 Установка на жестком диске
 
     Первое, что нужно сделать, - это создать  подкаталог  с
названием ТР (или любым другим по Вашему усмотрению) в вашем
корневом каталоге. Учитывая, что жесткий  диск  обозначается
как дисковод С, используйте следующие команды:
 
     c:
     cd c:
     mkdir tp
 
     Затем вставляя по  очереди  дистрибутивные  диски  Тур-
бо-Паскаля в дисковод А, введите следующую команду:
 
     copy a:*.* c:tp
 
     Теперь уберите дистрибутивные диски в безопасное место.
При  желании можно удалить с жесткого диска все ненужные вам
файлы. (Обратитесь к предыдущему разделу для выяснения,  ка-
кие файлы вам могут быть не нужны).
 
                Выбор одного из компиляторов
 
     Вы приобрели два полных варианта компилятора Турбо-Пас-
каля.  Первый компилятор, TURBO.ЕХЕ, известен как интегриро-
ванная среда программирования. Он обеспечивает  спускающееся
меню  и  многооконную  среду,  управляемую с помощью нажатия
клавиш. Вы можете загружать,  редактировать,  записывать  на
диск и выполнять программы, не выходя из этой среды програм-
мирования. Многие последующие главы посвящены  использованию
интегрированной среды программирования.
     Второй вариант, ТРС.ЕХЕ, известен как  компилятор,  ис-
пользующий  командные  строки.  Это предполагает, что паска-
левские программы  создаются  с  помощью  других  редакторов
(МicroStar,  ВRIEF,  ЕDLIN,  даже  с помощью интегрированной
среды программирования). Этот компилятор запускается в ответ
на  подсказку системы ДОС. Например, если ваша программа на-
ходится в файле с именем МYFIRSТ.РАS, напечатайте в ответ на
подсказку:
 
     tpc myfirst
 
а затем нажмите клавишу  "Enter".  ТРС.ЕХЕ  оттранслирует  и
скомпонует  вашу  программу,  создав файл с расширением .ЕХЕ
(наподобие файла TURBO.ЕХЕ). Параметры, указываемые в коман-
дной  строке, позволяют определить некоторые условия, напри-
мер, где располагается системная бибилиотека  (TURBO.ТРL)  и
следует ли заново транслировать какие-либо файлы, от которых
зависит МYFIRSТ.РАS.
     Какой вариант  вам  следует  использовать?  Вероятность
того,  что  интегрированная среда программирования покажется
вам удобней, зависит от ваших конкретных нужд. Она представ-
ляет собой полную систему разработки, с помощью которой мож-
но быстро создавать и отлаживать программы. С другой  сторо-
ны,  если в настоящее время Вы работаете с компилятором Пас-
каля, использующим  командные  строки,  если  имеется  более
предпочтительный  для  Вас  текстовый  редактор, или если вы
привыкли использовать ассемблер (в качестве внешних подпрог-
рамм),  то  вам, возможно, лучше выбрать компилятор с коман-
дными строками и использовать его вместе с пакетным файлом и
утилитой Make.
 
            Использование настоящего руководства
 
     Теперь, когда файлы и библиотеки Турбо-Паскаля записаны
в  каталоги гибких дисков или каталог жесткого диска, вы мо-
жете начать знакомиться с настоящим руководством и  работать
с  Турбо-Паскалем. Однако, поскольку это руководство пользо-
вателя написано для трех различных типов пользователей,  оп-
ределенные  главы написаны с учетом конкретных нужд програм-
мирования на Турбо-Паскале. Прежде, чем приступить  к  прог-
раммированию,  потратьте несколько секунд для чтения следую-
щей информации.
 
     - Программисты, изучающие Паскаль.  Если  вы  начинаете
программировать на Паскале, то Вам следует прочесть главы со
2 по 5. Они написаны в стиле учебника и дадут  представление
о  создании  и  компиляции ваших первых программ на Паскале.
Одновременно они научат вас, как использовать  интегрирован-
ную  среду программирования. (Возможно, вам имеет смысл пос-
мотреть также руководство "Turbo Pascal Tutor" ("Учебник  по
Турбо-Паскалю").
     - Опытные программисты на Паскале. Если вы имеете  опыт
программирования  на  Паскале,  у  вас  не возникнет больших
трудностей при подготовке ваших программ для  этой  реализа-
ции.  Вы  можете пропустить Главу 7 ("Все об интегрированной
среде") и Приложение В ("Использование редактора") и  позна-
комится  сразу  с интерактивной средой. Вам следует просмот-
реть главы 6, 4 и 5 для ознакомления с интегрированной  сре-
дой  программирования и специфическими средствами версии 5.0
Турбо-Паскаля. Если вы хотите пропустить  также  "Справочное
руководство  по Турбо-Паскалю", то обратите внимание на раз-
личия между вашим компилятором Паскаля и Турбо-Паскалем вер-
сии 5.0.
     - Программисты, работающие на Турбо-Паскале. Приложение
А  "Справочного  руководства" написано специально для вас. В
нем содержатся  необходимые  инструкции  для  преобразования
программ,  написан- ных под версией 3.0 или 4.0, к виду, до-
пустимому для версии 5.0. Приложение А поясняет также разли-
чия между версиями 3.0, 4.0 и 5.0. Кроме того, вам необходи-
мо просмотреть Главу 6 данного руководства для  ознакомления
с интегрированным интерактивным отладчиком.
 
     Каким бы ни был ваш подход, мы желаем вам успехов в ра-
боте с Турбо-Паскалем.

 
                          ГЛАВА 2
 
 
              Начало работы с Турбо-Паскалем 
 
     Турбо-Паскаль является не просто  быстрым  компилятором
Паскаля, он представляет собой эффективный компилятор Паска-
ля с интегрированной интерактивной средой  разработки  прог-
рамм,  которую  легко изучить и легко использовать в работе.
При работе с Турбо-Паскалем нет  необходимости  использовать
отдельный  редактор, компилятор и редактор связей (компонов-
щик) для создания и выполнения  программ  на  Паскале  (хотя
можно  использовать и вариант компилятора с командными стро-
ками). Все эти программные средства  встроены  в  Турбо-Пас-
каль,  и ко всем из них есть доступ из интегрированной среды
программирования Турбо-Паскаля.
     Теперь, когда выполнена установка Турбо-Паскаля, вы мо-
жете  начать писать первые программы, используя компилятор с
интегрированной средой программирования. К концу чтения нас-
тоящей  главы  вы изучите основные принципы среды разработки
программ, напишите три маленькие программы, запишите  их  на
диск и приобретете некоторый базовый опыт программирования.
 
    Использование интегрированной среды программирования
 
     В этом разделе описываются компоненты основного изобра-
жения  экрана Турбо-Паскаля и кратко разъясняется, как пере-
мещаться в среде программирования. За более детальным описа-
нием  обращайтесь к Главе 7 "Все об интегрированной интерак-
тивной среде". Дополнительная информация о редакторе дана  в
Приложении В ("Использование редактора").
     Турбо-Паскаль обеспечивает получение контекстной экран-
ной справочной диалоговой информации по нажатию одной клави-
ши. Эту подсказку можно получить в любой момент (за исключе-
нием  того времени, когда выполняется программа), нажав кла-
вишу F1. В окне  подсказки  будет  дано  детальное  описание
функций того элемента, при работе с которым вы обратились за
помощью. Экран подсказки может содержать одно или  несколько
ключевых  слов  (элемент с подсветкой), по которым вы можете
получить информацию. Используйте клавиши управления движени-
ем курсора (стрелки) для перемещения к любому ключевому сло-
ву, а для получения детальной подсказки по этому  выбранному
элементу,  нажмите  клавишу  "Enter". Для перемещения, соот-
ветственно, на первое и последнее ключевое слово  на  экране
вы можете использовать клавиши Home и Еnd.
 
----------------------------------------------------------------
!   File  Edit  Run   Compile    Options   Debug   Break/wath  !
!                                                              !
!============================Edit============================= !
! !   Line 1   Col 1  Insert Indent Unident  C:NONAME.PAS    ! !
! !                                                          ! !
! !                                                          ! !
! !                                                          ! !
! !                                                          ! !
! !                                                          ! !
! !                                                          ! !
! !                                                          ! !
! !                                                          ! !
! !                                                          ! !
! !                                                          ! !
! !                                                          ! !
! !                                                          ! !
! !                                                          ! !
! !                                                          ! !
! !-------------------------Watch----------------------------! !
! !                                                          ! !
!--------------------------------------------------------------!
!  F1-Help F5-Zoom F6-Switch F7-Trace F8-Step F9-Make F10-Menu !
----------------------------------------------------------------
 
     Рис 2.1 Основной экран меню Турбо-Паскаля
 
                              ..........Alt-F1. (вы  имеете
возможность  возвратиться  на  20  экранов подсказки назад).
Если вы находитесь в режиме подсказки, для обращения  к  ин-
дексу  подсказки  нажмите  еще раз клавишу F1. Для выхода из
системы подсказки и возвращения в режим меню, нажмите клави-
шу  Esc (или любую из клавиш быстрого вмешательства, описан-
ных в следующем разделе).
     После загрузки Турбо-Паскаля (в ответ на подсказку  ДОС
вводится  turbo  и  нажимается  клавиша  "Enter") появляется
изображение, содержащее основное изображение и информацию  о
версии  программного изделия (нажатие Alt-F10 в любой момент
вызовет появление на экране этой  информации).  При  нажатии
любой клавиши информация о версии исчезает, а основное изоб-
ражение остается.
     Посмотрите внимательно на основное изображение  экрана;
оно  содержит четыре части: основное меню, окно редактирова-
ния, окно просмотра и нижнюю строку (которая указывает,  ка-
кая клавиша что выполняет в данном конкретном случае).
     Для ознакомления с системой Турбо-Паскаля  ниже  приво-
дятся некоторые основные правила перемещения в ней.
 
     Действия в среде меню:

     - Используйте прописную букву с подсветкой  для  выбора
элемента  меню  или используйте клавиши управления движением
курсора для перемещения к нужному  элементу  меню,  а  затем
нажмите клавишу "Enter".
     - Нажмите клавишу Esc для выхода из меню.
     - Для переключения между меню и активным окном  нажмите
клавишу F10.
     - Находясь в режиме основного меню, нажмите клавишу Esc
для возврата к окну, которое перед этим было в активном сос-
тоянии. (Находясь в активном состоянии, окно  имеет  двойную
верхнюю границу, а его имя имеет подсветку).
     - Используйте клавиши со стрелками "Вправо"  и  "Влево"
для перемещения от одного спускающегося меню к другому.
 
     Действия из любого положения в Турбо-Паскале:

     - Нажмите клавишу F1 для получения информации  о  своем
текущем  положении (подсказка о том, что осуществляется: вы-
полнение, компиляция и так далее).
     - Нажмите клавишу Аlt вместе с первой буквой любой  ко-
манды  из основного меню (F, E, R, C, O) для запуска указан-
ной команды. Например, нажатие клавиш Аlt-Е из любого  места
в системе вызовет перемещение в окно редактирования; нажатие
клавиш Аlt-F переместит вас в меню File (Файл).
     - Нажмите клавишу F5 для того,  чтобы  увеличить  окно,
находящееся  в  активном  состоянии,  до размеров экрана или
уменьшить его до прежнего размера.
     - Нажмите клавишу F6 для переключения окон.
     - Для переключения  содержимого  окна  нажмите  клавиши
Alt-F6.  (Когда  активным  является  окно редактора, то есть
окно просмотра (Watch) или  окно  вывода  (Output),  клавиши
Alt-F6 позволяют переключаться между между последним и теку-
щим файлом, а когда активно другое окно (окно просмотра  или
вывода),  эти  клавиши  позволяют переключаться между окнами
просмотра и вывода).
 
           Примечание. Для выхода из Турбо-Паскаля и возвра-
      та  в  ДОС, нажмите клавиши Аlt-Х или перейдите в меню
      File (Файл) и выберите Quit (Выход) (нажмите Q или пе-
      реместите  поле  выбора на Quit и нажмите Enter). Если
      вы указываете Quit, не записав своего текущего рабоче-
      го  файла на диск, то редактор дает запрос, следует ли
      сохранить этот файл или нет.
 
             Клавиши оперативного вмешательства
 
     Турбо-Паскаль предлагает несколько клавиш быстрого опе-
ративноо  вмешательства (сокращенные варианты команд), кото-
рые также можно использовать. Клавиши быстрого вмешательства
представляют собой клавиши, которые установлены для выполне-
ния определенной функции. Например, как  указывалось  ранее,
нажатие Аlt вместе с первой буквой команды из основного меню
вызовет перемещение в меню указанного средства или  выполне-
ние  некоторого  действия  (см.  графический  пример на Рис.
2.1); все эти клавиши быстрого вмешательства уже упоминались
ранее.  Нами  не упомянут только один случай нажатия клавиши
Аlt и первой буквы команды, а именно Аlt-Х, который является
сокращенным вариантом для команды File/Quit (Файл/Выход).
     Как правило, клавиши быстрого вмешательства  могут  ис-
пользоваться из любого места, за исключением двух случаев.
     В первом случае эти клавиши блокируются в рамке  указа-
ния  ошибок  и  рамке  проверки. Для этих случаев определены
специальные клавиши.
     Вторым исключением является редактор. Если для  инстал-
ляции клавишных команд редактора используется ТINSТ, то кла-
виши оперативного вмешательства могут  быть  определены  как
команды  редактирования.  Это означает, что при работе в ре-
дакторе клавиши быстрого вмешательства будут функционировать
как  команды  редактирования,  а при выходе из редактора эти
клавиши будут функционировать так, как это  было  определено
первоначально.  Например,  если в редакторе Аlt-R определить
как РgUp, то с ее помощью нельзя будет  запустить  программу
на  выполнение  из редактора. Необходимо прежде выйти из ре-
дактора (с помощью F10 или F6), а  только  потом  с  помощью
Аlt-R  можно  будет  запустить программу на выполнение (меню
Run). Это дает возможность более гибкого использования  кла-
виш при редактировании с учетом ваших предпочтений. (Обрати-
тесь к Приложению D за более полным описанием  переопределе-
ния клавиш в редакторе).
 
     В любой точке среды Турбо-Паскаля  версии  5.0  нажатие
клавиши Аlt вместе с первой буквой любой команды из основно-
го меню (F,E,R,C или О) вызовет выполнение этой  команды,  а
при нажатии F1 будет вызвана контекстная диалоговая информа-
ция. Испробуйте функционирование клавиши Аlt со  всеми  ука-
занными в списке клавишами.
 
     В Таблице 2.1 приведен список всех клавиш  оперативного
э  вмешательства,  которые  можно  использовать при работе в
Турбо-Паскале. Запомните, что при нажатии этих клавиш выпол-
няется  их специальная функция независимо от того, из какого
места среды Турбо-Паскаля она была вызвана.
  --------------------------------------------------------------
  ! Окно в активном (Окном в активном состоянии может быть окно!
  !   состоянии      редактирования или окно выходных данных; в!
  !                  активном состоянии окно имеет двойную гра-!
  !                  ницу сверху)                              !
  !                                -------------------------   !
  !                                !   ------------------  !   !
  !                           -----!-->! Окно просмотра !  !   !
  !   ---------------------   !    !   ------------------  !   !
  !   !                   ! Alt-F6 !                       !   !
  !   !       Окно        !   !    !   ------------------  !   !
  !   !   редактирования  !   -----!-->! Окно вывода    !  !   !
->!   !                 <-----F6-----> ------------------  !   !<--
! !   ---------^----------!        !------------------------   !  !
! !            !                                               !  !
! !            !                                               !  !
! !            !                                               !  !
! -------------!--------------------------------^---------------  !
 \             Е (Редактор)   !                 !                /
Alt-E для      !     F10 из любого окна        ESC              !
перехода       !              !                 !               !
с любого   -------------------V----------------------           !
уровня     !            Основное меню               !         Esc
меню в ок- !                                        !           !
но редак-  -------------------^----------------------           !
тирования                     !                                 !
/            Для перехода в меню нижнего уровня                 !
!             используется "Стрелка вниз" или                   !
!                    клавиша Enter                              !
!                             !                                 !
!                             V                                 !
! ------------------------------------------------------------- !
! ! Спускающееся меню и его подразделы                        ! !
 \! Начальная буква (с подсветкой) всегда означает выбор      !/
  ! соответствующего элемента меню                            !
  ! Нажмите ESC для выхода из меню                            !
  -------------------------------------------------------------
 
     Рис 2.2 Пример использования оперативных клавиш
 
                                                 Таблица 2.1

         Клавиши оперативного вмешательства Турбо-Паскаля
------------------------------------------------------------
Клавиша(и) Функция                           Эквивалент меню
------------------------------------------------------------
F1         Вызывает появление окна 
           подсказки с информацией о 
           вашем текущем положении
F2         Записывает на диск файл,              File/Save
           находящийся в настоящий 
           момент в редакторе
F3         Позволяет загрузить файл              File/Load
           (появляется рамка входных 
           данных
F4         Выполняет до места распо-             Run/Go to
           ложения курсора                        Cursor
F5         Увеличивает окно, находя-
           щееся в активном состоянии, 
           до размеров экрана и умень-
           шает его до прежних размеров
F6         Переключает окно в активное 
           состояние
F7         Выполняет трассировку в под-          Run/Trace 
           программах                             Into
F9         Выполняет команду "Make" 
           (создать)
F10        Поволяет переключаться между
           меню и активным окном
Аlt-F1     Вызывает появляение экрана 
           диалоговой информации, к кото-
           рому вы перед этим обращались
Аlt-F3     Позволяет указать файл для             File/Pick
           загрузки
Аlt-F5     Возвращает к сохраненному              Run/User
           экрану                                  Screen
Аlt-F9     Выполняет компиляцию программы    Compile/Compile
Аlt-B      Перемещает вас в меню "Оста-
           нов/Просмотр" (Break/Watch)
Аlt-С      Включает меню Compile 
           (Компилировать)
Аlt-Е      Включает режим редактора
Аlt-F      Включает меню FILE (Файл)
Аlt-О      Включает меню Оptions (Опции)
Аlt-R      Запускает вашу программу на 
           выполнение
Аlt-Х      Завершает работу Турбо-Паскаля         File/Quit
           и возвращает вас в ДОС
Ctrl-F1    Позволяет получить помощь по         
           языку из среды редактора
Ctrl-F2    Завершает сеанс редактирова-           Run/Program 
           ния                                     Reset
Ctrl-F3    Выводит на экран содержимое            Debug/Call
           стека при вызове процедуры              Stack
           (в режиме отладки)
Ctrl-F4    Вычисляет или модифицирует            Debug/Evaluate
           переменную
Ctrl-F7    Добавляет выражение в окно             B/Add Watch
           просмотра (Watch)
Ctrl-F8    Выполняет переключение точки            B/Toggle
           останова                               Breackpoint
Ctrl-F9    Выполняет запуск программы               Run/Run
Shift-F10  Выводит экран версии
------------------------------------------------------------
 
     В настоящей книге обращение ко всем элементам меню  бу-
дет осуществляться с помощью сокращенного имени. Сокращенное
имя для данного элемента меню представляет собой  последова-
тельность  букв,  которые  вводятся вами для получения этого
элемента из основного меню. Например в основном меню средст-
ва  времени  компиляции,  устанавливаю-  щие размеры памяти,
представлены    как    "Опции/Компилятор/Размеры     памяти"
(Оptions/Соmpiler/Меmory  sizes). Указание о их выборе будет
выглядеть как О/С/Memory (нужно нажать О С М).
     Дополнительно к этому для команды меню после имени  ко-
манды в скобках часто указывается оперативная клавиша.
     Если вам требуется дополнительная информация об исполь-
зовании  интегрированной  интерактивной среды программирова-
ния, обратитесь к Главе 7 ("Все об интегрированной  интерак-
тивной среде"). Если же Вам достаточно того, что вы узнали к
настоящему моменту, давайте приступим к  написанию  программ
на Турбо-Паскале.
 
                   Загрузка Турбо-Паскаля
 
     Если вы используете дисковод для гибких дисков, втавьте
системный диск Турбо-Паскаля в дисковод А: и нажмите клавиши
Сtrl-Аlt-Del для перезагрузки  системы.  После  перезагрузки
введите в ответ на системную подсказку следующую команду:
 
     A>turbo
 
и нажмите клавишу "Enter". Это приведет к запуску  программы
TURBO.ЕХЕ,  которая установит интегрированную среду програм-
мирования и поместит вас в основное меню.
     При использовании жесткого диска перейдите в подкаталог
Турбо-Паскаля  (с помощью команды C>cd tp), который был соз-
дан в соответствии с описанием из предыдущей главы, и запус-
тите TURBO.ЕХЕ, напечатав следующее:
 
     C:TP>turbo
 
Теперь вы готовы к написанию первой программы на  Турбо-Пас-
кале.

                 Создание первой программы

     Когда Вы в первый раз входите в Турбо-Паскаль, вы  ока-
зываетесь  в основном меню. Нажмите клавишу Е для перехода в
окно редактирования (или же вы можете  использовать  клавиши
управления  движением курсора для выбора команды Еdit, а за-
тем нажмите клавишу "Enter"). Теперь вы находитесь в  редак-
торе, и курсор расположен в верхнем левом углу. Можно начать
набирать следующую программу, нажимая "Enter" в конце каждой
строки:
 
program MyFirst;
var
  A,B     : integer;
  Ratio   : real;
begin
  Write('Введите два числа: ');
  Readln(A,B);
  Ratio := A / B;
  Writeln('Отношение равно ',Ratio);
  Writeln('Нажмите клавишу <Enter>');
жпе.
 
     Для передвижения в окне редактирования используйте кла-
виши управления движением курсора. (Если Вы не знакомы с ко-
мандами редактирования, обратитесь к главе 11, где  рассмот-
рены все имеющиеся в вашем распоряжении команды редактирова-
ния). Отметим только необходимость точки с запятой  в  конце
большинства  строк  и  необходимость точки в конце последней
строки. В случае, если вы допустите ошибку, можно  использо-
вать  клавиши  управления движением курсора для перемещения.
Для   удаления   символов   можно    использовать    клавишу
"Backspace", а для вставки просто набирайте новый текст.
 
               Анализ вашей первой программы
 
     Вы можете набрать и выполнить эту программу, даже ниче-
го  не  зная  о том, как она работает, но все же имеет смысл
дать ей здесь краткое разъяснение. В первой строке программе
присваивается  имя МyFirst. Это необязательный оператор, од-
нако лучше его вставить в программу.
     В трех последующих строках  описываются  переменные,  о
чем  свидетельствует слово var в начале этих определений пе-
ременных. А и В определяются как переменные целого типа,  то
есть  они могут содержать целые числа, например 52, -421, 0,
32283 и так далее. Ratio определяется как переменная вещест-
венного  типа, что означает, что она может содержать дробные
числа, например 423.328, -0.032 и так далее (наряду с  цело-
численными значениями).
     Остальная часть программы содержит  операторы,  которые
должны  быть  выполнены. Слово begin обозначает начало прог-
раммы. Операторы отделены друг от друга с  помощью  точек  с
запятой  и  содержат  команды:  вывести  на экран (Write или
Writeln), считать данные, набираемые с клавиатуры  (Readln),
и выполнить вычисления (Ratio:=А/В). Выполнение начинается с
первой команды после begin и продолжается до тех  пор,  пока
не встретится end.
 
           Запись вашей первой программы на диск
 
     После того, как вы ввели вашу  программу,  имеет  смысл
записать  ее  на  диск.  Для  этого,  находясь в меню "Файл"
(File), выберите команд "Сохранить" (Save).  Для  выхода  из
окна  редактора нажмите F10 (или Ctrl-D) и вызовите основное
меню. Затем нажмите F для перехода в меню "Файл" и S для вы-
бора  команды  "Сохранить".  По  умолчанию вашему файлу было
присвоено имя NONАМЕ.РАS.  Теперь  вы  можете  переименовать
его, введя МYFIRST.PAS, а затем нажав клавишу "Enter" (в ин-
терактивной интегрированной среде программирования по  умол-
чанию предполагается использование расширений только вы наж-
мете  F2,  ваша  программа  будет  сохранена  на  диске  как
MYFIRST.PAS.
     При альтернативном методе записи программы на диск  ис-
пользу-   ется   оперативная  клавиша  комнанды  "Сохранить"
(File/Save) F2. Как и при выборе команды "Сохранить", в  от-
вет на F2 вы получите запрос, следует ли сохранить этот файл
с именем NONАМЕ.РАS. И в этом случае введите  МYFIRST.PAS  в
качестве имени файла.
 
             Компиляция вашей первой программы
 
     Для компиляции вашей первой  программы  возвратитесь  в
основное  меню. Если Вы все еще находитесь в окне редактиро-
вания, то для этого нажмите F10 (или Сtrl-К  D).  Нажмите  С
для  выбора  меню Compile (Компилировать), а затем нажмите С
еще раз для вызова команды Compile из  этого  меню;  или  же
нажмите F9. (Меню Compile имеет несколько средств; см. Главу
7).
     Турбо-Паскаль оттранслирует вашу программу, переведя ее
с  языка  Паскаль (который понятен вам) на машинный код 8086
для микропроцессора (который ваш персональный компьютер  мо-
жет  выполнить). Вы не можете видеть машинный код 8086, пос-
кольку он хранится в памяти (или на диске).
     Паскаль, также как и обычный  язык  (например,  англий-
ский)  имеет определенные синтаксические правила, которые вы
должны соблюдать. Однако структура Паскаля не допускает  не-
точностей  и синтаксических ошибок. Компилятор всегда должен
понимать, что вы имете в виду. Если вы используете в  опера-
торах  неподходящие символы или строите их некорректно, ком-
пилятор Паскаля выводит во время трансляции программы  сооб-
щение о синтаксической ошибке.
     Каковы наиболее часто встречающиеся ошибки времени ком-
пиляции?  Вероятно наиболее часто встречающимися сообщениями
об ошибках в Псакале, которые во время  компиляции  получают
неопытные программисты, являются сообщения "Unknown identif-
ier" ("Неописанный идентификатор") или "';'  expected"  ("Не
указан  символ ';'"). Паскаль требует обязательного описания
всех переменных, типов  данных,  констант,  подпрограмм  (то
есть  всех идентификаторов) до того, как они будут использо-
ваны. Если вы ссылаетесь на  неописанный  идентификатор  или
записываете  его  неверно, то выводится сообшение об ошибке.
Другой общей ошибкой являются  неполные  операторные  скобки
begin..end,  присваивание, выполненное для несовместимых ти-
пов данных (например, целых и  вещественных  чисел),  непра-
вильное  указание числа и типов параметров при вызове проце-
дуры или функции и т.д.
     С момента начала компиляции в середине экрана появляет-
ся  прямоугольная  рамка,  в  которой указываются сведения о
происходя- щей компиляции. В рамке  вспыхивает  сообщение  о
необходимости нажать клавиши Сtrl-Вreak, если нужно прервать
компиляцию. Если компиляция завершается успешно, то в  рамке
вспыхивает  сообщение  "Success:  Press  any key" ("Успешно!
Нажмите любую клавишу"). Рамка остается видимой до тех  пор,
пока  вы не нажмете какую-либо клавишу. Заметили, как быстро
все происходило?
     Если во время компиляции обнаруживается ошибка, то Тур-
бо-Паскаль прекращает компиляцию, помещает курсор в редакто-
ре в позицию, где содержится ошибка, и распечатывает сообще-
ние  об  ошибке в верхней части окна редактирования. Нажмите
любую клавишу с тем,  чтобы  удалить  сообщение  об  ошибке.
(Примечание: нажатие выбранной Вами клавиши используется ре-
дактором). Затем исправьте ошибку, сохраните на диске обнов-
ленный файл и оттранслируйте его заново.
 
             Выполнение вашей первой программы
 
     После устранения всех обнаруженных ошибок  возвратитесь
в  основное меню и для запуска программы выберете опцию "Вы-
полнить" (Run).
     Окно выходных данных увеличится до размера полного  эк-
рана, и на экране появится сообщение:
 
     Введите два числа:
 
Введите два любых целых числа, разделенные пробелом, а затем
нажмите "Enter". Появится следующее сообщение:
 
     Отношение равно
 
вместе с числом, представляющим отношение первого  числа  ко
второму.  На следующей строке будет выведено сообщение "Наж-
мите клавишу <Enter>" и программа бужет ожидать ввода клави-
ши Enter. 
     При завершении выполнения программы вы вернетесь в окно
редактора. Для того, чтобы просмотреть выведенную программой
информацию, выберите "Запуск/Экран  пользователя"  (Run/User
Screen) или нажмите Alt-F5.
     Если во время выполнения программы  встретится  ошибка,
то вы получите на экране примерно следующее сообщение:
 
Runtime error <errnum> at <segment>:<offset> Ошибка  времени
выполнения <номер_ошиб> в <сегмент>:<смещение>
 
где номер_ошиб - это соответствующий номер ошибки (см.  При-
ложение  Е "Справочного руководства" под заголовком "Сообще-
ния и коды ошибок"), сегмент:смещение -  адрес  памяти,  где
была обнаружена ошибка. (Если вам понадобится это число поз-
же, вы найдете его в окне выходных данных). Курсор  позицио-
нирутся в ту точку экрана, гду возникла ошибка, и на экран с
строке статуса редактора выводится поясняющее  сообщение  об
ошибке.  При этом вы можете получить дополнительную справоч-
ную информацию об ошибке, нажав клавишу F1. При нажатии  лю-
бой  другой  клавиши сообщение об ошибке очищается. Если вам
понадобится найти ячейку с ошибкой еще раз выберете  команду
Find  error  (Найти ошибку) из меню Compile. (Компилировать)
или нажмите клавиши Ctrl-Q. (Примечание: Если  ошибка  будет
обнаружена  при  выполнения программы из оперативной памяти,
вы сразу окажитесь в редакторе в том  месте  программы,  где
содержится ошибка).
     При завершении работы программы нажмите любую  клавишу,
и  управление будет передано Турбо-Паскалю. Вы окажетесь том
месте, откуда начали. При желании вы можете теперь модифици-
ровать свою программу. Если вы выберете команду Run без вне-
сения каких-либо изменений в свою программу,  то  Турбо-Пас-
каль сразу выполнит ее без повторной компиляции. 
     При  возврате  в  интерактивную  интегрированную  среду
программирования  вы  можете  просмотреть  выведенную  вышей
программой  информацию,  выбрав  команду   "Выполнение/Экран
пользователя"  (Run/User  Screen).  Это можно также сделать,
нажав клавиши Alt-F5. Повторный выбор переместит вас обратно
в среду Турбо-Паскаля.

               Проверка созданных вами файлов
 
     Выйдя  из  Турбо-Паскаля  (с  помощью  команды  "Выход"
(Quit)  из  меню File), вы можете просмотреть созданные Вами
исходные (паскалевские) файлы. Находясь в меню File, нажмите
О для вызова команд операционной системы (OS) или же нажмите
Q и в ответ на подсказку ДОСа введите следующую команду:
 
     dir myfirst.*
 
Вы получите на экране примерно такой список:
 
  MYFIRST   PAS   171   7-10-87   11:07a
 
Файл МYFIRST.PAS содержит только что написанную  вами  прог-
рамму на Паскале. Если вы после набора текста программы сох-
ранили ее на диске, то вы увидите  также  файл  MYFIRST.BAK,
автоматически создаваемый редактором.
     (Примечание: Этот список может также содержать выполня-
емый файл, если Вы измените в меню Compile принятое по умол-
чанию значение Destination (НАЗНАЧЕНИЕ) на  Disk.  Тогда  вы
будете иметь файл с именем МYFIRSТ.ЕХЕ, который содержит ма-
шинный код, сгенерированный Турбо-Паскалем из Вашей програм-
мы. В этом случае вы можете выполнить программу, введя в от-
вет на подсказку операционной системы ДОС  МYFIRST  и  нажав
клавишу "Enter").
 
             Шаг вперед: ваша вторая программа
 
     Теперь можно написать вторую программу, надстраивая  ее
над первой. Если вы вышли из Турбо-Паскаля, то для возвраще-
ния в интегрированную среду программирования введите в ответ
на подсказку ДОС команду EXIT. Если вы вышли из Турбо-Паска-
ля с помощью команды "Выход" (Quit) из меню  "Файл"  (File),
то следует набрать:
 
     turbo myfirst.pas
 
По этой команде вы сразу окажитесь в редакторе. Теперь изме-
ните свою программу МYFIRST.PAS следующим образом:
 
program MySecond;
var
  A,B     : integer;
  Ratio   : real;
begin
  repeat
    Write('Введите два числа: ');
    Readln(A,B);
    begin
      Ratio := A / B;
      Writeln('Отношение равно ',Ratio:8:2)
    end;
    Write('Нажмите <Enter>...');
    Readln
  until B = 0
end.
 
Если вы хотите сохранить эту программу на  диске  независимо
от первой, то перейдите в основное меню (нажав F10), выбери-
те меню File (нажав F), а затем вызовите команду Write  (на-
жав  W).  Когда появится подсказка ввести новое имя, напеча-
тайте МYSECOND.PAS и нажмите  клавишу  "Enter".  Выйдите  из
меню "Файл" (File) нажатием клавиши Еsc.
     Теперь используйте сокращенную форму команды. Для тран-
сляции  и  запуска  второй  программы нажмите одну клавишу R
(для команды "Запуск" (Run) из основного  меню),  что  соот-
ветствует выбору команды "Выполнение/Выполнение" Run/Run.Это
будет указанием  Турбо-Паскалю  выполнить  вашу  обновленную
программу.  Поскольку  в  программу  были внесены изменения,
Турбо-Паскаль, прежде чем выполнить, оттранслирует ее.
     В программе сделаны два основных изменения.  Во-первых,
большая часть программы вставлена в цикл repeat...until. Это
означает, что все операторы между repeat и until  будут  вы-
полняться  до  тех  пор, пока выражение, стоящее после until
имеет истинное значение (Тrue). И кроме того, вставлена про-
верка, имеет ли В нулевое значение или нет. Если В имеет ну-
левое значение, то выдается сообщение,  то  нужно  выйти  из
цикла.
     Запустите вашу программу, попробовав  ввести  некоторые
значения,  затем  введите  значения 1 0 и нажмите Enter. При
этом произойдет выход из программы, но не тем путем, который
предполагался:  произойдет  завершение  работы  по ошибке во
время выполнения. При этом вы вернетесь обратно в редактор и
курсор будет помещен пред строкой:
 
     Ratio := A/B;
 
а в верхней части окна редактора появится сообшение:
 
     Error 200: Division by zero
                (деление на ноль)
 
                  Отладка вашей программы
 
     Если вы и раньше занимались  программированием,  то  вы
можете  распознать  эту  ошибку и то, каким образом ее можно
исправить. Однако давайте воспользуемся случаем  и  покажем,
как  можно использовать интегрированный интерактивный отлад-
чик, встроенный в версию 5.0 Турбо-Паскаля. Отладчик  предс-
тавляет собой утилиту для устранения ошибок в вашей програм-
ме, то есть ее отладки. Интегрированный отладчик  Турбо-Пас-
каля  позволяет вам проходить вашу программу по шагам (пост-
рочно). При этом вы можете просматривать  переменные  и  ви-
деть, как измняются их значения.
     Чтобы  начать  сеанс  отладки,  выберите  команду  "За-
пуск/Трассировка"   (Run/Trece  Into)  или  нажмите  клавишу
Enter. Если программа  требует  повторной  компиляции,  Тур-
бо-Паскаль ее выполнит.
     Первый оператор  в  теле  программы  (в  данном  случае
begin)  подсвечивается.  Теперь мы можем назвать эту подсве-
ченную границу границей выполнения.
     При первом нажатии вами клавиши F7  инициируется  сеанс
отладки.  После  этого  нажмите  F7, чтобы начать выполнение
программы. При этом отладчик просто начнет выполнение  неви-
димого  вам выполняемого кода. Следующей выполняемой строкой
в этой программе является оператор Write на строке 7.
     Снова нажмите F7. Изображение  на  экране  изменится  и
граница выполнения переместится ко второму выполняемому опе-
ратору (Readln). При этом Турбо-Паскаль  переходит  в  экран
выполнения (где выполняется ваша программа и на экране пока-
зывается выходная  информация),  выполняет  первый  оператор
(Write) и переходит обратно в окно редактирования.
     Снова нажмите клавишу F7. На этот  раз снова появляется
экрн выполнения, но мы остемся в нем. Это происходит потому,
что  оператор  Readln  ожидает  ввода  двух  чисел. Наберите
два числа, разделив их пробелом. Убедитесь, что второе число
не равно нулю. Затем нажмите клавишу Enter. Вы снова  перей-
дете  в окно редактора, а граница выполнения переместится на
оператор присваивания (строка 9).
     Нажмите клавишу F7, выполнив тем самым оператор присва-
ивания.  Теперь  граница  выполнения  находится на операторе
Writeln (строка 10). Нажмите дважды F7. Вы находитесь  перед
выполнением  оператора Readln на строке 12. Нажмите F7, про-
верьте вывод вашей программы,  после  чего  нажмите  калвишу
Enter.
     Граница выполнения находится на  операторе  until.  Еще
раз нажмите F7 и вы вернетесь назад в начало цикла repeat.
     Вместо того, чтобы проходить один оператор  за  другим,
интегрированный  отладчик позволяет вам выполнять вашу прог-
рамму построчно. Это мощное средство, однако более  подробно
оно  будет обсуждаться в Главе 6. Здесь же мы кратко осветим
возможности использования  отладки,  отследив  возникновение
ошибки при делении на ноль.
 
                Использование окна просмотра
 
     Давайте посмотрим на значения объявленных вами перемен-
ных.  Нажмите  для  перехода  в  меню  "Прерывание/Просмотр"
(Break/Watch)  клавиши  Alt-B.  Выберите  команду  "Добавить
просмотр"  (Add Watch). Заметим, что вы можете также вызвать
эту команду непосредственно, нажав  клавишу  Ctrl-F7.  Когда
появится  рамка  "Добавить  просмотр",  неберите А и нажмите
Enter. Вы увидите, что А появится теперь  в  окне  просмотра
(Watch)  вместе  с его текущим значением. Используйте теперь
команду "Добавить просмотр" (Add Watch),  чтобы  добавить  в
окно просмотра В и Ratio. Наконец, используйте ее для добав-
ления в окно просмотра выражения А/В. Обратите внимание, что
окно просмотра увеличивается в размере при добавлении в него
переменных и выражений. Обратите также внимание также на то,
что  для  того,  чтобы окно просмотра появлялось на экране и
исчезало, можно использовать команду "Опции/Среда/Переключе-
ние  Окон"  (Options/Enviroment/Zoom Window) или оперативную
клавишу F5.
     Для прохождения вашей программы по шагам  выберите  ко-
манду  "Выполнение/Трассировка" (Run/Trace Into) или клавишу
F7. На этот раз, когда вы будете вводить два числа,  введите
в  качестве второго числа 0. Кгда вы нажмете клавишу Enter и
возвратитесь в интерактивную срду программирования,  посмот-
рите на выражение А/В. Вместо вывода его значения, после вы-
ражения   А/В   появится   фраза   "Invalid   floating-point
operation"  (недопустимая операция с плавающей запятой). Это
происходит из-за того, что деление на ноль неопределено. За-
метим,  что  появление  этого  сообщения в окне просмотра не
приводит к прекращению работы программы из-за ошибки. Вместо
этого  вам  выподится сообщение об ошибке, и отладчик в окне
посмотра не выполняет деление на ноль. 
     Снова нажмите клавишу F7, присвоив тем  самым  значение
А/В  переменной Ratio. В этот момент программа выполняет ос-
танов и в верхней части окна редактирования появляется сооб-
щение "Division by zero" (деление на ноль).
 
             Исправление вашей второй программы
 
     Теперь вы, вероятно, получили достаточно хорошее предс-
тавление  о том, что в вашей программе работает неправильно.
Если вы в качестве второго числа  (В)  вводите  значение  0,
программа останавливается по ошибке во время выполнения.
     Как можно исправить эту ошибку?. Если В имеет  значение
0,  то  не  нужно выполнять деление А/В. Отредактируйте свою
программы, чтобы она приобрела следующий вид:
 
program MySecond;
var
  A,B     : integer;
  Ratio   : real;
begin
  repeat
    Write('Введите два числа: ');
    Readln(A,B);
    if B = 0
      then Writeln('Деление на нуль запрещено.')
    else
    begin
      Ratio := A / B;
      Writeln('Отношение равно ',Ratio:8:2)
    end;
    Write('Нажмите <Enter>...');
    Readln
  until B = 0
end.
 
     Запустите вашу программу (самостоятельно или с  исполь-
зованием  отладчика). Если вы используете отладчик, обратите
внимание на то, что значения в окне просмотра изменяются  по
мере  того,  как  вы  проходите по шагам программу. Когда вы
дойдете до соответствующего места, введите в качестве значе-
ния  В  0. Программа после вывода сообщения "Деление на нуль
запрещено" приостановится и выдаст сообщение:
 
     "Нажмите <Enter>...".
 
     Теперь вы получили представление о том, какими  возмож-
ностями обладает отладчик. В его помощью вы можете проходить
программу по шагам, выводить на экран значения  выражений  и
переменных программы и наблюдать изменение этих значений при
работе программы.

           Высший уровень программирования: ваша 
                      третья программа
 
     При создании последней программы давайте слегка  пофан-
тазируем  и займемся немного графикой. Эта программа предпо-
лагает, что в системе имеется графическая плата или  адаптер
и  что  в  настоящий момент вы можете использовать эту плату
или адаптер. Если вы сомневаетесь, то выполните программу  и
посмотрите,  что  будет.  Если появится сообщение об ошибке,
то, вероятно, в системе нет графического  адаптера  (или  он
имеется,  но не поддерживается нашим модулем Graph). В любом
случае, дважды нажав клавишу "Enter", вы возвратитесь в  ин-
тегрированную среду программирования.
     Находясь в основном меню, вызовете команду "Файл/Загру-
зить"  (File/Load).  В  ответ на подсказку введите программу
МYTHIRD.PAS, при этом Вы будете находится в редакторе.  Ниже
приводится текст программы:
 
program MyThird;
uses
  Graph;
const
  Start   =  25;
  Finish  = 175;
  Step    =   2;
var
  GraphDriver:integer;  {Запоминает номер графического драйвера}
  GraphMode:integer; {Запоминает графический режим для драйвера}
  ErrorCode:word;          {Сообщает об исключительной ситуации}
  X1,Y1,X2,Y2 : integer;
begin
  GraphDriver := Detect;     {Автообнаружение графической платы}
  InitGraph(GraphDriver, GraphMode, '');
  ErrorCode := GraphResult;
  if ErrorCode <> grOK then                           
 {Ошибка+}
    Writeln('Графическая ошибка: ,GraphErrorMsg(ErrorCode));
    Writeln('(Возможно отсутствует графическая плата!)');
    Writeln('Выполнение программы прервано...');
    Halt(1);
  end;
  Y1 := Start;
  Y2 := Finish;
  X1 := Start;
  while X1 <= Finish do
  begin
    X2 := (Start+Finish) - X1;
    Line(X1, Y1, X2, Y2);
    X1 := X1 + Step;
  end;
  X1 := Start;
  X2 := Finish;
  Y1 := Start;
  while Y1 = Finish do
  begin
    Y2 := (Start+Finish) - Y1;
    Line(X1, Y1, X2, Y2);
    Y1 := Y1 + Step;
  end;
  OutText('Для завершения работы нажмите <RETURN>:');
  Readln;
  CloseGraph;
end.    { MyThird }
 
     Закончив ввод программы, нажмите F2 или выберите коман-
ду  "Файл/Сохранить" (File/Save) для сохранения ее на диске,
а затем нажмите клавишу F9 или  выберите  команду  "Компиля-
ция/Компиляция" (Compile/Compile) с тем, чтобы начать компи-
ляцию. Если в процессе компиляции ошибки не  обнаружены,  то
нажмите Ctrl-F9 или выберите команду "Выполнение/Выполнение"
(Run/Run) для запуска программы. Эта программа рисует  квад-
рат  с волнистым узором вдоль сторон. По завершении выполне-
ния программы вы снова в нее вернетесь.
     Посмотрим теперь, как эта программа работает.  Оператор
uses  указывает,  что  программа  использует модуль с именем
Graph. Этот модуль представляет собой библиотеку  или  набор
подпрограмм  (процедур и функций) и определений. В настоящем
случае модуль Graph содержит программы, которые вами исполь-
зуются: InitGraph, Line и СloseGraph.
     В секции с заголовком const определяются три  численные
константы  - Start, Finish и Step, которые влияют на размер,
раположение и внешний вид  квадрата.  Изменяя  их  значения,
можно изменять изображение квадрата. 
 
           Предупреждение. Не  присваивайте  Step  значение,
      меньшее 1, иначе программа окажется в состоянии зацик-
      ливания (цикл с бесконечным  количеством  повторений).
      Из этого состояния вы сможете выйти, только нажав кла-
      виши Сtrl-Alt-Del или вообще выключив свой  персональ-
      ный  компьютер.  При работе в интегрированной интерак-
      тивной среде прервать выполнение программы можно с по-
      мощью клавиш Ctrl-Break.
 
     Переменные Х1, Y1, Х2 и Y2 содержат значения  координат
противоположных  сторон квадрата. Сам квадрат рисуется с по-
мощью прямой линии, которая проводится из Х1,Y1 в Х2,Y2. За-
тем  координаты изменяются и проводится следующая линия. Ко-
ординаты всегда обозначают противоположные углы: первая  ли-
ния проводится из (25,25) в(175,175).
     Сама программа в основном состоит  из  двух  циклов.  В
первом  цикле  рисуется  линия из (25,25) в (175,175). Затем
координаты Х (горизонтальные координаты) сдвигаются  на  две
единицы,  так  что  следующая  линия  проходит  из (27,25) в
(173,175). Это продолжается до тех пор, пока не будет  нари-
сована линия из (175,25) в (25,175).
     Затем начинается второй цикл программы, в ходе которого
решается  аналогичная  задача  изменения координат Y (верти-
кальных координат), каждый раз  на  две  единицы.  Программа
Line  из модуля Graph рисует линию по заданным конечным точ-
кам.
     Последний оператор Readln  указывает  программе  подож-
дать, пока вы не нажмете клавишу, и после этого возвратиться
в текстовый режим и передать управление интегрированной сре-
де программирования.
 
                  Компилятор Турбо-Паскаля
 
     Теперь Вы знаете, как вводить, компилировать  и  запус-
кать  свои  программы. Благодаря методу обнаружения ошибок в
Турбо-Паскале и высокой скорости  компиляции  процесс  ввода
программы,  ее  тестирования  и  корректировки занимает мало
времени. Теперь более детально рассмотрим  некоторые  другие
аспекты этого процесса.
 
               Итак, что же такое компилятор?
 
     Ваш персональный компьютер РС, как и большинство микро-
компьютеров, имеет процессор, который представляет собой его
рабочий механизм. В вашем компьютере РС процессор  представ-
ляет  собой кристалл из "семейства" микросхем iАРх86 - серии
микропроцессоров, разработанных фирмой Интел. Это может быть
кристалл  8088,  8086,  80186,  80286 или даже 80386 - какой
именно не важно, поскольку Турбо-Паскаль генерирует код, ко-
торый можно выполнить на любом из них.
     Семейство iАРх86 имеет набор команд в  двоичном  предс-
тавлении, которые выполняются на всех этих кристаллах. Пере-
давая кристаллу iАРх86 правильный набор  команд,  можно  до-
биться, чтобы он вывел текст на экран, выполнил математичес-
кие операции, переслал текст или данные, нарисовал  картинку
-  словом,  сделал все, что может вам потребоваться. Эти ко-
манды обычно называют машинным кодом.
     Поскольку машинный код содержит чисто двоичную информа-
цию,  на  нем трудно писать программы и трудно их читать. Вы
можете писать команды на машинном уровне  в  форме,  удобной
для  чтения, используя ассемблер, то есть вы можете програм-
мировать на языке ассемблера. Однако,  при  этом  вы  должны
представлять,  как  работают микропроцессоры iАРх86. И здесь
вы убедитесь, что для выполнения простых операций  -  напри-
мер, распечатать число, - часто требуется большое количество
команд.
     Если вам не желательно иметь дело с машинным кодом  или
языком  ассемблера, можно использовать язык высокого уровня,
например, Паскаль. Программы на Паскале легко читать  и  пи-
сать, поскольку этот язык разработан для людей, а не для ма-
шин. Тем не менее персональный компьютер воспринимает только
машинный  код. Компилятор Турбо-Паскаля транслирует (или пе-
реводит) программу, написанную на Паскале, в команды,  кото-
рые могут быть восприняты компьютером. Компилятор, таким об-
разом, является программой, пересылающей данные: она  считы-
вает текст вашей программы и записывает его на соответствую-
щем машинном коде. 
 
                  Что нужно компилировать?
 
     В Турбо-Паскале одновременно можно редактировать только
одну  программу,  и  компилировать, как правило, можно также
только одну программу. Поэтому  при  выборе  команд  Compile
(Компилировать),  Make (Создать) и Build (Построить) из меню
Compile или команды Run (запустить) из основного меню,  Тур-
бо-Паскаль осуществляет компиляцию той программы, которую вы
в настоящий момент редактировали, и создает файл с  расшире-
нием  ЕХЕ  (в том случае, если значением Соmpile/Destination
(Компилировать/Назначение) является Disk (Диск)), или файл с
расширением .ТРU или код в памяти.
     Имеется два исключения из этого правила. Во-первых,  вы
можете,  используя  команду  Рrimary file (Основной файл) из
меню Compile, определить основной файл. В этом случае основ-
ной файл будет компилироваться с использованием средств Make
и Build, а редактируемый файл будет компилироваться  средст-
вом Compile.
     Во-вторых, можно указать Турбо-Паскалю повторно оттран-
слировать любой модуль, который ваша компилируемая программа
может использовать. В этом случае имеется два варианта:
 
     1. Вы можете указать Турбо-Паскалю повторно  оттрансли-
ровать все модули, которые были изменены с момента последней
компиляции программы. Эта возможность реализуется с  помощью
средства "Make".
     2. Вы можете указать Турбо-Паскалю повторно  оттрансли-
роать все модули, используемые вашей программой. Эта возмож-
ность реализуется с помощью средства "Build".
 
                     Где находится код?
 
     Когда используется  команда  "Выполнение"  (Run),  Тур-
бо-Паскаль (по умолчанию) сохраняет сгенерированный машинный
код в оперативной памяти (ОЗУ). Это имеет несколько  преиму-
ществ.  Во-первых, компилятор работает намного быстрее, пос-
кольку для записи машинного кода в ОЗУ требуется меньше вре-
мени, чем для записи его на гибкий или жесткий диск. Во-вто-
рых, поскольку программа уже загружена в ОЗУ, для ее  выпол-
нения нужно только дать указание компьютеру. В-третьих, пос-
ле завершения работы Вашей программы  более  легко  передать
управление  Турбо-Паскалю, поскольку он также остается в ОЗУ
в течение всего времени. 
     Если компиляция с сохранением результата в ОЗУ так  эф-
фективна,  почему  бы не использовать ее всегда? На это есть
две причины. Во-первых, при такой компиляции сгенерированный
машинный код никогда не сохраняется на диске и свои програм-
мы вы можете запускать только из  Турбо-Паскаля.  Здесь  нет
возможности  ни  выполнить программу из МС-ДОСа, ни скопиро-
вать ее.
     Вторая трудность связана с памятью, поскольку ее  может
быть  не  достаточно.  Это  может иметь место в случае, если
система имеет небольшой объем оперативной памяти, если  ваша
программа  очень большая или если программа использует много
памяти для динамического распределения данных.
     Файл с расширением ЕХЕ (прикладную программу),  который
можно  запустить  на  выполнение  вне Турбо-Паскаля, создать
нетрудно.  Для  этого  нужно  выбрать   опцию   "Назначение"
(Destination)  из меню Compile. Эта опция позволяет переклю-
чать назначение между Disk (диском) и Memory (памятью). Если
вы  установите  значение Disk, а затем заново оттранслируете
свою программу, то Турбо-Паскаль создаст файл с кодом, кото-
рый можно будет запустить на выполнение из операционной сис-
темы ДОС, напечатав его имя в ответ на подсказку.
     При этом создаваемый файл имеет точно такое же имя, как
и исходный файл, но другое расширение - .ЕХЕ; например, сге-
нерированный файл с кодом для  программы  МYFIRST.PAS  будет
иметь имя МYFIRST.ЕХЕ.
     Независимо от того, компилируете вы на диск или  в  па-
мять, по команде "Выполнение" (Run) сгенерированная програм-
ма выполняется сразу после компиляции.
 
               Команды Compile, Make и Build
 
     Меню Compile имеет множество возможностей, три из кото-
рых  представляют  собой команды компиляции: Compile, Make и
Build. Все три команды из исходного файла создают файл  типа
ЕХЕ (в случае, если значением Destination (Назначение) явля-
ется Disk) или файл с расширением .ТРU. Рассмотрим  различия
между этими командами.
     Команда Compile (Компилировать) транслирует файл, нахо-
дящийся в редакторе.
     Команда Make (Создать) проверяет, не был ли указан  ос-
новной  файл.  Определив  это, команда просматривает время и
дату создания файлов с расширением .РАS  и  .ТРU  (предвари-
тельно  оттранслированные файлы модулей), содержащих модули,
на которые имеются ссылки в операторе uses (если он есть)  в
компилируемой программе. (Модуль представляет собой совокуп-
ность констант, типов данных, переменных, процедур  и  функ-
ций;  более подробно об этом см. Главу 4 "Модули и связанные
с ними тонкости"). Если в файл с расширением .РАS  вносились
изменения  со времени создания соответствующего файла с рас-
ширением .ТРU, то Турбо-Паскаль автоматически  оттранслирует
этот  файл  РАS с модулем и создаст новый файл с расширением
.ТРU. Турбо-Паскаль также заново оттранслирует  модуль,  ис-
пользующий  другой модуль, у которого изменился интерфейс, и
модуль, имеющий ссылку на  файл  с  расширением  расширением
ТРU.  Короче  говоря,  Турбо-Паскаль обеспечивает, чтобы все
модули, от которых зависит ваша программа,  были  обновлены.
Выполнив это, Турбо-Паскаль осуществляет компиляцию и компо-
новку вашей программы, создавая файл с расширением .ЕХЕ.
     Команда Build (Построить) выполняется точно так же, как
команда  Make,  за  тем важным исключением, что здесь заново
компилируются все модули, используемые вашей программой (как
и  все модули, используемые этими модулями и так далее), не-
зависимо от того, были они изменены или нет.
     Ниже приводятся  замечание  относительно  использования 
Make и Build:
     Если Make или Build не могут найти файл  с  расширением
правильным.  Таким  образом,  если ваша программа использует
некоторые стандартные модули, то Турбо-Паскаль  не  пытается
оттранслировать их заново.
 


