Эта книга — не просто учебник по программированию на давно уже ставшем традиционным для преподавания языке Паскаль. Это первое издание на русском языке, посвященное свободной реализации этого языка — 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 ведёт своё начало от классического языка Pascal, который был разработан в конце 60-х годов XX века Никлаусом Виртом. Н. Вирт разрабатывал этот язык как учебный язык для своих студентов. С тех пор Pascal, сохранив простоту и структуру языка, разработанного Н. Виртом, превратился в мощное средство программирования. С помощью современного языка Pascal можно производить простые расчёты, разрабатывать программы для проведения сложных инженерных и экономических вычислений.
Разработку программы можно разбить на следующие этапы:
Процессы отладки и тестирования сопровождаются неоднократным запуском программы на выполнение. Процесс запуска программы может быть осуществлён только после того, как введённая в компьютер программа на алгоритмическом языке
Если в качестве транслятора выступает компилятор, то процесс перевода текста программы в машинный код называют компиляцией. При переводе программы с языка Pascal в машинный код используются именно
Рассмотрим основные этапы обработки компилятором программы на языке Pascal.
На сегодняшний день существует множество компиляторов языка Pascal, среди которых можно выделить Borland Pascal, Delphi, а также свободно распространяемый кроссплатформенный компилятор языка Free Pascal и среду визуального программирования Lazarus.
Рассмотрим процесс установки компилятора 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 входит текстовый редактор, транслятор и отладчик. Рассмотрим их работу подробнее.
С помощью редактора Free Pascal можно создавать и редактировать тексты программ. После открытия пустого окна (File — New) или загрузки текста программы (File — Open) мы находимся в режиме редактирования, что подтверждается наличием в окне курсора (небольшого мигающего прямоугольника). Для перехода из режима редактирования к главному меню нужно нажать клавишу F10, обратно — Esc. Кроме того, этот переход можно осуществить щелчком мыши либо по строке главного меню, либо по полю редактора.
Редактор Free Pascal обладает возможностями, характерными для большинства текстовых редакторов. Остановимся на некоторых особенностях.
Работа с фрагментами текста (блоками) в редакторе Free Pascal может осуществляться с помощью главного меню и функциональных клавиш. Выделить фрагмент текста можно с помощью клавиши Shift и клавиш перемещения курсора (стрелок).
В главном меню для работы с фрагментами текста предназначены команды пункта редактирования Edit:
Команды Copy и Cut применяют только к выделенным фрагментам текста. Кроме того, пункт меню Edit содержит команды Undo и Redo, с помощью которых можно отменять и возвращать выполненные действия.
Комбинации клавиш, предназначенные для работы с блоком, таковы:
вновь выделит блок.
Работа с файлами в среде Free Pascal осуществляется с помощью команд File главного меню и функциональных клавиш:
При создании новой программы ей по умолчанию присваивается стандартное имя NONAMEOO.PAS (NO NAME — нет имени).
При первом сохранении файла пользователю будет предложено ввести его имя. При повторном сохранении файл сохраняется под тем же именем. Команда Save As аналогична первому сохранению. Если файл не был сохранён, то при попытке завершить работу со средой, появится запрос о необходимости сохранить изменения в файле. При открытии ранее созданного файла его имя выбирают из списка существующих файлов.
В редакторе 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), который позволяет разрабатывать программы на различных языках программирования.
Среда разработки (её также иногда называют текстовым редактором) Geany есть в репозитории большинства современных дистрибутивов
Последовательно рассмотрим основные этапы разработки программы с использованием Geany.
(рис 1.6) Окно Geany c текстом программы на языке Free Pascal
В Geany можно настроить команды вызова компиляции, компоновки и запуска. Для этого служит команда Построить — Установить включения и аргументы. Это окно для работы с файлами с расширением pas представлено на рис. 1.8. При настройке строк Compile и Запуск следует учитывать, что %f — имя компилируемого файла, %e — имя файла без расширения.
(рис 1.7) Окно терминала с результатами работы программы
(рис 1.8) Окно Установить включения и аргументы для Free Pascal
Выбор среды для разработки консольных программ на Free Pascal — дело пользователя. Авторы советуют читателю под управлением ОС Linux использовать
Lazarus — это среда визуального программирования. Здесь программист получает возможность не просто создавать программный код, но и наглядно (визуально) показывать системе, что бы он хотел увидеть.
Технология визуального программирования позволяет строить
(рис 1.9) Окно поиска пакета Lazarus для установки
Среда визуального программирования Lazarus сочетает в себе компилятор, объектно-ориентированные средства визуального программирования и различные технологии, облегчающие и ускоряющие создание программы.
Для установки Lazarus в окне Synaptic (см. рис. 1.1) необходимо щёлкнуть по кнопке Найти. В появившемся окне поиска (см. рис. 1.9) вводим имена необходимых программ (lazarus, fp, fpc, fpc-source) и щёлкаем по кнопке Найти. Менеджер программ находит программы Lazarus и FreePascal, после чего в окне Synaptic необходимо отметить программы Lazarus, fp, fpc, fpc-ide для установки (с помощью контекстного меню или с помощью кнопки Отметить для обновления) и начать установку, щёлкнув по кнопке Применить. После этого Synaptic предложит установить ещё несколько пакетов, которые необходимы для нормального функционирования Lazarus. С этим предложением нужно согласиться. После этого начнётся процесс загрузки файлов пакетов и установки Lazarus на компьютер. После установки запуск программы осуществляется с помощью команды меню Разработка —
Для установки Lazarus можно не использовать менеджер пакетов Synaptic, а самостоятельно загрузить все необходимые пакеты с сайта проекта и затем вручную их установить. Подробное описание процесса ручной установки можно найти в Интернете.
Рассмотрим особенности установки среды визуального программирования 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
В следующих окнах Мастера установки пользователь может выбрать папку меню Пуск, в которой будет создан ярлык для устанавливаемого
На рис. 1.14 показано окно, которое появится после запуска Lazarus. В верхней части этого окна размещается главное меню и панель инструментов. Слева расположено окно инспектора объектов, а справа — окно редактора исходного кода.
Если свернуть или сдвинуть окно редактора, то станет доступным окно формы, представленное на рис. 1.15.
Работу над программой в среде визуального программирования условно можно разбить на две части. Первая — это создание внешнего вида (интерфейса) будущей программы, вторая — написание программного кода. Окно инспектора объектов и окно формы нужны для создания интерфейса программы, а редактор исходного кода — для работы с её текстом. Файлы, из которых в результате получается программа, называют проектом.
(рис 1.15) Окно формы
Все команды, необходимые для работы в среде визуального программирования Lazarus, содержатся в главном меню. Доступ к командам главного меню осуществляется одинарным щелчком левой кнопкой мыши.
Работа с файлами в среде Lazarus осуществляется при помощи пункта меню Файл. Команды этого пункта меню можно разбить на группы:
Команды, предназначенные для редактирования текста программного кода, собраны в меню Правка. В основном, это команды, характерные для большинства текстовых редакторов:
(рис 1.16) Выбор конструкции языка для заключения в неё выделенного фрагмента программного кода
Далее будут перечислены специфические команды редактора программного кода Lazarus.
Команда Закомментировать добавляет в начале каждой строки выделенного фрагмента два символа "косая черта", что превращает выделенный текст в
Команда Заключить выделение в... приводит к открытию диалогового окна (рис. 1.16), в этом окне пользователь может выбрать конструкцию языка программирования, в которую будет заключён выделенный фрагмент текста.
Команда Сортировка выбранного... также открывает диалоговое окно, в котором можно установить параметры сортировки текста в выделенном фрагменте.
Команды меню Поиск также можно разделить на группы. Первая группа — это непосредственно команды поиска и замены, вторая — команды перехода, а третья — работа с закладкой. В четвёртой группе объединены команды поиска, замены и перехода в выделенном фрагменте. Большинство из этих команд используются в текстовых редакторах, смысл остальных понятен из названия.
Пункт меню Просмотр применяют для настройки внешнего вида среды программирования.
Первая группа команд открывает или активизирует следующие окна:
Следующая группа команд пункта меню Просмотр также открывает диалоговые окна. Эти окна носят информационный характер. Так, команды Модуль... и Форма... выводят список модулей и форм данного проекта. Назначение команд Показать зависимости модулей и Показать сведения о модуле говорят сами за себя. Последняя команда этой группы Переключить модуль/форму активизирует либо окно редактора, либо форму.
В последней группе команд следует отметить команды Показать палитру компонентов и Показать кнопки быстрого доступа. Устанавливая метки рядом с этими командами, пользователь выводит на экран или, наоборот, убирает панели инструментов. Командой Окна отладки пользуются во время отладки программного кода. Здесь можно вызывать Окно наблюдений, Окно отладчика, просматривать точки останова и значения переменных в процессе выполнения программы.
Команды пункта меню Проект предназначены для выполнения различных операций с
Команды, позволяющие запускать проект на выполнение и выполнять его отладку, содержатся в пункте главного меню Запуск:
Работа с
Работа с окнами в Lazarus выполняется при помощи пункта меню Окна. Названия команд этого пункта совпадают с названиями окон, и выбор любой команды приведет к активации соответствующего окна.
Пункт меню Справка — это справочная информация о системе. Здесь можно вызывать средства справочной системы и выполнять её настройку.
Форма приложения (рис. 1.15) — это проект интерфейса будущего программного продукта. Вначале это окно содержит только стандартные элементы: строку заголовка и кнопки развертывания, свертывания и закрытия. Рабочая область окна заполнена точками координатной
Команды настройки окна формы находятся на вкладке Редактор форм (рис. 1.17) в меню Окружение — Настройки окружения...
(рис 1.17) Настройка окна формы
Окно редактора (рис. 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. Выполним следующую последовательность действий:
r, а в поле Комментарий фразу repeat until, и нажмём кнопку Добавить;r — repeat until;repeat until;Для изменения шаблона служит кнопка Правка. Шаблон, который нужно откорректировать, должен быть выделен. Дальнейшие действия аналогичны тем, которые выполняются при создании шаблона.
(рис 1.24) Создание нового шаблона в Linux
(рис 1.25) Создание нового шаблона в среде Windows
Для того чтобы удалить шаблон из списка, его нужно выделить, а затем нажать кнопку Удалить.
Панель компонентов
(рис 1.26) Панель компонентов
Компонент — это некий функциональный элемент интерфейса, обладающий определенными свойствами. Размещая компоненты на форме, программист создаёт элементы внешнего вида своей будущей программы — окна, кнопки, переключатели, поля ввода и т. п.
Компоненты на панели объединяются в группы по функциональному признаку. После создания проекта по умолчанию открывается список группы Standard, содержащий основные элементы диалоговых окон. Просмотреть другие группы можно, раскрывая их щелчком по соответствующей вкладке.
Для того чтобы расположить новый компонент на форме нужно сделать два щелчка мышью:
Окно инспектора объектов располагается слева от окна редактирования. Как правило, оно содержит информацию о выделенном объекте. На рис. 1.27 представлен инспектор объектов с информацией о вновь созданной форме.
Окно инспектора объектов имеет три вкладки: Свойства, События, Избранное, которые используются для редактирования свойств объекта и описания событий, на которые будет реагировать данный объект. Совокупность свойств отображает внешнюю сторону объекта, совокупность событий — его поведение.
Вкладки инспектора объектов представляют собой таблицу. В левой колонке расположены названия свойств или событий, в правой — конкретные значения свойств или имена подпрограмм, обрабатывающих события.
(рис 1.27) Окно инспектора объектов
Чтобы выбрать свойство или событие, необходимо щёлкнуть левой кнопкой мыши по соответствующей строке.
Свойства, отображённые в таблице, могут быть простыми или сложными. Простые свойства определены единственным значением. Например, свойство Caption (Заголовок) определяется строкой символов, свойства Height (Высота) и Width (Ширина) — числом, свойство Enabled (Допустимость) — значениями True (Истина) и False (Ложь). Сложные свойства определяются совокупностью значений. Например, свойство Font (Шрифт). Слева от имени этого свойства стоит знак "+". Это означает, что свойство сложное, и при щелчке по значку "+" откроется список его составляющих.
Активизировать значение любого свойства можно обычным щелчком мыши. При этом в конце строки может появиться либо кнопка с символом многоточия, либо кнопка со стрелкой, направленной вниз. Щелчок по многоточию откроет диалоговое окно для установки значений сложных свойств (например Font). Обращение к стрелке приведёт к раскрытию списка возможных значений простого свойства (например Enabled).
Процесс создания программы в Lazarus состоит из двух этапов:
Как мы уже выяснили, для создания интерфейса программы существует окно формы, а для написания программного кода — окно редактора. Эти окна тесно связаны между собой, и размещение компонентов на форме приводит к автоматическому изменению программного кода.
(рис 1.28) Создание нового проекта в Linux
(рис 1.29) Создание нового проекта в среде Windows
Начнём знакомство с визуальным программированием с создания простой программы про кнопку, которая хочет, чтобы по ней щёлкнули. После чего появляется сообщение о работе программы.
Начнём с создания нового проекта. Для этого выполним команду главного меню Проект — Создать проект... В появившемся диалоговом окне (рис. 1.28—1.29) выберем из списка слово Приложение и нажмём кнопку Создать. Результатом этих действий будет появление окна формы и окна редактора программного кода.
Сохраним созданный проект, воспользовавшись командой Проект — Сохранить проект как... Откроется окно сохранения программного кода Сохранить Unit1 (рис. 1.30—1.31).
Создадим в нём новую папку Primer_1 (можно воспользоваться кнопкой Создание новой папки (Создание каталога)), откроем её и щёлкнем по кнопке Сохранить. Тем самым мы сохраним файл Unit1.pas, содержащий текст программы. Сразу же откроется окно Сохранить проект (рис. 1.32—1.33), в котором также необходимо щёлкнуть по кнопке Сохранить. Теперь мы сохранили файл Project1, содержащий общие сведения о проекте.
(рис 1.30) Окно сохранения модуля в Windows
(рис 1.31) Окно сохранения модуля в Linux
(рис 1.32) Окно сохранения проекта в Windows
(рис 1.33) Окно сохранения проекта в Linux
(рис 1.34) Файлы проекта в Windows
(рис 1.35) Файлы проекта в Linux
На самом деле все наши манипуляции привели к сохранению более чем двух файлов. Теперь в каталоге Primer_1 (рис. 1.34—1.35) хранится файл с текстом программы unit1.pas, файл
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 пуд = 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 | Ширина компонента |
| * |
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.
В Lazarus можно создавать не только визуальные приложения с графическим интерфейсом, но и писать программы на Free Pascal в текстовом режиме. Для этого существует консольное приложение.
Чтобы создать новое консольное приложение, нужно выполнить команду Проект — Создать проект..., в появившемся диалоговом окне (рис. 1.28—1.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) данных.
Ввод информации с клавиатуры осуществляется с помощью оператора 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 ведёт своё начало от классического языка Pascal, который был разработан в конце 60-х годов XX века Никлаусом Виртом. Н. Вирт разрабатывал этот язык как учебный язык для своих студентов. С тех пор Pascal, сохранив простоту и структуру языка, разработанного Н. Виртом, превратился в мощное средство программирования. С помощью современного языка Pascal можно производить простые расчёты, разрабатывать программы для проведения сложных инженерных и экономических вычислений.
Разработку программы можно разбить на следующие этапы:
Процессы отладки и тестирования сопровождаются неоднократным запуском программы на выполнение. Процесс запуска программы может быть осуществлён только после того, как введённая в компьютер программа на алгоритмическом языке
Если в качестве транслятора выступает компилятор, то процесс перевода текста программы в машинный код называют компиляцией. При переводе программы с языка Pascal в машинный код используются именно
Рассмотрим основные этапы обработки компилятором программы на языке Pascal.
На сегодняшний день существует множество компиляторов языка Pascal, среди которых можно выделить Borland Pascal, Delphi, а также свободно распространяемый кроссплатформенный компилятор языка Free Pascal и среду визуального программирования Lazarus.
Рассмотрим процесс установки компилятора 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 входит текстовый редактор, транслятор и отладчик. Рассмотрим их работу подробнее.
С помощью редактора Free Pascal можно создавать и редактировать тексты программ. После открытия пустого окна (File — New) или загрузки текста программы (File — Open) мы находимся в режиме редактирования, что подтверждается наличием в окне курсора (небольшого мигающего прямоугольника). Для перехода из режима редактирования к главному меню нужно нажать клавишу F10, обратно — Esc. Кроме того, этот переход можно осуществить щелчком мыши либо по строке главного меню, либо по полю редактора.
Редактор Free Pascal обладает возможностями, характерными для большинства текстовых редакторов. Остановимся на некоторых особенностях.
Работа с фрагментами текста (блоками) в редакторе Free Pascal может осуществляться с помощью главного меню и функциональных клавиш. Выделить фрагмент текста можно с помощью клавиши Shift и клавиш перемещения курсора (стрелок).
В главном меню для работы с фрагментами текста предназначены команды пункта редактирования Edit:
Команды Copy и Cut применяют только к выделенным фрагментам текста. Кроме того, пункт меню Edit содержит команды Undo и Redo, с помощью которых можно отменять и возвращать выполненные действия.
Комбинации клавиш, предназначенные для работы с блоком, таковы:
вновь выделит блок.
Работа с файлами в среде Free Pascal осуществляется с помощью команд File главного меню и функциональных клавиш:
При создании новой программы ей по умолчанию присваивается стандартное имя NONAMEOO.PAS (NO NAME — нет имени).
При первом сохранении файла пользователю будет предложено ввести его имя. При повторном сохранении файл сохраняется под тем же именем. Команда Save As аналогична первому сохранению. Если файл не был сохранён, то при попытке завершить работу со средой, появится запрос о необходимости сохранить изменения в файле. При открытии ранее созданного файла его имя выбирают из списка существующих файлов.
В редакторе 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), который позволяет разрабатывать программы на различных языках программирования.
Среда разработки (её также иногда называют текстовым редактором) Geany есть в репозитории большинства современных дистрибутивов
Последовательно рассмотрим основные этапы разработки программы с использованием Geany.
(рис 1.6) Окно Geany c текстом программы на языке Free Pascal
В Geany можно настроить команды вызова компиляции, компоновки и запуска. Для этого служит команда Построить — Установить включения и аргументы. Это окно для работы с файлами с расширением pas представлено на рис. 1.8. При настройке строк Compile и Запуск следует учитывать, что %f — имя компилируемого файла, %e — имя файла без расширения.
(рис 1.7) Окно терминала с результатами работы программы
(рис 1.8) Окно Установить включения и аргументы для Free Pascal
Выбор среды для разработки консольных программ на Free Pascal — дело пользователя. Авторы советуют читателю под управлением ОС Linux использовать
Lazarus — это среда визуального программирования. Здесь программист получает возможность не просто создавать программный код, но и наглядно (визуально) показывать системе, что бы он хотел увидеть.
Технология визуального программирования позволяет строить
(рис 1.9) Окно поиска пакета Lazarus для установки
Среда визуального программирования Lazarus сочетает в себе компилятор, объектно-ориентированные средства визуального программирования и различные технологии, облегчающие и ускоряющие создание программы.
Для установки Lazarus в окне Synaptic (см. рис. 1.1) необходимо щёлкнуть по кнопке Найти. В появившемся окне поиска (см. рис. 1.9) вводим имена необходимых программ (lazarus, fp, fpc, fpc-source) и щёлкаем по кнопке Найти. Менеджер программ находит программы Lazarus и FreePascal, после чего в окне Synaptic необходимо отметить программы Lazarus, fp, fpc, fpc-ide для установки (с помощью контекстного меню или с помощью кнопки Отметить для обновления) и начать установку, щёлкнув по кнопке Применить. После этого Synaptic предложит установить ещё несколько пакетов, которые необходимы для нормального функционирования Lazarus. С этим предложением нужно согласиться. После этого начнётся процесс загрузки файлов пакетов и установки Lazarus на компьютер. После установки запуск программы осуществляется с помощью команды меню Разработка —
Для установки Lazarus можно не использовать менеджер пакетов Synaptic, а самостоятельно загрузить все необходимые пакеты с сайта проекта и затем вручную их установить. Подробное описание процесса ручной установки можно найти в Интернете.
Рассмотрим особенности установки среды визуального программирования 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
В следующих окнах Мастера установки пользователь может выбрать папку меню Пуск, в которой будет создан ярлык для устанавливаемого
На рис. 1.14 показано окно, которое появится после запуска Lazarus. В верхней части этого окна размещается главное меню и панель инструментов. Слева расположено окно инспектора объектов, а справа — окно редактора исходного кода.
Если свернуть или сдвинуть окно редактора, то станет доступным окно формы, представленное на рис. 1.15.
Работу над программой в среде визуального программирования условно можно разбить на две части. Первая — это создание внешнего вида (интерфейса) будущей программы, вторая — написание программного кода. Окно инспектора объектов и окно формы нужны для создания интерфейса программы, а редактор исходного кода — для работы с её текстом. Файлы, из которых в результате получается программа, называют проектом.
(рис 1.15) Окно формы
Все команды, необходимые для работы в среде визуального программирования Lazarus, содержатся в главном меню. Доступ к командам главного меню осуществляется одинарным щелчком левой кнопкой мыши.
Работа с файлами в среде Lazarus осуществляется при помощи пункта меню Файл. Команды этого пункта меню можно разбить на группы:
Команды, предназначенные для редактирования текста программного кода, собраны в меню Правка. В основном, это команды, характерные для большинства текстовых редакторов:
(рис 1.16) Выбор конструкции языка для заключения в неё выделенного фрагмента программного кода
Далее будут перечислены специфические команды редактора программного кода Lazarus.
Команда Закомментировать добавляет в начале каждой строки выделенного фрагмента два символа "косая черта", что превращает выделенный текст в
Команда Заключить выделение в... приводит к открытию диалогового окна (рис. 1.16), в этом окне пользователь может выбрать конструкцию языка программирования, в которую будет заключён выделенный фрагмент текста.
Команда Сортировка выбранного... также открывает диалоговое окно, в котором можно установить параметры сортировки текста в выделенном фрагменте.
Команды меню Поиск также можно разделить на группы. Первая группа — это непосредственно команды поиска и замены, вторая — команды перехода, а третья — работа с закладкой. В четвёртой группе объединены команды поиска, замены и перехода в выделенном фрагменте. Большинство из этих команд используются в текстовых редакторах, смысл остальных понятен из названия.
Пункт меню Просмотр применяют для настройки внешнего вида среды программирования.
Первая группа команд открывает или активизирует следующие окна:
Следующая группа команд пункта меню Просмотр также открывает диалоговые окна. Эти окна носят информационный характер. Так, команды Модуль... и Форма... выводят список модулей и форм данного проекта. Назначение команд Показать зависимости модулей и Показать сведения о модуле говорят сами за себя. Последняя команда этой группы Переключить модуль/форму активизирует либо окно редактора, либо форму.
В последней группе команд следует отметить команды Показать палитру компонентов и Показать кнопки быстрого доступа. Устанавливая метки рядом с этими командами, пользователь выводит на экран или, наоборот, убирает панели инструментов. Командой Окна отладки пользуются во время отладки программного кода. Здесь можно вызывать Окно наблюдений, Окно отладчика, просматривать точки останова и значения переменных в процессе выполнения программы.
Команды пункта меню Проект предназначены для выполнения различных операций с
Команды, позволяющие запускать проект на выполнение и выполнять его отладку, содержатся в пункте главного меню Запуск:
Работа с
Работа с окнами в Lazarus выполняется при помощи пункта меню Окна. Названия команд этого пункта совпадают с названиями окон, и выбор любой команды приведет к активации соответствующего окна.
Пункт меню Справка — это справочная информация о системе. Здесь можно вызывать средства справочной системы и выполнять её настройку.
Форма приложения (рис. 1.15) — это проект интерфейса будущего программного продукта. Вначале это окно содержит только стандартные элементы: строку заголовка и кнопки развертывания, свертывания и закрытия. Рабочая область окна заполнена точками координатной
Команды настройки окна формы находятся на вкладке Редактор форм (рис. 1.17) в меню Окружение — Настройки окружения...
(рис 1.17) Настройка окна формы
Окно редактора (рис. 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. Выполним следующую последовательность действий:
r, а в поле Комментарий фразу repeat until, и нажмём кнопку Добавить;r — repeat until;repeat until;Для изменения шаблона служит кнопка Правка. Шаблон, который нужно откорректировать, должен быть выделен. Дальнейшие действия аналогичны тем, которые выполняются при создании шаблона.
(рис 1.24) Создание нового шаблона в Linux
(рис 1.25) Создание нового шаблона в среде Windows
Для того чтобы удалить шаблон из списка, его нужно выделить, а затем нажать кнопку Удалить.
Панель компонентов
(рис 1.26) Панель компонентов
Компонент — это некий функциональный элемент интерфейса, обладающий определенными свойствами. Размещая компоненты на форме, программист создаёт элементы внешнего вида своей будущей программы — окна, кнопки, переключатели, поля ввода и т. п.
Компоненты на панели объединяются в группы по функциональному признаку. После создания проекта по умолчанию открывается список группы Standard, содержащий основные элементы диалоговых окон. Просмотреть другие группы можно, раскрывая их щелчком по соответствующей вкладке.
Для того чтобы расположить новый компонент на форме нужно сделать два щелчка мышью:
Окно инспектора объектов располагается слева от окна редактирования. Как правило, оно содержит информацию о выделенном объекте. На рис. 1.27 представлен инспектор объектов с информацией о вновь созданной форме.
Окно инспектора объектов имеет три вкладки: Свойства, События, Избранное, которые используются для редактирования свойств объекта и описания событий, на которые будет реагировать данный объект. Совокупность свойств отображает внешнюю сторону объекта, совокупность событий — его поведение.
Вкладки инспектора объектов представляют собой таблицу. В левой колонке расположены названия свойств или событий, в правой — конкретные значения свойств или имена подпрограмм, обрабатывающих события.
(рис 1.27) Окно инспектора объектов
Чтобы выбрать свойство или событие, необходимо щёлкнуть левой кнопкой мыши по соответствующей строке.
Свойства, отображённые в таблице, могут быть простыми или сложными. Простые свойства определены единственным значением. Например, свойство Caption (Заголовок) определяется строкой символов, свойства Height (Высота) и Width (Ширина) — числом, свойство Enabled (Допустимость) — значениями True (Истина) и False (Ложь). Сложные свойства определяются совокупностью значений. Например, свойство Font (Шрифт). Слева от имени этого свойства стоит знак "+". Это означает, что свойство сложное, и при щелчке по значку "+" откроется список его составляющих.
Активизировать значение любого свойства можно обычным щелчком мыши. При этом в конце строки может появиться либо кнопка с символом многоточия, либо кнопка со стрелкой, направленной вниз. Щелчок по многоточию откроет диалоговое окно для установки значений сложных свойств (например Font). Обращение к стрелке приведёт к раскрытию списка возможных значений простого свойства (например Enabled).
Процесс создания программы в Lazarus состоит из двух этапов:
Как мы уже выяснили, для создания интерфейса программы существует окно формы, а для написания программного кода — окно редактора. Эти окна тесно связаны между собой, и размещение компонентов на форме приводит к автоматическому изменению программного кода.
(рис 1.28) Создание нового проекта в Linux
(рис 1.29) Создание нового проекта в среде Windows
Начнём знакомство с визуальным программированием с создания простой программы про кнопку, которая хочет, чтобы по ней щёлкнули. После чего появляется сообщение о работе программы.
Начнём с создания нового проекта. Для этого выполним команду главного меню Проект — Создать проект... В появившемся диалоговом окне (рис. 1.28—1.29) выберем из списка слово Приложение и нажмём кнопку Создать. Результатом этих действий будет появление окна формы и окна редактора программного кода.
Сохраним созданный проект, воспользовавшись командой Проект — Сохранить проект как... Откроется окно сохранения программного кода Сохранить Unit1 (рис. 1.30—1.31).
Создадим в нём новую папку Primer_1 (можно воспользоваться кнопкой Создание новой папки (Создание каталога)), откроем её и щёлкнем по кнопке Сохранить. Тем самым мы сохраним файл Unit1.pas, содержащий текст программы. Сразу же откроется окно Сохранить проект (рис. 1.32—1.33), в котором также необходимо щёлкнуть по кнопке Сохранить. Теперь мы сохранили файл Project1, содержащий общие сведения о проекте.
(рис 1.30) Окно сохранения модуля в Windows
(рис 1.31) Окно сохранения модуля в Linux
(рис 1.32) Окно сохранения проекта в Windows
(рис 1.33) Окно сохранения проекта в Linux
(рис 1.34) Файлы проекта в Windows
(рис 1.35) Файлы проекта в Linux
На самом деле все наши манипуляции привели к сохранению более чем двух файлов. Теперь в каталоге Primer_1 (рис. 1.34—1.35) хранится файл с текстом программы unit1.pas, файл
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 пуд = 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 | Ширина компонента |
| * |
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.
В Lazarus можно создавать не только визуальные приложения с графическим интерфейсом, но и писать программы на Free Pascal в текстовом режиме. Для этого существует консольное приложение.
Чтобы создать новое консольное приложение, нужно выполнить команду Проект — Создать проект..., в появившемся диалоговом окне (рис. 1.28—1.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) данных.
Ввод информации с клавиатуры осуществляется с помощью оператора 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 представлено в формате с фиксированной точкой (всё число занимает пять позиций и три из них после запятой).
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.