Начальные сведения о языке Си. Заглядываем внутрь работающей программы

В данной статье рассказывается о том, как легко и просто освоить один из новых продуктов Borland C++ Builder 6.0 для разработки программ и быстро начать создавать собственные программы, работающие в операционной системе Windows.

Я решил написать данную статью потому, что сам прошел непростой путь обучении Borland C++ Builder и хотел бы эначи телыю облегчить процесс освоении этого продукта новичками. Сегоднн я могу с уверенностью сказать, что процесс создания Программ на Borland C++ Builder является не только простым и понятным, но самое главное — творческим, полезным и захватывающим занятием. Написав свою первую программу в ЭТОМ пакете, вы наверняка не сможете остановиться и начнете творить. Я не претендую на звание программиста, т. к. в основном занимаюсь схемотехникой. По поскольку н настоящее время электронная техника органично включает в себя микроконтроллеры и процессоры, которые необходимо программировать, а компьютеры становятся привычными инструментами, также требующими программирования, становится очевидным, что программированием необходимо овладевать. Эти знания позволят самостоятельно создавать тестовые программы, утилиты и несложные программно-инструментальные средства для отладки и тестирования схемотехнических устройств, а также позволят создавать различные электронные устройства с программной поддержкой.

Данная статья не претендует на полное и детальное описание программного продукта Borland C++ Builder 6.0, но благодаря своей компактности она позволяет не боясь большого объема материала для изучения начать осваивать этот пакет и быстро научиться писать свои программы. Работать в среде Borland C++ Builder 6.0 может любой пользователь компьютера» имеющий хотя бы минимальные знания о программировании» например из программы школьного курса. Постепенно этот человек может увлечься и стать настоящим программистом. В своем изложении я хочу, не отягощая избыточностью материала, увлечь в этот удивительный и прекрасный мир программирования. Хочу дать первый импульс к творчеству и ключ к простому пониманию непростых специальных понятий и терминов. Программы разрабатываются в данном пакете настолько просто и легко, что после первых упражнений с этим продуктом с ним уже не хочется расставаться никогда. Мы вместе с вами не только изучим основные инструменты пакета Borland C++ Builder, но и напишем свои первые программы с поразительной быстротой и легкостью. И я думаю, что после этого вы сами захотите читать больше и больше об этом удивительном продукте. Самое главное — все, что вы прочтете здесь, необходимо закреплять практикой при работе на компьютере. Только так, с помощью практики можно добиться хороших и прочных знаний в любом полезном деле. Не пытайтесь усвоить весь материал за один присест. Не ленитесь перечитать то, что не поняли или недопоняли или забыли.

Новые понятия обычно усваиваются только после третьего прочтения. Придерживайтесь этих правил, и вы обязательно добьетесь успеха.
Далее в тексте я буду использовать некоторые специальные термины, поясняя по ходу изложения, что они означают. Эти термины являются общеупотребительными для программистов, и к ним необходимо привыкнуть. В дальнейшем это очень поможет в изучении и освоении новых программных продуктов и специальной технической литературы. Одним из первых таких терминов является объектно-ориентированное программирование — ООП. Данный термин означает, что при разработке программ не требуется продумывать весь алгоритм работы программы от начала и до конца, как это делалось в структурном программировании. Именно таким продуктом является Borland C++ Builder 6.0 и ему подобные пакеты для создания программ под Windows. OOII дает возможность писать программу постепенно, шаг за шагом, создавая отдельные небольшие программы (функции-методы) для обработки действий (событий), вызываемых объектами (кнопками и окнами программы, кнопками клавиатуры и т.п.).

УСТАНОВКА
В настоящее время инсталляционный (установочный) пакет Borland C++ Builder 6.0 можно приобрести на компакт-диске (CD) во многих магазинах по доступной цене. Установка данного пакета не вызывает сложностей и подробно расписана на упаковке самого компакт-диска, в тексте инсталлятора или в справочном файле (типа readme.txt), входящем в инсталляционный пакет. Поскольку программа может быть установлена в нескольких редакциях (вариантах), от самого простого до профессионального уровня, выберите для начала самый простой или типовой вариант установки. Вместо предлагаемого для установки каталога с длинным названием C:\Program Files\ Borland C++ Builder 6\ рекомендую создать каталог с коротким названием С:\СВ6\ и установить пакет именно в него. 11ри запросе на установку специального пакета СОКВА для базы данных можно отключить галочку установки. В дальнейшем вы всегда сможете установить необходимые компоненты пакета по мере необходимости в них.

НАЧАЛО
После установки пакета в меню программ компьютера появится новый раздел на английском языке пол названием Borland C++ Builder 6, в который входит множество программ и справочных файлов. Со временем эти программы станут привычными и понятными инструментами для вас. Поэтому не пугайтесь их изобилия и замысловатости названий. Для начала работы в среде Borland C++ Builder 6.0 нам понадобится только один файл C:CB6\Bin\bcb.exe. Из него мы сможем вызывать остальные программы пакета по мере необходимости. Я советую поместить значок (ярлык) этой программы на рабочий стол (экран) компьютера для последующего быстрого и простого поиска и запуска этой программы. Для этого необходимо свернуть все окна запущенных на компьютере программ или закрыть их. Далее необходимо найти через 11уск—^Программы—» Borland C++ Builder программу C++ Builder 6, нажать левую кнопку мышки и, удерживая нажатой кнопку мыши и клавишу Ctrl (для копирования) перенести ярлык программы на свободное место рабочего стола. Теперь можно запустить программу C++ Builder 6, щелкнув на ее значке» помещенном на рабочем столе, два раза левой клавишей мышки.
После запуска программы на экране монитора появится окно, изображенное на рис. 1, которое демонстрирует процесс загрузки программы Borland C++ Builder 6.0.

Это окно может отображаться несколько секунд, пока программа загружается.

ИНТЕРФЕЙС
После загрузки программы это окно сменяется новыми окнами. Все эти окна представляют собой интерфейс программы Borland C++ Builder 6.0, который изображен на рис. 2.


В терминах программистов этот интерфейс называется средой быстрой разработки приложений RAD, сокращение от английских слов Rapid Application Development. Такое название этот интерфейс получил за то, что создание программы в нем сводится в основном к простому конструированию окна будущей программы из готовых кубиков, а большую часть стандартных и рутинных операций за человека выполняет компьютер. Например, компьютер создает автоматически заготовку текста программы для функций обработки событий.
В верхнем окне интерфейса программы расположена строка заголовка C++ Builder 6-Projectl. Она отражает название всего программного пакета и имя нового проекта. Проектом называется вся группа файлов, которые необходимы для создания конечной исполняемой программы. Так, например, в состав проекта могут включаться файлы с текстами программ, файл ресурсов с рисунками курсоров и иконок (значков), звуковые файлы и т. п. Первоначально проект хранится в памяти компьютера, и для того, чтобы сохранить его на диске, необходимо будет выполнить стандартные операции сохранения, создав при этом отдельную пайку. Кроме того, интерфейс сам предложит вам сохранить проект, если вы решите выйти из программы или попытаетесь создать новый проект.
Так же на строке заголовка находятся кнопки свертывания, восстановления и закрытия окна. Под заголовком находится строка главного меню, которая предоставляет доступ ко всем функция и командам программы. Под главным меню находятся быстрые кнопки, объединенные в группы по назначению. Они позволяют получить быстрый доступ к наиболее часто используемым командам. Справа от быстрых кнопок расположена палитра визуальных компонентов VCL. Это те самые объекты или программные компоненты, предназначенные для быстрого создания программы для Windows. В их число входят кнопки, рисунки, надписи, таймеры, календари и т. д. Палитра состоит из нескольких закладок, на которых располагаются визуальные компоненты, распределенные по группам. Именно с этими компонентами мы будем создавать новые программы. При малых разрешениях экрана все эти закладки не умещаются в пределах рабочей области экрана. Для получения доступа к ним необходимо воспользоваться кнопками прокрутки (стрелками), которые расположены в правой верхней части палитры компонентов. Подведите курсор к одной из кнопок и нажмите левую кнопку мыши. При этом закладки сдвинутся и появится та группа, которая первоначально не отображалась (была недоступна). В левой нижней части экрана располагается инспектор объектов Object Inspector. В этом окне производится настройка основных свойств визуальных компонентов. Расположение окна инспектора объектов в программе не фиксировано и при желании его можно переместить в ту часть рабочей области программы, которая для вас наиболее удобна. Для этого необходимо нажать левую кнопку мыши на строке заголовка окна и, удерживая ее, переместить окно. Над окном инспектора объектов расположено окно просмотра объектов Object Tree View. Оно отображает в виде дерева всю структуру проекта, состоящего из форм, кодов (текстов) программ и других ресурсов (файлов). Справа от инспектора объектов располагается окно дизайнера форм (окон будущей программы). Это окно содержит строку заголовка, в котором отображается название формы Forml (созданное по умолчанию) и кнопки управления окном. Над ним располагается окно редактора кода Unitl.cpp, (также созданное по умолчанию) в котором производится набор и редактирование кода программы.
Советую вам некоторое время самостоятельно познакомиться с этим интерфейсом для того, чтобы вы привыкли к нему и появились вопросы, на которые хочется получить ответы. Ведь только интерес порождает процесс изучения. Данный интерфейс будет нашим самым главным инструментом при создании программ.

ПЕРВАЯ ПРОГРАММА
Думаю, многим читателям уже не терпится написать первую программу под Windows. Пожалуйста, нет ничего проще. Фактически она уже написана, и сделал это за вас RAD интерфейс. Выполните команду Run из главного меню Run или щелкните левой кнопкой мышки по зеленой кнопкестрелке на панели быстрых кнопок или просто нажмите клавишу F9 на клавиатуре. После этого произойдет компиляция проекта (преобразование программы в машинный код, понятный компьютеру) с отображением на экране окна, подобного изображенному на рис. 3, и программа запустится.


На экране появится изображение пустого окна вашей первой программы (рис. 4).



В верхней части этой программы будет виден фирменный значок пакета Borland C++ Builder и название окна программы Forml. Итак, мы создали новую программу, не написав при этом ни строчки кода! Какая же польза от такой программы? Что она умеет делать? Пока не очень много, но кое-что все же умеет. Во-первых, мы получили полноценное оконное приложение, которое работает в операционной системе Windows. Во-вторых, это приложение имеет интерфейс Windows и привычные стандартные органы управления, расположенные справа вверху. Вы можете сворачивать данное приложение и разворачивать его на весь экран, изменять размеры окна программы и перемещать его с помощью мышки. А мы с вами создали такую программу в считанные секунды. Конечно же, это заслуга RAD интерфейса. Именно благодаря такому интерфейсу нам удалось создать приложение так быстро и легко. Это одно из его замечательных свойств, поэтому он и получил очень большое распространение и признание во всем мире. Обратите внимание, что при сворачивании приложение будет иметь имя Project 1. Теперь перед нами встают вопросы, как сделать наше приложение полезным, изменить его название и значок и т. д. Очень хорошо, что эти вопросы появились. Они пробуждают в нас интерес и жажду к знаниям — основной источник прогресса. Остановим работу нашей программы, щелкнув левой клавишей мышки по крестику в верхней правой части ее окна и продолжим обучение.
Теперь рассмотрим более подробно каждое из описанных выше окон интерфейса и других органов управления пакета Borland C++ Builder 6.0.

ГЛАВНОЕ МЕНЮ
Главное меню предоставляет доступ к основным командам программы Borland C++ Builder 6.0, объединенным в группы.
Первая группа меню под названием File (Файл) изображена на рис. 5.



Команды этого меню осуществляют работу с файлами и предоставляют доступ к операциям создания (New) новых форм (окон) и приложений, открытия (Open), сохранения (Save) и закрытия (Close) файлов и проектов, печати текстов программ (Print) и добавления заголовков модулей (Include), т. е. файлов с расширением h. Обратите внимание на то, что перед некоторыми командами этого и последующих меню находятся значки-иконки. Эти же значки изображены на кнопках быстрого запуска, что позволяет без труда понять их назначение. Кроме того, справа от некоторых команд меню написано соответствие команд горячим клавишам, т. е. клавишам, с помощью которых вызывается данная команда. Еще правее этих надписей кое-где имеются треугольные стрелки, которые говорят о том, что данная команда имеет расширенные возможности, которые становятся доступными после наведения на эту стрелку курсора мышки.

Вторая по порядку группа команд меню называется Edit (Редакторова-ние), она изображена на рис. 6.


В этом меню собраны команды редактирования, такие как отмена (Undelete) и повторение (Redo) операций, вырезание (Cut), копирование (Сору) вставка (Paste) и удаление (Delete), команды выделения всего текста (Select All), выравнивания компонентов (Align) и настройки редактора кода (текста программы).

Следующая группа команд Search (Поиск) изображена на рис. 7.


