Программирование в среде Lazarus
Покупка
Основная коллекция
Тематика:
Программирование и алгоритмизация
Издательство:
Издательство ФОРУМ
Автор:
Гуриков Сергей Ростиславович
Год издания: 2021
Кол-во страниц: 336
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
Среднее профессиональное образование
ISBN: 978-5-00091-555-4
ISBN-онлайн: 978-5-16-107570-8
Артикул: 683097.03.01
Учебное пособие является руководством по программированию на языке Free Pascal в среде программирования Lazarus и содержит описание такого традиционного материала, как работа линейных, разветвляющихся и циклических структур, обработка одномерных и двумерных массивов, строк, программирование на основе функций и процедур.
Рассматриваются типы данных, используемые в языке Free Pascal, сделан обзор основных элементов управления среды программирования Lazarus, большое внимание уделено методам ввода и вывода данных. Приведены примеры создания тестовых вопросов с различными элементами управления, приложений, использующих работу с графикой.
В конце каждой главы имеется набор контрольных вопросов и упражнений, задач для самостоятельного решения. Изучение теоретического материала, анализ более 150 листингов программ, приведенных в учебном пособии, позволят школьникам подготовиться к сдаче единого государственного экзамена по дисциплине «Информатика», а студентам — выполнить практические или лабораторные работы по дисциплинам, связанным с изучением программирования.
Для студентов учреждений среднего профессионального образования, обучающихся по укрупненной группе специальностей 09.02.00 «Информатика и вычислительная техника», а также школьников, студентов вузов, преподавателей и всех, кто самостоятельно изучает программирование в среде Lazarus.
Тематика:
ББК:
УДК:
ОКСО:
- Среднее профессиональное образование
- 09.02.01: Компьютерные системы и комплексы
- 09.02.02: Компьютерные сети
- 09.02.03: Программирование в компьютерных системах
- 09.02.04: Информационные системы (по отраслям)
- 09.02.05: Прикладная информатика (по отраслям)
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
ПРОГРАММИРОВАНИЕ В СРЕДЕ LAZARUS С.Р. Гуриков Рекомендовано Учебно-методическим советом СПО в качестве учебного пособия для студентов учебных заведений, реализующих программу среднего профессионального образования по укрупненной группе специальностей 09.02.00 «Информатика и вычислительная техника» УЧЕБНОЕ ПОСОБИЕ Москва 2021 ИНФРА-М
УДК 004(075.32) ББК 32.973-018я723 Г95 Гуриков С.Р. Г95 Программирование в среде Lazarus : учебное пособие / С.Р. Гуриков. — Москва : ФОРУМ : ИНФРА-М, 2021. — 336 с. — (Среднее профессиональное образование). ISBN 978-5-00091-555-4 (ФОРУМ) ISBN 978-5-16-013996-8 (ИНФРА-М, print) ISBN 978-5-16-107570-8 (ИНФРА-М, online) Учебное пособие является руководством по программированию на языке Free Pascal в среде программирования Lazarus и содержит описание такого традиционного материала, как работа линейных, разветвляющихся и циклических структур, обработка одномерных и двумерных массивов, строк, программирование на основе функций и процедур. Рассматриваются типы данных, используемые в языке Free Pascal, сделан обзор основных элементов управления среды программирования Lazarus, большое внимание уделено методам ввода и вывода данных. Приведены примеры создания тестовых вопросов с различными элементами управления, приложений, использующих работу с графикой. В конце каждой главы имеется набор контрольных вопросов и упражнений, задач для самостоятельного решения. Изучение теоретического материала, анализ более 150 листингов программ, приведенных в учебном пособии, позволят школьникам подготовиться к сдаче единого государственного экзамена по дисциплине «Информатика», а студентам — выполнить практические или лабораторные работы по дисциплинам, связанным с изучением программирования. Для студентов учреждений среднего профессионального образования, обучающихся по укрупненной группе специальностей 09.02.00 «Информатика и вычислительная техника», а также школьников, студентов вузов, преподавателей и всех, кто самостоятельно изучает программирование в среде Lazarus. УДК 004(075.32) ББК 32.973-018я723 Р е ц е н з е н т: В.Н. Шакин — кандидат технических наук, доцент, заведующий кафедрой «Информатика», декан общетехнического факультета Московского технического университета связи и информатики ISBN 978-5-00091-555-4 (ФОРУМ) ISBN 978-5-16-013996-8 (ИНФРА-М, print) ISBN 978-5-16-107570-8 (ИНФРА-М, online) © Гуриков С.Р., 2019 © ФОРУМ, 2019
Введение В условиях глобальных информационных процессов, решения социальноэкономических проблем актуализируется важность информатизации образования. На сегодняшний день почти все учебные заведения обладают новейшим компьютерным оборудованием, вдобавок подключенным к сети Интернет. Однако известно, что мало иметь современный персональный компьютер, нужно также позаботиться и об установке программного обеспечения. Не секрет, что лицензионные программы стоят немалых денег, которые не всегда есть в бюджете того или иного учебного заведения. В частности, по этой причине компания Microsoft разработала ряд программ лицензирования программных продуктов специально для учебных заведений, например, Microsoft Academic Open License — для высших учебных заведений и учебных заведений среднего и среднего специального образования, а также Microsoft School Agreement — для начальных и средних учебных заведений. Вместе с очевидными плюсами такого подхода имеется и существенный недостаток — формирование зависимости начинающих пользователей от того или иного программного продукта. В результате после окончания учебного заведения вчерашние школьники или студенты задумываются о приобретении необходимых им программ уже на коммерческой основе. Следует отметить, что учебные заведения всех уровней могут использовать и преподавать свободное программное обеспечение (СПО), потому что только эти программы позволяют выполнять свое предназначение, а именно, распространять человеческие знания путем свободного копирования и распространения. СПО имеет большой потенциал для использования в реалиях российской экономики, это связано с разными факторами, но наиболее важными являются выраженный интерес государства к развитию своей отрасли ITтехнологий и, в частности, разработок на основе СПО, а также более жесткие меры, применяемые к нарушениям лицензионных соглашений как со стороны организаций, так и лиц, обслуживающих эту технику. Рынок программного обеспечения сегодня крайне изменчив и нестабилен, но, тем не менее, он находится в непрерывном развитии, и многие технологии
обучения, в частности программированию, уже безвозвратно устарели. Ярким примером этого является обучение в средах Turbo Pascal и QBasic. Эти две программы, активно использующиеся в настоящее время в школьных курсах, уже не соответствуют уровню развития современных сред разработки, к тому же консольный интерфейс неудобен и зачастую препятствует адекватному восприятию учебного материала. Более того, два этих языка не поддерживают принципы объектноориентированного подхода, а ведь именно на нем основаны методики разработки большей части современного программного обеспечения. Тем не менее, многие авторы учебных пособий по подготовке к единому государственному экзамену (ЕГЭ) по дисциплине «Информатика» продолжают публиковать задания по разделу «Алгоритмизация и программирование» именно на Pascal и QBasic. Стоит отметить, что такой известный автор как К.Ю. Поляков в своем учебнике «Информатика» предпринял попытку описать основы программирования в среде Lazarus, однако несколько параграфов изложенного материала явно недостаточно для полноценного восприятия возможностей среды быстрой разработки приложений. Для обеспечения эффективного образовательного процесса необходимо использовать среду, которая, основываясь на образовательных стандартах, позволяла бы обучать работе с современным языком программирования и относилась бы к категории свободного программного обеспечения. Известно, что обучение программированию необходимо начинать как можно раньше. Следовательно, среда, которую педагог использует для обучения, должна обладать удобным интерфейсом, который мог бы привить ребенку интерес к программированию и в форме игры обучить такой сложной технологии, как объектноориентированный подход. Всем вышеперечисленным требованиям отвечает Lazarus — свободная среда разработки программного обеспечения, практическим методам программирования в которой посвящен материал предлагаемого учебного пособия. Дистрибутив программы Lazarus доступен для свободного скачивания по адресу: URL: http://www.lazaruside.org/. Главная цель настоящего издания — обеспечить прочное и сознательное освоение основ алгоритмизации и программирования, формирование практических умений — профессиональных, учебных, интеллектуальных, необходимых школьнику или студенту. Помимо приобретения чисто практических умений, ценных с точки зрения освоения компьютерной грамотности, ребята получат наглядное представление о возможностях, предоставляемых компьютером человеку, выработку при решении поставленных задач таких профессионально значимых качеств, как самостоятельность, ответственность, точность, творческая инициатива. Пособие построено так, что непосредственно к программированию читатель приступает с самого начала — первая программа описывается уже во второй главе (в первой главе приводятся теоретические основы алгоритмизации и программирования). 4 Введение
Во второй главе описаны различные способы ввода и вывода данных, приводятся примеры организации взаимодействия нескольких форм, что актуально при выполнении больших проектов, подробно описана окончательная настройка приложения, а также рассказано о том, как осуществлять проверку корректности ввода данных, разрабатывать главное и контекстное меню. Здесь же приводятся примеры работы с различными (основными) компонентами среды программирования на примере создания тестовых вопросов. Четкое понимание работы каждого компонента — залог успешного программирования приложений. В третьей, четвертой, пятой и шестой главах подробно рассматриваются операторы, относящиеся к трем «китам» программирования — линейному, разветвляющемуся и циклическому алгоритмам. В седьмой и восьмой главах объясняется работа с одномерными и двумерными массивами, рассматриваются «классические» способы их обработки. В девятой главе речь пойдет о создании пользовательских функций и процедур. Десятая глава содержит информацию о работе с файлами, умение работать с которыми — необходимая компетенция человека, постигающего азы программирования. Материал одиннадцатой главы даст представление о работе со строками, умение работать с которыми может быть востребовано при разработке программ для информационных систем. Знакомству с основами создания приложений, использующих компьютерную графику, посвящена двенадцатая, заключительная глава учебного пособия. Ее изучение позволит не только создавать приложения, решающие какиелибо задачи, но и предварять их начало работы или, наоборот, завершение графическим интерфейсом, имитируя, таким образом, профессионально написанные программы. Материал, изложенный в пособии, особенно будет полезен школьникам при подготовке к ЕГЭ по дисциплине «Информатика», студентам, обучающимся на технических специальностях техникумов, колледжей и вузов. Апробация учебного пособия показала, что учащиеся, не имеющие подготовки в области программирования, не только успешно осваивают представленные в пособии приложения, но и вносят в них свои очень интересные изменения, направленные на улучшение их работы. Преподаватели могут оценить учебное пособие с точки зрения методики преподавания. Многие листинги программ специально написаны таким образом, чтобы учащиеся имели возможность доработать или оптимизировать их код, что поможет педагогу создать творческую атмосферу на занятиях. К каждому из разделов приведены примеры решения задач, упражнения, задачи для самостоятельного решения, контрольные вопросы, позволяющие оценить уровень подготовки школьника или студента. Следует отметить, что учебное пособие не может претендовать на функциональную полноту или на полную оригинальность приведенных методов, алгоритмов и программ. Автор преследовал иную цель: привлечь внимание школьников, Введение 5
студентов и преподавателей к такой свободно распространяемой среде программирования, как Lazarus, дать почувствовать преимущественные отличия программирования в объектноориентированной среде в отличие от программирования в консольных режимах Pascal или QBasic, путем доступного изложения помочь в изучении теоретических и практических основ алгоритмизации. Материал предлагаемого учебного пособия был подготовлен автором на основе многолетнего опыта преподавания курса алгоритмизации и программирования школьникам, студентам среднего и высшего профессионального образования, написания книг по программированию в различных средах. 6 Введение
Глава 1 ТЕОРЕТИЧЕСКИЕ ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ 1.1. Алгоритм. Свойства алгоритма. Способы описания алгоритма Если мы хотим написать программу на какомнибудь языке программирования, то сначала мы должны составить алгоритм решения задачи. Алгоритм — это точное и простое описание последовательности действий для решения данной задачи. Алгоритм содержит несколько шагов, которые должны выполняться в определенной последовательности. Каждый шаг алгоритма может состоять из одной или нескольких простых операций. Каждый из нас ежедневно использует различные алгоритмы: инструкции, правила, рецепты и т. д. Обычно мы это делаем не задумываясь. Например, открывая дверь ключом, никто не размышляет над тем, в какой последовательности выполнять действия. Однако чтобы когонибудь научить открывать дверь, придется четко указать и сами действия, и порядок их выполнения. Например: 1. Достать ключ. 2. Вставить ключ в замочную скважину. 3. Повернуть ключ два раза против часовой стрелки. 4. Вынуть ключ. Представим, что мы поменяли местами второе и третье действия. Мы сможем выполнить и этот алгоритм, но дверь не откроется, т. е. алгоритм станет невыполнимым. Для алгоритма важен не только набор действий, но и то, в каком порядке они выполняются. Понятие алгоритма в информатике является фундаментальным. Таким же, какими являются понятия точки, прямой и плоскости в геометрии, вещества в химии, пространства и времени в физике и т. д. Свойства алгоритма: • дискретность (прерывность, раздельность) — алгоритм должен представлять процесс решения задачи как последовательное выполнение простых шагов (этапов);
• определенность — каждый шаг алгоритма должен быть четким и однозначным. Выполнение алгоритма носит механический характер и не требует никаких дополнительных сведений о решаемой задаче; • результативность — алгоритм должен приводить к решению задачи за конечное число шагов; • массовость — алгоритм решения разрабатывается в общем виде, т. е. он должен быть применим для решения некоторого класса задач, различающихся лишь исходными данными. Способы описания алгоритмов: • словесный; • графический; • табличный; • формульный. 1. Словесный способ каждый из нас использует ежедневно, пересказывая собеседнику, например, различные инструкции, правила, кулинарные рецепты, т. е. какуюто последовательность, приводящую к конечному результату. 2. Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным. Как часто для лучшего понимания той или иной ситуации нам проще начертить какуюто схему, план, согласно которому мы будем действовать. В программировании данный способ предпочтительнее других, поскольку позволяет с помощью последовательности функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий, представить ход решения той или иной задачи. Такое представление алгоритма называется структурной схемой алгоритма или блоксхемой. 3. Табличный способ используется, например, в бухгалтерии при составлении ежегодных отчетов, сводок и т. д. 4. Формульный способ находит свое применение при решении задач из области математики, физики и т. д. Например, при решении квадратного уравнения мы приступаем к нахождению дискриминанта уравнения, а затем, в зависимости от полученного результата, находим корни уравнения по известным всем формулам. 1.2. Назначение функциональных блоков Начало и конец алгоритма Вычислительная операция Ввод/вывод данных Проверка условия (логического выражения) 8 Глава 1. Теоретические основы алгоритмизации и программирования
Начало циклического алгоритма Разрыв соединительных линий на странице Начало процедуры Линии потоков Комментарий Вывод на печать 1.3. Основные этапы решения задач в среде программирования Процесс решения задачи в среде программирования состоит из нескольких этапов, часть из которых выполняется пользователем, а часть — компьютером. 1й этап. Общая постановка задачи На этом этапе описывается содержание задачи, составляется перечень исходных данных. 2й этап. Разработка математической модели Цель этого этапа состоит в установлении формализованных связей между исходными данными и искомыми результатами. Этап заключается в записи расчетных формул или функциональных зависимостей. 3й этап. Разработка алгоритма Этап заключается в описании последовательности действий, в результате которых может быть получено решение задачи. 4й этап. Разработка программы Программа составляется в полном соответствии с разработанным алгоритмом решения задачи. 5й этап. Отладка программы Процесс поиска ошибок в программе и их устранение. 6й этап. Анализ результатов Позволяет принять решение о необходимости внесения изменений в программу, проведении дополнительных расчетов или их окончании. 1.4. Алфавит языка Free Pascal Lazarus — Delphiсовместимая среда программирования для Free Pascal и хотя правильнее говорить, что Free Pascal — это компилятор (программапереводчик) с языка Pascal, в книге будет использоваться термин «язык программирования». 1.4. Алфавит языка Free Pascal 9
Изучение любого языка начинается с изучения алфавита, из букв складываются слова, из слов — предложения. Аналогично происходит процесс изучения языка программирования. Сначала мы должны уяснить, какие символы можно использовать для записи слов языка, из которых можно формировать определенные конструкции. Итак, в алфавит языка Free Pascal входят: 1. Латинские буквы от a до z и от A до Z. В языке Free Pascal нет различия между прописными и строчными буквами алфавита, если только они не входят в символьные и строковые выражения. 2. Цифры от 0 до 9. 3. Специальные символы: + * / = , ; : [ ] ( ) { } $ # . 4. Зарезервированные (служебные) слова: For, Then, Else, Do, If и т. д. 1.5. Идентификаторы и общие правила их написания Для того чтобы программа решения задачи обладала свойством массовости, следует употреблять не конкретные значения величин, а использовать их обозначения для возможности изменения по ходу выполнения программы их значений. Для обозначения в программе переменных и постоянных величин используются имена — идентификаторы (identification — установление соответствия объекта некоторому набору символов). Программа на Free Pascal представляет собой последовательность инструкций, которые называются операторами. Одна инструкция от другой отделяется точкой с запятой. Идентификатор может обозначать: • инструкцию языка (:=, if, while, for); • переменную; • константу (целое или дробное число); • арифметическую (+, , *, /) или логическую (And, Or, Not) операцию; • подпрограмму (процедуру или функцию); • отмечать начало (Procedure, Function) или конец (End) подпрограммы или блока (Begin, End). Следует учитывать, что: • в идентификатор не могут входить пробелы, специальные символы алфавита; • идентификатор начинается только с буквы или со знака подчеркивания; • идентификатор может состоять из букв, цифр и знака подчеркивания; • при написании идентификаторов можно использовать как прописные, так и строчные буквы латинского алфавита; • идентификатор не должен являться зарезервированным словом. Например: summa1 Правильно Nomer.doma Ошибка 2delta Ошибка Сумма Ошибка Block_35 Правильно 10 Глава 1. Теоретические основы алгоритмизации и программирования