ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 20.03.2025
Просмотров: 652
Скачиваний: 1
СОДЕРЖАНИЕ
Реализация алгоритмов в среде Delphi Сборник заданий для лабораторных работ
2. Задание и рекомендации по его выполнению
Лабораторная работа №2. Решение задач обработки массивов в консольном приложении среды Delphi
2. Задание и рекомендации по его выполнению
2. Задание и рекомендации по его выполнению
2. Задание и рекомендации по его выполнению
Лабораторная работа №5. Разработка простейших оконных приложений в среде Delphi
2. Задание и рекомендации по его выполнению
ПриМер основного обработчика индивидуальнойзадачи
Лабораторная работа №6. Создание оконных приложений обработки матриц в среде Delphi
2. Задание и рекомендации по его выполнению
ПриМер обработчиков приложения индивидуальной задачи
2. Задание и рекомендации по его выполнению
ПриМер обработчиков приложения индивидуальной задачи
Лабораторная работа №8. Разработка оконных приложений, использующих автономные модули
2. Задание и рекомендации по его выполнению
Некоторые обработчики приложения, вычисляющего сумму элементов одномерного массива
Лабораторная работа №9. Разработка оконных приложений, осуществляющих графический вывод
Пример обработчика вывода графических примитивов
Лабораторная работа №10. Обработка исключительных ситуаций
2. Задание и рекомендации по его выполнению
Приложение 1. Пример проекта отчета по консольному приложению Условие
Приложение 2. Пример проекта отчета по оконному приложению Условие
begin
s:= OpenDialog1.FileName;{имя файла из диалогового окна}
AssignFile(f,s);{связывание прогр. и физ. имен файла}
Reset(f); {открытие файла для чтения}
Readln(f, n,m); {чтение из файла n и m, они описаны как
глобальные переменные}
Edit1.Text:=IntToStr(n); {значения n и m }
Edit2.Text:=IntToStr(m); {записываем в текстовые окна}
StringGrid1.RowCount:=n+1;{задаем число строк}
StringGrid1.ColCount:=m+1; {и столбцов StringGrid1}
for i:=1 to n do {подписываем строки и столбцы}
StringGrid1.Cells[0,i]:=IntToStr(i);
for j:=1 to m do
StringGrid1.Cells[j,0]:=IntToStr(j);
SetLength(a,n,m);{распределяем память под матрицу}
for i:=1 to n do
for j:=1 to m do
begin
Read(f,a[i-1,j-1]); {чтение значения из файла в память}
StringGrid1.Cells[j,i]:=FloatToStr(a[i-1,j-1]);
{запись значения в StringGrid1}
end;
CloseFile(f);{закрытие файла}
end
end;
procedure TForm1.N3Click(Sender: TObject);
{обработчик пункта меню “вывод в файл”}
Var f:TextFile; s:string; {f-программное имя файла, s-физическое}
i,j:integer; {счетчики строк и столбцов матрицы}
begin
if SaveDialog1.Execute then {если подтверждено сохранение
файла в диалоговом окне}
begin
s:=SaveDialog1.FileName;{имя файла из диалогового окна}
AssignFile(f,s); {связывание прогр. и физ. имен файла}
Rewrite(f); {открытие файла для записи}
writeln(f,'n=', Edit1.Text, ' m=', Edit2.Text);{вывод в файл }
{числа строк и столбцов матрицы}
writeln(f); {пропуск строки в файле}
writeln(f,' Матрица');
for i:=1 to n do
begin
for j:=1 to m do
write(f,StringGrid1.Cells[j,i], ' ');{вывод элементов матрицы}
{ в файл, значения разделяются пробелом}
writeln(f){переход к следующей строке в файле}
end;
CloseFile(f);
{закрытие файла, обязательно для сохранения файла}
end
end;
Ниже приведена форма файла исходных данных, форму выходного файла напишите сами.
<n> <m> <a[0, 0]> <a[0, 1]> … <a[0,m-1]> … <a[n-1, 0]> <a[n-1, 1]> …<a[n-1,m-1]>
Лабораторная работа №8. Разработка оконных приложений, использующих автономные модули
Цель работы:закрепление знаний и навыков создания и использования подпрограмм и модулей; освоение приемов использования автономных модулей при разработке оконных приложений; закрепление навыков разработки оконных приложений
Продолжительность работы:4 часа
1. Подготовка к работе
Перед началом выполнения работы студент должен:
Ознакомиться с принципами создания и использования автономных модулей по пособию М.М. Марана [3], §3.
Разработать проект отчета по разработке оконного приложения для задачи [1] 3.4.N+1. Проект отчета должен содержать:
номер и условие задачи;
состав данных разрабатываемой подпрограммы;
блок-схему алгоритма подпрограммы;
код автономного модуля, содержащего подпрограмму;
эскиз основной формы приложения для тестирования подпрограммы (обеспечивающего ввод исходных данных, вызов подпрограммы и вывод результатов);
программный код модуля и основных обработчиков на Паскале;
тесты.
Набрать программный код автономного модуля и основных обработчиков приложения в блокноте или в среде Delphi.
При разработке алгоритмов и программ необходимо учесть следующее:
длина массива должна задаваться считыванием значения из текстового окна (компоненты Edit); команда на задания длины – нажатие кнопки (которую можно подписать фразой «Ввод длины массива»);
для отображения массивов на форме следует использовать компоненту StringGrid; число строк (столбцов)StringGridдолжно настраиваться в соответствии с введенным значением длины массива;
приложение не должно иметь ограничений на размеры массивов; для хранения массивов в оперативной памяти рекомендуется использовать динамические массивы.
2. Задание и рекомендации по его выполнению
Создайте новое приложение. На форму приложения (Form1) перенесите управляющие элементы в соответствие с подготовленным эскизом формы. Сохраните приложение.
В рамках существующего приложения с помощью команды главного меню File/New/Unitсоздайте автономный модуль. По умолчанию ему будет дано имяUnit2. Заполните разделы модуляInterfaceиImplementation, используя подготовленный заранее код. Сохраните модуль в папке приложения.
Подключите модуль Unit2 к модулю основной формы (Unit1), добавив в предложениеusesмодуляUnit1 имяUnit2 (или воспользуйтесь командой Project/Add to Projectглавного меню Delphi).
Используя домашние заготовки, создайте необходимые обработчики для основной формы Form1. На данном этапе приложение должно иметь не менее двух обработчиков: первый – для ввода длины массива, второй – для запуска основного вычислительного алгоритма. Первый обработчик строится по тем же правилам, что и обработчик ввода размеров матрицы в лабораторной работе №6. Второй обработчик должен содержать считывание исходных данных из элементов формы, вызов подпрограммы (содержащейся в модуле Unit2) для обработки данных и запись результатов в элементы формы.
Отладьте полученное приложение, используя подготовленные тесты.
Сделайте главное меню приложения. Оно должно иметь следующие пункты: Файл(с подпунктамиВвод из файла,Вывод в файлиВыход),Обработка(с подпунктамиВвод длины массиваиВычисление) иПомощь(с подпунктамиАвториУсловие).
Создайте обработчики ввода из файла и вывода в файл, используя знания и навыки, полученные в лабораторной работе №7.
К командам пункта Обработкаподключите обработчики соответствующих кнопок. Проверьте работоспособность этих команд.
Напишите обработчик для команды Выход пунктаФайл главного меню. Этот обработчик должен содержать один операторClose.
Создайте и отладьте обработчики для команд пункта Помощь главного меню. Они должны вызывать информационные окна, содержащие, соответственно, сведения об авторе приложения и условие задачи. Как работать с информационными окнами, изложено в §2.2.1 [3].
Дополните обработчик кнопки Ввод длины массива проверкой на положительность значения длины. При вводе неположительного числа должно появляться окно сообщения с соответствующей фразой. Программирование окна сообщения описано в §2.2.2 [3].
Дополните обработчик кнопки Ввод длины массива проверкой, является ли введенное значение числом. Если содержимое текстового окнаEdit1не может быть интерпретировано как число, то должно появляться окно сообщения с соответствующей фразой. При выполнении этого пункта рекомендуется использовать процедуруVal(см. [2] или помощь Delphi, а также приведенный ниже пример).
Сделайте 2-3 контекстных меню и привяжите их к разным элементам управления формы. Проверьте, работают ли эти меню.
Зафиксируйте результаты в отчете и покажите их преподавателю.
ПриМер автономного модуля
unit Unit2;
{Модуль содержит одну функцию вычисления суммы элементов одномерного массива длины n}
interface {интерфейсная часть модуля}
function sum (a: array of real; n: integer):real;
implementation
function sum; {исполняемая часть модуля}
Var i: integer; s:real;
begin
s:=0;
for i:=Low(a) to High(a) do
s:=s+a[i];
sum:=s;
end;
end.
Некоторые обработчики приложения, вычисляющего сумму элементов одномерного массива
Ф
орма
приложения приведена на рис.6.
procedure TForm1.Button1Click(Sender: TObject);
{Обработчик нажатия кнопки ввода длины массива}
Var j:integer;
begin
val(Edit1.Text,n,j);
if j<>0 then
ShowMessage('Введите число')
else
if n<=0 then
ShowMessage(' Введите положительное число ')
else
begin
StringGrid1.ColCount:=n;
{В Инспекторе объектов установлено: StringGrid1.FixedCols=0}
for j:=0 to n-1 do {Подписываем номера элементов массива}
StringGrid1.cells[j,0]:=IntToStr(j+1);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
{Обработчик нажатия кнопки «Вычислить сумму»}
Var a: array of real; j: integer;
begin
SetLength(a,n);{распределение памяти под массив, n – глобальная переменная}
for j:= 0 to n-1 do {ввод массива}
if StringGrid1.Cells[j,1]='' then
a[j]:=0
else
a[j]:= StrToFloat(StringGrid1.Cells[j,1]);
{далее вычисление суммы и вывод ее в текстовое окно:}
Edit2.Text:=FloatToStr(Sum(a,n));
end;
Лабораторная работа №9. Разработка оконных приложений, осуществляющих графический вывод
Цель работы:освоение приемов вывода графических изображений в среде Delphi.
Продолжительность работы:4 часа
1. Подготовка к работе
Перед началом выполнения работы студент должен:
Ознакомиться с графическим вывода среде Delphi по пособию [3], гл. 8.
Р
азработать
проект отчета по решению задач [1]
7.4.N+1, 7.1. N+1. По задаче 7.4.N+1 (рисунки с
графическими примитивами) проект отчета
должен содержать:
номер и условие задачи с рисунком, на котором проставлены отметки на координатных осях в пикселях (см. рис. 7);
программный код для вывода заданного изображения; код должен использовать методы холста (свойства Canvas) – см. ниже приведенный пример.
По задаче 7.1.N+1 (построение графиков функций) проект отчета по каждому пункту задания (А, Б) должен содержать:
формулу для исследуемой функции;
рассматриваемый интервал значений аргумента x;
характерные точки функции, подлежащие определению по графику;
самостоятельно полученную оценку интервала значений функции;
код обработчика, формирующего массивы координат точек для построения графика с помощью компоненты Chart(диаграмма) – см. ниже приведенный пример;
код обработчика, выводящего график по точкам – см. [3], §8.2; рекомендуется написать универсальную подпрограмму, выводящую график произвольной функции, и применить эту подпрограмму в пунктах А и Б; в список параметров подпрограммы обязательно должны входить параметр-функция (определяющая, график какой функции выводится) и минимальные и максимальные значения аргумента и функции.
тесты.
Набрать программный код основных обработчиков приложения в блокноте или в среде Delphi.