Содержание
____________________________________________________________________
6.1. Элементы графического интерфейса ......................................................... |
459 |
6.2. Различия между консольными и графическими приложениями ............ |
466 |
6.3. Визуальное программирование в среде Lazarus ....................................... |
468 |
6.3.1 Создание графического приложения ................................................... |
468 |
6.3.2 Форма и ее основные свойства ............................................................. |
475 |
6.3.3 Компоненты ............................................................................................ |
481 |
6.3.4 Обработчики событий ........................................................................... |
481 |
6.3.5 Простейшие компоненты ...................................................................... |
484 |
6.3.5.1. Компонент TLabel .............................................................................................. |
485 |
6.3.5.2. Кнопки TButton, TBitBtn и TSpeedButton ........................................................... |
500 |
6.3.6 Организация ввода данных. Однострочные редакторы TEdit, |
|
TLabeledEdit.............................................................................................. |
504 |
6.3.6.1. Компонент TEdit................................................................................................. |
504 |
6.3.6.2. Компонент TLabeledEdit....................................................................................... |
512 |
6.3.7 Обработка исключений. Компонент TMaskEdit. Организация |
|
контроля ввода данных................................................................................... |
518 |
6.3.7.1. Компонент TMaskEdit ...................................................................................... |
529 |
6.3.8 Специальные компоненты для ввода чисел ........................................ |
547 |
6.3.9 Тестирование и отладка программы .................................................... |
549 |
6.3.10 Компоненты отображения и выбора данных .................................... |
553 |
6.3.10.1. Компонент TMemo............................................................................................... |
554 |
6.3.10.2. Компонент TStringGrid ................................................................................ |
607 |
6.3.10.3. Компоненты выбора............................................................................................ |
616 |
6.3.10.4. Компоненты отображения структурированных данных ................................. |
644 |
6.3.11 Организация меню. Механизм действий - Actions .......................... |
717 |
6.3.11.1. Компонент TMainMenu ..................................................................................... |
717 |
6.3.11.2. Компонент TToolBar........................................................................................ |
736 |
6.3.11.3. Компонент TActionList ................................................................................ |
740 |
6.3.11.4. Создание приложений с изменяемыми размерами окон ................................. |
761 |
Послесловие ............................................................................................................. |
764 |
Литература ............................................................................................................... |
765 |
Алфавитный указатель ........................................................................................... |
766 |
6
Предисловие
Настоящая книга возникла в результате переработки лекций, которые я читал на протяжении ряда лет студентам Ошского технологического универси-
тета.
В книге излагаются основы программирования на языке Паскаль. Она вво-
дит читателя в круг тех идей, понятий, принципов и методов, на которых зиж-
дется современное программирование.
Во многих школах и вузах преподавание языка Паскаль ведется с приме-
нением компилятора Турбо-Паскаль фирмы Borland. Хотя Турбо-Паскаль ныне уже не поддерживается, тем не менее, он является платным продуктом. Право-
преемником Borland в настоящее время является компания Embarcadero Technologies.
Несмотря на то, что многие ведущие разработчики программного обеспе-
чения, включая и Embarcadero Technologies, имеют специальные предложения для учебных заведений с существенными скидками, многие вузы, а тем более и школы, к сожалению, не в состоянии приобретать новейшие средства разра-
ботки программ, например, такие как Embarcadero RAD Studio 2010, Microsoft Visual Studio и многие другие.
Поэтому совершенно естественным является подход к использованию в образовательных учреждениях свободного программного обеспечения. Не слу-
чайно в России принята Концепция развития разработки и использования сво-
бодного программного обеспечения, которая касается также и образования.
Достоинством СПО является общедоступность и бесплатность.
Изложение языка Паскаль в этой книге ведется применительно к компиля-
тору Free Pascal и среде Lazarus, которые относятся к категории свободного программного обеспечения. Так, и Free Pascal и Lazarus можно свободно ска-
7
Предисловие
____________________________________________________________________
чать в Интернете. В отличие от продуктов семейства Delphi, использование Free Pascal и Lazarus позволит снять все проблемы нелегального использования ли-
цензионного ПО. В то же время Lazarus по своим возможностям практически не уступает Delphi. Таким образом, Lazarus является идеальным средством для изучения языка программирования Паскаль в школах и вузах в полном соответ-
ствии с упомянутой выше Концепцией. В пакете свободного программного обеспечения (ПСПО) для образовательных учреждений РФ Free Pascal и Lazarus также имеются.
Книга состоит из шести глав.
В первой главе излагается понятие алгоритма, способы записи алгоритмов,
даются примеры разработки алгоритмов. Рассматриваются этапы решения за-
дачи на компьютере.
Во второй главе рассматриваются элементарные конструкции языка Пас-
каль. Дается краткий обзор IDE Lazarus. Рассматриваются способы создания консольных приложений. Рассмотрены особенности программирования в среде
Lazarus в ОС Windows и Linux. Так, для Windows в консольных приложениях существует проблема с русским языком. В главе дается способ решения этой проблемы. Для Linux приводится способ настройки приложения для его выпол-
нения в терминале. Рассмотрены простейшие методы контроля данных.
В третьей главе рассматриваются более сложные элементы языка, в част-
ности подробно разбираются типы данных, методы обработки символьных и строковых данных, функции и процедуры, способы передачи параметров, мас-
сивы, в том числе динамические массивы. Подробно изучаются файлы, методы доступа, типы файлов, обработка ошибок ввода-вывода.
В четвертой главе изучаются типовые алгоритмы. К типовым алгоритмам отнесены алгоритмы сортировки и поиска, а также алгоритмы работы с дина-
мическими структурами. Рассмотрены ряд алгоритмов, проводится сравнение и анализ эффективности этих алгоритмов.
8
Предисловие
____________________________________________________________________
Подробно изучаются указатели. С применением указателей показаны спо-
собы реализации динамических структур данных, таких как, например, стеки,
списки и т.д.
В пятой главе, которая, на взгляд автора, имеет огромное значение, изуча-
ются принципы объектно-ориентированного программирования. Поскольку со-
временное программирование зиждется именно на ООП и знание и умение применять принципы ООП является неотъемлемой составляющей в подготовке специалистов в области программного обеспечения.
И, наконец, шестая глава посвящена программированию приложений с графическим интерфейсом. Эта глава является наиболее существенной частью книги, поскольку подавляющее большинство приложений разрабатывается на основе графического интерфейса. Подробно разбираются принципиальные раз-
личия консольных приложений и графических приложений. Приводятся описа-
ния основных и часто используемых компонентов. Рассмотрены вопросы тес-
тирования и отладки программ, обработка исключений, механизм действий
Actions и многие другие вопросы.
В книге последовательно проводится линия на создание кроссплатформен-
ных приложений.
Все примеры были проверены на ОС Windows XP SP3 и дистрибутивах Li-
nux:
Альт Линукс 5.0 Школьный Мастер
Ubuntu 9.04
Mandriva Linux 2009.0 (Free)
Мансуров К.Т.
9
Глава 1 Основы программирования
1.1. Понятие алгоритма.
Компьютер - это устройство для решения задач. Не обязательно задач чис-
то математического характера. Это могут быть и задачи управления станками или ракетами, и задачи планирования производства, и задачи информационно-
справочного обслуживания, и задачи обработки гипертекстовой информации и мультимедиа, т.е. обработки звуковой и видеоинформации. Чтобы решить ка-
кую - либо задачу на компьютере необходимо сначала придумать как ее вообще решить, т.е. придумать алгоритм ее решении. Алгоритм – является одним из краеугольных понятий информатики и программирования.
Итак, что же понимается под алгоритмом?
Алгоритм - это строгая и четкая, конечная система правил, которая опре-
деляет последовательность действий над некоторыми объектами и после ко-
нечного числа шагов приводит к достижению поставленной цели.
Из определения алгоритма следует, что он должен удовлетворять следую-
щим требованием:
1) конечность (финитность)
Алгоритм всегда должен заканчиваться после конечного числа шагов.
Процедуру, обладающую всеми характеристиками алгоритма, за исключением конечности, вызывают вычислительным методом.
2) определенность (детерминированность)
Каждый шаг алгоритма должен быть строго определен. Действия, которые необходимо произвести, должны быть строго и недвусмысленно определены в каждом возможном случае, так чтобы если дать алгоритм нескольким людям,
то они, действуя по этому алгоритму, получали один и тот же результат. По-
скольку обычный язык полон двусмысленностей, то чтобы преодолеть это за-
труднение, для описания алгоритмов разработаны формально определенные
10