- •Программирование
- •«Программирование»
- •Чернигов чгту 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Сохранение файла под другим именем
- •Содержание отчета
- •Рекомендованая литература
2.3.1.1Компоненты PageControl и TabSheet
Компонент PageControl иногда называют блокнотом в стиле Windows. Компонент позволяет размещать в одном окне несколько страниц и обеспечивает возможность переключения с одной страницы на другую. Примером использования такого компонента может служить окно Object Inspector, в котором есть две страницы – Properties и Events.
Компонент PageControl обычно располагается на закладке Win32. Найдите его и разместите на форме. После этого установите курсор в поле компонента и нажмите правую кнопку мыши. В появившемся меню выберите функцию New Page. Проделайте это два раза. В результате должно появиться две страницы блокнота. Страницы блокнота - это тоже компоненты, которые являются объектами класса TTabSheet. У объектов этого класса есть свойство Caption. Используя это свойство, измените заголовки станиц в соответствии со своим вариантом. Мы же озаглавим страницы так: «Корень», «Синус».
2.3.1.2Компонент CheckBox
Этот компонент используется в проекте для того, чтобы управлять выводом последовательных приближений (промежуточных значений результата) в поле Memo.
Основное свойство этого компонента Checked может принимать значения true или false (включено или выключено). Анализируя это свойство в программе, мы можем управлять ходом вычислений.
В нашем проекте компоненту CheckBox присвоим имя CheckSteps.
2.3.1.3Дополнительные требования к интерфейсу
В проекте предполагается ввод большого количества числовых исходных данных. Поэтому в проекте целесообразно обеспечить контроль ввода данных в текстовые поля, используя событие onKeyPress и процедуру TestRealKey, созданную в четвертой лабораторной работе. Эта процедура должна была быть создана во время лабораторных работ и храниться в модуле UnitDop. В этом же модуле должна быть и функция для расчета по формуле, соответствующей вашему варианту. Если вы не сохранили модуль, создайте процедуру и функцию заново и включите ее в модуль. Подключите модуль UnitDop к проекту.
Напишите процедуру инициализации всех закладок формы, которая обеспечит заполнение полей ввода данными, которые соответствуют контрольным примерам. Это ускорит отладку.
2.3.2Создание закладки для вычисления корня
2.3.2.1Интерфейс страницы вычисления корня
Страницу для вычисления корня оформим, используя известные компоненты TLabel, TEdit, TButton, OleContainer и TMemo. Вид этой страницы блокнота был представлен выше, на рисунке 2.5.
Компоненты, имена которых понадобятся при программировании, назовем так:
edtA – для ввода числа, из которого извлекается корень,
edtEps1 – для ввода точности вычислений,
edtResult1 – для вывода полученного результата вычислений,
edtControl1 – для вывода контрольного значения, с помощью которого можно проверить правильность полученного результата. В данном случае это будет тройное произведение результата, то есть результат в кубе.
2.3.2.2Процедура вычисления корня
Следует заметить, что для вычисления корня кубического правильнее было бы написать функцию, или процедуру, которая возвращала бы значение корня. У Вас будет возможность написать их при защите работы. Мы же напишем процедуру, которая будет вызываться по событию onClick для кнопки «Найти корень кубический».
Рассматриваемая процедура, представленная на рисунке 2.6.
Рисунок 2.6 - Процедура вычисления кубического корня
Эта процедура, ничего не возвращает, но она вычисляет корень и выводит его в текстовое поле для результата. Кроме того, для проверки, она выводит значение результата, возведенное в куб, что позволяет контролировать правильность вычисления корня.
Процедура также обеспечивает вывод последовательных приближений в компонент MemoSteps.
Первые инструкции процедуры обеспечивают ввод значения числа, из которого вычисляется корень, и значение точности вычислений.
Затем реализуется алгоритм, рассмотренный в пункте 2.2.1.
Внутри цикла, после вычисления очередного приближения, дополнительно включена инструкция для вывода последовательных приближений.