ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 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