segunda-feira, 5 de novembro de 2007

Procedimentos e Funções Predefinidas usuais do Object Pascal

A linguagem Pascal coloca disponível aos usuários um conjunto de funções e procedimentos distribuídos em UNITS (as units são rotinas compiladas separadamente do programa principal), com a finalidade de facilitar e agilizar a programação.

1.1 Manipulação de strings

1.1.1 CHR

Retorna o carácter correspondente ao código ASCII fornecido.

Ex:

Var

P : TextFile;

Begin

AssignPrn(P);

Rewrite(P);

Writeln(P, chr(12) , ‘Testando a Impressora’);

CloseFile(P);

End;

1.1.2 CONCAT

Concatenar as strings especificadas.

Ex:

var

S: string;

Begin

S := Concat('ABC', 'DEF'); { 'ABCDEF' }

End;

1.1.3 COPY

Retorna uma substring de uma string , isto é, retorna uma parte se S, desde inicio e com o tamanho especificado.

Ex:

var

s, s1 : string;

begin

s := 'ABCDEF';

s1 := Copy(s, 2, 3) { 'BCD' }

End;

1.1.4 DELETE

Elimina parte da string S; começa em inicio com o tamanho especificado.

Ex:

var

s: string;

Begin

s := 'Honest Abe Lincoln';

Delete(s,8,4);

WriteLn(s); { 'Honest Lincoln' }

End.

1.1.5 INSERT

Insere um string origem em s a partir da posição inicio.

Ex:

var

s: string;

Begin

s := 'Honest Lincoln';

Insert('Abe ', s, 8);

WriteLn(s); { 'Honest Abe Lincoln' }

End.

1.1.6 LENGTH

Retorna o número de caracteres da string.

Ex:

var

S : string;

Begin

read(S);

write(length(S));

End.

1.1.7 POS

Retorna a posição do inicio da string s1 dentro do string s2. (retorna 0 se não encontrar)

Ex:

var s: string;

Begin

s := ' 123.50';

{ Converte espaços para zeros }

while Pos(' ', s) > 0 do

s[Pos(' ', s)] := '0';

End.

1.1.8 UPPERCASE - LOWERCASE

Uppercase - Retorna o String com letras maiúsculas.

Lowercase - Retorna o String com letras minúsculas.

Ex:

Uses Sysutils;

var

s : string;

i : Integer;

Begin

Write('Digite um string: ');

ReadLn(s);

WriteLn('Conversão do string para maiúsculo: ',Uppercase(s));

Readln;

End.

1.1.9 STR

Transforma um número em representação string; x pode ser inteiro ou real; S passa a conter representação string de x com a largura e casas decimais especificadas.

Ex:

var

F : string;

N : integer;

begin

N:=1492;

str(N:7,F);

write(F); (* ' 1492' *)

end.

1.1.10 VAL

Converte string S em numero n. A posição de qualquer erro na string S é reportada no parâmetro código. Se código = 0, a conversão foi feita com sucesso.

Ex:

Program conver;

var

X : string;

Y,Z : integer;

begin

X:='9876';

Val(X,Y,Z);

writeln(Y);

writeln(Z);

readln;

end.

1.1.11 TRIM – TRIMLEFT - TRIMRIGHT

Trim - Retira espaços a esquerda e direita da string

TrimLeft - Retira espaços a esquerda da string

TrimRight - Retira espaços a direita da string

Ex:

If Trim(EditNome.Text) = ‘’ then

Begin

ShowMessage(‘Falta Informar o Nome’);

EditText.SetFocus;

Exit;

End;

1.1.12 ORD

Retorna o código ASCII do caractere da variável x.

Ex:

program MINUSCULA;

var I:integer;

(* MINUSC retorna um string com caracteres Minúsculos*)

function MINUSC(C : STRING) : STRING;

var

I : integer;

begin

for I := 1 to length(C) do

if (ord(C[I]) >= 65) and (ord(C[I]) <= 90)

then

C[I] := chr(ord(C[I])+32);

MINUSC := C;

end;

begin

writeln(MINUSC('ABCDEFGHIJKLMNOPQRSTUVWXYZ'));

writeln(MINUSC('FACE FUMEC.'));

readln;

end.

1.2 Manipulação Numérica

1.2.1 ABS

Retorna o valor absoluto de x.

Ex:

var

r: real;

i: Integer;

begin

r := Abs(-2.3); { 2.3 }

i := Abs(-157); { 157 }

end.

1.2.2 EXP

Retorna o valor de e(e=2.7182818285E+00) elevado a potência x.

Exemplo:

begin

WriteLn('e = ',Exp(1.0));

end.

1.2.3 LN

Retorna o logaritmo natural de x (base e=2.7182818285E+00).

Exemplo:

program exponencial;

var

I : integer;

{ função para calcular um exponencial }

function pot (X,Y : real) : real; {X**Y}

begin

pot:=exp(Y*ln(X));

end;

{ Programa Principal }

begin

for I:=1 to 10 do

begin

writeln (I:2 , '**' , 3 ,' = ',pot(I,3):0:2);

end;

readln;

end.

1.2.4 FRAC

Retorna a parte fracionaria de x.

Exemplo:

var

S : string;

begin

