Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Delphi -Мет по лабраб_ Часть_2.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

10.1.3. Процедурные типы

Процедуры в Delphi разрешается использовать при описании новых типов, На основании таких типов, обладающих равными правами с другими типами, можно описывать переменные, что позволяет передавать подпрограммы в качестве параметров. Это удобно, когда над аргументами надо выполнять сложные различные действия в зависимости от некоторых условий.

Описание типов осуществляется после ключевого слова Type, например в виде, показанном в модуле UnModul UnModul (см. пример, 10.3):

type

func=function (x:real):real;

proc=procedure (x:real; var s:real);

    1. Пример создания приложения

Задание. Создать Windows-приложение, которое выводит таблицу значений функции и ее разложения в ряд в виде суммы для значений x от xn до xk с шагом h=(xk- xn)/8. Создать модуль, в котором вычисление значений Y(x) оформить в виде функции, а вычисление S(x) – в виде процедуры. Подключить модуль к проекту и выполнить созданное приложение.

      1. Сохранение проекта

Для нового проекта создайте новую папку, например, X: \ 35эи \ LAB10.

Сохраните проект File | Save Project As…Сначала сохраните модуль под именем UnModul, затем файл проекта под именем PrModul.

      1. Размещение компонентов на Форме

Один из возможных вариантов панели интерфейса создаваемого приложения показан на рисунке 10.1.

Разместим на форме компоненты Label, Edit, SpinEdit, BitBtn и Memo.

SpinEdit

Edit

BitBtn

Label

Memo

Рис. 10.1. Размещение компонентов на форме

Текст модуля UnModul приведен в пункте 10.2.5.

      1. Создание модуля и подключение его к проекту

В соответствии с заданием создадим модуль, в котором вычисление значений Y(x) оформим в виде функции, а вычисление S(x) – в виде процедуры. Для создания модуля откроем в главном меню пункт File, выберем опцию New (Новый…), затем Unit. Откроется окно с «пустым» модулем Unit2. С помощью опции Save As… меню File сохраним модуль в папке с файлами проекта, присвоив ему имя, например, UnFuncProc.

В этом модуле операторы вычисления Y(x) в виде подпрограммы-функции F и операторы вычисления S(x) в виде подпрограммы-процедуры Summa оформим по правилам создания модулей. Текст модуля UnFuncProc приведен в пункте 10.2.4.

Для подключения модуля UnFuncProc к проекту необходимо сделать активным окно с текстом модуля UnModul, затем в меню File выбрать опцию Use Unit… и в открывшемся окне Use Unit указать имя используемого модуля UnFuncProc. Убедитесь в том, что в разделе Implementation модуля UnModul появился оператор Uses UnFuncProc, который Delphi вставила в текст модуля UnModul.

Откройте главный файл проекта и убедитесь в том, что проект не содержит посторонних модулей и файлов.

      1. Текст модуля UnFancProc

unit UnFuncProc;

interface

Function F(x:real):real;

Procedure Summa(x:real;var s:real);

implementation

Function F(x:real):real;

begin

F:=2*(sqr(cos(x))-1) ;

end;

Procedure Summa(x:real; var s:real);

var

n,i: byte;

p: real;

begin

p:=1; s:=0;

for i:=1 to n do

begin

p:=p*(-sqr(2*x))/((2*i-1)*2*i);

s:=s+p;

end;

end;

end.