Команды данного меню позволяют осуществить поиск текста в файле, продолжить поиск после запуска программы, произвести автоматическую замену, быстро перейти к строке кода, задав ее номер.

Группа команд View (Вид) изображена на рис. 8.


Из этого пункта меню вызываются основные диалоговые окна управления проектом и компонентами, такие как менеджер проектов Project Manager, список компонентов Component List и список окон Windows List Также из этого пункта меню открываются все окна отладки программ Debug Windows, работу с которыми мы рассмотрим позже.

Группа команд Project (Проект) приведена на рис. 9.


В этом меню собраны команды управления проектом. С их помощью можно добавлять и удалять модули (файлы с текстами программ), добавить библиотеку компонентов VCL, откомпилировать проект и так далее.

Группа команд Run (Выполнить) изображена на рис. 10.


С помощью команд этого меню выполняется запуск и останов программ, запуск программ в непрерывном и пошаговом режимах, добавление переменных для просмотра, установка точек останова и другие действия по отладке программы.

Группа команд Component (Компонент) представлена на рис. 11.


Рис.11

Из этого меню вызываются команды добавления в систему новых компонентов и конфигурации их палитры.


Рис.12

Группа Database (База данных) представлена на рис. 12, она содержит команды для работы с базами данных. Изучение компонентов этой группы не входит в содержание данной статьи ввиду большого объема.
Группа Tools (Инструменты) изображена на рис. 13.


Рис.13

В этом меню собраны команды как по настройке параметров программы, так и команды вызова различных дополнительных утилит.


Рис.14

Группа Windows приведена на рис. 14.
С помощью команд данного меню производится управление окнами интерфейса.
Замыкает главное меню группа команд Help, представленная на рис. 15.


Рис.15

В нее включены команды, с помощью которых можно получить справку как о языке C++, так и о работе с пакетом Borland C++ Builder 6 и всеми его компонентами. Выбрав в данном меню команду About, вы увидите сведения о данном пакете и некоторые сведения о вашем компьютере. Это окно изображено на рис. 16.


Рис.16

БЫСТРЫЕ КНОПКИ
Быстрые кнопки расположены под главным меню (рис. 2). С их помощью осуществляется быстрый доступ к основным и часто используемым командам главного меню. Все эти кнопки имеют вплывающие меню, появляющиеся при наведении на них курсора мыши, и горячие клавиши, показываемые в скобках. Все быстрые кнопки также, как и главное меню, разделены на группы.
Кнопки Standard (Стандартные) позволяют создавать новые объекты программы. Для этого необходимо нажать кнопку New. При этом появится диалоговое окно New Items, в котором можно выбрать необходимый для создания программы объект. Также кнопки этой группы позволяют сохранять (Save) и открывать (Open) как отдельные файлы, так и целые проекты. Замыкают группу две кнопки управления проектами, с помощью которых можно добавлять файлы к проекту (Add File To Project) и удалять их из него (Remove File From Project).
Кнопки View (Вид). В эту группу собраны кнопки, управляющие просмотром форм и модулей, а также кнопка создания новой формы. Для создания новой формы необходимо нажать кнопку New Form. При этом появится новое окно дизайнера форм в заголовке, в котором будет отображаться название новой формы Form2. Для переключения между формой и редактором кода служит кнопка Toggle Form Unit (F12). Если в вашей программе используется несколько форм, то с помощью кнопки View Form (Shift+F12) вы можете выбрать форму для просмотра.
Кнопки Debug (Отладка). В этой группе собраны кнопки для отладки программы. Кнопка Run (F9) запускает проект на выполнение. Кнопка Pause позволяет приостановить выполнение проекта. С помощью кнопок Trace Into (F7) и Step over (F8) задается запуск программ в пошаговом режиме для детальной отладки программы. Положение кнопок быстрого доступа в среде разработки не фиксировано и их можно разместить на главной панели по своему усмотрению. Для этого необходимо подвести курсор к левому краю группы кнопок и, нажав и удерживая левую кнопку мыши, переместить группу на новое место. Если группа вынесена за пределы главной панели, ей отводится отдельное окно. Кроме того, нажав правую кнопку мыши на панели быстрых кнопок, можно открыть окно для настройки отображения любой группы кнопок на главной панели системы.

Самоучитель программирования на языке С++ в системе Borland C++ Builder 5.0 - Бобровский С. - 2001

Книга подготовлена редакцией «I-Press» по заказу издательства
Группа подготовки издания:
Главный редактор: Сергей Симонович
Научный релдактор: Георгий Евсеев
Литературный редактор: Ирина Симонович
Компьютерная верстка: Ирина Симонович
Корректор: Елена Сорокина

Десс ком
I Press
Москва - 2001

ISBN 5-93650-013-6 («ДЕСС КОМ*)
Бобровский СИ., 2001
Редакция «I-Press», 2001
Издательство «ДЕСС КОМ», 2001
Лицензия ИД №00219 от 11.10.99. Подписано в печать 10.11.2000.
Формат 70x100/16. Печать офсетная. Печ. л. 17. Доп. тираж 1000. Заказ 1064
ООО «ДЕСС КОМ», 105484. г. Москва, ул. 16-я Парковая, д. 21, корп. 1.
Отпечатано с готовых диапозитивов
в Академической типографии «Наука» РАН
199034, С.-Петербург, 9 Линия, 12

Содержание

Введение

Что такое язык программирования?
Что такое компилятор?
Почему C++?
Что такое визуальное программирование?
Почему Borland C++ Builder?
Какой нам нужен компьютер?

1. Первое знакомство

Установка Borland C++Builder
Запуск C++Builder
Интегрированная среда разработки
Основные компоненты Borland C++Builder
Главное окно C++Builder
Визуальный проектировщик рабочих форм
Что такое форма?
От компонентов формы к элементам управления программы
Главная и дополнительная формы
Инспектор объектов (Object Inspector)
Свойства объектов
События программные и системные
Редактор программы
Редактор исходного текста

2. Быстрый старт

Учимся работать с визуальными компонентами
Визуальные компоненты
Невизуальные компоненты
Делаем валютный калькулятор
Компонент Edit (Поле ввода)
Компонент Label (Поле надписи)
Компонент Button (Командная кнопка)
Сохраняем проект
Начинаем программировать
Переменные
Тип переменной
Как создаются переменные?
Зарезервированные слова Си++
Порядок определения переменных
Комментарии
Как получить строку из поля ввода?
Стандартные функции C++Builder
Тип функции
Сохраняем значение в переменной
Правила записи операторов Си++
Вывод результата на экран
Создаем свою первую работающую программу
Компиляция программы
Сборка программы
Запуск программы
Улучшаем калькулятор
Пересчет рублей в доллары
Локальные переменные и область действия
Глобальные переменные и вложенные логические блоки
Проверяем работу калькулятора
Другие типы для целых чисел
Типы для очень больших, очень малых и дробных чисел
Тип float
Тип double
Тип long double
Исправляем типы переменных
Старшинство операций
Другие функции преобразования чисел в текст
Оформляем результат
Округление результата
Описание функции и подключение стандартных библиотек
Наводим красоту
Программа готова

3. Заглядываем внутрь работающей программы

Повторное открытие проекта
Выполняем запрещенное действие
Проверяем значения переменных
Останавливаем программу

4. Оптимизация текста программы

Выбрасываем лишние операторы
Компилятор выдает предупреждение
Всегда ли надо экономить?

5. Обработка исключительных ситуаций

Охота за ошибками
Устанавливаем над программой контроль
Порядок обработки исключительной ситуации
Обрабатываем несколько исключительных ситуаций

6. Классы и их методы

Методы вместо функций
Как найти нужный метод
Дедовский способ

7. Условные вычисления

Фильтры значений
Условный оператор
Запись условного оператора
Логические выражения
Порядок вычисления выражения
Сложные логические выражения и побочные эффекты
Создаем фильтр
Сравнение чисел с плавающей запятой

8. Играем с компьютером. Более сложный пример

Во что будем играть?
Готовим новый проект
Постановка задачи
Не спешите сесть за компьютер
Проектирование пользовательского интерфейса
Создаем меню ИЗ
«Быстрые кнопки»
Проектирование внутренней структуры программы
Событие «Новая игра»
Событие «Выход»
Событие «Бросить кубик»
Событие «Передать очередь хода»
Описание классов
Как включить в программу новый класс
Ограничение доступности содержимого класса
Определяем первый класс
Имитируем бросание кубика
Описываем класс «Игрок»
Конструктор вызывается только один раз
Подключаем судью
Доступ к внутренним переменным и свойствам класса
Константы - вещь полезная

9. Программирование пользовательского интерфейса

Добавляем переменную-судью
Выход из игры
Новая игра
Используем текстовые константы
Длинные выделения переменных вложенных классов
Проверка завершения текущей партии
Расширенный условный оператор
Добавление строки в список
Когда выбран пункт меню «Новая игра»
Когда выбран пункт меню «Бросить кубик»
Когда выбран пункт меню «Передать очередь хода»
Настраиваем командные кнопки
Проверяем, все ли в порядке
Пошаговая отладка
Исключаем повторяющиеся игры
Оператор цикла
Выбор алгоритма поведения компьютерного игрока
Цикл вместо ручного копирования
Внутри цикла
Остановка цикла
Неполные формы записи оператора цикла
Создаем диалоговое окно
Создание новой формы
Логическое отрицание
Вызов новой формы
Из констант - в переменные
Вывод нового значения в диалоговом окне
Подготовка законченного приложения
Позиционируем окна
Выбор подходящего значка
Создание готовой программы
Три «кита» Си++

10. Обобщение - мать учения

Что дальше?
Массив - основа для хранения однородных данных
Как описать массив
Размер массива
Тип массива
Обращение к элементу массива классов
Многомерные массивы
Контролируем границы
Массивы и циклы - родные братья
Пасьянс «Колодец»
Почему пасьянс?
Новый проект
Правила «Колодца»
Где взять рисунки карт?
Проектируем интерфейс
Загружаем карты в компонент
Реализация необходимых классов
Проектирование колоды карт
Класс «Карта»
Класс «Колода»
Требуемые константы
Реализация карты
Конструируем колоду с помощью вложенных циклов
Тасуем колоду
Изъяние карты из колоды
Добавление карты в колоду
Проверка на опустошение колоды
Основная часть пасьянса
Проектирование логики работы главной формы
Перевод карты в индекс картинки
Добавление и удаление карт из стопок
Перемещение карты
Новая игра
Самый главный метод
Самый главный метод-2
А есть ли карты?
Логика работы интерфейса
Ловим мышку
Обрабатываем щелчок
Инициализация массивов
Продолжаем проверку пользовательского интерфейса
Игра по правилам
Нисходящее программирование
Проверка на конец игры
Последние мелочи

11 . ВВОД И ВЫВОД

Зачем это надо?
Как устроена работа с файлами в Си++
Сохраняем текущий расклад
Создаем файл
Перезаписывайте с осторожностью
Диалог с пользователем
Сохранение данных в файле
Контроль за ошибками
Закрываем файл и подводим итоги
Считывание данных
Выбор произвольных файлов
Другие возможности работы с файлами в C++Builder
Стандартные функции для работы с файлами

12. Компоненты, которые пригодятся

Сборка из кубиков
Панель Standard
Что уже известно
Фреймы
Контекстное меню
Многострочное поле ввода
Флажок
Переключатель
Группа переключателей
Полоса прокрутки
Группа элементов
Панель
Панель Additional
Что уже известно
Поле ввода по маске
Таблица строк
Таблица для чего угодно
Картинка
Геометрическая фигура
Рамка
Прокручиваемая зона
Заголовок
Панель элементов
Диаграмма
Панель Win32
Что уже известно
Вкладки
Мощный редактор текста
Ползунок
Индикатор выполнения операции
Кнопки счетчика
«Горячая» клавиша
Анимация
Поле ввода даты и времени
Месячный календарь
Заголовок с разделами
Строка состояния
Панель элементов
Панель прокрутки
Панель System
Таймер
Область рисования
Универсальный проигрыватель
OLE-контейнер
Панель Dialogs
Маловато будет!
Основные свойства компонентов C++Builder
Примечания к таблицам
Основные свойства компонентов

13. Заключение

Что еще может Borland C++Builder
Работа с базами данных
Анализ данных
Создание отчетов
Интернет
Распределенные вычисления
Серверы
Перспективы
Алфавитный указатель

В текстах лекций рассмотрены основные принципы и средства объектно-ориентированного программирования с применением языка С++ и системы программирования Borland C++. В приложении приведены задачи для самостоятельного решения. Предполагается, что читатель уже знаком с основами универсальных языков программирования. Пособие предназначено для студентов специальности "Прикладная математика" и может быть использовано студентами других специальностей для самостоятельного изучения С++.

1. Объектно-ориентированный подход в программировании

1.1 Технологии программирования

Технология программирования - это совокупность методов и средств разработки (написания) программ и порядок применения этих методов и средств.

На ранних этапах развития программирования, когда программы писались в виде последовательностей машинных команд, какая-либо технология программирования отсутствовала. Первые шаги в разработке технологии состояли в представлении программы в виде последовательности операторов. Написанию последовательности машинных команд предшествовало составление операторной схемы, отражающей последовательность операторов и переходы между ними. Операторный подход позволил разработать первые программы для автоматизации составления программ - так называемые составляющие программы.

С увеличением размеров программ стали выделять их обособленные части и оформлять их как подпрограммы. Часть таких подпрограмм объединялась в библиотеки, из которых подпрошраммы можно было включать в рабочие программы и затем вызывать из рабочих программ. Это положило начало процедурному программированию - большая программа представлялась совокупностью процедур-подпрограмм. Одна из подпрограмм являлась главной, и с нее начиналось выполнение программы.

В 1958 году были разработаны первые языки программирования, Фортран и Алгол-58. Программа на Фортране состояла из главной программы и некоторого количества процедур - подпрограмм и функций. Программа на Алголе-58 и его последующей версии Алголе-60 представляла собой единое целое, но имела блочную структуру, включающую главный блок и вложенные блоки подпрограмм и функций. Компиляторы для Фортрана обеспечивали раздельную трансляцию процедур и последующее их объединение в рабочую программу, первые компиляторы для Алгола предполагали, что транслируется сразу вся программа, раздельная трансляция процедур не обеспечивалась.

Процедурный подход потребовал структурирования будущей программы, разделения ее на отдельные процедуры. При разработке отдельной процедуры о других процедурах требовалось знать только их назначение и способ вызова. Появилась возможность перерабатывать отдельные процедуры, не затрагивая остальной части программы, сокращая при этом затраты труда и машинного времени на разработку и модернизацию программ.

Следующим шагом в углублении структурирования программ стало так называемое структурное программирование, при котором программа в целом и отдельные процедуры рассматривались как последовательности канонических структур: линейных участков, циклов и разветвлений. Появилась возможность читать и проверять программу как последовательный текст, что повысило производительность труда программистов при разработке и отладке программ. С целью повышения структурности программы были выдвинуты требования к большей независимости подпрограмм, подпрограммы должны связываться с вызывающими их программами только путем передачи им аргументов, использование в подпрограммах переменных, принадлежащих другим процедурам или главной программе, стало считаться нежелательным.

Процедурное и структурное программирование затронули, прежде всего, процесс описания алгоритма как последовательности шагов, ведущих от варьируемых исходных данных к искомому результату. Для решения специальных задач стали разрабатываться языки программирования, ориентированные на конкретный класс задач: на системы управления базами данных, имитационное моделирование и т.д.

При разработке трансляторов все больше внимания стало уделяться обнаружению ошибок в исходных текстах программ, обеспечивая этим сокращение затрат времени на отладку программ.

Применение программ в самых разных областях человеческой деятельности привело к необходимости повышения надежности всего программного обеспечения. Одним из направлений совершенствования языков программирования стало повышения уровня типизации данных. Теория типов данных исходит из того, что каждое используемое в программе данное принадлежит одному и только одному типу данных. Тип данного определяет множество возможных значений данного и набор операций, допустимых над этим данным. Данное конкретного типа в ряде случаев может быть преобразовано в данное другого типа, но такое преобразование должно быть явно представлено в программе. В зависимости от степени выполнения перечисленных требований можно говорить об уровне типизации того или иного языка программирования. Стремление повысить уровень типизации языка программирования привело к появлению языка Паскаль, который считается строго типизированным языком, хотя и в нем разрешены некоторые неявные преобразования типов, например, целого в вещественное. Применение строго типизированного языка при написании программы позволяет еще при трансляции исходного текста выявить многие ошибки использования данных и этим повысить надежность программы. Вместе с тем строгая типизация сковывала свободу программиста, затрудняла применение некоторых приемов преобразования данных, часто используемых в системном программировании. Практически одновременно с Паскалем был разработан язык Си, в большей степени ориентированный на системное программирование и относящийся к слабо типизированным языкам.

Все универсальные языки программирования, несмотря на различия в синтаксисе и используемых ключевых словах, реализуют одни и те же канонические структуры: операторы присваивания, циклы и разветвления. Во всех современных языках присутствуют предопределенные (базовые) типы данных (целые и вещественные арифметические типы, символьный и, возможно, строковый тип), имеется возможность использования агрегатов данных, в том числе массивов и структур (записей). Для арифметических данных разрешены обычные арифметические операции, для агрегатов данных обычно предусмотрена только операция присваивания и возможность обращения к элементам агрегата. Вместе с тем при разработке программы для решения конкретной прикладной задачи желательна возможно большая концептуальная близость текста программы к описанию задачи. Например, если решение задачи требует выполнения операций над комплексными числами или квадратными матрицами, желательно, чтобы в программе явно присутствовали операторы сложения, вычитания, умножения и деления данных типа комплексного числа, сложения, вычитания, умножения и обращения данных типа квадратной матрицы. Решение этой проблемы возможно несколькими путями:

Построением языка программирования, содержащего как можно больше типов данных, и выбором для каждого класса задач некоторого подмножества этого языка. Такой язык иногда называют языком-оболочкой. На роль языка-оболочки претендовал язык ПЛ/1, оказавшийся настолько сложным, что так и не удалось построить его формализованное описание. Отсутствие формализованного описания, однако, не помешало широкому применению ПЛ/1 как в Западной Европе, так и в СССР.

Построением расширяемого языка, содержащего небольшое ядро и допускающего расширение, дополняющее язык типами данных и операторами, отражающими концептуальную сущность конкретного класса задач. Такой язык называют языком-ядром. Как язык-ядро были разработаны языки Симула и Алгол-68, не получившие широкого распространения, но оказавшие большое влияние на разработку других языков программирования.

Дальнейшим развитием второго пути явился объектно-ориентированный подход к программированию, рассматриваемый в следующем параграфе.

1.2. Сущность объектно-ориентированного подхода к программированию

Основные идеи объектно-ориентированного подхода опираются на следующие положения:

Программа представляет собой модель некоторого реального процесса, части реального мира.

Модель реального мира или его части может быть описана как совокупность взаимодействующих между собой объектов.

Объект описывается набором параметров, значения которых определяют состояние объекта, и набором операций (действий), которые может выполнять объект.

Взаимодействие между объектами осуществляется посылкой специальных сообщений от одного объекта к другому. Сообщение, полученное объектом, может потребовать выполнения определенных действий, например, изменения состояния объекта.

Объекты, описанные одним и тем же набором параметров и способные выполнять один и тот же набор действий представляют собой класс однотипных объектов.

С точки зрения языка программирования класс объектов можно рассматривать как тип данного, а отдельный объект - как данное этого типа. Определение программистом собственных классов объектов для конкретного набора задач должно позволить описывать отдельные задачи в терминах самого класса задач (при соответствующем выборе имен типов и имен объектов, их параметров и выполняемых действий).

Таким образом, объектно-ориентированный подход предполагает, что при разработке программы должны быть определены классы используемых в программе объектов и построены их описания, затем созданы экземпляры необходимых объектов и определено взаимодействие между ними.

Классы объектов часто удобно строить так, чтобы они образовывали иерархическую структуру. Например, класс “Студент”, описывающий абстрактного студента, может служить основой для построения классов “Студент 1 курса”, “Студент 2 курса” и т.д., которые обладают всеми свойствами студента вообще и некоторыми дополнительными свойствами, характеризующими студента конкретного курса. При разработке интерфейса с пользователем программы могут использовать объекты общего класса “Окно” и объекты классов специальных окон, например, окон информационных сообщений, окон ввода данных и т.п. В таких иерархических структурах один класс может рассматриваться как базовый для других, производных от него классов. Объект производного класса обладает всеми свойствами базового класса и некоторыми собственными свойствами, он может реагировать на те же типы сообщений от других объектов, что и объект базового класса и на сообщения, имеющие смысл только для производного класса. Обычно говорят, что объект производного класса наследует все свойства своего базового класса.

Размер: px

Начинать показ со страницы:

Транскрипт

1 Федеральное агентство железнодорожного транспорта Уральский государственный университет путей сообщения Кафедра «Информационные технологии и защита информации» А. В. Кибардин ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ С++ Часть 3 Основы визуального программирования в среде Borland C++ Builder Екатеринбург Издательство УрГУПС 2012

2 УДК (075.8) К38 К38 Кибардин, А. В. Программирование на языке С++. В 3 ч. Ч. 3. Основы визуального программирования в среде Borland C++ Builder: учеб.-метод. пособие / А. В. Кибардин. Екатеринбург: Изд-во УрГУПС, c. Пособие предназначено для изучения основ визуального проектирования и событийно-ориентированного программирования на алгоритмическом языке С++ в среде пакета Borland C++ Bulder. Ориентировано на студентов направления «Мехатроника и робототехника», а также на студентов, аспирантов, слушателей ФПК и подготовительного отделения, обучающихся основам современных информационных технологий. УДК (075.8) Печатается по решению редакционно-издательского совета университета Автор: А. В. Кибардин, доцент кафедры «Информационные технологии и защита информации», канд. физ.-мат. наук, УрГУПС Рецензенты: Г. Б. Смирнов, профессор кафедры «Вычислительная техника», д-р техн. наук, УрФУ им. первого Президента России Б. Н. Ельцина В. И. Радченко, профессор кафедры «Информационные технологии и защита информации», д-р физ.-мат. наук, УрГУПС Уральский государственный университет путей сообщения (УрГУПС), 2012

3 ОГЛАВЛЕНИЕ ВВЕДЕНИЕ... 4 ОСНОВЫ ПРОГРАММИРОВАНИЯ В СРЕДЕ C++ BUILDER... 5 РАБОТА С ИНТЕГРИРОВАННОЙ СРЕДОЙ РАЗРАБОТКИ ПРИЛОЖЕНИЙ..9 РАЗРАБОТКА ИНТЕРФЕЙСА ПРОГРАММЫ. КОМПОНЕНТЫ C++ BUILDER РАЗРАБОТКА ПРОГРАММНОГО КОДА ПРИЛОЖЕНИЯ. СОБЫТИЯ И ОБРАБОТЧИКИ СОБЫТИЙ.17 ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ В ПРОГРАММЕ 20 ДОРАБОТКА ИНТЕРФЕЙСА ПРИЛОЖЕНИЯ ПОДГОТОВКА ПРИЛОЖЕНИЯ К РАСПРОСТРАНЕНИЮ РАБОТА С ГРАФИКОЙ РАБОТА С ФАЙЛАМИ РАБОТА С БАЗАМИ ДАННЫХ НЕКОТОРЫЕ КОМПОНЕНТЫ ДЛЯ ОТОБРАЖЕНИЯ ДАННЫХ ИЗ БД ЗАПРОСЫ К БАЗЕ ДАННЫХ КОМПОНЕНТ ПРОГРАММИСТА БИБЛИОГРАФИЧЕСКИЙ СПИСОК

4 ВВЕДЕНИЕ Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению на рынке программ целого ряда систем программирования, ориентированных на быструю разработку приложений, среди которых следует отметить Microsoft Visual Basic и Borland Delphi. В основе систем быстрой разработки лежит технология визуального проектирования и событийно-управляемого программирования, суть которой заключается в том, что среда разработки берет на себя большую часть работы по генерации программного кода, оставляя программисту работу по конструированию диалоговых окон и написания функций обработки событий, возникающих в программе. Понятно, что такие системы резко повышают производительность работы программиста. Успех и популярность Delphi вызывал желание фирмы Borland распространить метод быстрой разработки на область профессионального программирования, что привело к появлению Borland С++ Builder. C++ Builder среда быстрой разработки, в которой в качестве языка программирования используется расширенный язык С++ (язык С++ Builder). В данном пособии описаны технологии событийно-управляемого и визуального программирования на языке С++ в среде С++ Builder. Для работы с методическими указаниями необходимо владеть основами программирования на языке С++ и знать следующие технологии: структурного программирования; модульного программирования; объектно-ориентированного программирования (ООП). С++ Builder среда быстрой разработки, в которой в качестве языка Этим технологиям посвящено большое количество учебной литературы, в том числе . 4

