- •Программирование
- •«Программирование»
- •Чернигов чгту 2011
- •Ответственный за выпуск: Бивойно п.Г., доцент кафедры информационных и компьютерных систем, кандидат технических наук,
- •Введение
- •1Расчетно-графическая работа № 1. Функции и процедуры для расчетов по формулам
- •1.1 Задания к расчетно-графической работе
- •1.2 Пример создания проекта
- •1.2.1Создание интерфейса
- •1.2.1.1 Компонент ole-контейнер
- •1.2.1.2Компонент Group Box
- •1.2.1.3 Компонент Memo
- •1.2.1.4 Завершение работы над интерфейсом
- •1.2.2Создание процедур и функций
- •1.2.2.1Процедура очистки протокола
- •1.2.2.2Процедура инициализации формы
- •1.2.2.3Процедура считывания коэффициентов уравнения
- •1.2.2.4Функция для расчета по формуле
- •1.2.2.5Процедура вызова выполнения расчета по формуле
- •1.2.3Использование дополнительного модуля
- •1.2.4Форматирование результатов расчетов
- •1.2.5Контольный пример
- •1.3 Содержание отчета
- •Рекомендованая литература
- •2Расчетно-графическая работа № 2. Программирование циклов
- •2.1 Задания к расчетно-графической работе
- •2.2 Рекомендации по составлению алгоритмов решаемых задач
- •2.2.1Итерационные алгоритмы
- •2.2.2Алгоритмы вычисления сумм бесконечных рядов
- •2.2.3Алгоритмы обработки последовательностей целых чисел
- •2.2.4Алгоритмы табулирования значений функций
- •2.3 Пример создания проекта
- •2.3.1Компоненты для создания интерфейса проекта
- •2.3.1.1Компоненты PageControl и TabSheet
- •2.3.1.2Компонент CheckBox
- •2.3.1.3Дополнительные требования к интерфейсу
- •2.3.2Создание закладки для вычисления корня
- •2.3.2.1Интерфейс страницы вычисления корня
- •2.3.2.2Процедура вычисления корня
- •2.3.3Создание закладки для вычисления синуса
- •2.3.3.1Интерфейс страницы вычисления синуса
- •2.3.3.2Процедура вычисления синуса
- •2.3.4Создание закладки «Табулирование функции»
- •2.3.4.1 Интерфейс странички «Табулирование функции»
- •2.3.4.2Создание процедуры табулирования функции
- •2.3.5Создание закладки «Обработка последовательности целых чисел»
- •2.3.5.1Интерфейс странички «Обработка последовательности целых чисел»
- •2.3.5.2Создание процедуры обработки последовательности целых чисел
- •Рекомендованая литература
- •3Расчетно-графическая работа № 3. Обработка массивов
- •3.1 Задания для работы с одномерным массивом
- •3.2 Задания на сортировку одномерных массивов
- •3.3 Задания на обработку двумерных массивов
- •3.4 Краткая характеристика вспомогательных модулей
- •3.4.1Интерфейс модуля для работы с одномерными массивами
- •3.4.2Интерфейс модуля для работы с двумерными массивами
- •3.4.3Рекомендации по перестановкам элементов матрицы
- •Перечень основных процедур и функций для работы с типизированными файлами
- •Пример Создание проекта «Результаты аттестации»
- •4.1.1Требования к проекту
- •4.1.2Интерфейс пользователя для проекта
- •4.1.3Определение типов данных
- •4.1.4Настройка интерфейса пользователя
- •4.1.5Вспомогательные процедуры для работы с файлом Процедура выбора имени файла
- •4.1.5.1Процедура открытия файла
- •4.1.5.2Процедура вывода файла в StringGrid
- •4.1.6Процедуры работы со StringGrid1
- •4.1.7Процедуры реализации пунктов меню fileMenu
- •4.1.7.1Добавление данных из StringGrid1 в файл
- •4.1.7.2Поиск записи по фамилии
- •4.1.7.3Удаление записи по фамилии
- •4.1.7.4Сохранение файла под другим именем
- •Содержание отчета
- •Рекомендованая литература
1.2.1.3 Компонент Memo
Компонент Memo можно использовать для работы с многострочным текстом. В нашем проекте в поле этого компонента будут регистрироваться результаты вычислений.
Компонент можно найти на закладке Standard палитры компонент.
Расположите компонент Memo на форме или внутри группы «Протокол выполненных расчетов», и присвойте ему имя memProtocol.
Присвойте свойству Scroll Bars значение ssVertical. В результате в поле должна появиться полоса вертикальной прокрутки.
Свойству Read Only присвойте значение True.
1.2.1.4 Завершение работы над интерфейсом
В завершение, расположите на форме две кнопки с надписями «Выполнить расчет» и «Очистить протокол». Присвойте этим кнопкам имена btnCalculate, btnClearProtocol.
На этом этап разработки интерфейса можно закончить. Предполагаемый вид конструктора формы, полученный в результате разработки примера представлен на рисунке 1.2.
Рисунок 1.2 – Вид конструктора формы для создаваемого приложения
1.2.2Создание процедур и функций
1.2.2.1Процедура очистки протокола
Для очистки поля Memo можно использовать событие onClick для кнопки «Очистить протокол». Процедура обработки этого события представлена на рисунке 1.3.
Рисунок 1.3 - Процедура очистки протокола
В единственной инструкции этой процедуры вызывается процедура Clear (очистить) объекта memProtocol .
1.2.2.2Процедура инициализации формы
Инициализация приложения позволяет существенно ускорить отладку приложения, так как освобождает программиста от необходимости вводить исходные данные при тестировании программы. Процедура инициализации должна очищать протокол, а в поля ввода заносить числа, что позволяет сразу после запуска приложения нажимать кнопку «Выполнить расчет».
Для решения этой проблемы, прежде всего, создадим процедуру setKoef(), которая обеспечит установку начальных значений в поля ввода для переменных «а», «x» и «n», входящих в формулу. Параметрами, передаваемыми в процедуру, будут числовые значения этих переменных. В процедуре числа будут преобразовываться в строки, и заноситься в компоненты TEdit. Такое преобразование целесообразно, так как в этом случае десятичный разделитель для дробных чисел будет установлен правильно при любой настройке системы.
Так как в этой процедуре мы будем обращаться к компонентам формы edtA, edtB, edtC, а процедура не принадлежит классу формы, то в ней перед именами компонент обязательно следует указывать имя формы, разделяя эти имена точкой.
Другой способ решения этой проблемы состоит в использовании конструкции with … do, с помощью которой имя формы выносится как бы за операторные скобки begin … end. Именно эта конструкция используется в процедуре setKoef(), показанной на рисунке 1.4.
Рисунок 1.4 – Процедура для инициализации полей ввода значений переменных, входящих в формулу
Теперь можно перейти к созданию процедуры инициализации формы. Эту процедуру следует связать с событием onCreate компонента frmFormula
В этой процедуре, представленной на рисунке 1.5, вначале имитируется нажатие кнопки «Очистить протокол», что приводит к вызову соответствующей процедуры.
Вторая строка тела процедуры вызывает процедуру setKoef(), в которую передаются значения переменных. Эти значения появятся в полях edtA, edtB, edtC.
Рисунок 1.5 – Процедура инициализации формы