ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 20.03.2025
Просмотров: 296
Скачиваний: 2
Лабораторная работа №4. Решение задачс параметрамиподпрограммами и модулями в консольном приложении Delphi
Цель работы: освоение методов решения задач с использованием параметровподпрограмм и модулей; закрепление навыков отладки сложных программ в консольном приложении Delphi
Продолжительность работы: 2 часа
1. ПОДГОТОВКА К РАБОТЕ
Перед началом выполнения работы студент должен:
1.Подготовить проект отчета по решению двух уравнений в одной программе (задача [1] 4.2.1.N+1). Проект отчета должен содержать:
1)номер и условие задачи с обязательной записью решаемых уравнений;
2)состав данных программы (данные подпрограммы здесь не приводятся);
3)заголовок подпрограммы решения уравнения методом дихотомии и пояснение смысла каждого формального параметра;
4)формы ввода и вывода;
5)блок-схему алгоритма подпрограммы решения уравнения;
6)текст паскаль-программы (включая подпрограммы);
7)функциональные и структурные тесты.
8)разработка варианта программы решения двух уравнений с использова-
нием модуля; модуль должен содержать ранее разработанную подпрограмму решения уравнения методом дихотомии и объявление проце-
дурного типа, описывающего заголовок функции, вычисляющей значение левой части уравнения для заданного значения аргумента.
2.Набрать текст паскаль-программы в блокноте или создать консольное приложение для отладки в компьютерном классе.
2.ЗАДАНИЕ И РЕКОМЕНДАЦИИ ПО ЕГО ВЫПОЛНЕНИЮ
1.Запустите Delphi, создайте и сохраните консольное приложение для решения задачи 4.2.1.N+1 (или откройте готовое приложение, сделанное дома).
2.Откомпилируйте приложение и проверьте правильность его работы на заранее подготовленных тестах.
3.Зафиксируйте результаты отладки и покажите их преподавателю.
11
4. Создайте автономный модуль для решения уравнения и сохраните его в от-
дельной папке. Для создания нового автономного модуля надо через главное меню Delphi набрать команду File/New/Unit. Интерфейсную и исполняемую часть предлагаемой средой Delphi заготовки модуля надо заполнить в соответствии с требованиями языка Паскаль (см., например, [2]) и условием задачи (см. пункт 8 «Подготовки к работе»).
5. Создайте консольное приложение для решения двух уравнений с использованием модуля. Сохраните его в той же папке, что и модуль. Подключите модуль к консольному приложению, используя команду Project/Add to Project главного меню Delphi; при этом в предложение uses консольного при-
ложения автоматически добавится подключенный модуль.
6. Откомпилируйте приложение пункта 5 и протестируйте его. Зафиксируйте результаты тестирования этого приложения и покажите их преподавателю.
Лабораторная работа №5. Разработка простейших оконных приложений в среде Delphi
Цель работы: освоение принципов визуального программирования; приобре-
тение навыков разработки простейших оконных приложений в среде Delphi
Продолжительность работы: 4 часа
1. ПОДГОТОВКА К РАБОТЕ
Перед началом выполнения работы студент должен:
1.Ознакомиться с основами разработки оконных приложений в среде Delphi по пособию М.М. Марана [3], §§1.1, 1.2, 1.3.
2.Разработать проект отчета по решению предлагаемой задачи ([1] 1.3.4.N+1).
Проект отчета должен содержать:
1)номер и условие задачи;
2)состав данных задачи;
3)блок-схему алгоритма решения задачи;
4)программный код основных обработчиков;
5)тесты (два структурных теста по количеству возможных способов реализации алгоритма).
3.Набрать программный код основных обработчиков в блокноте.
12
2.ЗАДАНИЕ И РЕКОМЕНДАЦИИ ПО ЕГО ВЫПОЛНЕНИЮ
1.Следуя §1.2 пособия [3], создайте оконное приложение, выполняющее сцепление двух строк. Сохраните это приложение, учитывая, что каждое оконное приложение необходимо хранить в отдельной папке.
Обратите внимание, что с окном сохранения приходится работать дважды – для файла проекта и для файла формы. Файлу проекта среда
Delphi автоматически присваивает имя Project1 (или Project2, Project3, …) и
расширение .dpr. Файлу формы автоматически дается имя Unit1 (или Unit2, Unit3, …) и расширение .pas. Эти имена можно изменить, но делать это надо очень внимательно (чтобы не перепутать проект и форму и по другим причинам). Кроме файлов Project.dpr и Unit.pas, среда создает еще несколько файлов проекта и формы с разными расширениями. При переносе проекта прило-
жения на другой компьютер или в другую папку, необходимо переносить только файла проекта Project.dpr и два файла для каждой формы: Unit.pas и Unit.dfm. Все остальные файлы при открытии проекта приложения будут созданы средой Delphi1. Отметим, что файл Unit.dfm хранит графическое изображение формы в текстовом виде; файл Project.exe является исполняемым файлом, который можно запускать независимо от среды Delphi.
Открывать проект приложения следует командой File/Open Project, и
в окне открытия файла выбирать файл с расширением .dpr.
2.Следуя §1.2 [3], измените приложение п. 1 так, чтобы оно складывало два числа.
3.Руководствуясь §1.3 [3], добавьте в оконное приложение главное и контекст-
ное (всплывающее) меню.
4. Модифицируйте оконное приложение, используя вместо процедуры val преобразования строки в число функцию StrToFloat, а вместо процедуры str преобразования числа в строку функцию FloatToStr2. Как ими пользоваться, уз-
найте из справочной системы Delphi. Для вызова справки по некоторому слову в программе, достаточно поставить внутрь этого слова курсор и нажать клавишу F1.
1Желающие узнать назначение этих файлов отсылаются к конспекту лекций или специальной литературе.
2Функции StrToFloat и FloatToStr работают с вещественными числами, для целых чисел надо использовать, соответственно, StrToInt и IntToStr.
13
5.Разработайте и отладьте оконное приложение для решения задачи [1] 1.3.4.N+1. Чем оно будет отличаться от приложения, складывающего два числа? Обратите внимание, что правила трассировки оконных и консольных приложений одинаковы.
6.Зафиксируйте результаты работы в отчете и покажите их преподавателю.
ПРИМЕР ОСНОВНОГО ОБРАБОТЧИКА ИНДИВИДУАЛЬНОЙ ЗАДАЧИ
Условие задачи. А—начальная стоимость оборудования. В первый год экс-
плуатации стоимость оборудования снижается на В руб., а в каждый следующий год снижение стоимости уменьшается на р % (относительно предыдущего года). Определить, через сколько лет стоимость оборудования станет меньше А/2. Рассматривать срок не более N лет.
На рис. 4 приведена форма приложения. Обратите внимание, что каждое текстовое окно на форме нужно либо для ввода исходного данного, либо для вывода результата. Далее приведен текст обработчика события – нажатия кнопки «Вычисление».
Рис. 4. Пример формы приложения для индивидуальной задачи
procedure TForm1.Button1Click(Sender: TObject); Var A,B,p:real; N,i:integer; {i-счетчик лет }
At,Bt:real; {текущие значения стоимости оборудования и ее снижения} begin A:=StrToFloat(Edit1.Text);{эти операторы считывают c}
14
B:=StrToFloat(Edit2.Text);{формы исходные данные, это замена } p:=StrToFloat(Edit3.Text); N:=StrToInt(Edit4.Text);{операторов ввода} At:=A;Bt:=B;i:=1;{подготовка цикла}
while (At>=A/2) and (i<=N) do{цикл продолжается пока}
begin { снижение не достигнуто и срок не прошел} At:=At-Bt; {ежегодно стоимость снижается на Bt} Bt:=Bt-Bt*p/100; {ежегодно Bt уменьшается на р%}
i:=i+1 {увеличение счетчика лет} end;
if At<A/2 then {анализ приоритетного условия выхода из цикла} begin i:=i-1; Edit5.Text:=IntToStr(i){это аналог вывода}end else Edit5.Text:='за '+IntToStr(N)+' лет снижения нет';{это аналог вывода}
end;
Лабораторная работа №6. Создание оконных приложений обработки матриц в среде Delphi
Цель работы: освоение приемов создания оконных приложений, обрабаты-
вающих матрицы, в среде Delphi
Продолжительность работы: 2 часа
1. ПОДГОТОВКА К РАБОТЕ
Перед началом выполнения работы студент должен:
1.Ознакомиться с основами разработки оконных приложений в среде Delphi по пособию М.М. Марана [3], §1.4
2.Разработать проект отчета по решению задачи 2.2.2. N+1. Проект отчета дол-
жен содержать (см. также приложение 2):
1)номер и условие задачи;
2)состав данных задачи;
3)блок-схему алгоритма решения задачи;
4)эскиз основной формы приложения (для создания эскиза необходимо продумать, какие визуальные компоненты должны быть на форме (Edit и StringGrid для ввода и вывода данных, кнопки для запуска вычислений);
5)программный код основных обработчиков на Паскале;
6)тесты.
15
3. Набрать программный код основных обработчиков приложения в блокноте
или в среде Delphi.
При разработке алгоритмов и программ необходимо учесть следующее:
1)размеры матрицы (число строк n и число столбцов m) должны задаваться считыванием значений из текстовых окон (компонент Edit); ко-
манда на задание размеров – нажатие кнопки (которую можно подпи-
сать, например, фразой «Ввод n, m»);
2)для отображения массивов на форме следует использовать компоненту StringGrid; число строк и столбцов этой компоненты должно настраи-
ваться в соответствии с введенными значениями n и m;
3)приложение не должно иметь ограничений на размеры массивов; для хранения массивов в оперативной памяти рекомендуется использовать динамические массивы;
4)визуальные компоненты для вывода результатов выбираются из условия задачи: компонента Edit – для простых значений, компонента StringGrid
– для массивов; примерный вид формы приложения, вычисляющего суммы элементов каждой строки матрицы и произведение всех ее эле-
ментов, приведен на рис. 5.
Рис. 5. Примерный вид формы приложения обработки матрицы
16
2.ЗАДАНИЕ И РЕКОМЕНДАЦИИ ПО ЕГО ВЫПОЛНЕНИЮ
1.Создайте новое приложение. На его форму перенесите управляющие эле-
менты в соответствие с подготовленным эскизом. Сохраните приложение (в отдельной папке!) и не забывайте периодически повторять сохранение.
2. Используя домашние заготовки, создайте необходимые обработчики. Один обработчик – для ввода n и m, другой – для запуска основного алгоритма. Заме-
тим, что приемы кодирования на Паскале вычислительных алгоритмов не изменились по сравнению с консольными приложениями, только операторы ввода заменяются считыванием значений из элементов формы, а операторы вывода – записью значений в элементы формы. Особенности работы с компонентой StringGrid описаны в пособии [3]. Обратите внимание, что n и m
должны быть описаны как глобальные переменные, так как используются в двух обработчиках. Отладьте полученное приложение.
3.Добавьте в приложение главное меню. На данном этапе в нем должен быть пункт Файл с подпунктом Выход и пункт Обработка (возможно, с
подпунктами Ввод n, m и Вычисление).
4.Добавьте в приложение контекстное меню с несколькими подпунктами. Проверьте, работают ли главное и контекстное меню.
5.Зафиксируйте результаты в отчете и покажите их преподавателю.
ПРИМЕР ОБРАБОТЧИКОВ ПРИЛОЖЕНИЯ ИНДИВИДУАЛЬНОЙ ЗАДАЧИ
procedure TForm1.Button1Click(Sender: TObject);
{обрабатывает нажатие кнопки «Ввод n,m»}
Var i:integer; begin
n:=StrToInt(Edit1.Text);{ считали из компонент Edit1} m:=StrToInt(Edit2.Text); {и Edit2 значения n и m} StringGrid1.RowCount:=n+1;{задали число строк и } StringGrid1.ColCount:=m+1; {столбцов StringGrid1}
for i:=1 to n do {написали номера строк в фиксированном}
StringGrid1.Cells[0,i]:=IntToStr(i);{ столбце StringGrid1}
for i:=1 to m do { написали номера столбцов в фиксированной } StringGrid1.Cells[i,0]:=IntToStr(i);{строке StringGrid1}
end;
17