5 ОСНОВЫ ПРОГРАММИРОВАНИЯ В СРЕДЕ C++ Builder Особенности программирования в среде Windows Система C++ Builder предназначена для разработки программ, работающих в среде Windows. Программирование в Windows имеет следующие особенности: 1) программный код состоит из процедур обработки сообщений, которые Windows посылает приложению (программе); 2) Windows фиксирует возникающие в программах и аппаратуре события и посылает соответствующие сообщения в программу; 3) одновременно могут выполняться несколько программ. Данные программы делят между собой ресурсы компьютера; 4) работающая программа находится в рабочей области памяти и ожидает сообщений от Windows, на которые она должна реагировать; 5) взаимодействие с аппаратным обеспечением происходит через графический интерфейс устройств. Windows предлагает разработчику программы так называемую управляемую событиями среду, когда код программы исполняется как реакция на определенное событие. Windows создает входное сообщение для каждого входного события, генерируемого пользователем с помощью мыши или клавиатуры. Windows сохраняет входные сообщения в очереди системных сообщений. Затем эти сообщения посылаются в очередь сообщений приложения. Сообщение приложению от Windows формируется путем создания записи сообщения в очереди сообщений. Некоторые сообщения от Windows посылаются непосредственно в окно приложения это так называемые внеочередные сообщения. Приложение также может создавать собственные сообщения, помещать в свою очередь сообщений и посылать их другим приложениям. Каждое приложение выполняется в своем собственном окне, имеющем уникальное описание дескриптор. Поскольку в записи сообщения указывается, кому предназначено данное сообщение, то Windows пересылает его по указанному адресу. Приложение должно быть в состоянии обработать любое сообщение. Практически для каждого события Windows имеет стандартную процедуру обработки. В приложении должно быть указано, что при возникновении события NM, для которого в программе нет специального кода, должна выполняться стандартная процедура Windows. Большинство стандартных сообщений программы обрабатывается автоматически, поскольку все объекты C++ Builder имеют встроенный механизм процедуру обработки сообщений. 5

6 Основные понятия ООП в С++ Builder Программирование в С++ Builder основывается на расширенном языке C++ (языке С++ Builder). В C++ вводится специальный тип данных класс. Класс это структура данных, состоящая из следующих элементов: поля; методы; свойства. Поля содержат данные определенного типа. Методы это функции, выполняющие определенные действия. Свойства это поля данных, которые влияют на поведение объекта. Они отличаются от обычных полей тем, что присвоение им значений связано с вызовом соответствующих методов. Для описания класса в языке используется зарезервированное слово class. Класс объявляется в модуле приложения (см. ниже). В C++ базовым классом для всех классов является абстрактный класс TObject: поэтому если нужно создать новый класс данных, то необходимо использовать следующее описание: class TNewObject: TObject тело класса; Напоминаем, что при описании класса в его заголовке перечисляются все классы, являющиеся для него базовыми. Возможность обращения к элементам этих классов регулируется с помощью ключей доступа private, protected и public (см.). Объект является экземпляром класса. Экземпляр класса реализуется переменной данного типа класса, например: TNewObject *NewObject; Управление файлами в С++ Builder В начале работы над проектом C++ Builder предоставляет в распоряжение разработчика фактически готовую программу. Программа состоит из одного окна с заголовком Form1 и обладает функциональными возможностями стандартного окна Windows. При этом создаются следующие файлы прило-жения. Главный модуль проекта Project1.cpp содержит код главной программы, написанной на языке C++. В файле содержатся ссылки на все формы проекта и относящиеся к ним модули. В нем также находится код инициализации приложения: 6

7 // #include #pragma hdrstop // USEFORM("Unit1.cpp", Form1); // WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) try Application->Initialize(); Application->CreateForm(classid(tform1), &Form1); Application->Run(); catch (Exception &exception) Application->ShowException(&exception); catch (...) try throw Exception(""); catch (Exception &exception) Application->ShowException(&exception); return 0; // Модули формы Для каждой формы C++ Builder создает отдельный модуль, который состоит из двух файлов: заголовочного файла и файла кода (содержимое этих файлов показывается в окне редактора кода). Заголовочный файл Unit1.h содержит описание формы и выглядит так: // #ifndef Unit1H #define Unit1H //

8 #include #include #include #include // class TForm1: public TForm published: // IDE-managed Components private: // User declarations public: // User declarations fastcall TForm1(TComponent* Owner); ; // extern PACKAGE TForm1 *Form1; // #endif Файл кода (модуль формы) Unit1.cpp содержит описание функций, в том числе и обработки событий: // #include #pragma hdrstop #include "Unit1.h" // #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; // fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) // Кроме того, C++ Builder, анализируя действия программиста, формирует файл описания свойств формы (форм, если их больше в проекте, чем одна) как компонента стандартной библиотеки визуальных компонентов Unit1.dfm, файл проекта Project1.bpr и файл ресурсов проекта. Результат компиляции проекта (исполняемое приложение) сохраняется в файле Project1.exe. Файлы с расширением.tds и.obj создает компилятор в процессе генерации исполняемого файла. Резервные копии файлов проекта имеют в качестве первого символа расширения символ «~» (*.~*). 8

9 РАБОТА С ИНТЕГРИРОВАННОЙ СРЕДОЙ РАЗРАБОТКИ ПРИЛОЖЕНИЙ Основой C++ Builder является интегрированная среда разработки приложений (IDE). После запуска C++ Builder на экране появится несколько окон, представленных на рис. 1. IDE состоит из главного окна, инспектора объектов, визуального проектировщика форм, окна редактора программ, включающего в себя просмотровщика классов и редактор исходного текста программы. В состав главного окна входят главное меню и несколько панелей инструментов: стандартная, панель просмотра форм и исходного текста, панель отладки, панель выбора настройки среды, пользовательская, а также палитра компонентов. Палитра компонентов включает 19 панелей. В пределах одной панели объединены компоненты, ориентированные на конкретную область применения. Каждый компонент представлен в палитре своим значком. Визуальный проектировщик форм Форма это будущее окно Windows, в котором размещаются различные элементы управления (кнопки, меню, надписи, переключатели и т. д.). Когда созданная программа откомпилирована и запущена на выполнение, форма превращается в обычное окно Windows и выполняет те действия, которые определены для нее разработчиком. Таких окон в программе может быть несколько, но лишь одно из них считается главным, остальные вспомогательными. Компоненты форм Компоненты палитры содержат обобщенные образы элементов управления и имеют соответствующие названия («кнопка», «полоса прокрутки» и т. д.). После размещения компонента в форме в ней реально содержится экземпляр соответствующего компонента, т. е. объект. Инспектор объектов Инспектор объектов предназначен для задания свойств объектов и определения их реакций на различные события. Текущий объект показывается в верхней части инспектора в раскрывающемся списке. Инспектор объектов содержит две страницы: «Properties» (свойства) и «Events» (события). Для изменения конкретного свойства необходимо выделить объект на форме, щелкнуть по странице «Properties», затем щелкнуть мышью в строке соответствующего свойства и в открывшемся окне задать его новое значение. Страница «Events» инспектора позволяет определить реакцию программы на различные события в виде соответствующих функций. 9

10 Главное окно Панели инструментов Инспектор Просмотровщик Визуальный Редактор объектов классов проектировщик исходного форм кода Рис. 1. Главное окно среды разработки приложений Редактор программы Рядом с окном главной формы располагается окно редактора программы. Переключение между формой и редактором кода можно осуществлять либо мышью, либо функциональной клавишей «F12». Окно редактора состоит из двух панелей: просмотровщика классов и редактора исходного текста программы. Просмотровщик классов визуально отображает структуру связей между различными объектами программы и позволяет быстро перемещаться по ее тексту. В окне редактора исходного текста программы отображается программный код. Интуитивный помощник написания кода Редактор кода имеет набор средств, обеспечивающих выполнение целого ряда вспомогательных функций. Эти средства имеют общее название интуитивный помощник написания кода. Он выполняет следующие функции: дополнение кода; 10

11 контекстный список параметров; быстрая оценка значений; всплывающие подсказки об объявлениях идентификаторов; шаблоны кодов. Менеджер проектов Помимо главной формы и модуля с исходным кодом этой формы программа содержит файл проекта, с помощью которого можно осуществлять управление файлами (модулями), являющимися составными частями проекта. Окно менеджера вызывается командой View / Project Manager. Менеджер проекта позволяет выполнять операции с файлами. Действия с файлами выполняются с помощью панели инструментов менеджера проекта. 11

12 РАЗРАБОТКА ИНТЕРФЕЙСА ПРОГРАММЫ. КОМПОНЕНТЫ C++ BUILDER Разработка приложений для Windows с помощью C++ Builder очень проста, так как разработчик располагает обширной библиотекой объектов (VCL). Эта библиотека построена по иерархическому принципу и базируется на классе TObject. Это абстрактный тип, определенный в модуле Classes. Он является предком всех объектов: все объекты порождены от него и имеют унаследованные от TObject свойства. Иерархия объектов C++ Builder представлена на следующей схеме. Объект Невизуальный Визуальный Не элемент управления Элемент управления Оконный Неоконный Компоненты C++ Builder особый вид объектов. Компоненты наряду с методами и обработчиками событий обладают свойствами. Свойства имеют предварительно заданные значения, которые можно изменять как при выполнении программы, так и в ходе ее разработки. Отличие компонентов от объектов в том, что компоненты это визуальные объекты; их можно редактировать в ходе разработки программы, а невизуальные объекты нет. Например, кнопка RadioButton визуальный объект, графически представленный в палитре компонентов. Элементы управления особый вид компонентов. Компоненты, которые не работают в качестве элементов управления, невидимы для пользователя; он ничего не может сделать с их помощью. Например, компонент «меню» видим и доступен только разработчику приложения. При работе с приложением пользователь ничего не может сделать с компонентом «меню». Он видит только результат работы программиста с этим компонентом, а именно меню, в котором можно что-то выбирать. Напротив, кнопка является графическим элементом, видимым пользователем. Пользователь может произвести некоторое действие, например щелчок по данной кнопке. В пределах категории элементов управления существует различие между оконными и неоконными элементами управления. Оконными называются элементы управления, которые: могут становиться активными; могут содержать другие элементы управления; 12

13 обладают дескриптором окна. Неоконными называются элементы управления, которые: не могут становиться активными; не могут содержать другие элементы управления; не обладают дескриптором окна. Создадим приложение, которое может вычислять корни квадратного уравнения. Начнем с разработки пользовательского интерфейса программы. Запустите систему программирования C++ Builder и сразу же сохраните файл проекта и файл модуля, воспользовавшись командой меню File. Поскольку система создает много рабочих файлов вашего проекта, то следует сохранять их в отдельной папке. Отметим тот факт, что вы уже получили работающее приложение, которое выводит на экран пустое окно. С этим окном можно выполнять обычные для окон Windows действия. Убедитесь в этом, запустив приложение на выполнение командой меню Run / Run. В программе пользователю потребуется вводить коэффициенты уравнения a, b и c. Для ввода этих данных воспользуемся компонентом Edit (поле ввода). Компонент размещается на вкладке Standart палитры компонентов. Щелкните по кнопке компонента Edit, затем переместите курсор мыши на форму и щелкните в нужном месте. В результате этих действий на форме появится поле ввода с надписью внутри Edit1. При этом само поле ввода получит имя Edit1, под которым оно будет доступно программе. Имена объектов создаются в С++Builder автоматически по следующему принципу: название компонента плюс порядковый номер размещенного на форме элемента управления. Форма со всеми элементами управления изображена на рис. 2.!!! Разработчик программ может сам задавать элементам управления свои имена, однако это следует делать только через инспектор объектов, а не в редакторе кода. Для этого необходимо в инспекторе объектов выделить свойство Name нужного элемента и задать новое имя. Очистим содержимое поля ввода от надписи. Для этого выделите на форме поле ввода, щелкнув по нему курсором мыши, на странице «Properties» инспектора объектов выберите свойство Text поля ввода и в соседней ячейке удалите надпись Edit1. Разместим надпись над полем ввода, поясняющую, что данное поле ввода предназначается для ввода коэффициента а. Воспользуемся компонентом Label (подпись). Данный компонент размещается на вкладке «Standart». Для задания надписи воспользуйтесь свойством Caption данного элемента управления. Аналогично разместите на форме поля ввода для коэффициентов b и c и сделайте соответствующие надписи над ними. Результаты расчетов, т. е. значения вычисленных корней x1 и x2, можно вывести на форму, воспользовавшись уже известными вам компонентами Edit и 13

14 Label. Разместите на форме еще два элемента Edit и соответствующие надписи над ними. Рис. 2. Вид окна проекта Поместим на форму две кнопки: одну для запуска процесса вычислений, вторую для завершения работы программы. Воспользуемся компонентом Button (кнопка). Компонент Button также находится на вкладке «Standart». Зададим надписи на кнопках: «Вычислить» и «Закрыть». Для этого воспользуйтесь свойствами Caption соответствующих кнопок. Разместим на форме такие важные элементы интерфейса, как строку меню, панель инструментов и строку состояния. Перейдите на вкладку «Win32» панели компонентов и щелкните по значку ToolBar, затем курсором мыши щелкните по форме. В верхней части формы появится панель инструментов, пока еще без кнопок. Для создания кнопок панели инструментов воспользуемся компонентом SpeedButton, находящимся на вкладке «Additional». Разместите на панели инструментов три кнопки, которые будут соответствовать командам «Вычислить», «Справка» и «Выход». Выделите нужную кнопку и воспользуйтесь свойством Glyph. Затем щелкните в строке свойства по прямоугольнику с тремя точками. В результате появится диалоговое окно редактора 14