str(Frac(123.456):7:3,S); { 0.456 }

Writeln(S);

str(Frac(-123.456):7:3,S); { -0.456 }

Writeln(S);

readln;

end.

1.2.5 INT

Retorna a parte inteira de x.

Exemplo:

var

r: real;

begin

r := Int(123.456); { 123.0 }

r := Int(-123.456); { -123.0 }

end.

1.2.6 ROUND

Retorna o valor de x arredondado para um inteiro.

Exemplo:

begin

WriteLn(1.4, ' arredonda para ', Round(1.4));

WriteLn(1.5, ' arredonda para ', Round(1.5));

WriteLn(-1.4, ' arredonda para ', Round(-1.4));

WriteLn(-1.5, ' arredonda para ', Round(-1.5));

Readln;

end.

1.2.7 TRUNC

Retorna a parte inteira de x descartando a parte decimal.

Exemplo:

begin

WriteLn(1.4, ' truncar para ', Trunc(1.4));

WriteLn(1.5, ' truncar para ', Trunc(1.5));

WriteLn(-1.4, ' truncar para ', Trunc(-1.4));

WriteLn(-1.5, ' truncar para ', Trunc(-1.5));

Readln;

end.

1.2.8 SQR

Retorna o quadrado de x.

Exemplo:

writeln (‘O quadrado de x = ‘ , SRQ(X));

1.2.9 SQRT

Retorna a raiz quadrada de x

Exemplo:

begin

WriteLn('5 ao quadrado = ', Sqr(5));

WriteLn('A raiz quadrada de 2 = ', Sqrt(2.0));

end.

1.2.10 ODD

Retorna true se o valor de X e um número impar.

Exemplo:

If ODD(X) then Write(‘X é um número Impar’);

1.3 MANIPULAÇÃO DE TIPOS ESCALARES

1.3.1 PRED

Função encarregada de reconhecer o elemento, que antecede X no conjunto considerado. O resultado e do mesmo tipo do

parâmetro X.

Exemplo:

var

x : char;

begin

x:=‘C’;

write(PRED(x)); { ‘B’ }

end.

1.3.2 SUCC

Função encarregada de reconhecer o elemento, que sucede X no conjunto considerado. O resultado e do mesmo tipo do

parâmetro X.

Exemplo:

var

x : char;

begin

x:=‘C’;

write(SUCC(x)); { ‘D’ }

end.

1.4 Controle de memória

1.4.1 SIZEOF

Retorna o número de bytes ocupados pelo argumento.

Exemplo:

var

s : string[35];

begin

write(sizeof(S)); { 36 }

Readln;

end.

1.5 Interagindo com o sistema operacional

1.5.1 CHDIR

ChDir muda de diretório corrente.

Exemplo:

begin

{$I-}

{ mudar para o diretório especificado em Edit1 }

ChDir(Edit1.Text);

if IOResult <> 0 then

ShowMessage('Diretório não foi encontrado');

end;

1.5.2 GETDIR

Retorna o path do diretório ativo do drive especificado (acionador default=0,A=1,B=2,...). Retorna -1 se o drive não estiverpresente.

Exemplo:

var

s : string;

begin

GetDir(0,s); { 0 = Current drive }

writeln('Drive e diretório corrente: ' + s);

readln;

end.

1.5.3 MKDIR

Cria um subdiretório especificado em PATH.

Exemplo:

Mkdir(‘\tp\fontes\tmp’);

1.5.4 RMDIR

Exemplo:

Rmdir (\ tp\fontes\tmp’);

1.6 Comandos de desvio

Outro recurso que existe na linguagem Object Pascal é a capacidade de desviar no código, isto é a capacidade de pular para outra parte do código, quando necessário.

1.6.1 GOTO

A instrução GOTO permite que você salte de onde está no programa para uma linha rotulada específica.

Exemplo:

Var

Resp: char;

Begin

Inicio:

Writeln(‘Ok’);

Writeln(‘Quer repetir?’);

Readln(Resp);

If Resp = ‘S’ then GOTO Inicio

End.

1.6.2 Comandos Break / Continue ( Desvios dentro da repetição)

Estes comandos, à exceção daqueles demonstrados até agora, não são de repetição condicional, mas possuem importante papel junto á estes. Eles são usados em apenas duas situações: (1) quando se deseja interromper o processamento de um estrutura de repetição - Break; (2) quando for necessário garantir a continuidade do processamento de uma estrutura de repetição - Continue.

Exemplo:

Var

I : Integer;

Begin

For I := 1 to 3 do If (I mod 2) <> 0 then Continue;

For I := 1 to 3 do If (I mod 2) = 0 then Break;

End;

1.6.3 EXIT

Use o comando EXIT para sair do bloco corrente. Se o bloco corrente é o programa principal EXIT faz o programa terminar. Se o bloco corrente está aninhado, EXIT faz com que o bloco mais externo continue na instrução imediatamente após a que passou o controle para o bloco aninhado. Se o bloco corrente é uma procedure ou função, EXIT provoca a saida da função ou procedure para continuar após o ponto em que foi chamado.

Exemplo:

Procedure Teste ( X : Integer) ;

Begin

IF X = 0 then EXIT;

...

...

End;

Nenhum comentário: