
- •Программирование
- •«Программирование»
- •Чернигов чгту 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Сохранение файла под другим именем
- •Содержание отчета
- •Рекомендованая литература
4.1.3Определение типов данных
Для реализации проекта нужно определить тип записи, тип файла для хранения исходных данных и тип функции сравнения записей, используемый при сортировке. Эти описания должны быть доступны всем процедурам проекта, поэтому их следует расположить вне этих процедур, в начале раздела Implementation.
Тексты этих описаний для создаваемого проекта приведены ниже.
implementation
type
TName=String[20]; // Тип для фамилии студента
// Тип для записей, которые содержит файл
TAttRec = record
Name: TName; // Фамилия студента
ball: real; // Средний балл успеваемости
neud: integer // Количество неудоволетворительных оценок
end;
// Тип для файла
TAttFile = file of TAttRec;
// Тип для функции сравнения записей,
TCompareRec = function(r1, r2: TAttRec): boolean;
4.1.4Настройка интерфейса пользователя
При запуске проекта необходимо подготовить интерфейс к работе. Для этого можно использовать процедуру обработки события onCreate формы. Именно эта процедура настроит компоненты StringGrid для вывода записей проекта. Исходный код процедуры приводится ниже.
// Настройка компонентов StringGrid
procedure TfrmAtt.FormCreate(Sender: TObject);
begin
with StringGrid1 do begin
ColCount := 3; RowCount := 2;
FixedCols := 0; FixedRows := 1;
Cells[0,0] := 'Cтудент'; Cells[1,0] := 'Ср.балл'; Cells[2,0] := 'Неуд.';
end;
with StringGrid2 do begin
ColCount := 3; RowCount := 2;
FixedCols := 0; FixedRows := 1;
Cells[0,0] := 'Cтудент'; Cells[1,0] := 'Ср.балл'; Cells[2,0] := 'Неуд.';
end;
with StringGrid3 do begin
ColCount := 3; RowCount := 2;
FixedCols :=0; FixedRows := 1;
Cells[0,0] := 'Cтудент'; Cells[1,0] := 'Ср.балл'; Cells[2,0] := 'Неуд.';
end;
end;
В результате выполнения этой процедуры интерфейс пользователя должен приобрести вид, представленный на рисунке 4.2.
Рисунок 4.2 – Интерфейс проекта после настройки
4.1.5Вспомогательные процедуры для работы с файлом Процедура выбора имени файла
Эта процедура должна вызываться при нажатии на кнопку «Имя файла». Для выбора имени используется компонент OpenDialog. Этот компонент открывает стандартное окно Windows для выбора имени файла при вызове функции Execute. Эта функция, помимо открытия окна, возвращает результат взаимодействия с пользователем в виде логической переменной. Если пользователь отказался от выбора файла, функция возвращает false, в противном случае – true. Кроме того, объект OpenDialog запоминает имя выбранного файла. Доступ к этому имени можно получить через свойство FileName.
Ниже приведена процедура выбора имени файла.
//Процедура выбора имени файла
procedure TfrmAtt.btnFileNameClick(Sender: TObject);
begin
if OpenDialog.Execute then
EditFileName.Text := OpenDialog.FileName;
end;
В результате выполнения процедуры в поле EditFileName должно появиться выбранное имя файла.
4.1.5.1Процедура открытия файла
Так как в проекте придется реализовать достаточно много подпрограмм, связанных с обработкой файла, то целесообразно группу инструкций, связанных с открытием файла вынести в отдельную процедуру.
В качестве параметра в процедуру передается файловая переменная типа TAttFile. Имя открываемого файла процедура считывает из поля EditFileName формы. Если файл существует, он открывается, если нет, то создается.
//Процедура открытия файла
procedure openAttFile(var f:TAttFile);
begin
assignFile(f, frmAtt.EditFileName.Text);
try
reset(f);
except
rewrite(f);
end;
end;