15 картинок. В этом окне нажмите кнопку «Load»; найдите подкаталог Program Files\Common Files\Borland Shared\Images\Buttons и в списке предложенных файлов выберите подходящий рисунок. В окне редактора нажмите кнопку «ОК». Вернитесь на вкладку «Win32» и выделите значок StatusBar (строка состояния). Щелкните курсором мыши по форме. В нижней части формы появится строка состояния. Перейдите на вкладку «Standart» палитры компонентов и выделите значок MainMenu (главное меню). Щелкните курсором мыши в любом месте формы. Компонент MainMenu невизуальный, поэтому он может находиться где угодно на форме. Дважды щелкните по объекту меню, на экране появится редактор меню. Для того чтобы с помощью него добавить новые пункты меню, необходимо выполнить следующие действия: 1) нажмите клавишу «Enter» активизируется инспектор объектов, который предложит ввести название для текущего пункта меню в строке Caption; 2) введите слово «Уравнение» и нажмите «Enter». Система переключится снова в редактор меню. Нажмите клавишу «Enter» и в инспекторе объектов введите слово «Вычислить». Повторите эти действия еще дважды, чтобы добавить в меню подпункты «Справка» и «Выход». Для завершения разработки интерфейса программы остается добавить еще одну форму с необходимыми элементами управления. Вторая форма будет окном справки программы. Воспользуйтесь командой меню File/New/Form для добавления к проекту второй формы. Исправьте заголовок формы, назвав ее «Справка». Поместите на форму объект Memo1, воспользовавшись компонентом Memo (многострочное поле ввода) на вкладке «Standart». Данный компонент позволяет выводить текст, состоящий из множества строк. Задайте форме и полю Memo1 подходящие размеры. Для этого выделите нужный объект по краям объекта появятся черные квадратики. Захватив курсором мыши один из квадратиков, вы сможете изменить размеры объекта. Непосредственно под полем ввода поместите кнопку, закрывающую окно справки. Для этого воспользуйтесь компонентом BitBtn на вкладке «Additiona»l. В ее свойстве Kind выберите значение bkclose. Это предопределенное значение позволит закрыть данное окно. Остается поместить текст справки в поле ввода. Выделите свойство Lines поля ввода, а затем щелкните дважды по кнопке с тремя точками в строке этого свойства. При этом появится окно текстового редактора, в котором вам следует удалить имя поля и ввести текст справки, например следующее: 15

16 Данная программа вычисляет корни квадратного уравнения. Введите в соответствующих окнах значения коэффициентов уравнения и нажмите кнопку «Вычислить». Для завершения работы нажмите кнопку «Выход». Введя текст справки, нажмите кнопку «ОК». Сохраните модуль второй формы. На этом разработка интерфейса закончена. 16

17 РАЗРАБОТКА ПРОГРАММНОГО КОДА ПРИЛОЖЕНИЯ. СОБЫТИЯ И ОБРАБОТЧИКИ СОБЫТИЙ Приложения, созданные с помощью C++ Builder, это приложения для Windows. Одним из основных свойств таких приложений является управление по событиям. Это означает, что программа выполняется на основе генерируемых сообщений о событиях, которые обрабатываются программным кодом приложения. Такой код необходимо написать для каждого события, на которое должна реагировать программа. Процедура, предназначенная для реагирования на какое-либо событие, называется в С++ Builder функцией обработки события. Выделяются две категории событий: события, обусловленные действиями пользователя, пользовательские события и обычные события программно-управляемые события. Функции обработки пользовательских событий составляют главную часть кода приложения. Они обеспечивают интерактивное взаимодействие приложения и пользователя. В C++ Builder для этого применяются предварительно определенные обработчики событий, которые могут использоваться практически всеми компонентами. Сюда относятся обработчики событий мыши и клавиатуры. К обычным (программно-управляемым) событиям относятся события активизации, завершения, события изменения состояния отдельных компонентов и прочие события, которые являются косвенным результатом действия пользователя. C++ Builder генерирует функции обработки каждого события и дает им имена в соответствии с именами компонентов, для которых эти процедуры предназначены. Например, если дважды щелкнуть по кнопке Button1, в модуле формы будет сгенерирована пустая функция обработки события, которая выглядит следующим образом: void fastcall TForm1::Button1Click(TObject *Sender) Далее необходимо вписать нужный программный код в составной блок. Выделите кнопку «Вычислить», перейдите на страницу «Events» в инспекторе объектов и дважды щелкните по имени обработчика события OnClick. Система добавит в текст модуля пустую функцию обработки щелчка по кнопке. Что должна выполнять эта функция? Во-первых, в ней должно считываться содержимое полей ввода коэффициентов a, b и c; далее считанные значения должны быть превращены в числа, поскольку свойство Text компонента Edit имеет строковый тип; затем должны быть выполнены необходимые вычисления и результат помещен в поля Edit4 и Edit5. 17

18 Добавьте в функцию программный код, приведенный ниже. void fastcall TForm1::Button1Click(TObject *Sender) float a,b,c,d,x1,x2; a=strtofloat(edit1->text); b=strtofloat(edit2->text); c=strtofloat(edit3->text); d=b*b-4*a*c; if (d>=0) else x1=(-b-sqrt(d))/(2*a); x2=(-b+sqrt(d))/(2*a); Edit4->Text=FloatToStr(x1); Edit5->Text=FloatToStr(x2); ShowMessage("Нет действительных корней"); В разделе директив препроцессора модуля формы добавьте строку #include Данный заголовочный файл позволит воспользоваться библиотекой математических функций (в нашем случае функцией вычисления квадратного корня). Отметим в тексте следующие моменты. Для вычислений мы использовали только локальные переменные, так как их не надо использовать в других процедурах. Для превращения строки символов в число и обратного преобразования используются функции StrToFloat() и FloatToStr() соответственно. Для выдачи сообщения «Нет действительных корней» используется функция Windows вызова диалогового окна ShowMessage(). Определим функцию обработки щелчка по кнопке «Выход». Щелкните дважды по данной кнопке и в появившемся окне редактора кода добавьте в функцию Button2Click строку 18

19 Form1->Close(); (Close() метод, закрывающий окно нашего приложения.) Сохраните проект и запустите его на выполнение. Проверьте его работу при различных исходных данных. Если система обнаружит ошибки, устраните их и снова запустите проект на выполнение. Определим теперь события меню и нажатия кнопок на панели инструментов. Для этого нам не понадобится писать никакого кода. Мы свяжем нужные события с уже определенными событиями щелчками по кнопкам «Вычислить» и «Выход». Щелкните по строке меню и затем выберите первый пункт меню «Вычислить». В инспекторе объектов на странице «Events» в строке обработчика On- Click в списке имеющихся функций выберите функцию Button1Click. Щелкните мышью по форме и то же самое проделайте с пунктом меню «Выход», только теперь свяжите его с функцией Button2Click. Выберите пункт меню «Справка», в инспекторе объектов дважды щелкните в строке обработчика OnCliсk, в редакторе кодов в функцию N3Click добавьте команду Form2->ShowModal(); В разделе директив модуля главной формы не забудьте добавить директиву подключения заголовочного файла модуля справки #include "имя_модуля_справки.h". Здесь имя_модуля_справки имя, с которым вы сохранили модуль на диске. Метод ShowModal() вызывает окно справки, причем пока оно не будет закрыто, перейти в главное окно приложения не удастся (модальное состояние окна). Выделите кнопку «Вычислить» на панели инструментов и в инспекторе объектов для обработчика OnClick выберите функцию Button1Click; для кнопки Выход функцию Button2Click. Для кнопки «Справка» создайте процедуру, обрабатывающую щелчок аналогично тому, как вы сделали это для пункта меню «Справка». Осталось определить работу строки состояния StatusBar1. Выделите ее на форме, перейдите на страницу «Properties» инспектора объектов, найдите свойство SimplePanel и присвойте ему значение true. Щелкните дважды по форме и в теле функции FormCreate поместите следующий код: void fastcall TForm1::FormCreate(TObject *Sender) StatusBar1->SimpleText="Введите коэффициенты уравнения"; Сохраните проект и проверьте работу приложения. 19

20 ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ В ПРОГРАММЕ В разработанной программе мы не учли возможные ошибки ввода данных. Во-первых, пользователь может ввести последовательность символов, которая не является числом. Во-вторых, пользователь может ввести значение коэффициента a = 0, что приведет к попытке деления на ноль в операторах, вычисляющих корни уравнения. Обе ситуации называются исключительными. Примерами других исключительных ситуаций являются переполнение, попытка открыть несуществующий файл и т. п. Для контроля за подобными ситуациями в системе C++ Builder существует так называемый механизм обработки исключительных ситуаций. При возникновении исключительной ситуации программа генерирует так называемое исключение и выполнение дальнейших вычислений в данном блоке прекращается. Исключение это объект специального вида, характеризующий возникшую в программе исключительную ситуацию. Особенностью исключений является то, что они сугубо временные объекты. Как только они обрабатываются каким-либо обработчиком, они разрушаются. Если исключение нигде не перехвачено в программе, то оно обрабатывается стандартным методом Tapplication.HandleException. Данный метод обеспечивает выдачу пользователю краткой информации в окне сообщений и уничтожение экземпляра исключения. Наиболее кардинальный способ борьбы с исключениями обработка их с помощью логических блоков try и catch: try //операторы, которые могут вызвать возникновение исключительной //ситуации catch (Тип &e) // команды, обрабатывающие данную исключительную ситуацию Здесь Тип это тип (класс) исключения. В С++ Builder определен целый ряд классов исключений. Рассмотрим два из них, нужных в нашей программе: класс EConvertError, связанный c ошибкой преобразования строк или объектов (в частности, в функции StrToFloat), класс EZeroDivdide, связанный с попыткой деления на нуль числа с плавающей запятой. 20

21 Измените текст функции Button1Click в соответствии с приведенным ниже текстом. void fastcall TForm1::Button1Click(TObject *Sender) float a,b,c,d,x1,x2; try a=strtofloat(edit1->text); b=strtofloat(edit2->text); c=strtofloat(edit3->text); catch(econverterror &e) ShowMessage("Ошибочные данные!"); return; d=b*b-4*a*c; if (d>=0) try x1=(-b-sqrt(d))/(2*a); x2=(-b+sqrt(d))/(2*a); catch(ezerodivide &e) ShowMessage("Коэффициент а не может быть равен нулю!"); return; Edit4->Text=FloatToStr(x1); 21

22 Edit5->Text=FloatToStr(x2); else ShowMessage("Действительных корней нет"); Сохраните изменения в тексте модуля и проверьте отсутствие ошибок.!!! Если вы запустите проект на выполнение и зададите ошибочные данные, то отладчик перехватит исключительную ситуацию и выполнение программы прервется. Нажмите повторно кнопку «Run», и вы увидите работу определенного вами обработчика исключения. Однако после того как вы сделаете законченный проект, исключительные ситуации будут обрабатываться в соответствии с кодом вашей программы. 22

23 ДОРАБОТКА ИНТЕРФЕЙСА ПРИЛОЖЕНИЯ Доработаем интерфейс нашей программы. Во-первых, сделаем так, чтобы для кнопок панели инструментов появлялись подсказки. Выделите на панели инструментов кнопку «Вычислить» и в инспекторе объектов задайте ее свойству Hint значение «Вычислить», а свойству ShowHint значение true. То же самое проделайте для остальных кнопок. Сохраните изменения в проекте. Теперь сделаем возможным использование «горячих» клавиш при работе с меню. Задать «горячие» клавиши можно двумя способами: 1) указать «горячую» букву в заголовке пункта меню. Для этого щелкните по компоненту-меню и в инспекторе объектов в каждом заголовке пункта меню перед нужной буквой поставьте значок &, например так: &Вычислить «Горячие» буквы окажутся подчеркнутыми; 2) выбрать для данного пункта меню свойство ShortCut и в нем в распахивающемся списке выбрать нужную комбинацию Ctrl+буква. Задайте комбинации «горячих» клавиш для пунктов меню и сохраните изменения в проекте. Последнее, что остается нам сделать, это задать последовательность перехода между элементами управления при нажатии клавиши TAB. Это стандартный прием в системе Windows. Выделите все элементы управления на форме и в контекстном меню выберите пункт «Tab Order» (порядок обхода). С помощью кнопок со стрелками перегруппируйте список элементов в следующем порядке: Edit1, Edit2, Edit3, Button1 и нажмите кнопку «ОК». Сохраните изменения в проекте. После запуска программы станет активным поле ввода Edit1. Нажимая клавишу «TAB», вы сможете последовательно обойти остальные поля ввода.!!! Перемещаться по элементам управления в обратную сторону можно с помощью одновременного нажатия клавиш «SHIFT» и «TAB». 23

