5. Funções e Procedimentos do Delphi

Muitas funções e procedimentos pré-programados já estão implicitamente incorporados na linguagem (ex.: unit System) e são usados como comandos. Outros, para serem acessados, precisam que a unit na qual foram programados seja declarada na cláusula "uses" (ex.: uses SysUtils, Math), o que pode acontecer ou não de forma automatizada no ambiente de projeto (IDE).

5.1. Unit System

A unit System possui as seguintes funções de manipulação numérica:

Função

Descrição

Abs(x:<TipoNumerico>) : <TipoNumerico>

Retorna o módulo (valor absoluto) de x.

ArcTan(x:Extended):Extended

Retorna o valor (em radianos) do arco cuja a tangente é x.

Cos(x:Extended):Extended

Retorna o valor do cosseno de x (x em radianos).

Exp(x:Real):Real

Retorna o resultado da operação de ex, onde e=2.71828182845905... (Euler).

Frac(x:Extended):Extended

Retorna a parte fracionária do valor x.

Int(x:Extended):Extended

Retorna a parte inteira do valor x sem arredondamento.

Ln(x:Real):Real

Retorna o logaritmo natural de x (na base e).

Odd(x:Longint):Boolean

Retorna True se x for ímpar e False se for par.

Pi:Extended

Valor real p=3.1415926535897932385...

Sin(x:Extended):Extended

Retorna o valor do seno de x (x em radianos).

Sqr(x:Extended):Extended

Retorna o valor de x elevado ao quadrado (x2).

SqRt(x:Extended):Extended

Retorna a raiz quadrada de x.

Trunc(x:Extended):Int64

Retorna a parte inteira do valor, sem arredondamento.

.

.

.

5.5. Exercícios

1. Converter as equações abaixo para a Notação Delphi.

a)

Solução: Y:=Exp(X)+SqRt(X);

b)

Solução: Y:=Exp(Abs(X))+SqRt(Abs(X));

c)

Solução: Y:=(Sqr(X)+Sin(X))/2;

d)

Solução: Y:=(SqRt(Abs(X))+2*X)/(X+3);

e)

Solução: Y:=IntPower(X,5)+Power(X,1/3)+Power(X,2.5);

f)

Solução: Y:=Log10(X)+Ln(X)+Log2(X);

g)

Solução: Y:=LogN(8,SqRt(Abs(X+2)));

 h)

Solução: Y:=Tan(X)+1/Cos(X)+Pi;

i)

Solução:

FX:=SqRt((Sqr(Alfa)+Sqrt(Beta))/(Gama+Delta));

j)

Solução:

Z:=(SqRt(Sqr(X)+Sqr(Y))+Tan(X/Y)+IntPower(Pi,3))/

(Power(X+Y,3/5)+LogN(3,SqRt(Abs(X+Y))));

.

.

.

9. Dadas as coordenadas (X,Y) dos 3 vértices de um triângulo qualquer, elaborar um Programa Delphi para calcular e exibir:

a) o tamanho dos lados a, b e c do triângulo

b) a Área do triângulo

c) o Perímetro do triângulo

Sugestão: utilizar as fórmulas da Distância e da Área (Hierão) vistas nos exercícios anteriores.

Solução:

procedure TForm1.Button1Click(Sender: TObject);
var
 x1, y1, x2, y2, x3, y3, a, b, c, sp, s: Double;
begin
 x1:=StrToFloat(Edit1.Text);
 y1:=StrToFloat(Edit2.Text);
 x2:=StrToFloat(Edit3.Text);
 y2:=StrToFloat(Edit4.Text);
 x3:=StrToFloat(Edit5.Text);
 y3:=StrToFloat(Edit6.Text);
 a:=SqRt(Sqr(x2-x1)+Sqr(y2-y1));    // Calcula o Lado A
                                    // como sendo a
                                    // distância entre
                                    // os Pontos 1 e 2
 b:=SqRt(Sqr(x3-x2)+Sqr(y3-y2));    // Calcula o Lado B
                                    // como sendo a
                                    // distância entre
                                    // os Pontos 2 e 3
 c:=SqRt(Sqr(x3-x1)+Sqr(y3-y1));    // Calcula o Lado C
                                    // como sendo a
                                    // distância entre
                                    // os Pontos 3 e 1
 sp:=(a+b+c)/2;                     // Calcula o Semi-
                                    // Perímetro
 s:=SqRt(sp*(sp-a)*(sp-b)*(sp-c));  // Calcula a Área
 Edit7.Text:=FloatToStr(a);       
 Edit8.Text:=FloatToStr(b);
 Edit9.Text:=FloatToStr(c);
 Edit10.Text:=FloatToStr(s);
 Edit11.Text:=FloatToStr(a+b+c);
end;

Comentário:

Observe que em primeiro lugar devemos calcular os lados do triângulo pois os demais cálculos dependem destes valores. Em seguida, calculamos o semi-perímetro e, por último, a área que depende tanto dos lados quanto do semi-perímetro.