Программирование на Free Pascal и Lazarus

Введение. Средства разработки программ на языке Free Pascal

Разбить на страницы
Показывать лекцию целиком

О свободном программном обеспечении для образования

Эта книга — не просто учебник по программированию на давно уже ставшем традиционным для преподавания языке Паскаль. Это первое издание на русском языке, посвященное свободной реализации этого языка — Free Pascal и свободной же интегрированной среде разработки Lazarus. Как и любые свободные програм-мы, компилятор Free Pascal compiler и среда Lazarus могут быть установлены на любое количество компьютеров бесплатно (без лицензионных отчислений), мо-гут использоваться без ограничений, их исходные тексты полностью доступны для изучения и модификации. А это означает, что они идеально подходят для задач и условий обучения программированию, не накладывая на учащих и уча-щихся дополнительных расходов и давая им возможность максимально полно разобраться в предмете (вплоть до анализа исходных текстов компилятора).

Преимущества свободного программного обеспечения для образования были признаны в России на самом высоком уровне, и осенью 2007 года состоялся пер-вый открытый конкурс на разработку и поставку пакета свободного программ-ного обеспечения. Его победителем стала группа "Армада". Соисполнителем по этому конкурсу стала компания ALT Linux, работающая с 2001 года и являюща-яся российским лидером в разработке свободного ПО и дистрибутивов на базе Linux.

В рамках проекта сотрудниками ALT Linux был разработан и протестирован пакет свободного программного обеспечения (ПСПО), который был внедрен бо-лее чем в 1000 школ трех пилотных регионов России — Республики Татарстан, Пермского края и Томской области. В этих регионах была отработана не только технология внедрения, но и технология организации техподдержки, что очень важно для успеха проекта. Несмотря на то что пилотных регионов только три, любая школа России могла добровольно присоединиться к проекту и бесплатно получить комплект ПСПО. Для популяризации этой возможности и проекта в целом был проведен ряд семинаров в разных уголках страны. По итогам 2008 года, в проекте внедрения участвует 2151 школа.

В 2010 году компания ALT Linux выпустила новый комплект образователь-ных дистрибутивов, Альт Линукс 5.0 Школьный, который является авторским развитием пакета свободного программного обеспечения (ПСПО) 2007—2008 го-дов.

Комплект включает в себя дистрибутивы операционной системы ALT Linux, содержащие все необходимые программы для подготовки уроков и обучения ин-форматике, значительный набор программ по математике, физике, черчению, астрономии и другим предметам, обучающие и развивающие игры, стандартный набор офисных программ.

Альт Линукс Школьный может быть установлен практически на любой ком-пьютер, так как включает в себя версии, адаптированные под различные систем-ные требования аппаратного обеспечения.

Дистрибутивы комплекта Альт Линукс 5.0 Школьный включают

Free Pascal и Lazarus и идеально подходят для освоения материала

книги и организации преподавания на основе языка Free Pascal.

Введение

Авторы книги давно хотели написать учебник по программированию, который был бы полезен пользователям различных операционных систем. Благодаря компании ALT Linux, мы попытались это сделать. В качестве языка программирования был выбран язык Free Pascal, который представляется нам ясным, логичным и гибким языком и приучает к хорошему стилю программирования. Свободно распространяемые компиляторы языка Free Pascal реализованы во многих дистрибутивах Linux, есть свободные компиляторы и для ОС Windows. Кроме того, в этой книге мы попытались познакомить читателя с принципами создания визуальных приложений в среде Lazarus.

В настоящее время существует множество подходов к изучению программирования. По мнению авторов, нельзя изучать программирование на каком-либо языке, не изучив методы разработки алгоритмов. Одним из наиболее наглядных методов составления алгоритмов является язык блок-схем. Об этом свидетельствует и многолетний опыт авторов преподавания программирования. Мы попытались написать учебник по алгоритмизации и программированию, насколько нам это удалось — судить читателю.

Авторы надеются, что читатель имеет первоначальные навыки работы на персональном компьютере под управлением ОС Linux или Windows и знаком со школьным курсом математики.

Книга состоит из десяти глав.

В первой главе читатель узнает о средствах разработки программ на Free Pascal, напишет свои первые программы.

Во второй главе изложены основные элементы языка (переменные, выражения, операторы) Free Pascal. Описаны простейшие операторы языка: присваивания и ввода-вывода, приведена структура программы, приведены примеры простейших программ линейной структуры.

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

В четвёртой главе читатель на большом количестве примеров познакомится с подпрограммами. Описан механизм передачи параметров между подпрограммами. Один из параграфов посвящён рекурсивным подпрограммам. В завершении главы рассмотрен вопрос создания личных модулей.

Пятая и шестая главы посвящены изучению алгоритмов обработки массивов и матриц. Здесь же читатель познакомится и с реализацией этих алгоритмов на языке Free Pascal. Именно эти главы совместно с третьей являются ключом к пониманию принципов программирования.

Седьмая глава знакомит читателя с обработкой файлов на языке Free Pascal под управлением ОС Linux и Windows. На практических примерах изложен механизм прямого и последовательного доступа к файлам и обработки ошибок ввода-вывода. Описана работа с бестиповыми и текстовыми файлами.

Восьмая глава посвящена обработке строк и записей. Приведённые примеры позволят читателю разобраться с принципами обработки таблиц в языке Free Pascal.

В девятой главе авторы описали принципы объектно-ориентированного программирования и их реализацию в языке Free Pascal.

В десятой главе рассмотрены графические возможности Lazarus, изложено подробное описание алгоритма построения графиков непрерывных функций на экране дисплея. Приведены тексты программ изображения графиков функций с подробными комментариями.

К каждой теме прилагаются 25 вариантов задач для самостоятельного решения, что позволит использовать книгу не только начинающим самостоятельно изучать программирование, но и преподавателям в учебном процессе.

С рабочими материалами книги можно познакомиться на сайте Евгения Ростиславовича Алексеева — http://www.teacher.dn-ua.com.

Авторы благодарят компанию ALT Linux и лично Кирилла Маслинского за возможность издать эту книгу.

Авторы выражают благодарность своим родным за помощь и понимание.

Алексеев Е. Р., Чеснокова О. В., Кучер Т. В.

Донецк, январь 2009 г.

Средства разработки программ на языке Free Pascal

В этой главе мы начинаем знакомство с программированием на языке Free Pascal. Язык программирования Free Pascal ведёт своё начало от классического языка Pascal, который был разработан в конце 60-х годов XX века Никлаусом Виртом. Н. Вирт разрабатывал этот язык как учебный язык для своих студентов. С тех пор Pascal, сохранив простоту и структуру языка, разработанного Н. Виртом, превратился в мощное средство программирования. С помощью современного языка Pascal можно производить простые расчёты, разрабатывать программы для проведения сложных инженерных и экономических вычислений.

1.1 Процесс разработки программы

Разработку программы можно разбить на следующие этапы:

  • Составление алгоритма решения задачи. Алгоритм — это описание последовательности действий, которые необходимо выполнить для решения поставленной задачи.
  • Написание текста программы. Текст программы пишут на каком-либо языке программирования (например на Free Pascal) и вводят его в компьютер с помощью текстового редактора.
  • Отладка программы. Отладка программы — это процесс устранения ошибок из текста программы. Все ошибки делятся на синтаксические и логические. При наличии синтаксических ошибок (ошибок в написании операторов) программа не запускается. Подобные ошибки исправляются проще всего. Логические ошибки — это ошибки, при которых программа работает, но неправильно. В этом случае программа выдаёт не те результаты, которые ожидает разработчик или пользователь. Логические ошибки исправить сложнее, чем синтаксические, иногда для этого придётся переписывать отдельные участки программы, а иногда и перерабатывать весь алгоритм.
  • Тестирование программы. Тестирование программы — процесс выявления ошибок в работе программы.
  • Процессы отладки и тестирования сопровождаются неоднократным запуском программы на выполнение. Процесс запуска программы может быть осуществлён только после того, как введённая в компьютер программа на алгоритмическом языке Pascal Как и на любом другом языке. будет переведена в двоичный машинный код и создан исполняемый файл. Процесс перевода текста программы в машинный код называют трансляцией. Все трансляторы делятся на два класса:

  • интерпретаторы — трансляторы, которые переводят каждый оператор программы в машинный код, и по мере перевода операторы выполняются процессором;
  • компиляторы переводят всю программу целиком, и если перевод всей программы прошёл без ошибок, то полученный двоичный код можно запускать на выполнение.
  • Если в качестве транслятора выступает компилятор, то процесс перевода текста программы в машинный код называют компиляцией. При переводе программы с языка Pascal в машинный код используются именно компиляторы Вместо термина "компилятор" в литературе иногда используют термин "транслятор компилирующего типа". .

    Рассмотрим основные этапы обработки компилятором программы на языке Pascal.

  • Компилятор анализирует, какие внешние библиотеки В библиотеках языка Pascal хранится объектный (двоичный) код стандартных (таких, как $$sin(x), cos(x)$$ и др.) функций и процедур языка. нужно подключить, разбирает текст программы на составляющие элементы, проверяет синтаксические ошибки и в случае их отсутствия формирует объектный код (в Windows — файл с расширением .obj, в Linux — файл с расширением.o). Получаемый на этом этапе двоичный файл (объектный код) не включает в себя объектные коды подключаемых библиотек.
  • На втором этапе компоновщик подключает к объектному коду программы объектные коды библиотек и генерирует исполняемый код программы. Этот этап называется компоновкой или сборкой программы. Полученный на этом этапе исполняемый код программы можно запускать на выполнение.
  • На сегодняшний день существует множество компиляторов языка Pascal, среди которых можно выделить Borland Pascal, Delphi, а также свободно распространяемый кроссплатформенный компилятор языка Free Pascal и среду визуального программирования Lazarus.

    1.2 Среда программирования Free Pascal

    Рассмотрим процесс установки компилятора Free Pascal в ОС Linux. Для установки программ в операционной системе Linux служит менеджер пакетов. В разных дистрибутивах Linux используются различные менеджеры пакетов, например, в ALT Linux можно воспользоваться программой Synaptic. Окно Synaptic представлено на рис. 1.1. В школьной линейке дистрибутивов ALT Linux Free Pascal и Lazarus присутствуют сразу после установки операционной системы.

    (рис 1.1) Менеджер пакетов Synaptic

    Обратите внимание, что для установки программ необходимо установить список источников программ (список репозиториев Список репозиториев — список официальных сайтов, с которых можно устанавливать программы. ).

    Для установки Free Pascal в окне Synaptic (см. рис. 1.1) необходимо щёлкнуть по кнопке Найти и в открывшемся окне ввести fpc (см. рис. 1.2). Менеджер программ находит программу FreePascal, после чего в окне Synaptic необходимо отметить программы fpc (Free Pascal Compiler Meta Package) для установки (с помощью контекстного меню или с помощью кнопки Отметить для обновления) и начать установку, щёлкнув по кнопке Применить. После этого начнётся процесс загрузки пакетов из Интернета и их установки.

    В состав метапакета fpс входит компилятор языка Free Pascal fpc и среда разработки fp-ide. Для запуска среды разработки в Linux необходимо просто в терминале набрать fp. На рис. 1.3 представлено окно среды разработки программ на языке Free Pascal в ОС Linux.

    (рис 1.2) Окно поиска компилятора Free Pascal в Synaptic (рис 1.3) Среда программирования Free Pascal в ОС Linux

    Для установки Free Pascal в ОС Windows необходимо запустить скачанный со страницы загрузки инсталяционный файл. Первое диалоговое окно сообщит о начале процесса установки Free Pascal на компьютер. Для продолжения установки во всех следующих окнах нужно выбирать кнопку Next, для возврата к предыдущему шагу — кнопку Back, а для прерывания процесса установки — кнопку Cancel. В следующем окне нужно определить путь для установки Free Pascal. По умолчанию установка происходит в корневой каталог диска С. Для выбора другого пути установки можно воспользоваться кнопкой Browse... Кроме того, в этом окне выводится информация о количестве свободного места на диске. В следующих четырёх окнах пользователь сможет выбрать из списка тип установки: Full Installation (полная), Minimum Installation (минимальная), Custom Installation (выбор компонентов), указать название устанавливаемого приложения в главном меню, выбрать типы файлов, поддерживаемых средой, и начать процесс установки Free Pascal, нажав кнопку Install. Контролировать процесс установки можно с помощью линейного индикатора.

    (рис 1.4) Окно компилятора Free Pascal

    Запуск среды программирования Free Pascal в Windows можно осуществить из главного меню: Пуск — Программы — Free Pascal — Free Pascal. На экране появится окно, представленное на рис. 1.4.

    Установив пакет Free Pascal, мы получили компилятор и среду программирования.

    Компилятор Free Pascal работает в командной строке. Для того чтобы создать исполняемый файл из текста программы, написанного на языке Pascal, необходимо выполнить команду

    fpc name.pas

    Здесь fpc — имя исполняемого файла компилятора командной строки Free Pascal, name.pas — имя файла с текстом программы. В результате в L inux будет создан исполняемый файл с именем name (в Windows имя исполняемого файла — name.exe).

    При использовании компилятора fpc после компиляции автоматически происходит компоновка программы (запуск компоновщика make).

    Технология работы с компилятором Free Pascal может быть такой: набираем текст программы в стандартном текстовом редакторе, затем в терминале запускаем компилятор, после исправления синтаксических ошибок запускаем исполняемый файл. При такой технологии работы с компилятором, необходимо не забывать сохранять текст программы, иначе при запуске компилятора будет компилироваться старая версия текста программы.

    Однако среда программирования позволяет значительно упростить процесс разработки программ. В состав среды программирования Free Pascal входит текстовый редактор, транслятор и отладчик. Рассмотрим их работу подробнее.

    1.2.1 Работа в текстовом редакторе Free Pascal

    С помощью редактора Free Pascal можно создавать и редактировать тексты программ. После открытия пустого окна (File — New) или загрузки текста программы (File — Open) мы находимся в режиме редактирования, что подтверждается наличием в окне курсора (небольшого мигающего прямоугольника). Для перехода из режима редактирования к главному меню нужно нажать клавишу F10, обратно — Esc. Кроме того, этот переход можно осуществить щелчком мыши либо по строке главного меню, либо по полю редактора.

    Редактор Free Pascal обладает возможностями, характерными для большинства текстовых редакторов. Остановимся на некоторых особенностях.

    Работа с фрагментами текста (блоками) в редакторе Free Pascal может осуществляться с помощью главного меню и функциональных клавиш. Выделить фрагмент текста можно с помощью клавиши Shift и клавиш перемещения курсора (стрелок).

    В главном меню для работы с фрагментами текста предназначены команды пункта редактирования Edit:

  • Copy (Ctrl+C) — копировать фрагмент в буфер;
  • Cut (Ctrl+X) — вырезать фрагмент в буфер;
  • Paste (Ctrl+V) — вставить фрагмент из буфера;
  • Clear (Ctrl+Del) — очистить буфер;
  • Select All — выделить весь текст в окне;
  • Unselect — отменить выделение.
  • Команды Copy и Cut применяют только к выделенным фрагментам текста. Кроме того, пункт меню Edit содержит команды Undo и Redo, с помощью которых можно отменять и возвращать выполненные действия.

    Комбинации клавиш, предназначенные для работы с блоком, таковы:

  • Ctrl+K+B — пометить начало блока;
  • Ctrl+K+K — пометить конец блока;
  • Ctrl+К+Т — пометить в качестве блока слово слева от курсора;
  • Ctrl+K+Y — стереть блок;
  • Ctrl+K+C — копировать блок в позицию, где находится курсор;
  • Ctrl+K+V — переместить блок в позицию, где находится курсор;
  • Ctrl+K+W — записать блок в файл;
  • Ctrl+K+R — прочитать блок из файла;
  • Ctrl+K+P — напечатать блок;
  • Ctrl+К+Н — снять пометку блока; повторное использование Ctrl+К+Н
  • вновь выделит блок.

    Работа с файлами в среде Free Pascal осуществляется с помощью команд File главного меню и функциональных клавиш:

  • New — открыть окно для создания новой программы;
  • Open (F3) — открыть ранее созданный файл;
  • Save (F2) — сохранить созданный файл;
  • Save As — сохранить файл под другим именем;
  • Exit (Alt+X) — выйти из среды программирования.
  • При создании новой программы ей по умолчанию присваивается стандартное имя NONAMEOO.PAS (NO NAME — нет имени).

    При первом сохранении файла пользователю будет предложено ввести его имя. При повторном сохранении файл сохраняется под тем же именем. Команда Save As аналогична первому сохранению. Если файл не был сохранён, то при попытке завершить работу со средой, появится запрос о необходимости сохранить изменения в файле. При открытии ранее созданного файла его имя выбирают из списка существующих файлов.

    В редакторе Free Pascal допускается работа с несколькими окнами. Переключаться между окнами можно двумя способами:

  • для переключения в окно с номером от первого до девятого нажать комбинацию клавиш Alt+i, где i — номер окна (например Alt+5 — вызов пятого окна);
  • для вывода списка окон на экран нажать комбинацию клавиш Alt+0, появится список активных окон, в котором будет необходимо выбрать нужное и нажать Enter.
  • 1.2.2 Запуск программы в среде Free Pascal и просмотр результатов

    После того как текст программы набран, его следует перевести в машинный код. Для этого необходимо вызвать транслятор с помощью команды Compile — Compile (комбинация клавиш Alt+F9). На первом этапе транслятор проверяет наличие синтаксических ошибок. Если в программе нет синтаксических ошибок, то на экране сообщается о количестве строк транслированной программы и объёме доступной оперативной памяти.

    Если на каком-либо этапе транслятор обнаружит ошибку, то в окне редактора курсор укажет ту строку программы, в которой ошибка была обнаружена. При этом в верхней строке редактора появится краткое диагностическое сообщение о причине ошибки.

    Для запуска транслированной программы необходимо выполнить команду Run — Run (комбинация клавиш Ctrl+F9), после чего на экране появляется окно командной строки, в котором пользователь и осуществляет диалог с программой. После завершения работы программы вновь появляется экран среды Free Pascal.

    Для просмотра результатов работы программы в OC Windows необходимо нажать комбинацию клавиш Alt+F5. Для возврата в оболочку следует нажать любую клавишу.

    (рис 1.5) Окно Geany c шаблоном программы на Free Pascal

    Однако при использовании среды программирования существует проблема вывода кириллического текста в консольном приложении.

    Альтернативой среды программирования Free Pascal является текстовый редактор Geany (http://www.geany.org), который позволяет разрабатывать программы на различных языках программирования.

    1.3 Среда разработки Geany

    Среда разработки (её также иногда называют текстовым редактором) Geany есть в репозитории большинства современных дистрибутивов Linux Существует версия Geany и для Windows (http://www.geany.org/Download/Releases) . Разработка программ с использованием Geany довольна удобна. Geany можно установить стандартным для вашего дистрибутива способом, например, с помощью менеджера пакетов Synaptic.

    Последовательно рассмотрим основные этапы разработки программы с использованием Geany.

  • Необходимо создать шаблон приложения на Pascal (или другом языке программирования) с помощью команды Файл — New (with Template) — Pascal source file. После чего появится окно с шаблоном исходного кода (см. рис. 1.5), в котором необходимо ввести текст программы и сохранить его (см. рис. 1.6).
  • Для компиляции и запуска программы на выполнение служит пункт меню Построить. Для компиляции программы следует использовать команду Построить — Собрать (F8). В этом случае будет создан файл с объектным кодом программы и исполняемый файл. После компиляции программы ниже окна с программой будет представлен подробный отчёт (см. рис. 1.6) о результатах компиляции. Этот отчёт следует внимательно изучить, поскольку он позволяет быстро исправлять синтаксические ошибки. В сообщении об ошибке указана строка, где она найдена, и её краткое описание на английском языке. В отчётах по результатам компиляции могут быть ошибки (error ) и сообщения (warning ). Сообщения — это обнаруженные компилятором неточности, при которых, однако, возможно создание исполняемого кода программы.
  • Для запуска программы следует выполнить команду Построить — Выполнить (F5). После чего на экране появится окно терминала (см. рис. 1.7), в котором можно вводить данные и увидеть результаты работы программы.
  • (рис 1.6) Окно Geany c текстом программы на языке Free Pascal

    В Geany можно настроить команды вызова компиляции, компоновки и запуска. Для этого служит команда Построить — Установить включения и аргументы. Это окно для работы с файлами с расширением pas представлено на рис. 1.8. При настройке строк Compile и Запуск следует учитывать, что %f — имя компилируемого файла, %e — имя файла без расширения.

    (рис 1.7) Окно терминала с результатами работы программы (рис 1.8) Окно Установить включения и аргументы для Free Pascal

    Выбор среды для разработки консольных программ на Free Pascal — дело пользователя. Авторы советуют читателю под управлением ОС Linux использовать Geany Это субъективный совет авторов. , хотя для набора текста программы можно использовать и обычный текстовый редактор (например gedit, tea, kate и др.), а компиляцию осуществлять в терминале. Под управлением Windows логичнее использовать fp-ide.

    1.4 Среда визуального программирования Lazarus

    Lazarus — это среда визуального программирования. Здесь программист получает возможность не просто создавать программный код, но и наглядно (визуально) показывать системе, что бы он хотел увидеть.

    Технология визуального программирования позволяет строить интерфейс Интерфейс — диалог, обмен информацией. будущей программы из специальных компонентов, реализующих нужные свойства. Количество таких компонентов достаточно велико. Каждый компонент содержит готовый программный код и все необходимые для работы данные, что избавляет программиста от создания того, что уже создано ранее. Подобный подход во много раз сокращает время написания программы. Кроме того, быстрота создания программного кода в Lazarus достигается за счёт того, что значительная часть текста формируется автоматически.

    (рис 1.9) Окно поиска пакета Lazarus для установки

    Среда визуального программирования Lazarus сочетает в себе компилятор, объектно-ориентированные средства визуального программирования и различные технологии, облегчающие и ускоряющие создание программы.

    1.4.1 Установка Lazarus в ОС Linux

    Для установки Lazarus в окне Synaptic (см. рис. 1.1) необходимо щёлкнуть по кнопке Найти. В появившемся окне поиска (см. рис. 1.9) вводим имена необходимых программ (lazarus, fp, fpc, fpc-source) и щёлкаем по кнопке Найти. Менеджер программ находит программы Lazarus и FreePascal, после чего в окне Synaptic необходимо отметить программы Lazarus, fp, fpc, fpc-ide для установки (с помощью контекстного меню или с помощью кнопки Отметить для обновления) и начать установку, щёлкнув по кнопке Применить. После этого Synaptic предложит установить ещё несколько пакетов, которые необходимы для нормального функционирования Lazarus. С этим предложением нужно согласиться. После этого начнётся процесс загрузки файлов пакетов и установки Lazarus на компьютер. После установки запуск программы осуществляется с помощью команды меню Разработка — Lazarus Не исключено, что вызов Lazarus в других дистрибутивах Linux может осуществляться и с помощью другой команды главного меню. .

    Для установки Lazarus можно не использовать менеджер пакетов Synaptic, а самостоятельно загрузить все необходимые пакеты с сайта проекта и затем вручную их установить. Подробное описание процесса ручной установки можно найти в Интернете.

    1.4.2 Установка Lazarus под управлением ОС Windows

    Рассмотрим особенности установки среды визуального программирования La-za-rus для операционной системы Windows. Перед установкой необходимо скачать установочный файл со страницы загрузки. Установка Lazarus на компьютер осуществляется с помощью Мастера установки. Для того чтобы Мастер начал свою работу, необходимо запустить программу установки Lazarus Setup. Появится диалоговое окно (рис. 1.10), в котором пользователь может выбрать из списка язык для дальнейшего диалога с Мастером установки. Нажатие кнопки ОК приведёт к появлению следующего окна. Использование кнопки Отмена в этом и во всех последующих окнах приведёт к прерыванию работы Мастера установки.

    (рис 1.10) Окно Мастера установки. Выбор языка. (рис 1.11) Начало процесса установки Lazarus

    Следующее окно (рис. 1.11) — информационное. Оно сообщает пользователю о начале процесса установки. Нажатие кнопки Далее приведёт к следующему шагу Мастера установки.

    На следующем этапе (рис. 1.12) необходимо выбрать путь для установки Lazarus. По умолчанию программа будет установлена на диск С. Для выбора иного пути для установки следует воспользоваться кнопкой Обзор. В этом и во всех последующих окнах с помощью кнопки Назад можно вернуться к предыдущему шагу Мастера установки.

    (рис 1.12) Окно выбора пути для установки Lazarus (рис 1.13) Окно выбора компонентов для установки приложения

    Следующий шаг — выбор из полного перечня средств системы необходимых компонентов (рис. 1.13). По умолчанию будут установлены все компоненты системы. Отменить установку компонента можно, если щелчком мыши убрать метку рядом с его именем.

    (рис 1.14) Среда визуального программирования Lazarus

    В следующих окнах Мастера установки пользователь может выбрать папку меню Пуск, в которой будет создан ярлык для устанавливаемого приложения По умолчанию ярлык создаётся в меню Пуск — Программы. , и создать на рабочем столе ярлык для приложения Lazarus С помощью щелчка мыши установить маркер в поле рядом с командой Создать значок на рабочем столе. . Далее Мастер установки сообщит о том, куда будет установлено приложение Lazarus, коков тип установки, какие компоненты системы были выбраны, где будет создан ярлык и будет ли создан значок на рабочем столе. После этого начнётся процесс установки приложения на компьютер. Контролировать установку приложения пользователь может с помощью линейного индикатора, а прервать — кнопкой Отмена. Завершается процесс установки щелчком по кнопке Завершить. Запуск Lazarus можно осуществить из главного меню командой Пуск — Программы — Lazarus — Lazarus.

    1.4.3 Среда Lazarus

    На рис. 1.14 показано окно, которое появится после запуска Lazarus. В верхней части этого окна размещается главное меню и панель инструментов. Слева расположено окно инспектора объектов, а справа — окно редактора исходного кода.

    Если свернуть или сдвинуть окно редактора, то станет доступным окно формы, представленное на рис. 1.15.

    Работу над программой в среде визуального программирования условно можно разбить на две части. Первая — это создание внешнего вида (интерфейса) будущей программы, вторая — написание программного кода. Окно инспектора объектов и окно формы нужны для создания интерфейса программы, а редактор исходного кода — для работы с её текстом. Файлы, из которых в результате получается программа, называют проектом.

    (рис 1.15) Окно формы

    1.4.4 Главное меню Lazarus

    Все команды, необходимые для работы в среде визуального программирования Lazarus, содержатся в главном меню. Доступ к командам главного меню осуществляется одинарным щелчком левой кнопкой мыши.

    Работа с файлами в среде Lazarus осуществляется при помощи пункта меню Файл. Команды этого пункта меню можно разбить на группы:

  • создание новых файлов — Создать модуль, Создать форму, Создать...;
  • загрузка ранее созданных файлов — Открыть..., Вернуть, Открыть недавнее;
  • сохранение файлов — Сохранить, Сохранить как..., Сохранить все;
  • закрытие файлов — Закрыть, Закрыть все файлы редактора;
  • удаление файлов из каталога — Очистить каталог...;
  • вывод на печать — Печать...;
  • перезагрузка среды — Перезапуск;
  • выход из среды — Выход.
  • Команды, предназначенные для редактирования текста программного кода, собраны в меню Правка. В основном, это команды, характерные для большинства текстовых редакторов:

  • команды отмены или возврата последней операции — Отменить, Вернуть;
  • команды переноса, копирования и вставки выделенного фрагмента текста в буфер — Вырезать, Копировать, Вставить;
  • команды, работающие с выделенным блоком текста — Сдвинуть блок вправо, Сдвинуть блок влево;
  • команды смены регистра — Верхний регистр выделения, Нижний регистр выделения;
  • команды выделения фрагмента текста собраны в пункте меню Выделить.
  • (рис 1.16) Выбор конструкции языка для заключения в неё выделенного фрагмента программного кода

    Далее будут перечислены специфические команды редактора программного кода Lazarus.

    Команда Закомментировать добавляет в начале каждой строки выделенного фрагмента два символа "косая черта", что превращает выделенный текст в комментарий Комментарий — фрагмент программного кода, который игнорируется компилятором. Обычно комментарии используют для пояснений к программе или для временного исключения фрагментов текста при отладке. , команда Раскомментировать выполняет обратное действие.

    Команда Заключить выделение в... приводит к открытию диалогового окна (рис. 1.16), в этом окне пользователь может выбрать конструкцию языка программирования, в которую будет заключён выделенный фрагмент текста.

    Команда Сортировка выбранного... также открывает диалоговое окно, в котором можно установить параметры сортировки текста в выделенном фрагменте.

    Команды меню Поиск также можно разделить на группы. Первая группа — это непосредственно команды поиска и замены, вторая — команды перехода, а третья — работа с закладкой. В четвёртой группе объединены команды поиска, замены и перехода в выделенном фрагменте. Большинство из этих команд используются в текстовых редакторах, смысл остальных понятен из названия.

    Пункт меню Просмотр применяют для настройки внешнего вида среды программирования.

    Первая группа команд открывает или активизирует следующие окна:

  • Инспектор объектов — окно, с помощью которого можно описать внешний вид и поведение выделенного объекта (подробно см. п. 1.4.8);
  • Редактор исходного кода — окно, в котором можно создавать и редактировать текст программы (подробно см. п. 1.4.6);
  • Обозреватель кода — содержит общую информацию о проекте;
  • Редактор LazDoc — редактор шаблонов;
  • Браузер кода — окно проводника проекта.
  • Следующая группа команд пункта меню Просмотр также открывает диалоговые окна. Эти окна носят информационный характер. Так, команды Модуль... и Форма... выводят список модулей и форм данного проекта. Назначение команд Показать зависимости модулей и Показать сведения о модуле говорят сами за себя. Последняя команда этой группы Переключить модуль/форму активизирует либо окно редактора, либо форму.

    В последней группе команд следует отметить команды Показать палитру компонентов и Показать кнопки быстрого доступа. Устанавливая метки рядом с этими командами, пользователь выводит на экран или, наоборот, убирает панели инструментов. Командой Окна отладки пользуются во время отладки программного кода. Здесь можно вызывать Окно наблюдений, Окно отладчика, просматривать точки останова и значения переменных в процессе выполнения программы.

    Команды пункта меню Проект предназначены для выполнения различных операций с проектом Отдельная программа в Lazarus называется проектом. :

  • команды создания проекта — Создать проект и Создать проект из файла;
  • команды вызова ранее созданного проекта — Открыть проект, Открыть недавний проект, Закрыть проект;
  • команды сохранения проекта — Сохранить проект, Сохранить проект как..., Опубликовать проект;
  • команды управления проектом — Инспектор проекта, Настройка проекта..., Параметры компилятора и т. д.
  • Команды, позволяющие запускать проект на выполнение и выполнять его отладку, содержатся в пункте главного меню Запуск:

  • Собрать — сборка программы из откомпилированных файлов;
  • Собрать всё — скомпоновать все файлы проекта;
  • Быстрая компиляция — компиляция файлов программы;
  • Запуск — запуск проекта с помощью отладчика (компиляция, компоновка и исполнение);
  • Пауза — приостановка выполнения программы до нажатия любой клавиши;
  • Шаг со входом — режим пошагового отладочного выполнения программы со входом в вызываемые процедуры и функции;
  • Шаг в обход — режим пошагового отладочного выполнения программы без входа в вызываемые процедуры и функции;
  • Запуск до курсора — отладка и выполнение программы в этом режиме осуществляются до оператора, стоящего в строке, помеченной курсором;
  • Останов — прерывание выполнения программы;
  • Сброс отладчика — сброс всех ранее задействованных отладочных средств и прекращение выполнения программы;
  • Настройка Сборки+Запуска... — настройка параметров компоновки и запуска;
  • Вычислить/Изменить — возможность просмотреть значение переменной и/или найти значение выражения в процессе выполнения программы, при необходимости можно изменить значения любой переменной;
  • Добавить наблюдения — открытие окна, в котором можно указать переменные и/или выражения, за изменением значений которых следует понаблюдать при отладке программы;
  • Добавить точку останова — установка в текущей строке контрольной точки; после запуска программного кода отладчик прекратит его выполнение перед оператором, помеченным точкой останова; в программе можно указать произвольное количество таких точек.
  • Работа с компонентами Компонент — это готовый программный код, который можно использовать при написании программы. Пункт меню Компоненты предназначен для расширения стандартного набора за счёт добавления компонентов других разработчиков. организована при помощи команд пункта меню Компоненты. Пункты меню Инструменты и Окружение Команды пункта меню Окружение описаны в параграфе 1.4.6 применяются для настройки свойств среды программирования.

    Работа с окнами в Lazarus выполняется при помощи пункта меню Окна. Названия команд этого пункта совпадают с названиями окон, и выбор любой команды приведет к активации соответствующего окна.

    Пункт меню Справка — это справочная информация о системе. Здесь можно вызывать средства справочной системы и выполнять её настройку.

    1.4.5 Форма приложения

    Форма приложения (рис. 1.15) — это проект интерфейса будущего программного продукта. Вначале это окно содержит только стандартные элементы: строку заголовка и кнопки развертывания, свертывания и закрытия. Рабочая область окна заполнена точками координатной сетки Координатная сетка отображается только на этапе создания программы при включённом флажке "Показать сетку" (см. рис. 1.17). . Задача программиста — используя панель компонентов, заполнить форму различными интерфейсными элементами, создавая тем самым внешний вид своей программы.

    Команды настройки окна формы находятся на вкладке Редактор форм (рис. 1.17) в меню Окружение — Настройки окружения...

    (рис 1.17) Настройка окна формы

    1.4.6 Окно редактора Lazarus

    Окно редактора (рис. 1.14) тесно связано с формой приложения (рис. 1.18) и появляется вместе с ним при создании нового проекта. Окно редактора по умолчанию находится на первом плане и закрывает окно формы. Переключаться между этими окнами можно командой Просмотр — Переключить модуль / форму, клавишей F12 или просто щелчком мыши.

    Окно редактора предназначено для создания и редактирования текста программы, который создается по определённым.правилам и описывает некий алгоритм. Если окно формы определяет внешний вид будущей программы, то программный код, записанный в окне редактора, отвечает за её поведение.

    Вначале окно редактора содержит текст, обеспечивающий работу пустой формы. Этот программный код появляется в окне редактора автоматически, а программист в ходе работы над проектом вносит в него дополнения, соответствующие функциям создаваемой программы.

    Обратите внимание, что при загрузке Lazarus автоматически загружается последний проект, с которым работал пользователь. Происходит это благодаря отмеченному пункту Открывать последний проект при запуске (рис. 1.19), который находится на вкладке Файлы меню Окружение — Настройки окружения... Если убрать метку рядом с командой Открывать последний проект при запуске, то при загрузке Lazarus будет создавать новый проект.

    (рис 1.18) Окно формы и окно редактора (рис 1.19) Окно настройки файлов в среде Windows (рис 1.20) Настройки окна редактора программного кода

    Настроить окно редактора можно с помощью вкладки Общие меню Окружение — Настройки редактора... (рис. 1.20). Для того чтобы установить (отменить) ту или иную настройку, достаточно установить (убрать) маркер рядом с её названием и подтвердить изменения нажатием кнопки Ok.

    На вкладке Дисплей меню Окружение — Настройки редактора... (рис. 1.21) можно изменить шрифт текста программного кода.

    Как и в большинстве текстовых редакторов, в редакторе программного кода Lazarus предусмотрена работа с шаблонами. Здесь под шаблоном подразумевается автоматический ввод конструкций языка программирования. Например, пользователь вводит символ b, затем символ пробел, а на экране появляется конструкция begin...end. Настройку шаблонов можно выполнить в диалоговом окне (рис. 1.22), которое появится после выполнения команды Окружение — Шаблоны кода... Например, чтобы заработал рассмотренный шаблон, нужно выбрать (щёлкнуть по нему мышкой) в списке шаблонов строку b — begin...end и установить маркер рядом с командой Включить макросы. Затем в группе команд Автозавершение при обнаружении... выбрать слово пробела. Если среди команд автозавершения выбрать конец строки, то шаблон будет появляться в тексте программы после ввода символа b и нажатия клавиши Enter.

    (рис 1.21) Окно настройки редактора программного кода, вкладка Дисплей (рис 1.22) Окно настройки шаблонов редактора программного кода в среде Linux (рис 1.23) Окно создания шаблона программного кода

    Шаблоны можно добавлять, удалять и править. Для этого в окне Шаблоны кода предусмотрены специальные кнопки. В нижней части окна, над кнопками Ok и Отмена, расположено поле ввода и редактирования шаблонов с активным курсором. Если выделить любой шаблон из списка, щёлкнув по нему мышкой, то в поле ввода появится соответствующая конструкция.

    Если воспользоваться кнопкой Добавить, то появится диалоговое окно (рис. 1.23) для создания шаблона. Здесь в поле Элемент следует указать символ или группу символов, ввод которых будет связан с создаваемым шаблоном. В поле Комментарий можно дать краткое описание шаблона и нажать кнопку Добавить. Элемент и комментарий к нему будут добавлены в список шаблонов в окне Шаблоны кода. Теперь нужно создать сам шаблон, то есть указать, какая именно конструкция языка появится при вводе элемента в текст программы. Для этого надо выделить вновь созданный шаблон и в поле ввода, расположенном в нижней части окна Шаблоны кода, ввести соответствующий текст.

    Например, создадим шаблон для конструкции repeat..until, которая будет добавлена в текст, если пользователь введёт символ r. Выполним следующую последовательность действий:

  • щёлкнем по кнопке Добавить в окне Шаблоны кода (см. рис. 1.22);
  • в появившемся диалоговом окне Добавить шаблон кода (рис. 1.23) в поле Элемент введём символ r, а в поле Комментарий фразу repeat until, и нажмём кнопку Добавить;
  • в окне Шаблоны кода (рис. 1.241.25) выделим в списке шаблонов строку r — repeat until;
  • введём в поле ввода, расположенном в нижней части окна, конструкцию языка repeat until;
  • нажмём кнопку Ok в окне Шаблоны кода.
  • Для изменения шаблона служит кнопка Правка. Шаблон, который нужно откорректировать, должен быть выделен. Дальнейшие действия аналогичны тем, которые выполняются при создании шаблона.

    (рис 1.24) Создание нового шаблона в Linux (рис 1.25) Создание нового шаблона в среде Windows

    Для того чтобы удалить шаблон из списка, его нужно выделить, а затем нажать кнопку Удалить.

    1.4.7 Панель компонентов

    Панель компонентов расположена Включить (выключить) Панель компонентов можно, установив (убрав) маркер рядом с командой Показать палитру компонентов меню Просмотр. под главным меню (рис. 1.14). Она состоит из большого числа групп, в которых располагаются соответствующие компоненты (рис. 1.26).

    (рис 1.26) Панель компонентов

    Компонент — это некий функциональный элемент интерфейса, обладающий определенными свойствами. Размещая компоненты на форме, программист создаёт элементы внешнего вида своей будущей программы — окна, кнопки, переключатели, поля ввода и т. п.

    Компоненты на панели объединяются в группы по функциональному признаку. После создания проекта по умолчанию открывается список группы Standard, содержащий основные элементы диалоговых окон. Просмотреть другие группы можно, раскрывая их щелчком по соответствующей вкладке.

    Для того чтобы расположить новый компонент на форме нужно сделать два щелчка мышью:

  • в панели компонентов — для выбора компонента;
  • в рабочем пространстве формы — для указания положения левого верхнего угла компонента.
  • 1.4.8 Инспектор объектов

    Окно инспектора объектов располагается слева от окна редактирования. Как правило, оно содержит информацию о выделенном объекте. На рис. 1.27 представлен инспектор объектов с информацией о вновь созданной форме.

    Окно инспектора объектов имеет три вкладки: Свойства, События, Избранное, которые используются для редактирования свойств объекта и описания событий, на которые будет реагировать данный объект. Совокупность свойств отображает внешнюю сторону объекта, совокупность событий — его поведение.

    Вкладки инспектора объектов представляют собой таблицу. В левой колонке расположены названия свойств или событий, в правой — конкретные значения свойств или имена подпрограмм, обрабатывающих события.

    (рис 1.27) Окно инспектора объектов

    Чтобы выбрать свойство или событие, необходимо щёлкнуть левой кнопкой мыши по соответствующей строке.

    Свойства, отображённые в таблице, могут быть простыми или сложными. Простые свойства определены единственным значением. Например, свойство Caption (Заголовок) определяется строкой символов, свойства Height (Высота) и Width (Ширина) — числом, свойство Enabled (Допустимость) — значениями True (Истина) и False (Ложь). Сложные свойства определяются совокупностью значений. Например, свойство Font (Шрифт). Слева от имени этого свойства стоит знак "+". Это означает, что свойство сложное, и при щелчке по значку "+" откроется список его составляющих.

    Активизировать значение любого свойства можно обычным щелчком мыши. При этом в конце строки может появиться либо кнопка с символом многоточия, либо кнопка со стрелкой, направленной вниз. Щелчок по многоточию откроет диалоговое окно для установки значений сложных свойств (например Font). Обращение к стрелке приведёт к раскрытию списка возможных значений простого свойства (например Enabled).

    1.4.9 Первая программа в Lazarus

    Процесс создания программы в Lazarus состоит из двух этапов:

  • формирования внешнего вида программы, её интерфейса;
  • написания программного кода на языке программирования Free Pascal, заставляющего работать элементы интерфейса.
  • Как мы уже выяснили, для создания интерфейса программы существует окно формы, а для написания программного кода — окно редактора. Эти окна тесно связаны между собой, и размещение компонентов на форме приводит к автоматическому изменению программного кода.

    (рис 1.28) Создание нового проекта в Linux (рис 1.29) Создание нового проекта в среде Windows

    Начнём знакомство с визуальным программированием с создания простой программы про кнопку, которая хочет, чтобы по ней щёлкнули. После чего появляется сообщение о работе программы.

    Начнём с создания нового проекта. Для этого выполним команду главного меню Проект — Создать проект... В появившемся диалоговом окне (рис. 1.281.29) выберем из списка слово Приложение и нажмём кнопку Создать. Результатом этих действий будет появление окна формы и окна редактора программного кода.

    Сохраним созданный проект, воспользовавшись командой Проект — Сохранить проект как... Откроется окно сохранения программного кода Сохранить Unit1 (рис. 1.301.31).

    Создадим в нём новую папку Primer_1 (можно воспользоваться кнопкой Создание новой папки (Создание каталога)), откроем её и щёлкнем по кнопке Сохранить. Тем самым мы сохраним файл Unit1.pas, содержащий текст программы. Сразу же откроется окно Сохранить проект (рис. 1.321.33), в котором также необходимо щёлкнуть по кнопке Сохранить. Теперь мы сохранили файл Project1, содержащий общие сведения о проекте.

    (рис 1.30) Окно сохранения модуля в Windows (рис 1.31) Окно сохранения модуля в Linux (рис 1.32) Окно сохранения проекта в Windows (рис 1.33) Окно сохранения проекта в Linux (рис 1.34) Файлы проекта в Windows (рис 1.35) Файлы проекта в Linux

    На самом деле все наши манипуляции привели к сохранению более чем двух файлов. Теперь в каталоге Primer_1 (рис. 1.341.35) хранится файл с текстом программы unit1.pas, файл unit1.lfm Можно задать и имена файлов, отличные от стандартных Unit1. со сведениями о форме Form1, а также файлы project1.lpn и project1.lpi, содержащие настройки системы программирования и параметры конфигурации проекта.

    Итак, проект сохранён. Все дальнейшие изменения будем сохранять командой Проект — Сохранить проект.

    Теперь можно приступить к визуальному программированию. У нас есть один объект — форма Form1. Изменим некоторые его свойства с помощью инспектора объектов.

    Перейдём в окно инспектора объектов и найдем в нём свойство Caption (Заголовок). Свойство формы Caption отвечает за текст, выводимый в заголовке формы. По умолчанию оно имеет значение Form1. Изменим его на слово ПРИМЕР 1 (рис. 1.36). Это изменение сразу же отразится на форме — в поле заголовка появится надпись "ПРИМЕР 1" (рис. 1.38). Аналогично можно изменить размеры формы, присвоив новые значения свойствам Height (Высота) и Width (Ширина), ещё проще это сделать, изменив положение границы формы с помощью кнопки мыши, как это делается со всеми стандартными окнами.

    (рис 1.36) Изменение свойства формы Caption (рис 1.37) Изменение свойства формы Position (рис 1.38) Изменение заголовка формы (рис 1.39) Размещение кнопки на форме

    Изменим ещё одно свойство формы — Position (положение формы на экране). Значения этого свойства не вводятся вручную, а выбираются из списка (рис. 1.37). Если выбрать свойство poScreenCenter, то форма всегда будет появляться в центре экрана.

    Напомним, что мы пишем программу про кнопку. Пришло время поместить её на форму. Для этого обратимся к панели компонентов (рис. 1.26) и найдём там компонент Tbutton. Чтобы разместить компонент на форме, нужно сделать два щелчка мышью: первый — по компоненту, второй — по окну формы. В результате форма примет вид, представленный на рис. 1.39.

    Теперь у нас два объекта: форма Form1 и кнопка Button1. Напомним, что изменения значений свойств в окне инспектора объектов относятся к выделенно му объекту. Поэтому выделим объект Button1 и изменим его заголовок Caption и размеры Height (высота формы), Width (Ширина формы). В заголовке напишем фразу "Щёлкни мышкой!!!", установим ширину 135 пикселей, а высоту — 25 пикселей. Сохраним проект (Проект — Сохранить проект).

    (рис 1.40) Кнопка Запуск на панели инструментов Lazarus (рис 1.41) Результат работы программы

    Для того чтобы посмотреть, как работает наша программа, её необходимо запустить на выполнение. Сделать это можно командой Запуск — Запуск, функциональной клавишей F9 или кнопкой Запуск на панели инструментов (рис. 1.40). Созданное окно с кнопкой должно выглядеть, как на рис. 1.41.

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

    	
    unit Unit1;
    {$mode objfpc}{$H+}
    interface
    uses
    	Classes, SysUtils, LResources, Forms, Controls,
    	Graphics, Dialogs, StdCtrls;
    type
    	{ TForm1 }
    	TForm1 = class (TForm)
    	Button1 : TButton;
    	private
    		{ private declarations }
    	public
    		{ public declarations }
    end;
    var
    	Form1 : TForm1;
    implementation
    initialization
    	{$I unit1.lrs}
    end;
    

    О назначении всех перечисленных в листинге команд мы поговорим позже. Вернёмся к программе и подумаем, что же мы хотим от нашей кнопки. Скорее всего, это должна быть реакция на какое то событие, например на щелчок мыши. После запуска программы на экране появилось окно, на котором расположена кнопка с надписью "Щёлкни мышкой!!!". Предположим, что если мы щёлкнем по ней, она "обрадуется" и сообщит: "УРА! ЗАРАБОТАЛО!".

    Для воплощения этой идеи завершим работу программы, закрыв окно с кнопкой обычным способом (щелчком по крестику в правом верхнем углу) и перейдём в режим редактирования. Перейдём к инспектору объектов, выделим кнопку Button1 и обратимся к вкладке События инспектора объектов. Напомним, что здесь расположены описания событий. Выберем событие OnClick — обработка щелчка мыши и дважды щёлкнем в поле справа от названия (рис. 1.42).

    (рис 1.42) Выбор события OnClick

    В результате описанных действий в окне редактора появится следующий текст:

    	
    procedure TForm1. Button1Click ( Sender : TObject );
    begin
    end;
    

    На данном этапе изложения материала данный текст — это фрагмент программного кода, именуемый подпрограммой. О назначении этой подпрограммы можно догадаться по её имени TForm1.Button1Click: на форме Form1 для объекта кнопка Button1 обрабатывается событие "щелчок мыши" Click. Все команды, написанные между словами begin и end, будут выполняться при наступлении указанного события (щелчка мыши).

    Теперь установим курсор между словами begin и end созданной подпрограммы и напишем:

    	
    Button1. Caption:= ’УРА! ЗАРАБОТАЛО! ’;
    

    Эта запись означает изменение свойства кнопки. Только теперь мы выполнили его не с помощью инспектора объектов, а записав оператор языка программирования. Прочитать его можно так: присвоить (:=) свойству Caption объекта Button1 значение ’УРА! ЗАРАБОТАЛО!’. Поскольку присваиваемое значение — строка, оно заключено в одинарные кавычки.

    Теперь текст подпрограммы в окне редактора имеет вид:

    	
    procedure TForm1. Button1Click ( Sender : TObject );
    begin
    	Button1. Caption := ’УРА! ЗАРАБОТАЛО! ’;
    end;
    

    Сохраним созданную программу, запустим её на выполнение и убедимся, что кнопка реагирует на щелчок мыши (рис. 1.43). Закрыть проект можно командой Проект — Закрыть проект.

    (рис 1.43) Окончательный результат работы программы

    1.4.10 Полезная программа

    Итак, первая программа написана. Она не несёт особой смысловой нагрузки. Главная ее задача — показать, что же такое визуальное программирование. Следующая программа также будет несложной, но полезной. Мы автоматизируем процесс перевода старой русской меры веса в современную. Эта задача формулируется так: выполнить перевод пудов и фунтов в килограммы, если известно, что 1 пуд = 40 фунтам = 16.38 кг.

    Итак, наша программа должна позволить пользователю ввести два числа (пуды и фунты) и после щелчка по кнопке сообщить, каково значение в килограммах.

    Создадим новый проект, выполнив команду Проект — Создать проект..., и сохраним его в папке Primer_2 командой Проект — Сохранить проект как...

    Воспользуемся вкладкой Standard панели компонентов и разместим на форме следующие компоненты: четыре объекта типа надпись Label (этот компонент используется для размещения в окне не очень длинных однострочных надписей); два поля ввода Edit (это редактируемое текстовое поле, предназначенное для ввода, отображения или редактирования одной текстовой стоки); одну кнопку Button (этот компонент обычно используют для реализации некоторой команды). Компоненты должны располагаться на форме примерно так, как показано на рис. 1.44.

    (рис 1.44) Конструирование формы (рис 1.45) Изменение свойств формы и ее компонентов

    В первой надписи будет храниться текст "Меры веса". Две надписи Label2 и Label3 нужны для пояснения того, какие именно данные должны вводиться, надпись Label4 понадобится для вывода результата. В поля ввода Edit1 и Edit2 будут введены конкретные значения: вес в пудах и фунтах. Вычисление веса в килограммах произойдёт при щелчке по кнопке Button1 и будет выведено в Label4. Изменим свойства формы и размещённых на ней компонентов в соответствии с табл. 1.1, табл. 1.2, табл. 1.3, табл. 1.4. После всех изменений форма будет иметь вид, представленный на рис. 1.45.

    Значение свойств формы
    Свойство Значение Описание свойства
    Caption Перевод из старой русской меры веса в современную Заголовок формы
    Height 230 Высота формы
    Width 400 Ширина формы
    Font.Name Arial Название шрифта
    Font.Size 10 Размер шрифта
    Свойства компонентов типа надпись
    Свойство Label1 Label2 Label3 Label4 Описание свойства
    Caption Меры веса пуды фунты В кг: Заголовок компонента
    Height 15 15 15 15 Высота компонента
    Width 60 30 35 85 Ширина компонента
    Top 20 50 105 25 Координата верхнего края
    Left 25 115 115 200 Координата левого края
    Свойства компонентов поле ввода
    Свойство Edit1 Edit2 Описание свойства
    Text пробел пробел Текст в поле ввода
    Height 25 25 Высота компонента
    Width 135 135 Ширина компонента
    Top 40 95 Координата верхнего края
    Left 175 175 Координата левого края
    Свойства компонента кнопка
    Свойство Значение Описание свойства
    Caption ВЫЧИСЛИТЬ Текст на кнопке
    Height 25 Высота компонента
    Left 200 Ширина компонента
    * Top Свойства Top и Left определяют расположение компонента относительно верхнего левого угла формы. 150 Координата верхнего края
    Width 80 Координата левого края

    Интерфейс программы готов. Займёмся вычислительной частью задачи. Для этого создадим для кнопки Button1 обработчик событий OnClick, для чего дважды щёлкнем по объекту Button1 левой кнопкой мыши. Между словами begin и end созданной подпрограммы запишем несколько команд, чтобы получился следующий программный код:

    	
    procedure TForm1. Button1Click ( Sender : TObject );
    var
    pud, funt : integer;
    kg : real;
    begin
    	pud:= StrToInt ( Edit1. Text );
    	funt := StrToInt ( Edit2. Text );
    	kg:=pud * 16.38+ funt * 16.38 / 40;
    	Label4. Caption := ’В килограммах :  ’+FloatToStr ( kg );
    end;
    

    Рассмотрим программный код построчно.

    Строка 1. Заголовок подпрограммы. Он состоит из ключевого слова procedure и имени подпрограммы TForm1.Button1Click, а в скобках обычно указывают список параметров подпрограммы, если таковые имеются.

    Строка 2. Открывает блок описания переменных (var — от variable, переменная).

    Строка 3. Описывает переменные pud и funt. Компьютер понимает эту запись как команду выделить в памяти место для хранения двух целых чисел О переменных и их типах подробнее рассказывается в следующей главе. .

    Строка 4. Описывает одну вещественную переменную kg.

    Строка 5. Начинает программный блок (begin — начало ).

    Строка 6. Команда, выполняющая следующие действия. Из свойства Text поля ввода Edit1 считывает введённую туда информацию. Эта информация воспринимается компьютером как строка текста (например, "360" — это строка из трёх символов), а поскольку нам для вычислений нужны числовые значения, то функция StrToInt преобразовывает её в целое число. Результат этих преобразований записывается в память компьютера под именем pud. Символы ":=" обозначают оператор присваивания. Например, запись a:=3.14 читается так: переменной a присвоить значение 3.14. Выражение 3.14:=a не имеет смысла.

    Строка 7. Информация из поля ввода Edit2 преобразовывается в целое число и записывается в переменную funt. Фактически команды, записанные в шестой и седьмой строках, осуществляют ввод исходных данных.

    Строка 8. Вычисляется значение выражения, результат которого присваивается переменной kg. Обратите внимание, что умножение здесь обозначается звездочкой, деление — наклонной чертой, сложение — знаком "+". Записывая математическое выражение на языке программирования, нужно чётко указывать все операции. Нельзя, например, опустить знак умножения, как это принято в математике.

    (рис 1.46) Сообщение об ошибке в программе

    Строка 9. Изменяет свойство Caption объекта Label4. В него будет помещён текст, состоящий из двух строк. Первая — ’В килограммах: ’, вторая — значение переменной kg. Знак "+" в этом выражении применяют для конкатенации (слияния) строк. Кроме того, поскольку значение переменной kg — вещественное число, оно преобразовывается в строку функцией FloatToStr. Фактически в этой строке был выполнен вывод результатов.

    Строка 10. Конец программного блока (end — конец ).

    Теперь наша программа может быть откомпилирована и запущена на выполнение. Процесс компиляции представляет собой перевод программы с языка программирования в машинный код. Для компиляции нужно выполнить команду Запуск — Быстрая компиляция. Во время компиляции проверяется наличие синтаксических ошибок, и в случае их обнаружения процесс компиляции прерывается. Мы специально допустили ошибку в восьмой строке программного кода (пропустили двоеточие в операторе присваивания). Результат компиляции программы с синтаксической ошибкой показан на рис. 1.46.

    Строка с ошибкой выделена красным цветом, а под окном редактора появилось окно Сообщение Если окно Сообщение отсутствует, его можно вывести на экран командой Просмотр — Сообщения. , в котором описана допущенная ошибка. Ошибку нужно исправить, а программу ещё раз откомпилировать.

    После успешной компиляции всех файлов, входящих в проект, необходимо собрать (скомпоновать) проект из объектных (откомпилированных) файлов (с расширением — для Linux,.obj — для Windows). Для этого следует выполнить команду Запуск — Собрать или воспользоваться комбинацией клавиш Ctrl+F9. В результате компоновки будет сгенерирован исполняемый файл, имя которого совпадает с именем проекта.

    (рис 1.47) Результат работы программы

    Вообще говоря, если команду Запуск — Быстрая компиляция опустить, а сразу выполнить команду Запуск — Собрать, то произойдёт и компиляция всех файлов проекта и его компоновка.

    После успешной компиляции и сборки программу нужно сохранить (Проект — Сохранить) и запустить. Запуск осуществляется из среды разработки (Запуск — Запуск) или выполнением файла: в Linux —./project1, в Windows — projec1.exe. На рис. 1.47 показан результат работы нашей программы.

    Обратите внимание, что ошибки могут возникать и после запуска программы. Например, в нашем примере исходные данные — целые числа. Если ввести дробь, появится аварийное сообщение. В подобной ситуации следует прервать выполнение программы командой Запуск — Останов (Ctrl+F2).

    Вернуться к созданному проекту, например с целью его усовершенствования, не сложно. Нужно выполнить команду Проект — Открыть проект... (Ctrl+F11), перейти к папке с проектом и выбрать из списка файл с именем project1.lpi.

    1.4.11 Консольное приложение среды Lazarus

    В Lazarus можно создавать не только визуальные приложения с графическим интерфейсом, но и писать программы на Free Pascal в текстовом режиме. Для этого существует консольное приложение.

    Чтобы создать новое консольное приложение, нужно выполнить команду Проект — Создать проект..., в появившемся диалоговом окне (рис. 1.281.29) выбрать фразу Программа пользователя и нажать кнопку Создать. На экране появится окно редактора программного кода (рис. 1.48), в котором уже представлена общая структура программы на языке Free Pascal.

    (рис 1.48) Окно редактора в консольном приложении

    В общем виде программа на языке Free Pascal состоит из заголовка программы, раздела описаний и непосредственно тела программы.

    Заголовок программы состоит из ключевого слова program и имени программы. В нашем случае (рис. 1.48) это Project1. Имя было присвоено программе автоматически. При желании его можно изменить.

    Раздел описаний обычно включает в себя описание констант, типов, переменных, процедур и функций. На рис. 1.48 видно, что раздел описаний начинается со слова uses. Это раздел подключения модулей. Модуль — это специальная программа, которая расширяет возможности языка программирования. В нашем случае происходит подключение модуля SysUtils, который позволяет работать с файлами и каталогами, и модуля Classes, который работает с компонентами.

    За разделом описаний следует исполняемая часть программы, или тело программы. Оно начинается со служебного слова begin и заканчивается служебным словом end и точкой. Тело программы содержит операторы языка, предназначенные для реализации поставленной задачи.

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

    Рассмотрим пример. Пусть нужно решить задачу перевода градусной меры угла в радианную. Эта задача известна из школьного курса и формулируется так: чтобы найти радианную меру какогонибудь угла по данной градусной мере, нужно умножить число градусов на π/180, число минут на π/(180 * 60) и найденные произведения сложить.

    Текст программы для решения поставленной задачи в консольном приложении будет иметь вид:

    	
    program Project1;
    {$mode objfpc}{$H+}
    uses
    	Classes, SysUtils
    		{ you can add units after this };
    var
    	gradus, minuta : integer;
    	radian : real;
    begin
    	write ( ’ gradus= ’ );
    	readln ( gradus );
    	write ( ’ minuta= ’ );
    	readln ( minuta );
    	radian := gradus * p i /180+minuta * p i / ( 180 * 60 );
    	writeln ( ’ radian= ’, radian );
    end.
    

    Сохранить, открыть, откомпилировать, скомпоновать и запустить на выполнение программу в консольном приложении можно так же, как и в визуальном проекте. Результаты работы нашей программы будет иметь вид:

    	
    gradus=165
    minuta=30
    radian=2.8885199120506E+000
    

    Нетрудно заметить, что к тексту, созданному автоматически, мы добавили описание переменных (все используемые в программе переменные должны быть описаны).

    	
    var
    	gradus, minuta : integer; //Описаны две целочисленные переменные.
    	radian : real; //Описана вещественная переменная.
    

    и тело программы

    	
    begin //Начало тела программы.
    	write ( ’ gradus= ’ ); //Вывод на экран символов gradus=.
    	readln ( gradus ); //Ввод переменной gradus.
    	write ( ’ minuta= ’ ); //Вывод на экран символов minuta=.
    	readln ( minuta ); //Ввод переменной minuta.
    	radian := gradus * pi /180+minuta * pi / ( 180 * 60 ); //Вычисление.
    	writeln ( ’ radian= ’, radian ); //Вывод результата вычислений.
    end. //Конец тела программы.
    

    Так как в этой программе графический интерфейс отсутствует, мы разработали элементарный текстовый диалог "компьютер — пользователь". Для этого были использованы операторы ввода (read) и вывода (write) данных.

    1.4.12 Операторы ввода — вывода данных

    Ввод информации с клавиатуры осуществляется с помощью оператора read. Он может иметь один из следующих форматов:

    read ( x1, x2,..., xn );

    или

    readln ( x1, x2,..., xn );

    где x1, x2,..., xn — список вводимых переменных. При вводе вещественных значений целую и дробную часть числа следует разделять точкой.

    Когда в программе встречается оператор read, её действие приостанавливается до тех пор, пока не будут введены исходные данные. При вводе числовых значений два числа считаются разделёнными, если между ними есть хотя бы один пробел, символ табуляции или конца строки (Enter). После ввода последнего значения следует нажать Enter.

    Оператор readln аналогичен оператору read, разница заключается в том, что после считывания последнего в списке значения для одного оператора readln данные для следующего оператора readln будут считываться с начала новой строки. Но следует помнить, что Enter переведёт курсор на новую строку независимо от того, как именно происходит считывание данных.

    Для вывода информации на экран служат операторы write и writeln. В общем случае эти операторы имеют вид:

    write ( x1, x2,..., xn );

    или

    writeln ( x1, x2,..., xn );

    где x1, x2,..., xn представляют собой список выводимых переменных, констант, выражений. Если элемент списка — текстовая информация, её необходимо взять в кавычки.

    Операторы write и writeln последовательно выводят все переменные. Если используется оператор writeln, то после вывода информации курсор перемещается в новую строку.

    Итак, в нашем примере оператор write(’gradus=’); выводит на экран символы gradus=, которые подсказывают пользователю, что он должен ввести значение переменной gradus, а оператор readln(gradus); предназначен для ввода значения переменной gradus. Оператор writeln(’radian=’, radian); выводит на экран два значения: строку radian= и значение переменной radian.

    Как правило, вещественные данные выводятся в формате с плавающей точкой:

    $$\#.\#\#\#\#\#\#\#\#\#\#\#E\pm\#\#\#,$$

    где # — любая десятичная цифра от 0 до 9. Для того чтобы перейти к формату с фиксированной точкой, нужно число, расположенное до символа $$E$$ (мантиссу числа), умножить на 10, возведённое в степень, значение которой указано после числа $$E$$ (порядок числа). Например,

    $$0.35469000000E - 01 = 0.35469000000 * 10^{-1}= 0.035469,\\ -5.43286710000E + 02 = -5.43286710000 * 10^2= -543.28671.$$

    Чтобы выводить числа в формате с фиксированной точкой, необходимо использовать форматированный вывод. Для этого оператор write или writeln нужно задать следующим образом:

    write (идентификатор : ширина_поля_вывода : дробная_часть );

    где идентификатор — это имя переменной, которая будет выводится на экран; ширина_поля_вывода — количество позиций (целая часть, точка, дробная часть), которое будет занимать значение переменной при выводе; дробная_часть — количество позиций, необходимых для дробной части числа.

    Например, пусть результат работы нашей программы имеет вид

    	
    gradus=165
    minuta=30
    radian=2.8885199120506E+000
    

    Понятно, что оператор

    writeln ( ’ radian= ’, radian );

    вывел на экран значение переменной radian в формате с плавающей точкой.

    Если воспользоваться оператором

    writeln ( ’ radian= ’, radian : 5 : 3 );

    то результат работы программы будет таким:

    	
    gradus=165
    minuta=30
    radian=2.889
    

    где значение переменной radian представлено в формате с фиксированной точкой (всё число занимает пять позиций и три из них после запятой).

    Страницы:

    О свободном программном обеспечении для образования

    Эта книга — не просто учебник по программированию на давно уже ставшем традиционным для преподавания языке Паскаль. Это первое издание на русском языке, посвященное свободной реализации этого языка — Free Pascal и свободной же интегрированной среде разработки Lazarus. Как и любые свободные програм-мы, компилятор Free Pascal compiler и среда Lazarus могут быть установлены на любое количество компьютеров бесплатно (без лицензионных отчислений), мо-гут использоваться без ограничений, их исходные тексты полностью доступны для изучения и модификации. А это означает, что они идеально подходят для задач и условий обучения программированию, не накладывая на учащих и уча-щихся дополнительных расходов и давая им возможность максимально полно разобраться в предмете (вплоть до анализа исходных текстов компилятора).

    Преимущества свободного программного обеспечения для образования были признаны в России на самом высоком уровне, и осенью 2007 года состоялся пер-вый открытый конкурс на разработку и поставку пакета свободного программ-ного обеспечения. Его победителем стала группа "Армада". Соисполнителем по этому конкурсу стала компания ALT Linux, работающая с 2001 года и являюща-яся российским лидером в разработке свободного ПО и дистрибутивов на базе Linux.

    В рамках проекта сотрудниками ALT Linux был разработан и протестирован пакет свободного программного обеспечения (ПСПО), который был внедрен бо-лее чем в 1000 школ трех пилотных регионов России — Республики Татарстан, Пермского края и Томской области. В этих регионах была отработана не только технология внедрения, но и технология организации техподдержки, что очень важно для успеха проекта. Несмотря на то что пилотных регионов только три, любая школа России могла добровольно присоединиться к проекту и бесплатно получить комплект ПСПО. Для популяризации этой возможности и проекта в целом был проведен ряд семинаров в разных уголках страны. По итогам 2008 года, в проекте внедрения участвует 2151 школа.

    В 2010 году компания ALT Linux выпустила новый комплект образователь-ных дистрибутивов, Альт Линукс 5.0 Школьный, который является авторским развитием пакета свободного программного обеспечения (ПСПО) 2007—2008 го-дов.

    Комплект включает в себя дистрибутивы операционной системы ALT Linux, содержащие все необходимые программы для подготовки уроков и обучения ин-форматике, значительный набор программ по математике, физике, черчению, астрономии и другим предметам, обучающие и развивающие игры, стандартный набор офисных программ.

    Альт Линукс Школьный может быть установлен практически на любой ком-пьютер, так как включает в себя версии, адаптированные под различные систем-ные требования аппаратного обеспечения.

    Дистрибутивы комплекта Альт Линукс 5.0 Школьный включают

    Free Pascal и Lazarus и идеально подходят для освоения материала

    книги и организации преподавания на основе языка Free Pascal.

    Введение

    Авторы книги давно хотели написать учебник по программированию, который был бы полезен пользователям различных операционных систем. Благодаря компании ALT Linux, мы попытались это сделать. В качестве языка программирования был выбран язык Free Pascal, который представляется нам ясным, логичным и гибким языком и приучает к хорошему стилю программирования. Свободно распространяемые компиляторы языка Free Pascal реализованы во многих дистрибутивах Linux, есть свободные компиляторы и для ОС Windows. Кроме того, в этой книге мы попытались познакомить читателя с принципами создания визуальных приложений в среде Lazarus.

    В настоящее время существует множество подходов к изучению программирования. По мнению авторов, нельзя изучать программирование на каком-либо языке, не изучив методы разработки алгоритмов. Одним из наиболее наглядных методов составления алгоритмов является язык блок-схем. Об этом свидетельствует и многолетний опыт авторов преподавания программирования. Мы попытались написать учебник по алгоритмизации и программированию, насколько нам это удалось — судить читателю.

    Авторы надеются, что читатель имеет первоначальные навыки работы на персональном компьютере под управлением ОС Linux или Windows и знаком со школьным курсом математики.

    Книга состоит из десяти глав.

    В первой главе читатель узнает о средствах разработки программ на Free Pascal, напишет свои первые программы.

    Во второй главе изложены основные элементы языка (переменные, выражения, операторы) Free Pascal. Описаны простейшие операторы языка: присваивания и ввода-вывода, приведена структура программы, приведены примеры простейших программ линейной структуры.

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

    В четвёртой главе читатель на большом количестве примеров познакомится с подпрограммами. Описан механизм передачи параметров между подпрограммами. Один из параграфов посвящён рекурсивным подпрограммам. В завершении главы рассмотрен вопрос создания личных модулей.

    Пятая и шестая главы посвящены изучению алгоритмов обработки массивов и матриц. Здесь же читатель познакомится и с реализацией этих алгоритмов на языке Free Pascal. Именно эти главы совместно с третьей являются ключом к пониманию принципов программирования.

    Седьмая глава знакомит читателя с обработкой файлов на языке Free Pascal под управлением ОС Linux и Windows. На практических примерах изложен механизм прямого и последовательного доступа к файлам и обработки ошибок ввода-вывода. Описана работа с бестиповыми и текстовыми файлами.

    Восьмая глава посвящена обработке строк и записей. Приведённые примеры позволят читателю разобраться с принципами обработки таблиц в языке Free Pascal.

    В девятой главе авторы описали принципы объектно-ориентированного программирования и их реализацию в языке Free Pascal.

    В десятой главе рассмотрены графические возможности Lazarus, изложено подробное описание алгоритма построения графиков непрерывных функций на экране дисплея. Приведены тексты программ изображения графиков функций с подробными комментариями.

    К каждой теме прилагаются 25 вариантов задач для самостоятельного решения, что позволит использовать книгу не только начинающим самостоятельно изучать программирование, но и преподавателям в учебном процессе.

    С рабочими материалами книги можно познакомиться на сайте Евгения Ростиславовича Алексеева — http://www.teacher.dn-ua.com.

    Авторы благодарят компанию ALT Linux и лично Кирилла Маслинского за возможность издать эту книгу.

    Авторы выражают благодарность своим родным за помощь и понимание.

    Алексеев Е. Р., Чеснокова О. В., Кучер Т. В.

    Донецк, январь 2009 г.

    Средства разработки программ на языке Free Pascal

    В этой главе мы начинаем знакомство с программированием на языке Free Pascal. Язык программирования Free Pascal ведёт своё начало от классического языка Pascal, который был разработан в конце 60-х годов XX века Никлаусом Виртом. Н. Вирт разрабатывал этот язык как учебный язык для своих студентов. С тех пор Pascal, сохранив простоту и структуру языка, разработанного Н. Виртом, превратился в мощное средство программирования. С помощью современного языка Pascal можно производить простые расчёты, разрабатывать программы для проведения сложных инженерных и экономических вычислений.

    1.1 Процесс разработки программы

    Разработку программы можно разбить на следующие этапы:

  • Составление алгоритма решения задачи. Алгоритм — это описание последовательности действий, которые необходимо выполнить для решения поставленной задачи.
  • Написание текста программы. Текст программы пишут на каком-либо языке программирования (например на Free Pascal) и вводят его в компьютер с помощью текстового редактора.
  • Отладка программы. Отладка программы — это процесс устранения ошибок из текста программы. Все ошибки делятся на синтаксические и логические. При наличии синтаксических ошибок (ошибок в написании операторов) программа не запускается. Подобные ошибки исправляются проще всего. Логические ошибки — это ошибки, при которых программа работает, но неправильно. В этом случае программа выдаёт не те результаты, которые ожидает разработчик или пользователь. Логические ошибки исправить сложнее, чем синтаксические, иногда для этого придётся переписывать отдельные участки программы, а иногда и перерабатывать весь алгоритм.
  • Тестирование программы. Тестирование программы — процесс выявления ошибок в работе программы.
  • Процессы отладки и тестирования сопровождаются неоднократным запуском программы на выполнение. Процесс запуска программы может быть осуществлён только после того, как введённая в компьютер программа на алгоритмическом языке Pascal Как и на любом другом языке. будет переведена в двоичный машинный код и создан исполняемый файл. Процесс перевода текста программы в машинный код называют трансляцией. Все трансляторы делятся на два класса:

  • интерпретаторы — трансляторы, которые переводят каждый оператор программы в машинный код, и по мере перевода операторы выполняются процессором;
  • компиляторы переводят всю программу целиком, и если перевод всей программы прошёл без ошибок, то полученный двоичный код можно запускать на выполнение.
  • Если в качестве транслятора выступает компилятор, то процесс перевода текста программы в машинный код называют компиляцией. При переводе программы с языка Pascal в машинный код используются именно компиляторы Вместо термина "компилятор" в литературе иногда используют термин "транслятор компилирующего типа". .

    Рассмотрим основные этапы обработки компилятором программы на языке Pascal.

  • Компилятор анализирует, какие внешние библиотеки В библиотеках языка Pascal хранится объектный (двоичный) код стандартных (таких, как $$sin(x), cos(x)$$ и др.) функций и процедур языка. нужно подключить, разбирает текст программы на составляющие элементы, проверяет синтаксические ошибки и в случае их отсутствия формирует объектный код (в Windows — файл с расширением .obj, в Linux — файл с расширением.o). Получаемый на этом этапе двоичный файл (объектный код) не включает в себя объектные коды подключаемых библиотек.
  • На втором этапе компоновщик подключает к объектному коду программы объектные коды библиотек и генерирует исполняемый код программы. Этот этап называется компоновкой или сборкой программы. Полученный на этом этапе исполняемый код программы можно запускать на выполнение.
  • На сегодняшний день существует множество компиляторов языка Pascal, среди которых можно выделить Borland Pascal, Delphi, а также свободно распространяемый кроссплатформенный компилятор языка Free Pascal и среду визуального программирования Lazarus.

    1.2 Среда программирования Free Pascal

    Рассмотрим процесс установки компилятора Free Pascal в ОС Linux. Для установки программ в операционной системе Linux служит менеджер пакетов. В разных дистрибутивах Linux используются различные менеджеры пакетов, например, в ALT Linux можно воспользоваться программой Synaptic. Окно Synaptic представлено на рис. 1.1. В школьной линейке дистрибутивов ALT Linux Free Pascal и Lazarus присутствуют сразу после установки операционной системы.

    (рис 1.1) Менеджер пакетов Synaptic

    Обратите внимание, что для установки программ необходимо установить список источников программ (список репозиториев Список репозиториев — список официальных сайтов, с которых можно устанавливать программы. ).

    Для установки Free Pascal в окне Synaptic (см. рис. 1.1) необходимо щёлкнуть по кнопке Найти и в открывшемся окне ввести fpc (см. рис. 1.2). Менеджер программ находит программу FreePascal, после чего в окне Synaptic необходимо отметить программы fpc (Free Pascal Compiler Meta Package) для установки (с помощью контекстного меню или с помощью кнопки Отметить для обновления) и начать установку, щёлкнув по кнопке Применить. После этого начнётся процесс загрузки пакетов из Интернета и их установки.

    В состав метапакета fpс входит компилятор языка Free Pascal fpc и среда разработки fp-ide. Для запуска среды разработки в Linux необходимо просто в терминале набрать fp. На рис. 1.3 представлено окно среды разработки программ на языке Free Pascal в ОС Linux.

    (рис 1.2) Окно поиска компилятора Free Pascal в Synaptic (рис 1.3) Среда программирования Free Pascal в ОС Linux

    Для установки Free Pascal в ОС Windows необходимо запустить скачанный со страницы загрузки инсталяционный файл. Первое диалоговое окно сообщит о начале процесса установки Free Pascal на компьютер. Для продолжения установки во всех следующих окнах нужно выбирать кнопку Next, для возврата к предыдущему шагу — кнопку Back, а для прерывания процесса установки — кнопку Cancel. В следующем окне нужно определить путь для установки Free Pascal. По умолчанию установка происходит в корневой каталог диска С. Для выбора другого пути установки можно воспользоваться кнопкой Browse... Кроме того, в этом окне выводится информация о количестве свободного места на диске. В следующих четырёх окнах пользователь сможет выбрать из списка тип установки: Full Installation (полная), Minimum Installation (минимальная), Custom Installation (выбор компонентов), указать название устанавливаемого приложения в главном меню, выбрать типы файлов, поддерживаемых средой, и начать процесс установки Free Pascal, нажав кнопку Install. Контролировать процесс установки можно с помощью линейного индикатора.

    (рис 1.4) Окно компилятора Free Pascal

    Запуск среды программирования Free Pascal в Windows можно осуществить из главного меню: Пуск — Программы — Free Pascal — Free Pascal. На экране появится окно, представленное на рис. 1.4.

    Установив пакет Free Pascal, мы получили компилятор и среду программирования.

    Компилятор Free Pascal работает в командной строке. Для того чтобы создать исполняемый файл из текста программы, написанного на языке Pascal, необходимо выполнить команду

    fpc name.pas

    Здесь fpc — имя исполняемого файла компилятора командной строки Free Pascal, name.pas — имя файла с текстом программы. В результате в L inux будет создан исполняемый файл с именем name (в Windows имя исполняемого файла — name.exe).

    При использовании компилятора fpc после компиляции автоматически происходит компоновка программы (запуск компоновщика make).

    Технология работы с компилятором Free Pascal может быть такой: набираем текст программы в стандартном текстовом редакторе, затем в терминале запускаем компилятор, после исправления синтаксических ошибок запускаем исполняемый файл. При такой технологии работы с компилятором, необходимо не забывать сохранять текст программы, иначе при запуске компилятора будет компилироваться старая версия текста программы.

    Однако среда программирования позволяет значительно упростить процесс разработки программ. В состав среды программирования Free Pascal входит текстовый редактор, транслятор и отладчик. Рассмотрим их работу подробнее.

    1.2.1 Работа в текстовом редакторе Free Pascal

    С помощью редактора Free Pascal можно создавать и редактировать тексты программ. После открытия пустого окна (File — New) или загрузки текста программы (File — Open) мы находимся в режиме редактирования, что подтверждается наличием в окне курсора (небольшого мигающего прямоугольника). Для перехода из режима редактирования к главному меню нужно нажать клавишу F10, обратно — Esc. Кроме того, этот переход можно осуществить щелчком мыши либо по строке главного меню, либо по полю редактора.

    Редактор Free Pascal обладает возможностями, характерными для большинства текстовых редакторов. Остановимся на некоторых особенностях.

    Работа с фрагментами текста (блоками) в редакторе Free Pascal может осуществляться с помощью главного меню и функциональных клавиш. Выделить фрагмент текста можно с помощью клавиши Shift и клавиш перемещения курсора (стрелок).

    В главном меню для работы с фрагментами текста предназначены команды пункта редактирования Edit:

  • Copy (Ctrl+C) — копировать фрагмент в буфер;
  • Cut (Ctrl+X) — вырезать фрагмент в буфер;
  • Paste (Ctrl+V) — вставить фрагмент из буфера;
  • Clear (Ctrl+Del) — очистить буфер;
  • Select All — выделить весь текст в окне;
  • Unselect — отменить выделение.
  • Команды Copy и Cut применяют только к выделенным фрагментам текста. Кроме того, пункт меню Edit содержит команды Undo и Redo, с помощью которых можно отменять и возвращать выполненные действия.

    Комбинации клавиш, предназначенные для работы с блоком, таковы:

  • Ctrl+K+B — пометить начало блока;
  • Ctrl+K+K — пометить конец блока;
  • Ctrl+К+Т — пометить в качестве блока слово слева от курсора;
  • Ctrl+K+Y — стереть блок;
  • Ctrl+K+C — копировать блок в позицию, где находится курсор;
  • Ctrl+K+V — переместить блок в позицию, где находится курсор;
  • Ctrl+K+W — записать блок в файл;
  • Ctrl+K+R — прочитать блок из файла;
  • Ctrl+K+P — напечатать блок;
  • Ctrl+К+Н — снять пометку блока; повторное использование Ctrl+К+Н
  • вновь выделит блок.

    Работа с файлами в среде Free Pascal осуществляется с помощью команд File главного меню и функциональных клавиш:

  • New — открыть окно для создания новой программы;
  • Open (F3) — открыть ранее созданный файл;
  • Save (F2) — сохранить созданный файл;
  • Save As — сохранить файл под другим именем;
  • Exit (Alt+X) — выйти из среды программирования.
  • При создании новой программы ей по умолчанию присваивается стандартное имя NONAMEOO.PAS (NO NAME — нет имени).

    При первом сохранении файла пользователю будет предложено ввести его имя. При повторном сохранении файл сохраняется под тем же именем. Команда Save As аналогична первому сохранению. Если файл не был сохранён, то при попытке завершить работу со средой, появится запрос о необходимости сохранить изменения в файле. При открытии ранее созданного файла его имя выбирают из списка существующих файлов.

    В редакторе Free Pascal допускается работа с несколькими окнами. Переключаться между окнами можно двумя способами:

  • для переключения в окно с номером от первого до девятого нажать комбинацию клавиш Alt+i, где i — номер окна (например Alt+5 — вызов пятого окна);
  • для вывода списка окон на экран нажать комбинацию клавиш Alt+0, появится список активных окон, в котором будет необходимо выбрать нужное и нажать Enter.
  • 1.2.2 Запуск программы в среде Free Pascal и просмотр результатов

    После того как текст программы набран, его следует перевести в машинный код. Для этого необходимо вызвать транслятор с помощью команды Compile — Compile (комбинация клавиш Alt+F9). На первом этапе транслятор проверяет наличие синтаксических ошибок. Если в программе нет синтаксических ошибок, то на экране сообщается о количестве строк транслированной программы и объёме доступной оперативной памяти.

    Если на каком-либо этапе транслятор обнаружит ошибку, то в окне редактора курсор укажет ту строку программы, в которой ошибка была обнаружена. При этом в верхней строке редактора появится краткое диагностическое сообщение о причине ошибки.

    Для запуска транслированной программы необходимо выполнить команду Run — Run (комбинация клавиш Ctrl+F9), после чего на экране появляется окно командной строки, в котором пользователь и осуществляет диалог с программой. После завершения работы программы вновь появляется экран среды Free Pascal.

    Для просмотра результатов работы программы в OC Windows необходимо нажать комбинацию клавиш Alt+F5. Для возврата в оболочку следует нажать любую клавишу.

    (рис 1.5) Окно Geany c шаблоном программы на Free Pascal

    Однако при использовании среды программирования существует проблема вывода кириллического текста в консольном приложении.

    Альтернативой среды программирования Free Pascal является текстовый редактор Geany (http://www.geany.org), который позволяет разрабатывать программы на различных языках программирования.

    1.3 Среда разработки Geany

    Среда разработки (её также иногда называют текстовым редактором) Geany есть в репозитории большинства современных дистрибутивов Linux Существует версия Geany и для Windows (http://www.geany.org/Download/Releases) . Разработка программ с использованием Geany довольна удобна. Geany можно установить стандартным для вашего дистрибутива способом, например, с помощью менеджера пакетов Synaptic.

    Последовательно рассмотрим основные этапы разработки программы с использованием Geany.

  • Необходимо создать шаблон приложения на Pascal (или другом языке программирования) с помощью команды Файл — New (with Template) — Pascal source file. После чего появится окно с шаблоном исходного кода (см. рис. 1.5), в котором необходимо ввести текст программы и сохранить его (см. рис. 1.6).
  • Для компиляции и запуска программы на выполнение служит пункт меню Построить. Для компиляции программы следует использовать команду Построить — Собрать (F8). В этом случае будет создан файл с объектным кодом программы и исполняемый файл. После компиляции программы ниже окна с программой будет представлен подробный отчёт (см. рис. 1.6) о результатах компиляции. Этот отчёт следует внимательно изучить, поскольку он позволяет быстро исправлять синтаксические ошибки. В сообщении об ошибке указана строка, где она найдена, и её краткое описание на английском языке. В отчётах по результатам компиляции могут быть ошибки (error ) и сообщения (warning ). Сообщения — это обнаруженные компилятором неточности, при которых, однако, возможно создание исполняемого кода программы.
  • Для запуска программы следует выполнить команду Построить — Выполнить (F5). После чего на экране появится окно терминала (см. рис. 1.7), в котором можно вводить данные и увидеть результаты работы программы.
  • (рис 1.6) Окно Geany c текстом программы на языке Free Pascal

    В Geany можно настроить команды вызова компиляции, компоновки и запуска. Для этого служит команда Построить — Установить включения и аргументы. Это окно для работы с файлами с расширением pas представлено на рис. 1.8. При настройке строк Compile и Запуск следует учитывать, что %f — имя компилируемого файла, %e — имя файла без расширения.

    (рис 1.7) Окно терминала с результатами работы программы (рис 1.8) Окно Установить включения и аргументы для Free Pascal

    Выбор среды для разработки консольных программ на Free Pascal — дело пользователя. Авторы советуют читателю под управлением ОС Linux использовать Geany Это субъективный совет авторов. , хотя для набора текста программы можно использовать и обычный текстовый редактор (например gedit, tea, kate и др.), а компиляцию осуществлять в терминале. Под управлением Windows логичнее использовать fp-ide.

    1.4 Среда визуального программирования Lazarus

    Lazarus — это среда визуального программирования. Здесь программист получает возможность не просто создавать программный код, но и наглядно (визуально) показывать системе, что бы он хотел увидеть.

    Технология визуального программирования позволяет строить интерфейс Интерфейс — диалог, обмен информацией. будущей программы из специальных компонентов, реализующих нужные свойства. Количество таких компонентов достаточно велико. Каждый компонент содержит готовый программный код и все необходимые для работы данные, что избавляет программиста от создания того, что уже создано ранее. Подобный подход во много раз сокращает время написания программы. Кроме того, быстрота создания программного кода в Lazarus достигается за счёт того, что значительная часть текста формируется автоматически.

    (рис 1.9) Окно поиска пакета Lazarus для установки

    Среда визуального программирования Lazarus сочетает в себе компилятор, объектно-ориентированные средства визуального программирования и различные технологии, облегчающие и ускоряющие создание программы.

    1.4.1 Установка Lazarus в ОС Linux

    Для установки Lazarus в окне Synaptic (см. рис. 1.1) необходимо щёлкнуть по кнопке Найти. В появившемся окне поиска (см. рис. 1.9) вводим имена необходимых программ (lazarus, fp, fpc, fpc-source) и щёлкаем по кнопке Найти. Менеджер программ находит программы Lazarus и FreePascal, после чего в окне Synaptic необходимо отметить программы Lazarus, fp, fpc, fpc-ide для установки (с помощью контекстного меню или с помощью кнопки Отметить для обновления) и начать установку, щёлкнув по кнопке Применить. После этого Synaptic предложит установить ещё несколько пакетов, которые необходимы для нормального функционирования Lazarus. С этим предложением нужно согласиться. После этого начнётся процесс загрузки файлов пакетов и установки Lazarus на компьютер. После установки запуск программы осуществляется с помощью команды меню Разработка — Lazarus Не исключено, что вызов Lazarus в других дистрибутивах Linux может осуществляться и с помощью другой команды главного меню. .

    Для установки Lazarus можно не использовать менеджер пакетов Synaptic, а самостоятельно загрузить все необходимые пакеты с сайта проекта и затем вручную их установить. Подробное описание процесса ручной установки можно найти в Интернете.

    1.4.2 Установка Lazarus под управлением ОС Windows

    Рассмотрим особенности установки среды визуального программирования La-za-rus для операционной системы Windows. Перед установкой необходимо скачать установочный файл со страницы загрузки. Установка Lazarus на компьютер осуществляется с помощью Мастера установки. Для того чтобы Мастер начал свою работу, необходимо запустить программу установки Lazarus Setup. Появится диалоговое окно (рис. 1.10), в котором пользователь может выбрать из списка язык для дальнейшего диалога с Мастером установки. Нажатие кнопки ОК приведёт к появлению следующего окна. Использование кнопки Отмена в этом и во всех последующих окнах приведёт к прерыванию работы Мастера установки.

    (рис 1.10) Окно Мастера установки. Выбор языка. (рис 1.11) Начало процесса установки Lazarus

    Следующее окно (рис. 1.11) — информационное. Оно сообщает пользователю о начале процесса установки. Нажатие кнопки Далее приведёт к следующему шагу Мастера установки.

    На следующем этапе (рис. 1.12) необходимо выбрать путь для установки Lazarus. По умолчанию программа будет установлена на диск С. Для выбора иного пути для установки следует воспользоваться кнопкой Обзор. В этом и во всех последующих окнах с помощью кнопки Назад можно вернуться к предыдущему шагу Мастера установки.

    (рис 1.12) Окно выбора пути для установки Lazarus (рис 1.13) Окно выбора компонентов для установки приложения

    Следующий шаг — выбор из полного перечня средств системы необходимых компонентов (рис. 1.13). По умолчанию будут установлены все компоненты системы. Отменить установку компонента можно, если щелчком мыши убрать метку рядом с его именем.

    (рис 1.14) Среда визуального программирования Lazarus

    В следующих окнах Мастера установки пользователь может выбрать папку меню Пуск, в которой будет создан ярлык для устанавливаемого приложения По умолчанию ярлык создаётся в меню Пуск — Программы. , и создать на рабочем столе ярлык для приложения Lazarus С помощью щелчка мыши установить маркер в поле рядом с командой Создать значок на рабочем столе. . Далее Мастер установки сообщит о том, куда будет установлено приложение Lazarus, коков тип установки, какие компоненты системы были выбраны, где будет создан ярлык и будет ли создан значок на рабочем столе. После этого начнётся процесс установки приложения на компьютер. Контролировать установку приложения пользователь может с помощью линейного индикатора, а прервать — кнопкой Отмена. Завершается процесс установки щелчком по кнопке Завершить. Запуск Lazarus можно осуществить из главного меню командой Пуск — Программы — Lazarus — Lazarus.

    1.4.3 Среда Lazarus

    На рис. 1.14 показано окно, которое появится после запуска Lazarus. В верхней части этого окна размещается главное меню и панель инструментов. Слева расположено окно инспектора объектов, а справа — окно редактора исходного кода.

    Если свернуть или сдвинуть окно редактора, то станет доступным окно формы, представленное на рис. 1.15.

    Работу над программой в среде визуального программирования условно можно разбить на две части. Первая — это создание внешнего вида (интерфейса) будущей программы, вторая — написание программного кода. Окно инспектора объектов и окно формы нужны для создания интерфейса программы, а редактор исходного кода — для работы с её текстом. Файлы, из которых в результате получается программа, называют проектом.

    (рис 1.15) Окно формы

    1.4.4 Главное меню Lazarus

    Все команды, необходимые для работы в среде визуального программирования Lazarus, содержатся в главном меню. Доступ к командам главного меню осуществляется одинарным щелчком левой кнопкой мыши.

    Работа с файлами в среде Lazarus осуществляется при помощи пункта меню Файл. Команды этого пункта меню можно разбить на группы:

  • создание новых файлов — Создать модуль, Создать форму, Создать...;
  • загрузка ранее созданных файлов — Открыть..., Вернуть, Открыть недавнее;
  • сохранение файлов — Сохранить, Сохранить как..., Сохранить все;
  • закрытие файлов — Закрыть, Закрыть все файлы редактора;
  • удаление файлов из каталога — Очистить каталог...;
  • вывод на печать — Печать...;
  • перезагрузка среды — Перезапуск;
  • выход из среды — Выход.
  • Команды, предназначенные для редактирования текста программного кода, собраны в меню Правка. В основном, это команды, характерные для большинства текстовых редакторов:

  • команды отмены или возврата последней операции — Отменить, Вернуть;
  • команды переноса, копирования и вставки выделенного фрагмента текста в буфер — Вырезать, Копировать, Вставить;
  • команды, работающие с выделенным блоком текста — Сдвинуть блок вправо, Сдвинуть блок влево;
  • команды смены регистра — Верхний регистр выделения, Нижний регистр выделения;
  • команды выделения фрагмента текста собраны в пункте меню Выделить.
  • (рис 1.16) Выбор конструкции языка для заключения в неё выделенного фрагмента программного кода

    Далее будут перечислены специфические команды редактора программного кода Lazarus.

    Команда Закомментировать добавляет в начале каждой строки выделенного фрагмента два символа "косая черта", что превращает выделенный текст в комментарий Комментарий — фрагмент программного кода, который игнорируется компилятором. Обычно комментарии используют для пояснений к программе или для временного исключения фрагментов текста при отладке. , команда Раскомментировать выполняет обратное действие.

    Команда Заключить выделение в... приводит к открытию диалогового окна (рис. 1.16), в этом окне пользователь может выбрать конструкцию языка программирования, в которую будет заключён выделенный фрагмент текста.

    Команда Сортировка выбранного... также открывает диалоговое окно, в котором можно установить параметры сортировки текста в выделенном фрагменте.

    Команды меню Поиск также можно разделить на группы. Первая группа — это непосредственно команды поиска и замены, вторая — команды перехода, а третья — работа с закладкой. В четвёртой группе объединены команды поиска, замены и перехода в выделенном фрагменте. Большинство из этих команд используются в текстовых редакторах, смысл остальных понятен из названия.

    Пункт меню Просмотр применяют для настройки внешнего вида среды программирования.

    Первая группа команд открывает или активизирует следующие окна:

  • Инспектор объектов — окно, с помощью которого можно описать внешний вид и поведение выделенного объекта (подробно см. п. 1.4.8);
  • Редактор исходного кода — окно, в котором можно создавать и редактировать текст программы (подробно см. п. 1.4.6);
  • Обозреватель кода — содержит общую информацию о проекте;
  • Редактор LazDoc — редактор шаблонов;
  • Браузер кода — окно проводника проекта.
  • Следующая группа команд пункта меню Просмотр также открывает диалоговые окна. Эти окна носят информационный характер. Так, команды Модуль... и Форма... выводят список модулей и форм данного проекта. Назначение команд Показать зависимости модулей и Показать сведения о модуле говорят сами за себя. Последняя команда этой группы Переключить модуль/форму активизирует либо окно редактора, либо форму.

    В последней группе команд следует отметить команды Показать палитру компонентов и Показать кнопки быстрого доступа. Устанавливая метки рядом с этими командами, пользователь выводит на экран или, наоборот, убирает панели инструментов. Командой Окна отладки пользуются во время отладки программного кода. Здесь можно вызывать Окно наблюдений, Окно отладчика, просматривать точки останова и значения переменных в процессе выполнения программы.

    Команды пункта меню Проект предназначены для выполнения различных операций с проектом Отдельная программа в Lazarus называется проектом. :

  • команды создания проекта — Создать проект и Создать проект из файла;
  • команды вызова ранее созданного проекта — Открыть проект, Открыть недавний проект, Закрыть проект;
  • команды сохранения проекта — Сохранить проект, Сохранить проект как..., Опубликовать проект;
  • команды управления проектом — Инспектор проекта, Настройка проекта..., Параметры компилятора и т. д.
  • Команды, позволяющие запускать проект на выполнение и выполнять его отладку, содержатся в пункте главного меню Запуск:

  • Собрать — сборка программы из откомпилированных файлов;
  • Собрать всё — скомпоновать все файлы проекта;
  • Быстрая компиляция — компиляция файлов программы;
  • Запуск — запуск проекта с помощью отладчика (компиляция, компоновка и исполнение);
  • Пауза — приостановка выполнения программы до нажатия любой клавиши;
  • Шаг со входом — режим пошагового отладочного выполнения программы со входом в вызываемые процедуры и функции;
  • Шаг в обход — режим пошагового отладочного выполнения программы без входа в вызываемые процедуры и функции;
  • Запуск до курсора — отладка и выполнение программы в этом режиме осуществляются до оператора, стоящего в строке, помеченной курсором;
  • Останов — прерывание выполнения программы;
  • Сброс отладчика — сброс всех ранее задействованных отладочных средств и прекращение выполнения программы;
  • Настройка Сборки+Запуска... — настройка параметров компоновки и запуска;
  • Вычислить/Изменить — возможность просмотреть значение переменной и/или найти значение выражения в процессе выполнения программы, при необходимости можно изменить значения любой переменной;
  • Добавить наблюдения — открытие окна, в котором можно указать переменные и/или выражения, за изменением значений которых следует понаблюдать при отладке программы;
  • Добавить точку останова — установка в текущей строке контрольной точки; после запуска программного кода отладчик прекратит его выполнение перед оператором, помеченным точкой останова; в программе можно указать произвольное количество таких точек.
  • Работа с компонентами Компонент — это готовый программный код, который можно использовать при написании программы. Пункт меню Компоненты предназначен для расширения стандартного набора за счёт добавления компонентов других разработчиков. организована при помощи команд пункта меню Компоненты. Пункты меню Инструменты и Окружение Команды пункта меню Окружение описаны в параграфе 1.4.6 применяются для настройки свойств среды программирования.

    Работа с окнами в Lazarus выполняется при помощи пункта меню Окна. Названия команд этого пункта совпадают с названиями окон, и выбор любой команды приведет к активации соответствующего окна.

    Пункт меню Справка — это справочная информация о системе. Здесь можно вызывать средства справочной системы и выполнять её настройку.

    1.4.5 Форма приложения

    Форма приложения (рис. 1.15) — это проект интерфейса будущего программного продукта. Вначале это окно содержит только стандартные элементы: строку заголовка и кнопки развертывания, свертывания и закрытия. Рабочая область окна заполнена точками координатной сетки Координатная сетка отображается только на этапе создания программы при включённом флажке "Показать сетку" (см. рис. 1.17). . Задача программиста — используя панель компонентов, заполнить форму различными интерфейсными элементами, создавая тем самым внешний вид своей программы.

    Команды настройки окна формы находятся на вкладке Редактор форм (рис. 1.17) в меню Окружение — Настройки окружения...

    (рис 1.17) Настройка окна формы

    1.4.6 Окно редактора Lazarus

    Окно редактора (рис. 1.14) тесно связано с формой приложения (рис. 1.18) и появляется вместе с ним при создании нового проекта. Окно редактора по умолчанию находится на первом плане и закрывает окно формы. Переключаться между этими окнами можно командой Просмотр — Переключить модуль / форму, клавишей F12 или просто щелчком мыши.

    Окно редактора предназначено для создания и редактирования текста программы, который создается по определённым.правилам и описывает некий алгоритм. Если окно формы определяет внешний вид будущей программы, то программный код, записанный в окне редактора, отвечает за её поведение.

    Вначале окно редактора содержит текст, обеспечивающий работу пустой формы. Этот программный код появляется в окне редактора автоматически, а программист в ходе работы над проектом вносит в него дополнения, соответствующие функциям создаваемой программы.

    Обратите внимание, что при загрузке Lazarus автоматически загружается последний проект, с которым работал пользователь. Происходит это благодаря отмеченному пункту Открывать последний проект при запуске (рис. 1.19), который находится на вкладке Файлы меню Окружение — Настройки окружения... Если убрать метку рядом с командой Открывать последний проект при запуске, то при загрузке Lazarus будет создавать новый проект.

    (рис 1.18) Окно формы и окно редактора (рис 1.19) Окно настройки файлов в среде Windows (рис 1.20) Настройки окна редактора программного кода

    Настроить окно редактора можно с помощью вкладки Общие меню Окружение — Настройки редактора... (рис. 1.20). Для того чтобы установить (отменить) ту или иную настройку, достаточно установить (убрать) маркер рядом с её названием и подтвердить изменения нажатием кнопки Ok.

    На вкладке Дисплей меню Окружение — Настройки редактора... (рис. 1.21) можно изменить шрифт текста программного кода.

    Как и в большинстве текстовых редакторов, в редакторе программного кода Lazarus предусмотрена работа с шаблонами. Здесь под шаблоном подразумевается автоматический ввод конструкций языка программирования. Например, пользователь вводит символ b, затем символ пробел, а на экране появляется конструкция begin...end. Настройку шаблонов можно выполнить в диалоговом окне (рис. 1.22), которое появится после выполнения команды Окружение — Шаблоны кода... Например, чтобы заработал рассмотренный шаблон, нужно выбрать (щёлкнуть по нему мышкой) в списке шаблонов строку b — begin...end и установить маркер рядом с командой Включить макросы. Затем в группе команд Автозавершение при обнаружении... выбрать слово пробела. Если среди команд автозавершения выбрать конец строки, то шаблон будет появляться в тексте программы после ввода символа b и нажатия клавиши Enter.

    (рис 1.21) Окно настройки редактора программного кода, вкладка Дисплей (рис 1.22) Окно настройки шаблонов редактора программного кода в среде Linux (рис 1.23) Окно создания шаблона программного кода

    Шаблоны можно добавлять, удалять и править. Для этого в окне Шаблоны кода предусмотрены специальные кнопки. В нижней части окна, над кнопками Ok и Отмена, расположено поле ввода и редактирования шаблонов с активным курсором. Если выделить любой шаблон из списка, щёлкнув по нему мышкой, то в поле ввода появится соответствующая конструкция.

    Если воспользоваться кнопкой Добавить, то появится диалоговое окно (рис. 1.23) для создания шаблона. Здесь в поле Элемент следует указать символ или группу символов, ввод которых будет связан с создаваемым шаблоном. В поле Комментарий можно дать краткое описание шаблона и нажать кнопку Добавить. Элемент и комментарий к нему будут добавлены в список шаблонов в окне Шаблоны кода. Теперь нужно создать сам шаблон, то есть указать, какая именно конструкция языка появится при вводе элемента в текст программы. Для этого надо выделить вновь созданный шаблон и в поле ввода, расположенном в нижней части окна Шаблоны кода, ввести соответствующий текст.

    Например, создадим шаблон для конструкции repeat..until, которая будет добавлена в текст, если пользователь введёт символ r. Выполним следующую последовательность действий:

  • щёлкнем по кнопке Добавить в окне Шаблоны кода (см. рис. 1.22);
  • в появившемся диалоговом окне Добавить шаблон кода (рис. 1.23) в поле Элемент введём символ r, а в поле Комментарий фразу repeat until, и нажмём кнопку Добавить;
  • в окне Шаблоны кода (рис. 1.241.25) выделим в списке шаблонов строку r — repeat until;
  • введём в поле ввода, расположенном в нижней части окна, конструкцию языка repeat until;
  • нажмём кнопку Ok в окне Шаблоны кода.
  • Для изменения шаблона служит кнопка Правка. Шаблон, который нужно откорректировать, должен быть выделен. Дальнейшие действия аналогичны тем, которые выполняются при создании шаблона.

    (рис 1.24) Создание нового шаблона в Linux (рис 1.25) Создание нового шаблона в среде Windows

    Для того чтобы удалить шаблон из списка, его нужно выделить, а затем нажать кнопку Удалить.

    1.4.7 Панель компонентов

    Панель компонентов расположена Включить (выключить) Панель компонентов можно, установив (убрав) маркер рядом с командой Показать палитру компонентов меню Просмотр. под главным меню (рис. 1.14). Она состоит из большого числа групп, в которых располагаются соответствующие компоненты (рис. 1.26).

    (рис 1.26) Панель компонентов

    Компонент — это некий функциональный элемент интерфейса, обладающий определенными свойствами. Размещая компоненты на форме, программист создаёт элементы внешнего вида своей будущей программы — окна, кнопки, переключатели, поля ввода и т. п.

    Компоненты на панели объединяются в группы по функциональному признаку. После создания проекта по умолчанию открывается список группы Standard, содержащий основные элементы диалоговых окон. Просмотреть другие группы можно, раскрывая их щелчком по соответствующей вкладке.

    Для того чтобы расположить новый компонент на форме нужно сделать два щелчка мышью:

  • в панели компонентов — для выбора компонента;
  • в рабочем пространстве формы — для указания положения левого верхнего угла компонента.
  • 1.4.8 Инспектор объектов

    Окно инспектора объектов располагается слева от окна редактирования. Как правило, оно содержит информацию о выделенном объекте. На рис. 1.27 представлен инспектор объектов с информацией о вновь созданной форме.

    Окно инспектора объектов имеет три вкладки: Свойства, События, Избранное, которые используются для редактирования свойств объекта и описания событий, на которые будет реагировать данный объект. Совокупность свойств отображает внешнюю сторону объекта, совокупность событий — его поведение.

    Вкладки инспектора объектов представляют собой таблицу. В левой колонке расположены названия свойств или событий, в правой — конкретные значения свойств или имена подпрограмм, обрабатывающих события.

    (рис 1.27) Окно инспектора объектов

    Чтобы выбрать свойство или событие, необходимо щёлкнуть левой кнопкой мыши по соответствующей строке.

    Свойства, отображённые в таблице, могут быть простыми или сложными. Простые свойства определены единственным значением. Например, свойство Caption (Заголовок) определяется строкой символов, свойства Height (Высота) и Width (Ширина) — числом, свойство Enabled (Допустимость) — значениями True (Истина) и False (Ложь). Сложные свойства определяются совокупностью значений. Например, свойство Font (Шрифт). Слева от имени этого свойства стоит знак "+". Это означает, что свойство сложное, и при щелчке по значку "+" откроется список его составляющих.

    Активизировать значение любого свойства можно обычным щелчком мыши. При этом в конце строки может появиться либо кнопка с символом многоточия, либо кнопка со стрелкой, направленной вниз. Щелчок по многоточию откроет диалоговое окно для установки значений сложных свойств (например Font). Обращение к стрелке приведёт к раскрытию списка возможных значений простого свойства (например Enabled).

    1.4.9 Первая программа в Lazarus

    Процесс создания программы в Lazarus состоит из двух этапов:

  • формирования внешнего вида программы, её интерфейса;
  • написания программного кода на языке программирования Free Pascal, заставляющего работать элементы интерфейса.
  • Как мы уже выяснили, для создания интерфейса программы существует окно формы, а для написания программного кода — окно редактора. Эти окна тесно связаны между собой, и размещение компонентов на форме приводит к автоматическому изменению программного кода.

    (рис 1.28) Создание нового проекта в Linux (рис 1.29) Создание нового проекта в среде Windows

    Начнём знакомство с визуальным программированием с создания простой программы про кнопку, которая хочет, чтобы по ней щёлкнули. После чего появляется сообщение о работе программы.

    Начнём с создания нового проекта. Для этого выполним команду главного меню Проект — Создать проект... В появившемся диалоговом окне (рис. 1.281.29) выберем из списка слово Приложение и нажмём кнопку Создать. Результатом этих действий будет появление окна формы и окна редактора программного кода.

    Сохраним созданный проект, воспользовавшись командой Проект — Сохранить проект как... Откроется окно сохранения программного кода Сохранить Unit1 (рис. 1.301.31).

    Создадим в нём новую папку Primer_1 (можно воспользоваться кнопкой Создание новой папки (Создание каталога)), откроем её и щёлкнем по кнопке Сохранить. Тем самым мы сохраним файл Unit1.pas, содержащий текст программы. Сразу же откроется окно Сохранить проект (рис. 1.321.33), в котором также необходимо щёлкнуть по кнопке Сохранить. Теперь мы сохранили файл Project1, содержащий общие сведения о проекте.

    (рис 1.30) Окно сохранения модуля в Windows (рис 1.31) Окно сохранения модуля в Linux (рис 1.32) Окно сохранения проекта в Windows (рис 1.33) Окно сохранения проекта в Linux (рис 1.34) Файлы проекта в Windows (рис 1.35) Файлы проекта в Linux

    На самом деле все наши манипуляции привели к сохранению более чем двух файлов. Теперь в каталоге Primer_1 (рис. 1.341.35) хранится файл с текстом программы unit1.pas, файл unit1.lfm Можно задать и имена файлов, отличные от стандартных Unit1. со сведениями о форме Form1, а также файлы project1.lpn и project1.lpi, содержащие настройки системы программирования и параметры конфигурации проекта.

    Итак, проект сохранён. Все дальнейшие изменения будем сохранять командой Проект — Сохранить проект.

    Теперь можно приступить к визуальному программированию. У нас есть один объект — форма Form1. Изменим некоторые его свойства с помощью инспектора объектов.

    Перейдём в окно инспектора объектов и найдем в нём свойство Caption (Заголовок). Свойство формы Caption отвечает за текст, выводимый в заголовке формы. По умолчанию оно имеет значение Form1. Изменим его на слово ПРИМЕР 1 (рис. 1.36). Это изменение сразу же отразится на форме — в поле заголовка появится надпись "ПРИМЕР 1" (рис. 1.38). Аналогично можно изменить размеры формы, присвоив новые значения свойствам Height (Высота) и Width (Ширина), ещё проще это сделать, изменив положение границы формы с помощью кнопки мыши, как это делается со всеми стандартными окнами.

    (рис 1.36) Изменение свойства формы Caption (рис 1.37) Изменение свойства формы Position (рис 1.38) Изменение заголовка формы (рис 1.39) Размещение кнопки на форме

    Изменим ещё одно свойство формы — Position (положение формы на экране). Значения этого свойства не вводятся вручную, а выбираются из списка (рис. 1.37). Если выбрать свойство poScreenCenter, то форма всегда будет появляться в центре экрана.

    Напомним, что мы пишем программу про кнопку. Пришло время поместить её на форму. Для этого обратимся к панели компонентов (рис. 1.26) и найдём там компонент Tbutton. Чтобы разместить компонент на форме, нужно сделать два щелчка мышью: первый — по компоненту, второй — по окну формы. В результате форма примет вид, представленный на рис. 1.39.

    Теперь у нас два объекта: форма Form1 и кнопка Button1. Напомним, что изменения значений свойств в окне инспектора объектов относятся к выделенно му объекту. Поэтому выделим объект Button1 и изменим его заголовок Caption и размеры Height (высота формы), Width (Ширина формы). В заголовке напишем фразу "Щёлкни мышкой!!!", установим ширину 135 пикселей, а высоту — 25 пикселей. Сохраним проект (Проект — Сохранить проект).

    (рис 1.40) Кнопка Запуск на панели инструментов Lazarus (рис 1.41) Результат работы программы

    Для того чтобы посмотреть, как работает наша программа, её необходимо запустить на выполнение. Сделать это можно командой Запуск — Запуск, функциональной клавишей F9 или кнопкой Запуск на панели инструментов (рис. 1.40). Созданное окно с кнопкой должно выглядеть, как на рис. 1.41.

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

    	
    unit Unit1;
    {$mode objfpc}{$H+}
    interface
    uses
    	Classes, SysUtils, LResources, Forms, Controls,
    	Graphics, Dialogs, StdCtrls;
    type
    	{ TForm1 }
    	TForm1 = class (TForm)
    	Button1 : TButton;
    	private
    		{ private declarations }
    	public
    		{ public declarations }
    end;
    var
    	Form1 : TForm1;
    implementation
    initialization
    	{$I unit1.lrs}
    end;
    

    О назначении всех перечисленных в листинге команд мы поговорим позже. Вернёмся к программе и подумаем, что же мы хотим от нашей кнопки. Скорее всего, это должна быть реакция на какое то событие, например на щелчок мыши. После запуска программы на экране появилось окно, на котором расположена кнопка с надписью "Щёлкни мышкой!!!". Предположим, что если мы щёлкнем по ней, она "обрадуется" и сообщит: "УРА! ЗАРАБОТАЛО!".

    Для воплощения этой идеи завершим работу программы, закрыв окно с кнопкой обычным способом (щелчком по крестику в правом верхнем углу) и перейдём в режим редактирования. Перейдём к инспектору объектов, выделим кнопку Button1 и обратимся к вкладке События инспектора объектов. Напомним, что здесь расположены описания событий. Выберем событие OnClick — обработка щелчка мыши и дважды щёлкнем в поле справа от названия (рис. 1.42).

    (рис 1.42) Выбор события OnClick

    В результате описанных действий в окне редактора появится следующий текст:

    	
    procedure TForm1. Button1Click ( Sender : TObject );
    begin
    end;
    

    На данном этапе изложения материала данный текст — это фрагмент программного кода, именуемый подпрограммой. О назначении этой подпрограммы можно догадаться по её имени TForm1.Button1Click: на форме Form1 для объекта кнопка Button1 обрабатывается событие "щелчок мыши" Click. Все команды, написанные между словами begin и end, будут выполняться при наступлении указанного события (щелчка мыши).

    Теперь установим курсор между словами begin и end созданной подпрограммы и напишем:

    	
    Button1. Caption:= ’УРА! ЗАРАБОТАЛО! ’;
    

    Эта запись означает изменение свойства кнопки. Только теперь мы выполнили его не с помощью инспектора объектов, а записав оператор языка программирования. Прочитать его можно так: присвоить (:=) свойству Caption объекта Button1 значение ’УРА! ЗАРАБОТАЛО!’. Поскольку присваиваемое значение — строка, оно заключено в одинарные кавычки.

    Теперь текст подпрограммы в окне редактора имеет вид:

    	
    procedure TForm1. Button1Click ( Sender : TObject );
    begin
    	Button1. Caption := ’УРА! ЗАРАБОТАЛО! ’;
    end;
    

    Сохраним созданную программу, запустим её на выполнение и убедимся, что кнопка реагирует на щелчок мыши (рис. 1.43). Закрыть проект можно командой Проект — Закрыть проект.

    (рис 1.43) Окончательный результат работы программы

    1.4.10 Полезная программа

    Итак, первая программа написана. Она не несёт особой смысловой нагрузки. Главная ее задача — показать, что же такое визуальное программирование. Следующая программа также будет несложной, но полезной. Мы автоматизируем процесс перевода старой русской меры веса в современную. Эта задача формулируется так: выполнить перевод пудов и фунтов в килограммы, если известно, что 1 пуд = 40 фунтам = 16.38 кг.

    Итак, наша программа должна позволить пользователю ввести два числа (пуды и фунты) и после щелчка по кнопке сообщить, каково значение в килограммах.

    Создадим новый проект, выполнив команду Проект — Создать проект..., и сохраним его в папке Primer_2 командой Проект — Сохранить проект как...

    Воспользуемся вкладкой Standard панели компонентов и разместим на форме следующие компоненты: четыре объекта типа надпись Label (этот компонент используется для размещения в окне не очень длинных однострочных надписей); два поля ввода Edit (это редактируемое текстовое поле, предназначенное для ввода, отображения или редактирования одной текстовой стоки); одну кнопку Button (этот компонент обычно используют для реализации некоторой команды). Компоненты должны располагаться на форме примерно так, как показано на рис. 1.44.

    (рис 1.44) Конструирование формы (рис 1.45) Изменение свойств формы и ее компонентов

    В первой надписи будет храниться текст "Меры веса". Две надписи Label2 и Label3 нужны для пояснения того, какие именно данные должны вводиться, надпись Label4 понадобится для вывода результата. В поля ввода Edit1 и Edit2 будут введены конкретные значения: вес в пудах и фунтах. Вычисление веса в килограммах произойдёт при щелчке по кнопке Button1 и будет выведено в Label4. Изменим свойства формы и размещённых на ней компонентов в соответствии с табл. 1.1, табл. 1.2, табл. 1.3, табл. 1.4. После всех изменений форма будет иметь вид, представленный на рис. 1.45.

    Значение свойств формы
    Свойство Значение Описание свойства
    Caption Перевод из старой русской меры веса в современную Заголовок формы
    Height 230 Высота формы
    Width 400 Ширина формы
    Font.Name Arial Название шрифта
    Font.Size 10 Размер шрифта
    Свойства компонентов типа надпись
    Свойство Label1 Label2 Label3 Label4 Описание свойства
    Caption Меры веса пуды фунты В кг: Заголовок компонента
    Height 15 15 15 15 Высота компонента
    Width 60 30 35 85 Ширина компонента
    Top 20 50 105 25 Координата верхнего края
    Left 25 115 115 200 Координата левого края
    Свойства компонентов поле ввода
    Свойство Edit1 Edit2 Описание свойства
    Text пробел пробел Текст в поле ввода
    Height 25 25 Высота компонента
    Width 135 135 Ширина компонента
    Top 40 95 Координата верхнего края
    Left 175 175 Координата левого края
    Свойства компонента кнопка
    Свойство Значение Описание свойства
    Caption ВЫЧИСЛИТЬ Текст на кнопке
    Height 25 Высота компонента
    Left 200 Ширина компонента
    * Top Свойства Top и Left определяют расположение компонента относительно верхнего левого угла формы. 150 Координата верхнего края
    Width 80 Координата левого края

    Интерфейс программы готов. Займёмся вычислительной частью задачи. Для этого создадим для кнопки Button1 обработчик событий OnClick, для чего дважды щёлкнем по объекту Button1 левой кнопкой мыши. Между словами begin и end созданной подпрограммы запишем несколько команд, чтобы получился следующий программный код:

    	
    procedure TForm1. Button1Click ( Sender : TObject );
    var
    pud, funt : integer;
    kg : real;
    begin
    	pud:= StrToInt ( Edit1. Text );
    	funt := StrToInt ( Edit2. Text );
    	kg:=pud * 16.38+ funt * 16.38 / 40;
    	Label4. Caption := ’В килограммах :  ’+FloatToStr ( kg );
    end;
    

    Рассмотрим программный код построчно.

    Строка 1. Заголовок подпрограммы. Он состоит из ключевого слова procedure и имени подпрограммы TForm1.Button1Click, а в скобках обычно указывают список параметров подпрограммы, если таковые имеются.

    Строка 2. Открывает блок описания переменных (var — от variable, переменная).

    Строка 3. Описывает переменные pud и funt. Компьютер понимает эту запись как команду выделить в памяти место для хранения двух целых чисел О переменных и их типах подробнее рассказывается в следующей главе. .

    Строка 4. Описывает одну вещественную переменную kg.

    Строка 5. Начинает программный блок (begin — начало ).

    Строка 6. Команда, выполняющая следующие действия. Из свойства Text поля ввода Edit1 считывает введённую туда информацию. Эта информация воспринимается компьютером как строка текста (например, "360" — это строка из трёх символов), а поскольку нам для вычислений нужны числовые значения, то функция StrToInt преобразовывает её в целое число. Результат этих преобразований записывается в память компьютера под именем pud. Символы ":=" обозначают оператор присваивания. Например, запись a:=3.14 читается так: переменной a присвоить значение 3.14. Выражение 3.14:=a не имеет смысла.

    Строка 7. Информация из поля ввода Edit2 преобразовывается в целое число и записывается в переменную funt. Фактически команды, записанные в шестой и седьмой строках, осуществляют ввод исходных данных.

    Строка 8. Вычисляется значение выражения, результат которого присваивается переменной kg. Обратите внимание, что умножение здесь обозначается звездочкой, деление — наклонной чертой, сложение — знаком "+". Записывая математическое выражение на языке программирования, нужно чётко указывать все операции. Нельзя, например, опустить знак умножения, как это принято в математике.

    (рис 1.46) Сообщение об ошибке в программе

    Строка 9. Изменяет свойство Caption объекта Label4. В него будет помещён текст, состоящий из двух строк. Первая — ’В килограммах: ’, вторая — значение переменной kg. Знак "+" в этом выражении применяют для конкатенации (слияния) строк. Кроме того, поскольку значение переменной kg — вещественное число, оно преобразовывается в строку функцией FloatToStr. Фактически в этой строке был выполнен вывод результатов.

    Строка 10. Конец программного блока (end — конец ).

    Теперь наша программа может быть откомпилирована и запущена на выполнение. Процесс компиляции представляет собой перевод программы с языка программирования в машинный код. Для компиляции нужно выполнить команду Запуск — Быстрая компиляция. Во время компиляции проверяется наличие синтаксических ошибок, и в случае их обнаружения процесс компиляции прерывается. Мы специально допустили ошибку в восьмой строке программного кода (пропустили двоеточие в операторе присваивания). Результат компиляции программы с синтаксической ошибкой показан на рис. 1.46.

    Строка с ошибкой выделена красным цветом, а под окном редактора появилось окно Сообщение Если окно Сообщение отсутствует, его можно вывести на экран командой Просмотр — Сообщения. , в котором описана допущенная ошибка. Ошибку нужно исправить, а программу ещё раз откомпилировать.

    После успешной компиляции всех файлов, входящих в проект, необходимо собрать (скомпоновать) проект из объектных (откомпилированных) файлов (с расширением — для Linux,.obj — для Windows). Для этого следует выполнить команду Запуск — Собрать или воспользоваться комбинацией клавиш Ctrl+F9. В результате компоновки будет сгенерирован исполняемый файл, имя которого совпадает с именем проекта.

    (рис 1.47) Результат работы программы

    Вообще говоря, если команду Запуск — Быстрая компиляция опустить, а сразу выполнить команду Запуск — Собрать, то произойдёт и компиляция всех файлов проекта и его компоновка.

    После успешной компиляции и сборки программу нужно сохранить (Проект — Сохранить) и запустить. Запуск осуществляется из среды разработки (Запуск — Запуск) или выполнением файла: в Linux —./project1, в Windows — projec1.exe. На рис. 1.47 показан результат работы нашей программы.

    Обратите внимание, что ошибки могут возникать и после запуска программы. Например, в нашем примере исходные данные — целые числа. Если ввести дробь, появится аварийное сообщение. В подобной ситуации следует прервать выполнение программы командой Запуск — Останов (Ctrl+F2).

    Вернуться к созданному проекту, например с целью его усовершенствования, не сложно. Нужно выполнить команду Проект — Открыть проект... (Ctrl+F11), перейти к папке с проектом и выбрать из списка файл с именем project1.lpi.

    1.4.11 Консольное приложение среды Lazarus

    В Lazarus можно создавать не только визуальные приложения с графическим интерфейсом, но и писать программы на Free Pascal в текстовом режиме. Для этого существует консольное приложение.

    Чтобы создать новое консольное приложение, нужно выполнить команду Проект — Создать проект..., в появившемся диалоговом окне (рис. 1.281.29) выбрать фразу Программа пользователя и нажать кнопку Создать. На экране появится окно редактора программного кода (рис. 1.48), в котором уже представлена общая структура программы на языке Free Pascal.

    (рис 1.48) Окно редактора в консольном приложении

    В общем виде программа на языке Free Pascal состоит из заголовка программы, раздела описаний и непосредственно тела программы.

    Заголовок программы состоит из ключевого слова program и имени программы. В нашем случае (рис. 1.48) это Project1. Имя было присвоено программе автоматически. При желании его можно изменить.

    Раздел описаний обычно включает в себя описание констант, типов, переменных, процедур и функций. На рис. 1.48 видно, что раздел описаний начинается со слова uses. Это раздел подключения модулей. Модуль — это специальная программа, которая расширяет возможности языка программирования. В нашем случае происходит подключение модуля SysUtils, который позволяет работать с файлами и каталогами, и модуля Classes, который работает с компонентами.

    За разделом описаний следует исполняемая часть программы, или тело программы. Оно начинается со служебного слова begin и заканчивается служебным словом end и точкой. Тело программы содержит операторы языка, предназначенные для реализации поставленной задачи.

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

    Рассмотрим пример. Пусть нужно решить задачу перевода градусной меры угла в радианную. Эта задача известна из школьного курса и формулируется так: чтобы найти радианную меру какогонибудь угла по данной градусной мере, нужно умножить число градусов на π/180, число минут на π/(180 * 60) и найденные произведения сложить.

    Текст программы для решения поставленной задачи в консольном приложении будет иметь вид:

    	
    program Project1;
    {$mode objfpc}{$H+}
    uses
    	Classes, SysUtils
    		{ you can add units after this };
    var
    	gradus, minuta : integer;
    	radian : real;
    begin
    	write ( ’ gradus= ’ );
    	readln ( gradus );
    	write ( ’ minuta= ’ );
    	readln ( minuta );
    	radian := gradus * p i /180+minuta * p i / ( 180 * 60 );
    	writeln ( ’ radian= ’, radian );
    end.
    

    Сохранить, открыть, откомпилировать, скомпоновать и запустить на выполнение программу в консольном приложении можно так же, как и в визуальном проекте. Результаты работы нашей программы будет иметь вид:

    	
    gradus=165
    minuta=30
    radian=2.8885199120506E+000
    

    Нетрудно заметить, что к тексту, созданному автоматически, мы добавили описание переменных (все используемые в программе переменные должны быть описаны).

    	
    var
    	gradus, minuta : integer; //Описаны две целочисленные переменные.
    	radian : real; //Описана вещественная переменная.
    

    и тело программы

    	
    begin //Начало тела программы.
    	write ( ’ gradus= ’ ); //Вывод на экран символов gradus=.
    	readln ( gradus ); //Ввод переменной gradus.
    	write ( ’ minuta= ’ ); //Вывод на экран символов minuta=.
    	readln ( minuta ); //Ввод переменной minuta.
    	radian := gradus * pi /180+minuta * pi / ( 180 * 60 ); //Вычисление.
    	writeln ( ’ radian= ’, radian ); //Вывод результата вычислений.
    end. //Конец тела программы.
    

    Так как в этой программе графический интерфейс отсутствует, мы разработали элементарный текстовый диалог "компьютер — пользователь". Для этого были использованы операторы ввода (read) и вывода (write) данных.

    1.4.12 Операторы ввода — вывода данных

    Ввод информации с клавиатуры осуществляется с помощью оператора read. Он может иметь один из следующих форматов:

    read ( x1, x2,..., xn );

    или

    readln ( x1, x2,..., xn );

    где x1, x2,..., xn — список вводимых переменных. При вводе вещественных значений целую и дробную часть числа следует разделять точкой.

    Когда в программе встречается оператор read, её действие приостанавливается до тех пор, пока не будут введены исходные данные. При вводе числовых значений два числа считаются разделёнными, если между ними есть хотя бы один пробел, символ табуляции или конца строки (Enter). После ввода последнего значения следует нажать Enter.

    Оператор readln аналогичен оператору read, разница заключается в том, что после считывания последнего в списке значения для одного оператора readln данные для следующего оператора readln будут считываться с начала новой строки. Но следует помнить, что Enter переведёт курсор на новую строку независимо от того, как именно происходит считывание данных.

    Для вывода информации на экран служат операторы write и writeln. В общем случае эти операторы имеют вид:

    write ( x1, x2,..., xn );

    или

    writeln ( x1, x2,..., xn );

    где x1, x2,..., xn представляют собой список выводимых переменных, констант, выражений. Если элемент списка — текстовая информация, её необходимо взять в кавычки.

    Операторы write и writeln последовательно выводят все переменные. Если используется оператор writeln, то после вывода информации курсор перемещается в новую строку.

    Итак, в нашем примере оператор write(’gradus=’); выводит на экран символы gradus=, которые подсказывают пользователю, что он должен ввести значение переменной gradus, а оператор readln(gradus); предназначен для ввода значения переменной gradus. Оператор writeln(’radian=’, radian); выводит на экран два значения: строку radian= и значение переменной radian.

    Как правило, вещественные данные выводятся в формате с плавающей точкой:

    $$\#.\#\#\#\#\#\#\#\#\#\#\#E\pm\#\#\#,$$

    где # — любая десятичная цифра от 0 до 9. Для того чтобы перейти к формату с фиксированной точкой, нужно число, расположенное до символа $$E$$ (мантиссу числа), умножить на 10, возведённое в степень, значение которой указано после числа $$E$$ (порядок числа). Например,

    $$0.35469000000E - 01 = 0.35469000000 * 10^{-1}= 0.035469,\\ -5.43286710000E + 02 = -5.43286710000 * 10^2= -543.28671.$$

    Чтобы выводить числа в формате с фиксированной точкой, необходимо использовать форматированный вывод. Для этого оператор write или writeln нужно задать следующим образом:

    write (идентификатор : ширина_поля_вывода : дробная_часть );

    где идентификатор — это имя переменной, которая будет выводится на экран; ширина_поля_вывода — количество позиций (целая часть, точка, дробная часть), которое будет занимать значение переменной при выводе; дробная_часть — количество позиций, необходимых для дробной части числа.

    Например, пусть результат работы нашей программы имеет вид

    	
    gradus=165
    minuta=30
    radian=2.8885199120506E+000
    

    Понятно, что оператор

    writeln ( ’ radian= ’, radian );

    вывел на экран значение переменной radian в формате с плавающей точкой.

    Если воспользоваться оператором

    writeln ( ’ radian= ’, radian : 5 : 3 );

    то результат работы программы будет таким:

    	
    gradus=165
    minuta=30
    radian=2.889
    

    где значение переменной radian представлено в формате с фиксированной точкой (всё число занимает пять позиций и три из них после запятой).

    Вернуться к учебному плану