24 ПОДГОТОВКА ПРИЛОЖЕНИЯ К РАСПРОСТРАНЕНИЮ Мы завершили разработку проекта и остается подготовить его к распространению. Сделаем так, чтобы окно программы всегда появлялось в центре экрана. Задайте свойству Position главной формы значение poscreencenter. Выберем значок для программы (до сих пор использовался стандартный значок С++ Builder). Изменяется значок следующим образом: введите команду Project / Options; выберите вкладку Application; щелкните по кнопке Load Icon; используя диалоговое окно открытия файла, выберите заранее подготовленный файл значка (он должен иметь расширение.ico). Большой набор готовых значков имеется в стандартной библиотеке C++ Builder в подкаталоге \Images\Icons. Выберите нужную картинку и щелкните по кнопке «Открыть»; в строке Title введите подпись «Квадратное уравнение»; щелкните на кнопке «ОК». Программа, созданная в С++ Builder, использует DLL-версию библиотеки времени выполнения (RTL) и специальные динамические библиотеки пакеты. Чтобы программа могла работать на другом компьютере, необходимо перенести библиотеку на этот компьютер месте с exe-файлом этой программы или включить библиотеку и пакеты в exe-файл. Чтобы сделать последнее необходимо выполнить следующее: 1) введите команду Project / Options и выберите вкладку «Packages», сбросьте флажок «Build with runtime packages»; 2) выберите вкладку «Linker» и сбросьте флажок «Use dynamic RTL». Теперь необходимо заново скомпилировать проект. Выполните команду Project Имя_Вашего_Проекта / Build. Теперь в каталоге проекта появился исполняемый файл вашего проекта (файл с расширением.exe) с подключенными библиотеками. 24

