ebook img

Free Pascal и Lazarus: учебник по программированию PDF

438 Pages·2010·4.684 MB·Russian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Free Pascal и Lazarus: учебник по программированию

В серии: Библиотека ALT Linux Free Pascal и Lazarus Учебник по программированию Е. Р. Алексеев О. В. Чеснокова Т. В. Кучер Москва ДМК Пресс, ALT Linux, 2010 УДК 004.432 ББК 22.1 А47 Free Pascal и Lazarus: Учебник по программирова- А47 нию/Е.Р.Алексеев,О.В.Чеснокова,Т.В.Кучер—М.:ALT Linux, 2010. — 438с. : ил. — (Библиотека ALT Linux). ISBN 978-5-94074-611-9 Free Pascal — свободная реализация языка Паскаль, совместимая с Borland Pascal и Object Pascal — Delphi, но при этом обладающая инекоторымидополнительнымивозможностями.Свободныйкомпиля- торFreePascal—кросплатформенныйпродукт,реализованный,вчаст- ности,дляоперационныхсистемLinuxиWindows.Даннаякнигапред- ставляет собой учебник по алгоритмизации и программированию на основе языка Free Pascal. Кроме того, читатель познакомится с прин- ципамисозданиявизуальныхприложенийвсредеLazarus. Ккаждойтемеприлагаются25вариантовзадачдлясамостоятель- ного решения, что позволит использовать книгу не только начинаю- щимсамостоятельноизучатьпрограммирование,ноипреподавателям вучебномпроцессе. Сайткниги:http://books.altlinux.ru/freepascal/ Книга адресована преподавателям и учащимся средних и высших учебных заведений, а также широкому кругу читателей, интересую- щихсяпрограммированием. УДК 004.432 ББК 22.1 Книгу можно приобрести: В компании «Альт Линукс»: (495) 662-3883. E-mail: [email protected] Internet-магазин: http://shop.altlinux.ru В торгово-издательском холдинге «Альянс-книга»: Оптовые покупки: (495) 258-91-94, 258-91-95. E-mail: [email protected] Internet-магазин: http://www.alians-kniga.ru/ Материалы, составляющие данную книгу, распространяются на условиях лицензии GNU FDL.Книгасодержитследующийтекст,помещаемыйнапервуюстраницуобложки:«Всерии “БиблиотекаALTLinux”».Название:«FreePascalиLazarus:Учебникпопрограммированию». Книга не содержит неизменяемых разделов. Авторы разделов указаны в заголовках соответ- ствующихразделов.ALTLinux—торговаямаркакомпанииALTLinux.Linux—торговаямар- ка Линуса Торвальдса. Прочие встречающиеся названия могут являться торговыми марками соответствующихвладельцев. ISBN 978-5-94074-611-9 °c Алексеев Е. Р., 2010 °c ALT Linux, 2010 °c Издание,ДМКПресс, 2010 Оглавление Оглавление 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 Оглавление 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, который представляется нам ясным, ло- гичнымигибкимязыкомиприучаеткхорошемустилюпрограммирования.Сво- боднораспространяемыекомпиляторыязыкаFreePascalреализованывомногих дистрибутивах Linux, есть свободные компиляторы и для ОС Windows. Кроме того,вэтойкнигемыпопыталисьпознакомитьчитателяспринципамисоздания визуальных приложений в среде Lazarus. В настоящее время существует множество подходов к изучению программи- рования. По мнению авторов, нельзя изучать программирование на каком-либо языке,неизучивметодыразработкиалгоритмов.Однимизнаиболеенаглядных методов составления алгоритмов является язык блок-схем. Об этом свидетель- ствует и многолетний опыт авторов преподавания программирования. Мы по- пыталисьнаписатьучебникпоалгоритмизацииипрограммированию,насколько нам это удалось—судить читателю. Авторы надеются, что читатель имеет первоначальные навыки работы на персональном компьютере под управлением ОС Linux или Windows и знаком со школьным курсом математики. Книга состоит из десяти глав. В первой главе читатель узнает о средствах разработки программ на Free Pascal, напишет свои первые программы. Во второй главе изложены основные элементы языка (переменные, выра- жения, операторы) Free Pascal. Описаны простейшие операторы языка: присва- ивания и ввода-вывода, приведена структура программы, приведены примеры простейших программ линейной структуры. Третья глава является одной из ключевых в изучении программирования. Внейизложенаметодикасоставленияалгоритмовспомощьюблок-схем.Приве- денобольшоеколичествопримеровблок-схемалгоритмовипрограммразличной сложности. Авторы рекомендуют внимательно разобрать все примеры и выпол- нить упражнения этой главы, и только после этого приступать к изучению по- следующих глав книги. Оглавление 7 Вчетвёртой главечитательнабольшомколичествепримеровпознакомится с подпрограммами. Описан механизм передачи параметров между подпрограм- мами. Один из параграфов посвящён рекурсивным подпрограммам. В заверше- нии главы рассмотрен вопрос создания личных модулей. Пятаяишестаяглавыпосвященыизучениюалгоритмовобработкимассивов и матриц. Здесь же читатель познакомится и с реализацией этих алгоритмов на языке Free Pascal. Именно эти главы совместно с третьей являются ключом к пониманию принципов программирования. Седьмая глава знакомит читателя с обработкой файлов на языке Free Pas- cal под управлением ОС 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)идр.)функцийипроцедурязыка. 10 Глава 1. Средства разработки программ на языке Free Pascal Рис. 1.1. Менеджер пакетов Synaptic пакетов, например, в ALT Linux можно воспользоваться программой Synaptic. ОкноSynapticпредставленонарис.1.1.ВшкольнойлинейкедистрибутивовALT Linux Free Pascal и Lazarus присутствуют сразу после установки операционной системы. Обратитевнимание,чтодляустановкипрограммнеобходимоустановитьспи- сок источников программ (список репозиториев4). ДляустановкиFreePascalвокне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Списокрепозиториев—списокофициальныхсайтов,скоторыхможноустанавливатьпро- граммы.

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.