Процедуры, функции, их описание и использование

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



Южно-Сахалинский институт экономики, права и информатики

Кафедра КТиС

Пояснительная записка к курсовой работе

по дисциплине: Структуры и алгоритмы обработки данных

на тему: Процедуры, функции их описание и использование

Южно-Сахалинск

Введение

Задачей курсовой работы является наглядно представить использование собственных процедур и функций, их создание, описание и применение, а так же написать программу, использующую их. Для реализации программы требуется использовать интегрированную среду разработки Borland Delphi 7.

Процедуры и функции неотъемлемая часть создания программ, так как они играют большую роль в программировании, как в Delphi так и в C++ . В процедуре может содержаться полноценная программа, входящая в состав основного приложения, поэтому их иногда называют "подпрограммы", благодаря им можно заменить множество строк кода решения одной определенной задачи на одну процедуру либо функцию, вызываемую во многих местах основного кода. Для хранения собственных процедур и функций можно создать заголовочный файл, и позже подключать его при необходимости.

Цель работы - изучить принципы работы процедур и функций. В проекте предполагается реализовать некоторые собственные процедуры и функции и описать работу стандартных.

Разрабатываемая система выполняет следующие функции:

.Вычисляет факториал,

.Производит сортировку десяти произвольных чисел,

.Решает квадратное уравнение,

Для разработки приложения используются следующие программные инструменты:

1.среда разработки Borland Delphi ,

2.библиотека классов VCL (Visual Component Library),

3.функции интерфейса прикладного программирования операционной системы Windows (Win32 API).

Теоретическое описание

Заголовок процедуры имеет вид:

PROCEDURE )] ;

Заголовок функции:

FUNCTION ;

Здесь - имя подпрограммы (правильный идентификатор);

сп.ф.п.> - список формальных параметров; - тип возвращаемого функцией результата.

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

Параметры

Список формальных параметров необязателен и может отсутствовать. Если же он есть, то в нем должны быть перечислены имена формальных параметров и их типы, например:

Procedure SB(a: Real; b: Integer; с: Char);

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

Function F(a: Real; b: Real): Real;

можно написать проще: F(a,b: Real): Real;

Операторы тела подпрограммы рассматривают список формальных параметров как своеобразное расширение раздела описаний:

все переменные из этого списка могут использоваться в любых выражениях внутри подпрограммы. Таким способом осуществляется настройка алгоритма подпрограммы на конкретную задачу.

Рассмотрим такой полезный пример. В Object Pascal не предусмотрена операция возведения вещественного числа в произвольную степень[ Начиная с версии 2 с Delphi поставляется модуль Match, в котором есть соответствующая функция. ]. Тем не менее эту задачу можно решить с использованием стандартных математических функций Ехр и Ln по следующему алгоритму:

X Y = e (Y*Ln(X))

Создадим функцию с именем Power и двумя вещественными параметрами а и в, которая будет возвращать результат возведения "a" в степень" b". Обработчик события bbRunСlick учебной формы fmExampie читает из компонента edInput текст и пытается выделить из него два числа, разделенных хотя бы одним пробелом. Если это удалось сделать, он обращается к функции Power дважды: сначала возводит первое число х в степень второго числа y, затем х возводится в степень -y.

Листинг 1. Пример использования функции для возведения

procedure TfmExample.bbRunClick(Sender: TObject); Power(A, B: Real): Real;

{Функция возводит число А в степень В. Поскольку логарифм отрицательного числа не существует, реализуется проверка значения А: отрицательное значение заменяется на положительное, для нулевого числа результат равен нулю. Кроме того, любое число в нулевой степени дает единицу.} begin

if А > 0 then

Result := Ехр(В * Ln(A)) else if A < 0 then := Ехр(В * Ln(Abs(A))) else if В = 0 then := 1 else := 0; ; // Power var : String; , Y: Real; begin

{Читаем строку из edinput и выделяем из нее два вещественных числа, разделенных хотя бы одним пробелом.} S := edinput.Text; (S = '') or (pos(' ' ,S) = 0) then ; // Нет текста или в нем нет пробела - прекращаем дальнейшую работу

// Выделяем первое число: := StrToFloat(copy(S, I, pos(' ', S) - 1));

// Если успешно, удаляем символы до пробела // и выделяем второе число:

Delete (S, 1, pos (' ', S) ) ; := StrToFloat(Trim(S)) ;

except Exit; // Завершаем работу при ошибке преобразования

end; .Lines.Add(FloatToStr(Power(X, Y) ) ) ; .Lines.Add(FloatToStr(Power(X, -Y) ) ) ; ;

Для вызова функции Power она просто указывается в качестве параметра при обращении к стандартной функции преобразования вещественного числа в строку FloatToStr. Параметры х и y в момент обращения к функции Power - это фактические параметры. Они подставляются вместо формальных параметров а и в в заголовке функции, и затем над ними осущес