25 РАБОТА С ГРАФИКОЙ Рисовать в программе можно непосредственно на поверхности формы, либо выделяя на форме специальные области для рисования это делается с помощью компонентов Image и PaintBox. Форма и указанные компоненты имеют свойство Canvas (Холст), которое позволяет выводить графику. Например, оператор Form1->Canvas->Rectangle(20, 20, 60, 60); рисует на поверхности формы прямоугольник. В следующей таблице приводятся методы свойства Canvas, позволяющие рисовать основные графические примитивы. Таблица 1 Методы вычерчивания графических примитивов Метод MoveTo(x, y) LineTo(x1, y1) Polyline(points, n) Rectangle(x1, y1, x2, y2) y2) y2) FillRect(x1, y1, x2, Ellipse(x1, y1, x2, Arc(x1, y1, x2, y2, x3, y3, x4, y4) Pie(x1, y1, x2, y2, x3, y3, x4, y4) TextOutA(x, y, текст) Действие Перемещает курсор в позицию с заданными координатами (отсчет координат ведется от левого верхнего угла формы или области рисования) Рисует прямую линию от текущей позиции до точки с координатами (x1, y1) Рисует ломаную линию; points массив точек перегиба линии (см. пример ниже), n количество узлов линии Рисует прямоугольник, x1, y1, x2, y2 коорди-наты левого верхнего и правого нижнего углов прямоугольника соответственно. Рисует закрашенный прямоугольник Рисует эллипс. X1, y1, x2, y2 задают координаты прямоугольника, в который вписывается эллипс 1 2 Рисует дугу. Параметры x1, y1, x2, y2 определяют эллипс, частью которого является дуга, x3, y3, x4, y4 задают начальную и конечную точку дуги Рисует сектор эллипса или круга. Сектор вырезается против часовой стрелки от точки с координатами (x3, y3) до точки (x4, y4) Выводит текст, заданный третьим параметром. Параметры x, y определяют начальную точку, с которой начинается вывод 25

26 Для вывода отдельных точек используется свойство Pixels[x][y] свойства Canvas. Например, следующий оператор выводит на форму точку красного цвета с координатами (50, 50): Form1->Canvas->Pilxels=clRed; Здесь clred именованная константа, соответствующая красному цвету. Для окрашивания точки в произвольный цвет используется функция RGB(red, green, blue), где параметры red, green, blue задают доли красного, зеленого и синего цвета в составе данного цвета и могут принимать значения в интервале (0, 255), например: Form1->Canvas->Pilxels=RGB(0, 163, 78); Вышеописанные методы обеспечивают только вычерчивание графических примитивов. Вид графического элемента определяют свойства Pen (Карандаш) и Brush (Кисть) той поверхности (Canvas), на которой рисуется данный элемент. «Карандаш» и «кисть», являясь свойствами объекта Canvas, в свою очередь представляют собой объекты. Свойства объектов Pen и Brush описаны в следующих далее таблицах. Таблица 2 Свойство Color Width Style Свойства объекта Pen Определяет Цвет линии Толщину линии (в пикселах) Вид линии. pssolid сплошная; psclear линия не отображается; psdash пунктирная с длинными штрихами; psdot пунктирная с короткими штрихами; psdashdot чередование длинных и коротких штрихов Таблица 3 Свойства объекта Brush Свойство Определяет Color Цвет закрашивания замкнутой области Style Стиль заполнения области. bssolid сплошная заливка; bshorizontal горизонтальная штриховка; bsvertical вертикальная штриховка; bsfdiagonal диагональная штриховка с наклоном вперед; bsbdiagonal диагональная штриховка с наклоном назад; bscross в клетку; bsdiag- Cross диагональная клетка Свойство Font «холста» позволяет изменять параметры шрифта. В следующей таблице описываются свойства объекта Font. 26

27 Свойство Name Size Style Color Таблица 4 Cвойства объекта Font Определяет Используемый шрифт. Значение свойства название шрифта, например Arial Размер в пунктах Стиль начертания шрифта. Задается следующими константами: fsbold полужирный; fsitalic курсив; fsunderline подчеркнутый; fsstrikeout перечеркнутый Цвет символов. Задается с помощью именованных констант, например clred, или с помощью функции RGB() Пример 1. Вывод в области рисования PaintBox красной точки и прямой линии черного цвета по нажатии кнопки. Запустите новый проект. Поместите на форме проекта компонент PaintBox (вкладка «Win32») и кнопку Button. Для функции обработки нажатия кнопки напишите следующй код: void fastcall TForm1::Button1Click(TObject *Sender) PaintBox1->Canvas->Pixels=clRed; PaintBox1->Canvas->MoveTo(50,50); PaintBox1->Canvas->LineTo(100,100); Пример 2. Вывод заштрихованной окружности непосредственно на поверхность формы. Используем обработчик события OnPaint (перерисовка) формы. Для функции обработки события OnPaint напишите следующий код: void fastcall TForm1::FormPaint(TObject *Sender) Form1->Canvas->Ellipse(40,40,140,140); Пример 3. Использование объектов Pen и Brush. Поместите на форму еще одну кнопку Button. Для функции обработки щелчка по кнопке напишите следующий код: 27

28 void fastcall TForm1::Button2Click(TObject *Sender) Form1->Canvas->Brush->Color=clRed; Form1->Canvas->Brush->Style=bsCross; Form1->Canvas->Pen->Width=3; Form1->Canvas->Ellipse(40,40,140,140); Пример 4. Работа со шрифтом Используйте обработчик события создания формы OnPaint. Добавьте код вывода текста в функцию обработки события перерисовки формы: void fastcall TForm1::FormPaint(TObject *Sender) Builder"); Form1->Canvas->Ellipse(40,40,140,140); Form1->Canvas->Font->Name="Times New Roman"; Form1->Canvas->Font->Size=20; Form1->Canvas->Font->Color=clBlue; Form1->Canvas->TextOutA(100, 5, "Примеры работы с графикой в C++ Сохраните проект и проверьте его работу. Задание Написать программу, выводящую на форму график функции у(x)=sin(x)e x/5 в заданном пользователем интервале и с заданным шагом по x. Компонент TStringGrid (таблица) Данный компонент позволяет отображать данные на форме в виде таблицы. Находится на странице «Additional». Свойства Cells Данное свойство представляет собой массив строк, содержащий строки текста таблицы. Параметры Acol, Arow указывают соответственно номер колонки и номер строки таблицы. Первая строка и первая колонка имеют номер ноль. Если в ячейку таблицы необходимо записать числовое значение, его следует преобразовать с помощью функций IntToStr() или FloatToStr(). 28

29 Пример float x=2.4; StringGrid1->Cells="Значение аргумента"; StringGrid1->Cells="Значение функции"; StringGrid1->Cells=FloatToStr(x); StringGrid1->Cells=FloatToStr(x*x); Cols Это массив, содержащий строки для каждой колонки таблицы. Количество строк равно значению свойства RowCount. ColCount Определяет число колонок таблицы. По умолчанию равно пяти. RowCount Определяет число строк таблицы. По умолчанию равно пяти. Col Указывает на колонку активной в данный момент ячейки. Row Указывает на строку активной в данный момент ячейки. DefaultColWidth DefaultRowHeight Определяют соответственно ширину всех колонок и высоту всех строк таблицы. Для изменения высоты отдельных строк и ширины отдельных колонок следует использовать свойства RowHeights и ColWidths. ColWidths RowHeights Позволяют изменять соответственно ширину колонки и высоту строки с номером Index. DefaultDrawing Задает, будут ли автоматически рисоваться ячейки таблицы (true будут). EditorMode Определяет, можно ли производить рисование текущей ячейки таблицы. Если в наборе свойств Options (см. таблицу ниже) имеется значение goediting, то таблица автоматически переходит в режим редактирования. То же самое происходит при присвоении свойству EditorMode значения true. В то время как значения Options устанавливаются, как правило, во время разработки приложения, свойство EditorMode можно менять во время выполнения программы. Когда свойство EditorMode=true, то таблица находится в режиме редактирования, если множество Options содержит элемент. В противном случае редактировать ячейки нельзя. 29

30 Если свойство EditorMode=false и множество Options содержит элемент goediting, но не goalwaysshoweditor, то пользователь может переключиться в режим редактирования с помощью клавиши «F2». Options Данное свойство определяет внешний вид и функциональные свойства таблицы. Таблица 5 Некоторые значения свойства Options Значение Установка Действие govertline true Отображаются вертикальные линии между колонками gohorzline true Отображаются горизонтальные линии между строками gorangeselect true Пользователь может выделить блок ячеек. Однако если задан элемент goediting, это невозможно godrawfocus- Selected false Активная ячейка имеет цвет, отличный от остальных. Цвет устанавливается в свойстве Color. Если свойство имеет значение true, то активная ячейка имеет тот же цвет gorowsizing true Размеры отдельных строк могут быть изменены во время выполнения программы gocolsizing true Размеры отдельных колонок могут быть изменены во время выполнения программы goediting true Пользователь может редактировать содержимое ячейки. Невозможно выделить блок GoTabs true Можно перемещаться по ячейкам с помощью клавиш +. gothumbtracking goalwaysshoweditor true true Таблица автоматически переходит в режим редактирования (при условии, что множество Options содержит элемент goediting) Видимая часть таблицы синхронно прокручивается одновременно с перемещением бегунка на линейке прокрутки таблицы 30

31 FixedColor Определяет цвет фиксированных колонок и строк таблицы. FixedCols Определяет число фиксированных колонок таблицы (по умолчанию одна). Фиксированные колонки остаются видимыми, когда пользователь прокручивает остальные колонки. FixedRows Определяет число фиксированных строк таблицы (по умолчанию одна). Компонент TChart (диаграмма) Компонент предназначен для работы с диаграммами сложных типов. Настройка свойств компонента осуществляется в окне редактора «Editing Chart». Редактор вызывается двойным щелчком по компоненту Chart (рис. 3). Рис. 3. Окно редактора диаграммы Свойства Series Представляет массив диаграмм (рядов данных), выводимых в области компонента Chart, где Index задает номер ряда данных. Отсчет индекса ведется от нуля. Для каждой диаграммы, размещенной в области Chart, можно установить следующие параметры: тип; название; оси; 31

32 легенду; источник данных. Тип диаграммы задается на странице Series» редактора свойств диаграмм. Если формирование значений диаграммы осуществляется при выполнении приложения, то для источника данных необходимо выбрать параметр No Data на странице «Series-DataSource» редактора. Для добавления серии (ряда данных) нажмите в окне редактора на кнопку Add и в появившемся окне выберите тип диаграммы (например, Fast Line). Для задания названий серий (они будут использоваться в легенде для различения графиков) Нажмите в этом же окне кнопку «Title» она станет доступна после задания нужного количества серий (рис. 4). Рис. 4. Диалоговое окно редактора диаграммы На вкладке «Axis» задаются названия осей. Опция «Left» соответствует оси Y, опция «Bottom» оси X. Для подписи осей используйте страничку Title на вкладке «Axis». Для задания заголовка диаграммы выберите вкладку «Titles». Методы Для управления значениями, по которым строится диаграмма, часто используются методы Add, Clear и Delete. Add(AValue, ALabel, AColor) Добавляет значение к диаграмме, указанное параметром AValue; параметр ALabel задает название значения (т. е. метку оси Х); параметр AColor задает цвет. AddXY (XValue,YValue, XLabel, AColor) 32

33 Добавляет значение к диаграмме, указанное параметрами XValue, YValue (т. е. координаты точки); остальные параметры имеют тот же смысл, что и для функции Add. Пример. Строится график функции y=x^2 в интервале for(int i=0; i<10; i++) Chart1->Series->AddXY(i, i*i); Delete(ValIndex) Удаляет из диаграммы значения с номером ValIndex. Clear() Удаляет из диаграммы все значения. Пример Chart1->Series->Clear(); Задание Написать программу, рассчитывающую таблицу значений функций y1(x)= sin(x) и y2(x)= cos(x) в интервале значений a x b, х меняется с шагом dx, и строящую графики функций. Границы интервала и шаг изменения dх задает пользователь. 33

34 РАБОТА С ФАЙЛАМИ Среда C++ Builder предлагает три способа работы с файлами: работа с потоками с помощью функций ввода-вывода библиотеки С, работа с потоками в стиле С++ и с помощью методов диалоговых компонентов среды разработки. Решим следующую задачу: создадим программу «Блокнот», позволяющую набрать текст, сохранить его и считать подготовленный текстовый файл. Запустите систему программирования C++ Builder. Разместите на форме многострочное поле ввода Memo (в нем будет набираться текст) и четыре кнопки Button, которым задайте названия: «Очистить», «Записать», «Прочитать», «Выход». Для сохранения и поиска файлов воспользуйтесь компонентами SaveDialog и OpenDialog. Разместите эти компоненты на любом месте на форме, так как они являются невизуальными. Возможный вид формы показан на рис. 5. Рис. 5. Окно программы «Блокнот» С компонентом Memo вы уже работали, но рассмотрим его свойства и методы подробнее. Метод Clear() очищает окно ввода. Доступ к строкам, размещенным в окне, осуществляется через свойство Lines, представляющее массив строк. Свойство Count хранит число строк (количество элементов массива). Отсчет номеров строк начинается с нуля. Метод Add(s) добавляет строку s в список. Метод Delete(n) удаляет строку с номером n. Метод Insert (n, s) вставляет новую строку s между элементами списка в позиции n. 34

35 Метод SaveToFile("путь/имя_файла") позволяет сохранить данные, хранящиеся в поле Memo, в указанный файл. Метод LoadFromFile("путь/имя_файла") позволяет считать данные, хранящиеся в указанном файле, в поле Memo. Создадим функцию обработки щелчка по кнопке «Очистить». Текст функции представлен ниже. void fastcall TForm1::Button1Click(TObject *Sender) Memo1->Clear(); // Создадим также процедуру обработки щелчка по кнопке «Выход». Используем для завершения работы с приложением метод Close. void fastcall TForm1::Button4Click(TObject *Sender) Form1->Close(); // Прежде чем разработать функции обработки оставшихся событий, опишем работу с диалоговыми окнами SaveDialog и OpenDialog. Для вызова окон используется метод Execute(). Свойство FileName хранит имя файла. Свойство Filter позволяет настроить фильтры для поиска файлов. Свойство DefaultExt позволяет определить расширение, которое автоматически будет добавлено к имени файла. Создадим функцию обработки щелчка по кнопке «Сохранить». Текст функции приведен ниже. void fastcall TForm1::Button3Click(TObject *Sender) SaveDialog1->DefaultExt="txt"; if (SaveDialog1->Execute()) Memo1->Lines->SaveToFile(SaveDialog1->FileName); 35

36 // Создадим функцию обработки щелчка по кнопке «Прочитать». Текст функции представлен ниже. void fastcall TForm1::Button2Click(TObject *Sender) OpenDialog1->DefaultExt="txt"; if (OpenDialog1->Execute()) Memo1->Lines->LoadFromFile(OpenDialog1->FileName); // Сохраните проект и проверьте его работу. Если ошибок в проекте нет, сделайте отчуждаемое приложение. 36

37 РАБОТА С БАЗАМИ ДАННЫХ Настройка Borland DataBase Engine (BDE) BDE это процессор баз данных (БД); он определяет технологию доступа к данным. BDE administrator 5.0 BDE administrator программа настройки конфигурации BDE. Программа запускается с помощью главного меню Windows командой Пуск / Программы / Borland C++ Builder / BDE administrator. Основное окно программы содержит две панели. Левая включает в себя блокнот с двумя страницами, на которых представлены следующие параметры настройки: DataBases (базы данных); Configuration (конфигурация). На правой панели находится блокнот со страницей «Definiton» (настройка), появляющийся при выборе параметра в левой панели. Список свойств разделен на две части: Type содержит название параметра; Левая содержит значение параметра. Настройка глобальных псевдонимов Первая страница в левой панели окна BDE administrator предназначена для просмотра, добавления, удаления и модификации псевдонимов и их параметров, обеспечивающих доступ к соответствующим БД более простым способом. Псевдоним в дереве БД может находиться в следующих состояниях: закрыт, открыт, изменен и создан. Для добавления псевдонима используется команда меню Object / New. В появившемся окне в строке «DataBase Driver Name» следует выбрать значение STANDART для создания БД в формате Paradox, Dbase или FoxPro либо значение MSACCESS для создания БД в формате MS ACCESS. Каждый псевдоним имеет набор свойств. Для псевдонимов, созданных на основе драйвера STANDART, они следующие: TYPE название драйвера; DEFAULT DRIVER название драйвера; ENABLED BCD признак перевода значений десятичных полей в двоично-десятичные; PATH путь к папке, где находятся таблицы БД. Закрытый псевдоним можно переименовать или удалить, используя команду меню Object / Rename Object / Delete. 37


Лекция 24 Введение в объектно-ориентированное программирование Объекты и классы Основными понятиями ООП в C++ является объект. Объект это некая программная единица, объединяющая в себе свойства (атрибуты)

MS Access. Формы Лекции по дисциплине «Основы программирования и информационных технологий», прочитанные на кафедре ФМЭГ ФТ-факультета НТУ «ХПИ» 1 Формы Существует три способа ввода информации в Access:

Практическая работа 3 Создание формы Форма это объект базы данных, который можно использовать для ввода, изменения или отображения данных из таблицы или запроса. Формы могут применяться для управления

Работа с таблицами 1. Преобразование текста в таблицу. а) Вставьте знаки разделителей, такие как запятая или знак табуляции, в местах, где текст должен быть разбит по столбцам. Используя знак абзаца, укажите,

Работа с шаблонами типовых документов Руководство пользователя Cognitive Technologies Москва, 2015 2 АННОТАЦИЯ В настоящем документе приводятся сведения об использовании в программном комплексе «Е1 Евфрат»

РЕДАКТОР VISUAL BASIC Гедранович Валентина Васильевна 28 июня 2012 г. Аннотация Глава 18 из УМК: Гедранович, В.В. Основы компьютерных информационных технологий: учеб.-метод. комплекс / В.В. Гедранович,

ЛЕКЦИЯ-1. ВВЕДЕНИЕ. НАЗНАЧЕНИЕ, СОСТАВ И ОСНОВНЫЕ ЭЛЕМЕНТЫ ИНТЕРФЕЙСА ПРИКЛАДНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ ОБРАБОТКИ ДЕЛОВОЙ ИНФОРМАЦИИ Вопросы: 1. Понятие программного обеспечения и его классификация

Тема 8 Стили Стиль это набор параметров форматирования, имеющий имя. Стили применяются: - для профессионального оформления документа; - для быстрого изменения параметров текста; - для придания однородности

Лабораторная работа 12. Тема: Многооконные приложения. Модальные и немодальные окна. Основные вопросы: Применение в проектах нескольких форм. Рассмотрение различных видов окон модальных и немодальных.

Лабораторная работа 7 Тема: Стилевое форматирование документов. Создание оглавления. Использование стилей В процессе создания документа часто приходится иметь дело с заголовками. Как правило, заголовки

Полосы прокрутки 3 ЛАБОРАТОРНАЯ РАБОТА 1 СПРАВОЧНАЯ СИСТЕМА И ЗАПУСК ПРОГРАММ В WINDOWS. Задания: Включите компьютер и загрузите операционную систему Windows. На поверхности Рабочего стола найдите панель

6. ПРОГРАММА PAINT 6.1. Общие сведения Программа Paint является одним из наиболее популярных графических редакторов в среде начинающих пользователей. Она предназначена для просмотра, создания и редактирования

ГБОУ ВПО «Смоленская государственная медицинская академия» Министерства здравоохранения Российской Федерации Факультет «Стоматологический» Кафедра физики, математики и медицинской информатики Обсуждена

OpenOffice.org Impress Impress программа в составе OpenOffice.org для работы со слайд-шоу (презентациями). Вы можете создавать слайды, которые содержат много различных элементов, включая текст, маркированные

ИНСТРУКЦИЯ К HTML РЕДАКТОРУ CKEDITOR Описание редактора CKeditor Форматирование текста 1. Сервисы редактора CKeditor 2. Стили шрифта 3. Структурирование текста 4. Выравнивание текста 5. Вставка ссылок,

Глава 3 Пакет программ Microsoft Office 2013 В этой главе мы рассмотрим работу некоторых приложений, входящих в состав Microsoft Office 2013. Объем данной книги не позволяет глубоко изучить работу с этими

Оглавление. 1 ТЕКСТОВЫЙ РЕДАКТОР WORD...2 ПАНЕЛИ ИНСТРУМЕНТОВ...2 СПРАВОЧНАЯ СИСТЕМА...2 ОСНОВЫ РАБОТЫ С ТЕКСТОМ...2 ВСТАВКА ТЕКСТА...2 УДАЛЕНИЕ ТЕКСТА...2 ВЫДЕЛЕНИЕ ТЕКСТА...2 ЗАМЕНА ВЫДЕЛЕННОГО ТЕКСТА

РАБОТА С СИСТЕМОЙ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ MICROSOFT ACCESS 1 ОСНОВНЫЕ ТЕРМИНЫ Запрос - Запросы являются мощным средством обработки данных, хранимых в таблицах Access. С помощью запросов можно просматривать,

Министерство Путей Сообщения Российской Федерации Московский государственный университет путей сообщения (МИИТ) Кафедра «Энергоснабжение электрических железных дорог» Утверждено редакционно-издательским

ОСНОВЫ РАБОТЫ В MICROSOFT ACCESS. ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ. СОЗДАНИЕ БАЗЫ ДАННЫХ. СОЗДАНИЕ ФОРМ, ОТЧЕТОВ, ЗАПРОСОВ 1. Проектирование баз данных 2. Создание базы данных 3. Создание форм, отчетов, запросов

Основы работы в программе MS Word 2007 Описание окна программы После запуска программы MS Word на экране открывается ее окно. В заголовке окна написано имя открытого файла или Документ1, Документ2, если

Как открыть программу Microsoft Word 2010 3. Основы работы в MicrosoftWord 2010 MicrosoftWord это многофункциональная программа обработки (редактор) текстов настольная издательская система. В Word е мы

2 10 Создание графических приложений в среде Scilab Scilab позволяет создавать не только обычные программы для автоматизации расчетов, но и визуальные приложения, которые будут запускаться в среде Scilab.

Тамбовское областное государственное бюджетное образовательное учреждение среднего профессионального образования «Приборостроительный колледж» Интерфейс текстового процессора Microsoft Word 2007 Понятие

Практическая работа 4 «Справочник», Стр.-1, Всего - 6 Практическая работа 4, СПРАВОЧНИК Постановка задачи Создать программу, выполняющую следующие действия. После запуска программы пользователь выбирает

ОБЛАСТНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ СРЕДНЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «СМОЛЕНСКИЙ АВТОТРАНСПОРТНЫЙ КОЛЛЕДЖ имени Е.Г. Трубицына» МЕТОДИЧЕСКИЕ УКАЗАНИЯ по подготовке к выполнению

ТЕСТ: "СУБД ACCESS 2007 - КОНТРОЛЬНЫЙ ТЕСТ". Задание #1 Сколько полей выбрано для включения в формируемый ОТЧЕТ Выберите один из 5 вариантов ответа: 1) 1 2) 2 3) 3 4) 4 5) 5 Задание #2 Приведут ли указанные

Практическое занятие 1 Создание пользовательских форм VBA При работе в Excel, как и в большинстве, других приложениях, приходиться сталкиваться с такими элементами интерфейса, как диалоговые окна. Диалоговые

Знакомство с Open Office OO сложная офисная система, предназначенная для набора, редактирования и форматирования текстовых документов любой сложности. Помимо текстовых документов, Open Office позволяет

Муниципальное образовательное учреждение средняя общеобразовательная школа 7 г. Коломны Московской области Разработка урока изучения среды ООП Delphi по теме: «Общие свойства некоторых компонентов»

Знакомство с Micrsft Excel 1. Структура таблицы 1. Электронная таблица состоит из ячеек, находящихся на пересечении строк и столбцов. Строки нумеруются числами, столбцы - латинскими буквами. Каждая ячейка

ЛЕКЦИЯ 7. ПРОГРАММА TOTAL COMMANDER Цель работы: Изучение принципов работы файлового менеджера Total Commander. Файловый менеджер Total Commander предоставляет еще один способ работы с файлами и папками

Работа 10 Таблицы и диаграммы в Word. Вычисления в таблицах Цель работы: научиться вставлять таблицы и диаграммы в документ, выполнять вычисления в таблицах Содержание работы: 1 Ввод и форматирование таблиц

Лабораторная работа 2. Основы работы с MathCAD MathCAD, как и большинство других программ работает с документами. С точки зрения пользователя, документ - это чистый лист бумаги, на котором можно размещать

Лабораторная работа 1. Тема. Основы объектно-ориентированного программирования. Система визуального программирования Borland Delphi. Создание интерфейса программы. Настройка свойств формы (окна). Основные

Менеджер библиотеки стандартных компонентов CSoft Development, 2009. Все права защищены Содержание Менеджер библиотеки стандартных компонентов...2 Замечание по безопасности...4 Запуск Менеджера библиотеки

Надписи к пространственным объектам в ArcMap Надписи - это любой текст, помогающий идентифицировать пространственные объекты на карте и лучше понимать содержание карты. В ArcMap можно надписывать пространственные

ОАО «Бауманн» УТВЕРЖДЕН RU.74533456.00009-02 34 01-ЛУ Интегрированный комплекс безопасности «КОДОС» Программа «Мнемосхема» Руководство оператора RU.74533456.00009-02 34 01 2015 СОДЕРЖАНИЕ 1 ОБЩИЕ ПОЛОЖЕНИЯ...

Назначение программы Автоматизация всех видов действий с текстами. Функции создание, редактирование, форматирование, сохранение, обработка и вывод на печать. Word 2007 профессиональный текстовый редактор,

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ 5 ТЕМА: Комплексное использование возможностей MS Word для создания больших документов ЦЕЛЬ РАБОТЫ: Научиться комплексно использовать возможности MS Word для создания больших документов

Лабораторная работа 8 «Технология работы в программе Проводник» Цель работы: изучение приемов работы с программой Проводник 1. Краткие теоретические сведения В составе операционной системы Windows XP имеется

Глава 8 Создание и использование форм Как уже отмечалось в главах 1 и 2 этой книги, такие объекты базы данных, как формы, предназначены в первую очередь для работы одновременно только с одной записью.

ЛАБОРАТОРНАЯ РАБОТА 1. 1. Вход в среду VB Для входа в среду VB используется вкладка Разработчик окна Excel, которая находится в одном ряду с вкладками Главная, Вставка и др. При ее отсутствии следует выполнить

ВЕРТИКАЛЬ-Отчеты Система формирования технологической документации Руководство пользователя Информация, содержащаяся в данном документе, может быть изменена без предварительного уведомления. Никакая часть

Работа с программой ABBYY FineReader Банк 7 Руководство пользователя ABBYY 2013 год Обработка документов в программе ABBYY FineReader Банк состоит из четырех этапов: Загрузка Распознавание Проверка Выгрузка

ПРОГРАММА «МЕНЕДЖЕР МОДУЛЕЙ ПАМЯТИ» V 1.0.0 РУКОВОДСТВО ПО ЭКСПЛУАТАЦИИ СОДЕРЖАНИЕ 1. Описание программы 3 1.1. Назначение программы 3 1.2. Системные требования 3 1.3. Установка программы 3 2. Пользовательский

Удалено: 1С-Битрикс: Управление сайтом 6.x Руководство по созданию и размещению веб-форм на сайте Содержание Введение...3 Создание веб-формы в упрощенном режиме...3 Добавление веб-формы...4 Создание вопросов

164 1С:Предприятие 8.2. Практическое пособие разработчика Или можно выбрать их из выпадающего списка, доступного, когда вы находитесь в модуле формы (рис. 5.19). Рис. 5.19. Список событий формы В этом

Модуль 2. Компьютер как совокупность аппаратных и программных средств ПРИЛОЖЕНИЕ 2 Загрузка операционной системы После включения компьютера должно пройти некоторое время, прежде чем он будет готов к работе.

ОГЛАВЛЕНИЕ Глава 13: РАЗМЕЩЕНИЕ НЕСКОЛЬКИХ ГРАФИКОВ Оглавление ОБЗОР...2770 МАСТЕР АВТОМАТИЧЕСКОГО РАЗМЕЩЕНИЯ НЕСКОЛЬКИХ ГРАФИКОВ...2771 Использование окна Мастер автоматического размещения нескольких

Практическое занятие. «Работа со стилями и шаблонами. Создание автоматического оглавления и списка иллюстраций» Форматирование стилей и создание шаблонов. 1) Запустите MS Word. 2) Установите следующие

