
- •Программирование
- •«Программирование»
- •Чернигов чгту 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.2.3Алгоритмы обработки последовательностей целых чисел
Алгоритмы решения этих задач заключаются в анализе последовательности натуральных чисел из заданного диапазона, либо последовательности случайных целых чисел, получаемых с помощью функции random(n). Анализ числа заключается в проверке некоторого условия, которому должно удовлетворять данное число. Если условие выполняется, то производится некоторая обработка числа. Иногда при проверке условия приходится также выполнять циклические действия над числами. Таким образом, для решения задачи требуется объединить циклический и разветвляющийся алгоритм.
В качестве примера мы рассмотрим подобную задачу. Пусть, например, в последовательности целых чисел от 1 до Max требуется выделить числа, квадрат которых равен сумме квадратов других целых чисел. Схема алгоритма такой задачи приведена на рисунке 2.3.
Рисунок 2.3 – Алгоритм обработки последовательности целых чисел
2.2.4Алгоритмы табулирования значений функций
Одной из достаточно распространенных задач, в которых используются циклы, является задача табулирования значений некоторой функции. Суть задачи заключается в том, что необходимо изменять аргумент функции от некоторого начального значения до конечного значения с некоторым шагом и для полученных значений аргумента вычислять значения функции. На рисунке 2.4 приведен алгоритм табулирования некоторой функции f(x) для значений аргумента х, который изменяется от x0 до xMax с шагом step.
Рисунок 2.4 – Алгоритм табулирования функции
Эту задачу можно решать с помощью цикла while…do, в котором параметр цикла будет последовательно увеличиваться на величину шага. Однако такой подход считается не совсем правильным. Обычно аргументы функций – вещественные числа, которые в памяти машины записываются с некоторой погрешностью. При многократном суммировании таких чисел погрешность накапливается и может стать заметной при большом количестве циклов. Поэтому при табулировании функций удобнее использовать цикл for, в котором параметром является целочисленный номер строки таблицы. Строки таблицы удобно считать пронумерованным с 0, тогда приращение аргумента на каждом шаге можно определять путем умножения шага на номер строки. Ошибка при этом не накапливается.
При выводе таблиц на экран или на печать желательно добиться, чтобы столбцы были ровными, десятичные разделители были в одной позиции. Для этого, прежде всего таблицы целесообразно выводить шрифтом Courier new, в котором все символы имеют одинаковую ширину. Но этого мало. Строки таблицы следует формировать с помощью функции format().
2.3 Пример создания проекта
В этом проекте реализуются разработанные выше алгоритмы решения уравнения методом итераций, вычисления суммы бесконечного ряда, обработки последовательности целых чисел и табулирования функции, требующие циклического повторения некоторых вычислений.
2.3.1Компоненты для создания интерфейса проекта
Откроем новый проект. Назовем появившуюся форму frmWhileRepeatFor. В заголовке напишем текст «Построение циклов».
Для решения всех задач можно использовать одну и ту же форму, а интерфейсы задач расположим на отдельных закладках, используя компонент TPageControl.
На рисунке 2.5 показан интерфейс проекта с открытой закладкой «Корень».
Рисунок 2.5 – Интерфейс проекта
Создайте интерфейс своего проекта по аналогии с этим рисунком в соответствии со своим вариантом.
Если новые компоненты вам незнакомы, их описание Вы найдете ниже.