Процедура testRealKey уже использовалась в предыдущих работах и должна содержаться в дополнительном модуле. Подключите дополнительный модуль и организуйте вызов этой процедуры через процедуру обработки события onKeyPreess для всех полей, куда вводятся исходные данные вещественного типа. В нашем случае это компоненты EditA, EditХ, EditEps1 и EditEps2. Код процедуры обработки события onKeyPreess представлен на рисунке 5.9.
Рисунок 5.9 - Процедура обработки события onKeyPress
5.2.2.2 Процедура вычисления кубического корня
Следует заметить, что для вычисления корня кубического правильнее было бы написать функцию, или процедуру, которая возвращала бы значение корня. У Вас будет возможность написать их при защите работы. Мы же напишем процедуру, которая будет вызываться по событию onClick для кнопки «Найти корень кубический».
Рассматриваемая процедура, представленная на рисунке 5.10, ничего не возвращает, но она вычисляет корень и выводит его в текстовое поле для результата. Кроме того, для проверки, она выводит значение результата, возведенное в куб, что позволяет контролировать правильность вычисления корня.
Процедура также обеспечивает вывод последовательных приближений в компонент MemoSteps.
Первые инструкции процедуры обеспечивают ввод значения числа, из которого вычисляется корень, и значение точности вычислений.
Затем реализуется алгоритм, рассмотренный в пункте 5.1.5.1.
Внутри цикла, после вычисления очередного приближения, дополнительно включена инструкция для вывода последовательных приближений.
Следует заметить, что для вычисления синуса, так же как и в предыдущем случае, правильнее было бы написать функцию, или процедуру, которая возвращала бы значение корня. Мы же напишем процедуру, которая будет вызываться по событию onClick для кнопки «Синус».
Рассматриваемая процедура, представленная на рисунке 5.11, ничего не возвращает, но она вычисляет синус и выводит его в текстовое поле для результата. Кроме того, она, для проверки, выводит значение синуса, найденное с помощью стандартной процедуры.
Перед вычислением синуса в процедуре добавлен цикл уменьшения значения х. Это сделано для того, чтобы избежать переполнения или потери значащих цифр при больших значениях х. В этом цикле переменная х уменьшается каждый раз на величину периода синуса, который равен 2π. Цикл работает до тех пор, пока абсолютная величина х не станет меньше, чем 2π.
Процедура также обеспечивает вывод последовательных значений членов и суммы ряда в компонент MemoSteps.
Рисунок 5.11 - Процедура вычисления синуса
5.3 Задания для расчетно-графической работы № 2
Расчетно-графическая работа № 2 выполняется в рамках проекта для данной лабораторной работы. Варианты заданий приведены в таблице 5.1 и таблице 5.2. Номер варианта выбирается в соответствии с последней цифрой номера зачетной книжки.
Задания, приведенные в таблице 5.1 подобны задаче вычисления корня. Задания из таблицы 5.1 подобны задаче вычисления синуса.
Выполнение РГР предусматривает разработку и изображение в отчете схем алгоритмов решения задач и написание процедур.
5.4 Содержание отчета
– Наименование работы.
– Цель работы.
– Краткое описание инструкций while…do и repeat…until.
– Описание новых компонент, используемых в создаваемом проекте.
– Условия индивидуальных заданий и схемы алгоритмов их решения.
– Тексты процедур для индивидуальных заданий с пояснениями в виде комментариев.
– Результаты тестирования проекта.
– Выводы.
5.5 Контрольные вопросы
– Описание инструкции while…do. Примеры.
– Описание инструкции repeat…until. Примеры.
– Нарисовать схему алгоритма вычисления корня.
– Нарисовать схему алгоритма вычисления синуса.
– Нарисовать схему алгоритма решения задачи из РГР.
– Компонент Check Box, его свойства и пример использования.
– Объяснение текстов подпрограмм модуля и связей их с событиями и другими подпрограммами.
– Написать функцию, возвращающую значение корня кубического, в соответствии с рассмотренным алгоритмом.
– Написать функцию, возвращающую значение синуса, в соответствии с рассмотренным алгоритмом.
– Написать функцию для одного из вариантов РГР.
Рекомендованая литература
3. Культин Н. Delphi 6. Программирование на Object Pascal. – СПб.:БХВ-Петербург,2002.