Free Pascal и Lazarus. Учебник по программированию
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Год издания: 2023
Кол-во страниц: 439
Дополнительно
Вид издания:
Учебник
Уровень образования:
Профессиональное образование
ISBN: 978-5-89818-484-1
Артикул: 816800.01.99
Free Pascal — свободная реализация языка Паскаль, совместимая с Borland Pascal и Object Pascal — Delphi, но при этом обладающая и некоторыми дополнительными возможностями. Свободный компилятор Free Pascal — кросплатформенный продукт, реализованный, в частности, для операционных систем Linux и Windows. Данная книга представляет собой учебник по алгоритмизации и программированию на основе языка Free Pascal. Кроме того, читатель познакомится с принципами создания визуальных приложений в среде Lazarus.
К каждой теме прилагаются 25 вариантов задач для самостоятельного решения, что позволит использовать книгу не только начинающим самостоятельно изучать программирование, но и преподавателям в учебном процессе.
Сайт книги: books.altlinux.ru/freepascal/
Книга адресована преподавателям и учащимся средних и высших учебных заведений, а также широкому кругу читателей, интересующихся программированием.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для обучающихся
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для обучающихся (сводная)
- Программирование
- Программирование и алгоритмизация
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
В серии: Библиотека ALT Linux Free Pascal и Lazarus Учебник по программированию Е. Р. Алексеев О. В. Чеснокова Т. В. Кучер Москва ДМК Пресс, ALT Linux, 2023 Издание рекомендовано в качестве учебного пособия для студентов технических вузов 2-е издание, электронное
УДК 004.432 ББК 22.1 А47 А47 Алексеев, Евгений Ростиславович. Free Pascal и Lazarus. Учебник по программированию / Е. Р. Алексеев, О. В. Чеснокова, Т. В. Кучер. — 2-е изд., эл. — 1 файл pdf : 439 с. — Москва : ДМК Пресс, ALT Linux, 2023. — (Библиотека ALT Linux). — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-484-1 Free Pascal — свободная реализация языка Паскаль, совместимая с Borland Pascal и Object Pascal — Delphi, но при этом обладающая и некоторыми дополнительными возможностями. Свободный компилятор Free Pascal — кросплатформенный продукт, реализованный, в частности, для операционных систем Linux и Windows. Данная книга представляет собой учебник по алгоритмизации и программированию на основе языка Free Pascal. Кроме того, читатель познакомится с принципами создания визуальных приложений в среде Lazarus. К каждой теме прилагаются 25 вариантов задач для самостоятельного решения, что позволит использовать книгу не только начинающим самостоятельно изучать программирование, но и преподавателям в учебном процессе. Сайт книги: books.altlinux.ru/freepascal/ Книга адресована преподавателям и учащимся средних и высших учебных заведений, а также широкому кругу читателей, интересующихся программированием. УДК 004.432 ББК 22.1 Электронное издание на основе печатного издания: Free Pascal и Lazarus. Учебник по программированию / Е. Р. Алексеев, О. В. Чеснокова, Т. В. Кучер. — Москва : ДМК Пресс, ALT Linux, 2012. — 438 с. — (Библиотека ALT Linux). — ISBN978-5-94074-611-9. — Текст : непосредственный. Материалы, составляющие данную книгу, распространяются на условиях лицензии GNU FDL. Книга содержит следующий текст, помещаемый на первую страницу обложки: В серии «Библиотека ALT Linux». Название: Free Pascal и Lazarus: Учебник по программированию. Книга не содержит неизменяемых разделов. Авторы разделов указаны в заголовках соответствующих разделов. ALT Linux торговая марка компании ALT Linux. Linux торговая марка Линуса Торвальдса. Прочие встречающиеся названия могут являться торговыми марками соответствующих владельцев. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-484-1 © Алексеев Е. Р. © ALT Linux © Издание, ДМК Пресс
Оглавление Оглавление 3 Введение 6 Глава 1. Средства разработки программ на языке Free Pascal 8 1.1 Процесс разработки программы . . . . . . . . . . . . . . . . . . . 8 1.2 Среда программирования Free Pascal . . . . . . . . . . . . . . . . 9 1.3 Среда разработки Geany . . . . . . . . . . . . . . . . . . . . . . . 15 1.4 Среда визуального программирования Lazarus . . . . . . . . . . . 17 Глава 2. Общие сведения о языке программирования Free Pascal 51 2.1 Структура проекта Lazarus . . . . . . . . . . . . . . . . . . . . . . 51 2.2 Структура консольного приложения . . . . . . . . . . . . . . . . . 52 2.3 Элементы языка . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.4 Данные в языке Free Pascal . . . . . . . . . . . . . . . . . . . . . 55 2.5 Операции и выражения . . . . . . . . . . . . . . . . . . . . . . . . 63 2.6 Стандартные функции . . . . . . . . . . . . . . . . . . . . . . . . 67 2.7 Задачи для самостоятельного решения . . . . . . . . . . . . . . . 78 Глава 3. Операторы управления 80 3.1 Основные конструкции алгоритма . . . . . . . . . . . . . . . . . . 80 3.2 Оператор присваивания . . . . . . . . . . . . . . . . . . . . . . . . 82 3.3 Составной оператор . . . . . . . . . . . . . . . . . . . . . . . . . . 82 3.4 Условные операторы . . . . . . . . . . . . . . . . . . . . . . . . . 82 3.5 Операторы цикла . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 3.6 Задачи для самостоятельного решения . . . . . . . . . . . . . . . 135 Глава 4. Подпрограммы 140 4.1 Общие сведения о подпрограммах. Локальные и глобальные переменные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 4.2 Формальные и фактические параметры. Передача параметров в подпрограмму . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 4.3 Процедуры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 4.4 Функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 4.5 Решение задач с использованием подпрограмм . . . . . . . . . . 151 4.6 Рекурсивные функции . . . . . . . . . . . . . . . . . . . . . . . . 169
Оглавление 4.7 Особенности работы с подпрограммами . . . . . . . . . . . . . . 173 4.8 Разработка модулей . . . . . . . . . . . . . . . . . . . . . . . . . . 176 4.9 Задачи для самостоятельного решения . . . . . . . . . . . . . . . 179 Глава 5. Использование языка Free Pascal для обработки массивов 182 5.1 Общие сведения о массивах . . . . . . . . . . . . . . . . . . . . . 182 5.2 Описание массивов . . . . . . . . . . . . . . . . . . . . . . . . . . 183 5.3 Операции над массивами . . . . . . . . . . . . . . . . . . . . . . . 185 5.4 Ввод-вывод элементов массива . . . . . . . . . . . . . . . . . . . 185 5.5 Вычисление суммы и произведения элементов массива . . . . . . 198 5.6 Поиск максимального элемента в массиве и его номера . . . . . 199 5.7 Сортировка элементов в массиве . . . . . . . . . . . . . . . . . . 200 5.8 Удаление элемента из массива . . . . . . . . . . . . . . . . . . . . 204 5.9 Вставка элемента в массив . . . . . . . . . . . . . . . . . . . . . . 208 5.10 Использование подпрограмм для работы с массивами . . . . . . 210 5.11 Использование указателей для работы с динамическими массивами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 5.12 Примеры программ . . . . . . . . . . . . . . . . . . . . . . . . . . 218 5.13 Задачи для самостоятельного решения . . . . . . . . . . . . . . . 245 Глава 6. Обработка матриц в Паскале 248 6.1 Ввод-вывод матриц . . . . . . . . . . . . . . . . . . . . . . . . . . 250 6.2 Алгоритмы и программы работы с матрицами . . . . . . . . . . . 262 6.3 Динамические матрицы . . . . . . . . . . . . . . . . . . . . . . . 298 6.4 Задачи для самостоятельного решения . . . . . . . . . . . . . . . 301 Глава 7. Обработка файлов средствами Free Pascal 303 7.1 Типы файлов в Free Pascal . . . . . . . . . . . . . . . . . . . . . . 303 7.2 Работа с типизированными файлами . . . . . . . . . . . . . . . . 304 7.3 Бестиповые файлы в языке Free Pascal . . . . . . . . . . . . . . . 328 7.4 Обработка текстовых файлов в языке Free Pascal . . . . . . . . . 340 7.5 Задачи для самостоятельного решения . . . . . . . . . . . . . . . 345 Глава 8. Работа со строками и записями 347 8.1 Обработка текста . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 8.2 Работа с записями . . . . . . . . . . . . . . . . . . . . . . . . . . 352 8.3 Задачи для самостоятельного решения по теме «Строки» . . . . 361 8.4 Задачи для самостоятельного решения по теме «Записи» . . . . 362 Глава 9. Объектно-ориентированное программирование 367 9.1 Основные понятия . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 9.2 Инкапсуляция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 9.3 Наследование и полиморфизм . . . . . . . . . . . . . . . . . . . . 380
Оглавление 5 9.4 Перегрузка операций . . . . . . . . . . . . . . . . . . . . . . . . . 392 9.5 Задачи для самостоятельного решения . . . . . . . . . . . . . . . 405 Глава 10. Графика в Lazarus 409 10.1 Средства рисования в Lazarus . . . . . . . . . . . . . . . . . . . . 409 10.2 Построение графиков . . . . . . . . . . . . . . . . . . . . . . . . . 418 10.3 Задачи для самостоятельного решения . . . . . . . . . . . . . . . 429 Заключение 433 Сведения об авторах 434 Литература 435 Предметный указатель 436
Введение Авторы книги давно хотели написать учебник по программированию, который был бы полезен пользователям различных операционных систем. Благодаря компании ALT Linux, мы попытались это сделать. В качестве языка программирования был выбран язык Free Pascal, который представляется нам ясным, логичным и гибким языком и приучает к хорошему стилю программирования. Свободно распространяемые компиляторы языка Free Pascal реализованы во многих дистрибутивах Linux, есть свободные компиляторы и для ОС Windows. Кроме того, в этой книге мы попытались познакомить читателя с принципами создания визуальных приложений в среде Lazarus. В настоящее время существует множество подходов к изучению программирования. По мнению авторов, нельзя изучать программирование на каком-либо языке, не изучив методы разработки алгоритмов. Одним из наиболее наглядных методов составления алгоритмов является язык блок-схем. Об этом свидетельствует и многолетний опыт авторов преподавания программирования. Мы попытались написать учебник по алгоритмизации и программированию, насколько нам это удалось — судить читателю. Авторы надеются, что читатель имеет первоначальные навыки работы на персональном компьютере под управлением ОС Linux или Windows и знаком со школьным курсом математики. Книга состоит из десяти глав. В первой главе читатель узнает о средствах разработки программ на Free Pascal, напишет свои первые программы. Во второй главе изложены основные элементы языка (переменные, выражения, операторы) Free Pascal. Описаны простейшие операторы языка: присваивания и ввода-вывода, приведена структура программы, приведены примеры простейших программ линейной структуры. Третья глава является одной из ключевых в изучении программирования. В ней изложена методика составления алгоритмов с помощью блок-схем. Приведено большое количество примеров блок-схем алгоритмов и программ различной сложности. Авторы рекомендуют внимательно разобрать все примеры и выполнить упражнения этой главы, и только после этого приступать к изучению последующих глав книги.
Оглавление 7 В четвёртой главе читатель на большом количестве примеров познакомится с подпрограммами. Описан механизм передачи параметров между подпрограммами. Один из параграфов посвящён рекурсивным подпрограммам. В завершении главы рассмотрен вопрос создания личных модулей. Пятая и шестая главы посвящены изучению алгоритмов обработки массивов и матриц. Здесь же читатель познакомится и с реализацией этих алгоритмов на языке Free Pascal. Именно эти главы совместно с третьей являются ключом к пониманию принципов программирования. Седьмая глава знакомит читателя с обработкой файлов на языке Free Pascal под управлением ОС Linux и Windows. На практических примерах изложен механизм прямого и последовательного доступа к файлам и обработки ошибок ввода-вывода. Описана работа с бестиповыми и текстовыми файлами. Восьмая глава посвящена обработке строк и записей. Приведённые примеры позволят читателю разобраться с принципами обработки таблиц в языке Free Pascal. В девятой главе авторы описали принципы объектно-ориентированного программирования и их реализацию в языке Free Pascal. В десятой главе рассмотрены графические возможности Lazarus, изложено подробное описание алгоритма построения графиков непрерывных функций на экране дисплея. Приведены тексты программ изображения графиков функций с подробными комментариями. К каждой теме прилагаются 25 вариантов задач для самостоятельного решения, что позволит использовать книгу не только начинающим самостоятельно изучать программирование, но и преподавателям в учебном процессе. С рабочими материалами книги можно познакомиться на сайте Евгения Ростиславовича Алексеева — http://www.teacher.dn-ua.com. Авторы благодарят компанию ALT Linux и лично Кирилла Маслинского за возможность издать эту книгу. Авторы выражают благодарность своим родным за помощь и понимание. Алексеев Е. Р., Чеснокова О. В., Кучер Т. В. Донецк, январь 2009 г.
Глава 1 Средства разработки программ на языке Free Pascal В этой главе мы начинаем знакомство с программированием на языке Free Pascal. Язык программирования Free Pascal ведёт своё начало от классического языка Pascal, который был разработан в конце 60-х годов XX века Никлаусом Виртом. Н. Вирт разрабатывал этот язык как учебный язык для своих студентов. С тех пор Pascal, сохранив простоту и структуру языка, разработанного Н. Виртом, превратился в мощное средство программирования. С помощью современного языка Pascal можно производить простые расчёты, разрабатывать программы для проведения сложных инженерных и экономических вычислений. 1.1 Процесс разработки программы Разработку программы можно разбить на следующие этапы: 1) Составление алгоритма решения задачи. Алгоритм — это описание последовательности действий, которые необходимо выполнить для решения поставленной задачи. 2) Написание текста программы. Текст программы пишут на каком-либо языке программирования (например на Free Pascal) и вводят его в компьютер с помощью текстового редактора. 3) Отладка программы. Отладка программы — это процесс устранения ошибок из текста программы. Все ошибки делятся на синтаксические и логические. При наличии синтаксических ошибок (ошибок в написании операторов) программа не запускается. Подобные ошибки исправляются проще всего. Логические ошибки — это ошибки, при которых программа работает, но неправильно. В этом случае программа выдаёт не те результаты, которые ожидает разработчик или пользователь. Логические ошибки исправить сложнее, чем синтаксические, иногда для этого придётся переписывать отдельные участки программы, а иногда и перерабатывать весь алгоритм.
1.2. Среда программирования Free Pascal 9 4) Тестирование программы. Тестирование программы — процесс выявления ошибок в работе программы. Процессы отладки и тестирования сопровождаются неоднократным запуском программы на выполнение. Процесс запуска программы может быть осуществлён только после того, как введённая в компьютер программа на алгоритмическом языке Pascal1 будет переведена в двоичный машинный код и создан исполняемый файл. Процесс перевода текста программы в машинный код называют трансляцией. Все трансляторы делятся на два класса: • интерпретаторы — трансляторы, которые переводят каждый оператор программы в машинный код, и по мере перевода операторы выполняются процессором; • компиляторы переводят всю программу целиком, и если перевод всей программы прошёл без ошибок, то полученный двоичный код можно запускать на выполнение. Если в качестве транслятора выступает компилятор, то процесс перевода текста программы в машинный код называют компиляцией. При переводе программы с языка Pascal в машинный код используются именно компиляторы2. Рассмотрим основные этапы обработки компилятором программы на языке Pascal. 1) Компилятор анализирует, какие внешние библиотеки3 нужно подключить, разбирает текст программы на составляющие элементы, проверяет синтаксические ошибки и в случае их отсутствия формирует объектный код (в Windows — файл с расширением .obj, в Linux — файл с расширением .o). Получаемый на этом этапе двоичный файл (объектный код) не включает в себя объектные коды подключаемых библиотек. 2) На втором этапе компоновщик подключает к объектному коду программы объектные коды библиотек и генерирует исполняемый код программы. Этот этап называется компоновкой или сборкой программы. Полученный на этом этапе исполняемый код программы можно запускать на выполнение. На сегодняшний день существует множество компиляторов языка Pascal, среди которых можно выделить Borland Pascal, Delphi, а также свободно распространяемый кроссплатформенный компилятор языка Free Pascal и среду визуального программирования Lazarus. 1.2 Среда программирования Free Pascal Рассмотрим процесс установки компилятора Free Pascal в ОС Linux. Для установки программ в операционной системе Linux служит менеджер пакетов. В разных дистрибутивах Linux используются различные менеджеры 1Как и на любом другом языке. 2Вместо термина «компилятор» в литературе иногда используют термин «транслятор компилирующего типа». 3В библиотеках языка Pascal хранится объектный (двоичный) код стандартных (таких, как sin(x), cos(x) и др.) функций и процедур языка.
Глава 1. Средства разработки программ на языке Free Pascal Рис. 1.1. Менеджер пакетов Synaptic пакетов, например, в ALT Linux можно воспользоваться программой Synaptic. Окно Synaptic представлено на рис. 1.1. В школьной линейке дистрибутивов ALT Linux Free Pascal и Lazarus присутствуют сразу после установки операционной системы. Обратите внимание, что для установки программ необходимо установить список источников программ (список репозиториев4). Для установки 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. 4Список репозиториев — список официальных сайтов, с которых можно устанавливать программы.