- •Введение в конструирование программ
- •Пенза 2006 г.
- •Предисловие
- •1 Обработка информации на компьютере
- •1.1 Модель обработки информации на компьютере
- •1.2 Основные объекты языка программирования
- •1.2.1 Синтаксические элементы языка программирования
- •1.2.2. Значения и типы
- •1.2.3. Константы и переменные
- •1.2.4. Выражения
- •1.2.5. Операторы
- •1.3 Лабораторные задания
- •1.3.1 Логическая разминка
- •1.3.2 Реализовать схемы программ на языке Object Pascal
- •2 Структурное конструирование программ
- •2.1 Простая программа
- •2.2 Консольное приложение
- •2.2.1 Создание, сохранение и загрузка программы
- •2.2.2 Компиляция и выполнение программы
- •2.3 Лабораторные задания
- •2.3.1 Составление простых программ
- •2.3.2 Выполните трассировку и определите результаты работы программы
- •2.3.3 Программирование с использованием управляющих структур
- •2.4 Подпрограммы
- •2.4.1 Глобальные данные
- •2.4.2 Способы передачи параметров
- •2.4.3 Функции
- •2.4.4 Процедуры
- •2.4.5 Значения параметров по умолчанию
- •2.4.6 Перегрузка функций
- •2.4.7. Рекурсивные подпрограммы
- •2.4.8. Передача наименования подпрограммы как параметра
- •2.5 Отладка программ
- •2.6 Лабораторные задания. Подпрограммы
- •2.6.1 Конструирование подпрограмм
- •2.6.2 Разработка рекурсивных подпрограмм
- •2.7. Модули
- •Interface {интерфейс модуля}
- •Implementation {реализация}
- •Initialization {инициализация}
- •3. Структуры данных
- •3.1. Массивы
- •3.1.1. Действия над массивами
- •I, j : byte; { индексы элементов массивов }
- •3.1.2 Передача массивов в качестве параметров
- •3.1.2.1. Формальные параметры как массивы с фиксированными размерами
- •3.1.2.2. Формальные параметры как массивы со «свободными» размерами
- •3.1.2.3. Определение наименьшего/наибольшего значения массива
- •3.1.3 Лабораторные задания
- •3.1.3.1 Одномерные массивы
- •3.1.3.2. Двумерные массивы
- •3.2. Строки
- •3.2.1 Лабораторные задания
- •3.3. Записи
- •3.3.1 Лабораторные задания
- •3.4 Файлы.
- •3.4.1 Основные понятия и операции
- •3.4.2 Типизированные файлы
- •3.4.3 Текстовые файлы
- •3.4.4 Лабораторные задания
- •3.5 Динамические структуры данных. Указатели
- •3.5.1 Основные понятия и определения
- •3.5.2 Процедуры выделения и освобождения памяти
- •3.5.3 Односвязный список
- •3.5.4 Лабораторные задания. Указатели, список
- •3.5.5 Динамические массивы
- •4. Введение в объектно-ориентированное конструирование программ
- •4.1 Основные понятия и определения
- •4.2 Классы и объекты
- •4.2.1 Структура класса
- •4.2.2 Создание и уничтожение объектов
- •4.2.3 Пример. Класс – динамический массив
- •4.2.5 Операции с объектами
- •4.2.5.1 Оператор is
- •4.2.5.2 Оператор as
- •4.2.5.3 Копирование объектов одного класса
- •4.2.6 Свойства
- •4.2.7 Наследование и полиморфизм
- •4.2.8 События
- •4.2.9 Исключительные ситуации
- •4.2.9.1 Операторы try…except
- •4.2.9.2 Операторы try…finally
- •5. Визуальная разработка программ в delphi
- •5.1. Интегрированная среда разработки программ
- •5.1.1 Проект
- •5.2 Конструирование простого приложения
- •5.2.1 Интерфейс Пользователя
- •5.2.2 Визуальное конструирование
- •5.2.3 Реализация методов
- •5.2.4 Обработка исключительных ситуаций
- •5.2.5 Файлы приложения Калькулятор
- •5.3 Компоненты ввода/вывода данных StringGrid и Memo
- •5.3.1 Компонент StringGrid – таблица строк
- •5.3.1 Ввод массива. Компонент StringGrid
- •5.3.3 Компонент Memo – многострочное окно редактирования
- •5.3.4 Ввод массива. Компонент Memo
- •5.4 Немного о графике
- •5.4.1 Свойство Canvas. Построение графика функции
- •5.4.2 Событие OnPaint
- •Список литературы
- •Приложение а. Кратко о Delphi а.1 Свойства проекта
- •А.2 Программный код пустой формы
- •А.3 Главная форма
- •А.3.1 Свойства главной формы
- •А.3.2 События главной формы
- •А.4 Компоненты Delphi
- •Приложение b. Приложение «Калькулятор»
5.2 Конструирование простого приложения
В качестве примера рассмотрим разработку приложения Калькулятор.
Главное окно приложения Калькулятор должно содержать два поля для ввода операндов и одно поле для вывода результата.
Калькулятор должен выполнять четыре основные операции: сложение, вычитание, умножение и деление. Для выполнения этих операций необходимо разместить в окне приложения четыре кнопки с символами соответствующих операций.
Необходимо предусмотреть кнопку очистки всех полей, а также кнопку выхода из программы.
5.2.1 Интерфейс Пользователя
Интерфейс Пользователя приложения Калькулятор может выглядеть, например, как показано на рисунке 5.5
Рисунок 5.5 – Приложение Калькулятор. Интерфейс Пользователя
Для реализации интерфейса будем использовать следующие визуальные компоненты закладки Standard Палитры компонентов:
– поле ввода/вывода. Класс TEdit
– кнопка. Класс TButton
– метка. Класс TLabel. Используем для реализации знаков операций и знака =
– панель. Класс TPanel. Используем для реализации «подчеркивания».
5.2.2 Визуальное конструирование
Начнем конструирование приложения Калькулятор с подготовки проекта:
Создадим папку Калькулятор, где будут храниться все файлы проекта
Сохраним в созданной папке «пустой» проект Project1 под именем ProjectCalc (от англ. Calculate – вычислять), а модуль Unit1 – под именем UnitCalc.
Дальнейшая разработка приложения, связанная с реализацией интерфейса Пользователя, заключается в размещении компонентов на форме, настройки их свойств и назначении обработчиков событий, необходимых для функционирования приложений.
Эта работа не требует написания программного кода (поэтому и называют ее визуальной) и выполняется с помощью Редактора форм и Инспектора объектов.
Шаг 1. Главная форма приложения.
Выделим компонент Форма – для этого щелкнем по нему мышкой.
В Инспекторе объектов изменим свойства Caption и Name, как показано на рисунке 5.6.
Рисунок 5.6 – Приложение Калькулятор. Настройка свойств главной формы
Используем событие OnActivate (возникает, когда приложение становится активным) для очистки полей ввода и результата. Задаем имя обработчика этого события – OnCalcActivate (рисунок 5.7).
Рисунок 5.7 – Приложение Калькулятор. Обработка событий главной формы
После того, как задано имя обработчика события, Delphi автоматически помещает спецификацию метода с таким же названием в описание класса TFormCalc и «пустую» реализацию метода в модуль UnitCalc.
Шаг 2. Поля ввода значения операндов и поле вывода результата
Выбираем компонент Edit ( ) в Панели инструментов и размещаем его на форме FormCalc.
В Инспекторе объектов устанавливаем значения свойств и обработчиков событий. Описание свойств и методов компонента Edit в приложении Калькулятор смотрите в таблице 5.1
Таблица 5.1 Использование компонента Edit
Компонент Edit – отображение, ввод и редактирование однострочного текста. Основное свойство – Text |
||
Наименование |
Значение |
Комментарии |
ПОЛЕ ВВОДА ПЕРВОГО ОПЕРАНДА |
||
СВОЙСТВА |
||
Name |
EditOperand1 |
Наименование объекта |
Text |
пусто |
В начале выполнения приложения значение первого операнда отсутствует |
СОБЫТИЯ |
||
OnKeyPress |
Operand1KeyPress |
Обработка нажатия клавиш: 0..9, Backspace () – доступны при вводе значения операнда Enter – переход в поле второго операнда |
ПОЛЕ ВВОДА ВТОРОГО ОПЕРАНДА |
||
СВОЙСТВА |
||
Name |
EditOperand2 |
Наименование объекта |
Text |
пусто |
В начале выполнения приложения значение второго операнда отсутствует |
ПОЛЕ ВЫВОДА РЕЗУЛЬТАТА |
||
СВОЙСТВА |
||
Name |
EditResult |
Наименование объекта |
Text |
пусто |
В начале выполнения приложения значение результата отсутствует |
ReadOnly |
True |
Значение True запрещает ввод данных с клавиатуры в это поле |
После выполнения данного шага Delphi автоматически помещает в описание класса TFormCalc объекты EditOperand1, EditOperand2, EditResult и спецификацию метода Operand1KeyPress, а также добавляет «пустую» реализацию метода Operand1KeyPress в модуль UnitCalc.
Шаг 3. Кнопки
Выбираем компонент Button ( ) в Панели инструментов и размещаем его на форме FormCalc.
В Инспекторе объектов устанавливаем значения свойств и обработчиков событий. Описание свойств и методов компонента Button в приложении Калькулятор смотрите в таблице 5.2
Таблица 5.2 Использование компонента Button
Компонент Button – командная кнопка. Используется для выполнения команд Пользователя |
||
Наименование |
Значение |
Комментарии |
КНОПКА – ОПЕРАЦИЯ СЛОЖЕНИЯ |
||
СВОЙСТВА |
||
Name |
BtnAdd |
Наименование объекта |
Caption |
|
Надпись на кнопке |
СОБЫТИЯ |
||
OnClick |
BtnAddClick |
Нажатие клавиши |
КНОПКА – ОПЕРАЦИЯ ВЫЧИТАНИЯ |
||
СВОЙСТВА |
||
Name |
BtnMinus |
Наименование объекта |
Caption |
- |
Надпись на кнопке |
СОБЫТИЯ |
||
OnClick |
BtnMinusClick |
Нажатие клавиши |
КНОПКА – ОПЕРАЦИЯ УМНОЖЕНИЯ |
||
СВОЙСТВА |
||
Name |
BtnMult |
Наименование объекта |
Caption |
|
Надпись на кнопке |
СОБЫТИЯ |
||
OnClick |
BtnMultClick |
Нажатие клавиши |
Таблица 5.2. Продолжение
Компонент Button – командная кнопка. Используется для выполнения команд Пользователя |
||
Наименование |
Значение |
Комментарии |
КНОПКА – ОПЕРАЦИЯ ДЕЛЕНИЯ |
||
СВОЙСТВА |
||
Name |
BtnDivide |
Наименование объекта |
Caption |
/ |
Надпись на кнопке |
СОБЫТИЯ |
||
OnClick |
BtnDivideClick |
Нажатие клавиши |
КНОПКА – ОЧИСТИТЬ |
||
СВОЙСТВА |
||
Name |
BtnClear |
Наименование объекта |
Caption |
Очистить |
Надпись на кнопке |
СОБЫТИЯ |
||
OnClick |
BtnClearClick |
Нажатие клавиши |
КНОПКА – ВЫХОД |
||
СВОЙСТВА |
||
Name |
BtnClose |
Наименование объекта |
Caption |
Выход |
Надпись на кнопке |
СОБЫТИЯ |
||
OnClick |
BtnCloseClick |
Нажатие клавиши |
После выполнения данного шага Delphi автоматически помещает в описание класса TFormCalc объекты BtnAdd, BtnMinus, BtnMult, BtnDivide, BtnClear, BtnClose и спецификации методов BtnAddClick, BtnMinusClick, BtnMultClick, BtnDivideClick, BtnClearClick, BtnCloseClick, а также добавляет «пустые» реализации этих методов в модуль UnitCalc.
Шаг 4. Метка и панель
Выбираем компонент Label ( ) в Панели инструментов и размещаем его на форме FormCalc. В Инспекторе объектов устанавливаем значения свойств.
Выбираем компонент Panel ( ) в Панели инструментов и размещаем его на форме FormCalc. В Инспекторе объектов устанавливаем значения свойств.
Описание свойств компонентов Label и Panel в приложении Калькулятор смотрите в таблице 5.3.
Таблица 5.3 Использование компонентов Label и Panel
Компонент Label – отображение текста, неизменяемого Пользователем. Основное свойство – Caption |
||
Наименование |
Значение |
Комментарии |
ЗНАК ОПЕРАЦИИ |
||
СВОЙСТВА |
||
Name |
OperatorLabel |
Наименование объекта |
Caption |
? |
В начале выполнения приложения знак операции отсутствует |
ЗНАК = |
||
СВОЙСТВА |
||
Name |
ResultLabel |
Наименование объекта |
Caption |
? |
В начале выполнения приложения знак = отсутствует |
Компонент Panel – группирование визуальных компонентов. Основное свойство – Caption |
||
«ПОДЧЕРКИВАНИЕ» |
||
СВОЙСТВА |
||
Name |
PanelResult |
Наименование объекта |
Caption |
пусто |
В приложении – объемный прямоугольник, который отделяет операнды от результата |
Таким образом, форма FormCalc будет содержать объекты визуальных компонентов классов TEdit, TButton, TLabel, TPanel.
После того, как завершено редактирование формы фактически завершена разработка структуры приложения Калькулятор – определены основные классы, объекты, свойства и методы объектов
Диаграмма классов приложения Калькулятор приведена на рисунке 5.8
Рисунок 5.8 – Приложение Калькулятор. Диаграмма классов
Сохраним проект ProjectCalc (для первоначального сохранения проекта выберите в меню File команду Save Project as….) и перейдем к программированию.