Практическая работа 6 Подготовка документов с использованием текстовых процессоров типа Microsoft Word Цель работы: Знакомство с особенностями электронных документов и средствами их редактирования в среде

ПРОГРАММНАЯ ОБОЛОЧКА FAR MANAGER План: Программные оболочки. Far Manager Запуск FM и элементы интерфейса Панели FM Функциональные клавиши Меню FM Выбор представления панелей с помощью меню Сортировка объектов

Этапы разработки базы данных С базами данных, как правило, работают не профессионалы, поэтому можно сформулировать следующие требования к БД. Разработчики, при создании БД, должны ориентироваться на эти

Краткие указания по работе с программой Microsoft PowerPoint Действие Алгоритм С чего начать? Запуск программы 1. На панели задач щелкните кнопку Пуск. 2. В открывшемся меню, щелкните команду Программы.

Лабораторная работа 8 «Настройка параметров периферийных устройств компьютера» Цель работы: получение сведений по настройке пользовательского интерфейса периферийных устройств средствами операционной системы

Уфимский Государственный Авиационный Технический Университет

Кафедра Вычислительной Техники

и Защиты Информации

Пояснительная записка

к курсовой работе

по дисциплине: «Методы программирования и прикладные алгоритмы»

«Разработка прикладного алгоритма и его реализация на языке С++»

Выполнил студент:

Загураев А.Н.

Факультет: ИРТ

Группа: ЗИ-225

Принял доцент, к.т.н.:

Строкина Ю.Г.

1. Постановка задачи……………………………………………….……3

2. Среда программирования Borland C++ Builder…………………..4

3. Математическое обеспечение…………………………….…………10

4. Разработка алгоритма программы в виде блок-схемы…….……11

5. Описание работы программы………….…………………………….12

6. Выводы………………………………….……………………………….15

7. Список используемой литературы…….…………………………….16

Приложение ………………….……………………………..……………..17

Постановка задачи

Задание: Разработать программу для итерационного поиска размеров равномерных выплат по кредиту. Выплаты и начисления процентов на оставшуюся сумму производятся ежемесячно. Исходные данные: размер кредита, срок выплат (от 1 до 5 лет), процентная ставка. В диалоговом окне изобразить график изменения остатка от суммы кредита.

Среда программирования Borland C ++ Builder

Введение

Borland C++ Builder является средой быстрой разработки приложений. В основе систем быстрой разработки (RAD-систем, Rapid Application Development - среда быстрой paзpa6oтки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть работы по генерации кода программы, остав­ляя программисту работу по конструированию диалоговых окон и написа­нию функций обработки событий. Производительность программиста при использовании RAD систем существенно увеличивается.

Система объектно-ориентированного программирования Borland C++ Builder, предназначена для операционных систем Windows. Интегрированная среда C++ Builder обеспечивает скорость визуальной разработки, продуктивность повторно используемых компонентов в сочетании с мощью языковых средств C++, усовершенствованными инструментами и разномасштабными средствами доступа к базам данных.

С++ Builder может быть использован везде, где требуется дополнить существующие приложения расширенным стандартом языка C++, повысить быстродействие и придать пользовательскому интерфейсу качества профессионального уровня.

Скорость визуальной разработки

Профессиональные средства языка C++ интегрированы в визуальную среду разработки. C++Builder предоставляет быстродействующий компилятор с языка Borland C++, эффективный инкрементальный загрузчик и гибкие средства отладки как на уровне исходных инструкций, так и на уровне ассемблерных команд - в расчете удовлетворить высокие требования программистов-профессионалов.

Конструирование по способу "drag-and-drop " позволяет создавать приложение простым перетаскиванием захваченных мышью визуальных компонентов из Палитры на форму приложения. Инспектор объектов предоставляет возможность оперировать со свойствами и событиями компонентов, автоматически создавая заготовки функций обработки событий, которые наполняются кодом и редактируются в процессе разработки.

Свойства, методы и события - это именно те элементы языка, которые обеспечивают быструю разработку приложений в рамках объектно-ориентированного программирования. «Свойства» позволяют легко устанавливать разнообразные характеристики объектов. «Методы» производят определенные, иногда довольно сложные, операции над объектом. «События» связывают воздействия пользователя на объекты с кодами реакции на эти воздействия. События могут возникать при таких специфических изменениях состояния объектов как обновление данных в интерфейсных элементах доступа к базам данных. Работая совместно, свойства, методы и события образуют среду RAD (Rapid Application Development) быстрого и интуитивного программирования надежных приложений для Windows.

Визуальное наследование форм воплощает важнейший аспект объектно-ориентированного программирования в удобном для пользования инструменте визуального проектирования. Характеристики новой формы приложения могут быть унаследованы от любой другой существующей формы, что обеспечивает централизованную репродукцию изменений пользовательского интерфейса, облегчает контроль за кодом и уменьшает временные затраты на введение новых качественных атрибутов.

Мастер инсталляции руководит созданием унифицированных дистрибутивных пакетов для разработанных приложений.

Исходные тексты Библиотеки Визуальных Компонентов облегчают разработку новых компонентов на базе готовых примеров.

Отрытые инструменты API могут быть непосредственно интегрированы в визуальную среду системы. Вы сможете подключить привычный текстовый редактор или создать собственного мастера для автоматизации выполнения повторяющихся процедур.

Расширенная математическая библиотека содержит дополнительные унифицированные функции статистических и финансовых вычислений.

Интерфейс Borland C ++ Builder .

В состав интерфейса С++ Builder входят:

Палитра компонент содержит более 100 повторно используемых компонентов,предлагаемых для построения приложений.

Редактор форм предназначен для создания интерфейса программы с пользователем.

Редактор кода предназначен для написания текста программы, в частности, функций обработки событий.

Инспектор объектов позволяет визуально устанавливать свойства объектов без необходимости рутинного программирования и содержит события, которые можно связывать с кодами реакции объектов на их возникновение.

Хранилище объектов содержит такие объекты, как формы и модули данных, которые разделяются многими приложениями с целью уменьшения временных затрат при разработке.

C++Builder реализует визуальную методику построения приложений посредством выбора из Палитры компонентов нужных управляющих элементов (Рис.1). С каждым компонентом (например, кнопкой) связаны свойства, которые меняют ее вид и поведение. Любой компонент может вызывать серию событий, которые определяют его реакцию на различные воздействия.

Проблемы совместимости

C++ Builder предоставляет свою мощность и широкие возможности языка C++ всему семейству систем объектно-ориентированного программирования. C++ Builder может быть использован везде, где требуется дополнить существующие приложения расширенным промышленным стандартом языка C++, повысить быстродействие и придать пользовательскому интерфейсу профессиональный облик.

C++ Builder и Borland C++

Между программными продуктами C++ Builder и Borland C++ существует полная и взаимная функциональная совместимость. C++ Builder добавляет процессу программирования новое качество - быструю визуальную разработку приложений на языке C++. Если вы привыкли работать в системах программирования Borland C++ (версий 3.1. 4.5 и 5.0), то ни переход к новой системе, ни возврат к старой не окажутся слишком затруднительными. В вашем распоряжении остаются удобный администратор проектных файлов, компилятор и инкрементальный загрузчик.

Поначалу C++ Builder разочарует многих разработчиков тем, что вместо привычных библиотек OWL и MFC он использует неведомую дотоле библиотеку VCL. Каждая библиотека представляет собой специфическую модель объектно-ориентированного программирования под Windows. Каждая библиотека решает проблемы ООП по-своему, и нельзя сказать, что какая-то одна справляется с задачей лучше или хуже других.Borland C++ версий 5.0 и выше поддерживает внедрение в ранее разработанные OWL или MFC программы типовых форм, спроектированных в среде C++Builder на базе VCL. Разработчик идет на такого рода переделки из-за простой причины: C++Builder позволяет включить в форму все диалоги с пользователем чрезвычайно быстро, придавая приложению для Windows законченный профессиональный облик, устраняя из программы всю шелуху вспомогательного кода и оставляя только содержательную часть, воплощающую основную идею алгоритма. Таким образом, совместимость обеспечивается на уровне форм. Не удивительно, что совместная работа с двумя библиотеками объектных классов заметно увеличивает размер ЕХЕ файла.