- •Программирование
- •«Программирование»
- •Чернигов чгту 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.2.3Процедура считывания коэффициентов уравнения
Для расчета по формуле необходимо прочитать значения переменных из компонентов TEdit и преобразовать их в вещественные числа.
Возложим решение этой проблемы на специальную процедуру. Назовем процедуру getKoef. Параметрами процедуры будут три переменных вещественного типа, которые соответствуют переменным формулы. Так как эта процедура должна возвращать значения вышеуказанных параметров, то все они должны передаваться по наименованию, то есть, описаны в заголовке процедуры со словом var. Текст процедуры приведен ниже.
Рисунок 1.6 – Процедура считывания значений коэффициентов уравнения
1.2.2.4Функция для расчета по формуле
В задаче расчета по формуле можно выделить три этапа:
ввод исходных данных;
собственно расчет по формуле;
вывод результатов.
Привязывать все три этапа к одной форме не совсем правильно. Можно даже сказать, что это совсем неправильно.
Дело в том, что расчет по формуле – это одна задача, а ввод исходных данных – совсем другая. Данные могут вводиться не только с формы, но и из файла, из массива или из какого-то другого источника данных. При этом расчет по формуле остается без изменений.
Кроме того, расчет по этой формуле может понадобиться и в других приложениях.
Поэтому, для расчетов по формуле мы напишем функцию, которая не будет иметь отношения к форме.
Исходными данными для расчета по формуле являются вещественные числа a, x, n. Результатом – тоже вещественное число.
Эту функцию для расчета по формуле поместим в отдельном модуле.
Добавьте новый модуль в проект, воспользовавшись функцией главного меню File→New→Unit.
В интерфейсной части модуля объявите функцию, написав ее заголовок, так как показано на рисунке 1.7.
Рисунок 1.7 – Функция расчета по формуле в дополнительном модуле
В разделе реализации модуля вставьте ее описание (рисунок 1.7).
Для упрощения написания выражения, расчет по формуле следует выполнять поэтапно. В рассматриваемом примере вначале вычислим значения числителя и знаменателя формулы, а затем найдем окончательный результат путем деления числителя на знаменатель. Числитель будет представлять переменная с именем ch, а знаменатель – переменная zn. Кроме того, перед вычислением знаменателя найдем значение подкоренного выражения, которое назовем q. Очевидно, что все эти переменные будут вещественного типа.
В результате реализации кода для функции модуль приобретет вид, представленный на рисунке 1.7.
Сохраните модуль в той же папке, что и модуль формы проекта (хотя это и не обязательно), присвоив ему имя UnitDop.
Откомпилируйте модуль, вызвав функцию главного меню Project→CompilePtoject.
Посмотрите содержимое папки, где вы сохранили модуль. Там должен появиться файл UnitDop.dcu, который содержит откомпилированный модуль. Если это так, то модуль готов к употреблению.
1.2.2.5Процедура вызова выполнения расчета по формуле
Эта процедура должна быть связана с событием onClick кнопки «Выполнить расчет».
Процедура представлена на рисунке 1.8.
Начинается процедура с объявления переменных. Прежде всего, нужно присвоить имена исходным данным, результату и определить их типы. В нашей формуле все переменные имеют имена, удовлетворяющие требованиям языка, поэтому имена оставляем без изменения.
По условию, все переменные должна быть вещественного типа, поэтому тип результат будет тоже вещественным.
Помимо чисел, нам понадобится переменная, которая будет содержать строку с результатами расчета для протокола. Назовем ее str, а тип у нее должен быть String.
Рисунок 1.8 – Главная процедура с вызовом вспомогательной процедуры и функции
Написание операторной части процедуры начинается с формирования строки исходных данных, которая понадобится для протокола и, возможно, для вывода сообщения об ошибке в исходных данных. Эту строку можно создать, объединяя строки с названиями переменных и тексты, написанные в полях ввода данных.
Следующий этап в процедуре, это считывание исходных данных и преобразование их в числа требуемого типа. Так как при вводе данных возможны ошибки, то следует добавить обработку исключительной ситуации, возникающей при вводе.
Если текст в полях ввода удалось преобразовать в числа, начинает выполняться вторая часть процедуры, обеспечивающая расчет по формуле. В этой части тоже предусмотрена обработка исключительной ситуации.
В том случае, если расчет выполнить не удалось, выводится сообщение о том, что расчет выполнить не удалось, а для протокола строка с исходными данными объединяется со строкой «Расчет невозможен».
Завершается процедура инструкцией, с помощью которой в поле Memo добавляется новая строка с результатами очередного расчета.
Попутка откомпилировать созданную процедуру приведет к появлению ошибки. Ошибка заключается в том, что данная процедура не видит функцию расположенную в другом модуле.