- •Программирование
- •«Программирование»
- •Чернигов чгту 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.7.3Удаление записи по фамилии
Эта процедура должна быть связана с пунктом меню «Удаление записи по фамилии».
//Удалить запись из файла
procedure TfrmAtt.mnuDelFamClick(Sender: TObject);
var fam: TName; r: TAttRec; f: TAttFile; pos: integer; ok :boolean;
begin
fam:=inputBox('Удаление записи из файла','Введите фамилию','');
// Открываем файл
openAttFile(f);
ok := false; // Признак того, что нужная запись найдена
// Организуем цикл по записям файла
while not eof(f) do
begin
// Читаем запись
read(f,r);
if r.Name = fam then begin
// Нашли нужную
ok := true;
// Запоминаем номер найденной записи (она уже предыдущая)
pos := filePos(f) - 1;
//читаем последнюю запись
seek(f,FileSize(f)-1);
read(f,r);
//Записываем последнюю на место удаляемой
seek(f,pos);
write(f,r);
//удаляем последнюю
seek(f,FileSize(f)-1);
truncate(f);
showMessage('Запись удалена ');
// Выводим измененный файл в StringGrid2
showFileInGrid(f,StringGrid2);
end;
end;
if not ok then showMessage(fam+' не найдено');
closeFile(f);
end;
4.1.7.4Сохранение файла под другим именем
Эта процедура должна быть связана с пунктом меню «Сохранение файла под другим именем».
// Сохранение файла под другим именем
procedure TfrmAtt.mnuSaveAsClick(Sender: TObject);
var f1,f2:TAttFile; r:TAttRec; f2Name:String;
begin
// Запрашиваем через SaveDialog новое имя файла для сохранения
if SaveDialog.Execute then
begin
// Новое имя файла
f2Name := SaveDialog.FileName;
// Открываем файл в который будем переписывать
AssignFile(f2, f2Name);
Rewrite(f2);
// Открываем файл, имя которого записано в EditFileName
openAttFile(f1);
// Цикл копирования записей из f1 в f2
while not eof(f1) do begin
read(f1,r);
write(f2,r);
end;
CloseFile(f2);
CloseFile(f1);
ShowMessage('Файл скопирован в ' + f2Name);
end;
end;
Содержание отчета
Наименование работы.
Цель работы.
Интерфейс созданного проекта и описание его работы.
Текст модуля проекта с пояснениями в виде комментариев.
Результаты тестирования проекта в виде копий формы с результатами.
Выводы.
Рекомендованая литература
Культин Н. Delphi 6. Программирование на Object Pascal. – СПб.:БХВ-Петербург,2002.
Ставровский А.Б. Турбо Pascal 7.0/ Учебник. – К.: BHV, 2000.