
- •Программирование
- •«Программирование»
- •Чернигов чгту 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Сохранение файла под другим именем
- •Содержание отчета
- •Рекомендованая литература
3.4.3Рекомендации по перестановкам элементов матрицы
Есть задачи, в которых требуется менять местами элементы матрицы. Ниже перечислены некоторые из таких задач.
Транспонирование матрицы (поворот вокруг главной диагонали).
Поворот вокруг вспомогательной диагонали.
Поворот вокруг горизонтальной оси.
Поворот вокруг вертикальной оси.
Для решения всех этих задач требуется двойной цикл. Внешний цикл обычно организуется по всем номерам строк или столбцов, иногда, за исключением первого или последнего номера. Внутренний же цикл обеспечивает перебор только половины элементов, которые расположены с одной стороны от оси поворота. Тело цикла содержит операторы, которые обеспечивают обмен значениями между текущим элементом матрицы и симметричным ему. Для организации обмена удобнее всего использовать промежуточную переменную.
Основная трудность, возникающая при решении этих задач, это определение индексов элемента, симметричного текущему элементу.
В таблице 3.6 приведены параметры циклов, обеспечивающих перевороты элементов матрицы вокруг различных осей симметрии. Индексные выражения, приведенные в таблице, составлены в предположении, что нижние индексы строк и столбцов раны единице, верхние индексы столбцов и строк соответственно равны nCol и nRow, а m – имя матрицы.
Таблица 3.6 – Параметры циклов при перестановках элементов матрицы |
||||
Линия симметрии при повороте |
Внешний цикл |
Внутренний цикл |
Индексы элемента |
|
текщ. |
симметр. |
|||
Главная диагональ |
от i=2 до nRow |
По элементам строки (индексы столбца) от j = 1 до i-1 |
[ i, j ] |
[ j, i ] |
Вспомога-тельная диагональ |
По строкам, от i=1 до nRow -1 |
от j = 1 до nCol - i |
[ i, j ] |
[nRow–j +1, nCol – i+1] |
Горизонталь-ная ось |
По строкам, от i=1 до nRow div 2 |
По элементам строки (индексы столбца) от j = 1 до nCol |
[ i, j ] |
[nRow –i+1, j ] |
Вертикальная ось |
По строкам, от i=1 до nRow |
По элементам строки (индексы столбца) от j = 1 до nCol div 2 |
[ i, j ] |
[ i, nCol – j+1 ] |
Содержание отчета
Наименование работы.
Цель работы.
Схемы алгоритмов для процедуры и функций, обеспечивающих работу с массивами.
Тексты модулей проекта с пояснениями в виде комментариев.
Результаты тестирования проектов в виде копий формы с результатами.
Выводы.
Рекомендованая литература
Культин Н. Delphi 6. Программирование на Object Pascal. – СПб.:БХВ-Петербург,2002.
Ставровский А.Б. Турбо Pascal 7.0/ Учебник. – К.: BHV, 2000.
4РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА № 4. РАБОТА С ТИПИЗИРОВАННЫМИ ФАЙЛАМИ
Цели работы:
получить навыки работы с записями в Object Pascal;
получить навыки работы с типизированными файлами в Object Pascal;
освоить алгоритмы обработки типизированных файлов.
Задания для работы
В работе следует создать проект по обработке файла, который содержит записи, соответствующие варианту задания из таблицы 4.1. Номер варианта выбирается по последней цифре номера зачетной книжки.
Таблица 4.1 – Задания для расчетно-графической работы |
|
№ |
Содержание записей проекта и требования к обработке |
1 |
2 |
0 |
Номер комнаты в общежитии, количество компьютеров, наличие холодильника, количество жильцов. Сортировка обменом по номеру комнаты. Комплексная сортировка по количеству жильцов ↓ + по наличию холодильника ↓ + по количеству компьютеров ↓. Выборка комнат, где на каждого жильца не менее 1-го компьютера. Подсчет общего числа компьютеров и холодильников. |
1 |
Фамилия работника, оклад, надбавка в целых %, премия. Сортировка выбором по фамилии. Комплексная сортировка по суммарной выплате ↑ + по фамилиям ↓. Выборка лиц, у которых суммарная выплата выше заданного значения. Подсчет общей суммы выплат. |
2 |
Фамилия студента, дата (в виде строки символов гг-мм-дд), расходы на завтрак, обед, ужин в студенческой столовой. Комплексная сортировка вставкой по дате ↓ + по фамилии ↓. Комплексная сортировка по фамилии ↓ + по сумме расходов за день ↑ . Выборка данных о ежедневных суммарных расходах, для студента. Подсчет суммарных расходов студента за месяц. |
3 |
Фамилия студента, группа, контракт или бюджет, средний балл. Комплексная сортировка обменом по группе ↓ + по фамилии ↓. Комплексная сортировка по полю контракт или бюджет + по среднему баллу.Выборка студентов, у которых средний балл ниже заданного. Вычисление среднего балла для заданной группы. |
Продолжение таблицы 4.1 |
|
1 |
2 |
4 |
Номер комнаты в общежитии, жилая площадь, число жильцов, наличие балкона. Сортировка выбором по номеру комнаты. Комплексная сортировка по наличию балкона + по площади, приходящейся на одного жильца. Выборка комнат, где площадь на одного жильца меньше санитарной нормы. Подсчет количества жильцов в общежитии. |
5 |
Номер корпуса, номер аудитории, количества мест, наличие экрана. Комплексная сортировка вставкой по номеру корпуса + номер аудитории. Комплексная сортировка по наличию экрана + количество мест. Выборка аудиторий с ТСО с числом мест не менее заданного. Подсчет общего количества мест в заданном корпусе. |
6 |
Фамилия спортсмена, результат на 100-метровке, результат по прыжкам в длину, результат по прыжкам в высоту. Сортировка обменом по каждому виду и определение места спортсмена в данном виде. Сортировка по сумме мест во всех видах. |
7 |
Дата (в виде строки символов гг-мм-дд), температура воздуха днем, атмосферное давление, влажность. Сортировка выбором по дате. Комплексная сортировка по температуре + по давлению + по влажности. Определение среднего арифметического для температуры заданного месяца. Вывод дней месяца, когда температура превышала среднее значение. |
8 |
Фамилия больного, номер палаты, температура, давление, пульс. Сортировка вставкой по фамилии. Комплексная сортировка по палате + по температуре + по давлению + по частоте пульса. Подсчет числа больных с температурой выше заданной. Вывод списка больных с давлением выше допустимого. |
9 |
Группа, фамилия старосты, количество контрактников, количество бюджетников. Сортировка обменом по группам. Комплексная сортировка по общему количеству студентов в группе + по количеству бюджетников. Вывод перечня групп с общим количеством студентов. Подсчет общего количества контрактников и бюджетников. |
Создаваемый проект должен обеспечить:
Отображение записей файла в StringGrid.
Добавление группы записей из StringGrid к файлу.
Сохранение файла под другим именем
Поиск записи по значению одного из полей.
Удаление из файла записи, соответствующей заданному значению одного из полей.
Получение какой-нибудь интегральной оценки для всех записей или группы записей.
Сортировку файла по какому-нибудь признаку.
Поиск записи в упорядоченном файле.
Вставку записи в упорядоченный файл.
Удаление записи из упорядоченного файла.
Обработку записей следует проводить только в файле. Компоненты TStringGrid использовать только для считывания записей из файла и вывода результатов.