2
1 Paradigmas da Programação Procedimentos & Funções Procedimentos & Funções O que é uma função ? O que é uma função ? é uma parte de um programa, conhecida como subprograma que: calcula e retorna um valor como resultado de sua execução somente é executada quando recebe uma ´chamada´ program <nome>; Uses.... Const... Type..... Var .... Begin x := fatorial(n);... End; Function fatorial... Exemplo de declaração Exemplo de declaração Function fatorial(Num:integer):longint; Var {variaveis locais} i:integer; temp:longint; Begin temp:= 1; for i:= Num downto 1 do temp:=temp*i; fatorial:= temp; {resultado da funcao} End; cabeçalho Partes da declaração cabeçalho da função: identifica seu nome e seus parâmetros: fatorial = nome da função (num:integer) = parâmetros de definição :longint = tipo do resultado Function fatorial(num:integer):longint; corpo da função: é a parte executável: Var ... Begin ... End; Exemplo de corpo Exemplo de corpo Var {variaveis locais} i:integer; temp:longint; Begin temp:= 1; for i:= num downto 1 do temp:=temp*i; fatorial:= temp; End; seção Var define as variáveis locais que somente são validas no corpo da função expressão-> fatorial:= temp indica o valor de retorno resultante da execução da função. Como uma função é ativada? Através de uma chamada da função (invocação), que indica seu nome e os argumentos usados para sua execução Os argumentos devem concordar com os parâmetros (definição) quanto a: - tipo: mesmo tipo de dado - numero: mesma quantidade - ordem: os argumentos são associados aos parâmetros na mesma ordem

PL11a - Funcoes

Embed Size (px)

DESCRIPTION

ok

Citation preview

1

Paradigmas da Programação

Procedimentos & FunçõesProcedimentos & Funções

O que é uma função ?O que é uma função ?

é uma parte de um programa, conhecida como subprogramaque:

– calcula e retorna um valor como resultado de sua execução

– somente é executada quando recebe uma ´chamada´

program <nome>;Uses....Const...Type.....Var ....

Beginx := fatorial(n);...End;

Function fatorial...

Exemplo de declaraçãoExemplo de declaração

Function fatorial(Num:integer):longint;

Var {variaveis locais}

i:integer;

temp:longint;

Begin

temp:= 1;

for i:= Num downto 1 do

temp:=temp*i;

fatorial:= temp; {resultado da funcao}

End;

cabeçalho

Partes da declaração

cabeçalho da função: identifica seu nome e seus parâmetros:

• fatorial = nome da função

• (num:integer) = parâmetros de definição

• :longint = tipo do resultado

Function fatorial(num:integer):longint;

corpo da função: é a parte executável:Var

...Begin...

End;

Exemplo de corpoExemplo de corpo

Var {variaveis locais}

i:integer;

temp:longint;

Begin

temp:= 1;

for i:= num downto 1 do

temp:=temp*i;

fatorial:= temp;

End;

seção Var define as variáveis locais que somente são validas no corpo da função

expressão-> fatorial:= temp indica o valor de retorno resultante da execução da função.

Como uma função é ativada?

Através de uma chamada da função (invocação), que indica seu nome e os argumentos usados para sua execução

Os argumentos devem concordar com os parâmetros (definição) quanto a:

- tipo: mesmo tipo de dado

- numero: mesma quantidade

- ordem: os argumentos são associados aos parâmetros na mesma ordem

2

Invocação de funções

Exemplos de chamada

x := fatorial(5);

res := fatorial(n) / fatorial(p);

Após a execução da função:

– todas as variáveis locais são destruídas;

– a execução do programa prossegue no ponto de invocação.

programa

função

chama B (p1, p2)

B(f1, f2)

chamada

retorno

Arrays como parâmetros

Arrays usados na definição de parâmetros deve ser definidos na seção Type;

O nome do tipo é usado na definição do parâmetro.

Type

uni = array [1..5] of real;

bidi = array[1..3, 1..4] of real;

Var ... function f (vet:uni, mat:bidi):real;

Exemplo de arrays como parâmetros

typevet120=array[1..20] of integer;

varvalores:vet120;i, num, total: integer;{ *** funcao que pesquisa o array ***}function Pesquisa(vet:vet120; val:integer):boolean;var

ind:integer;begin

pesquisa:=false;for ind:= 1 to 20do if vet[ind] = val

then pesquisa:=true;end; {*** pesquisa ***}

função que devolve True se o vetor contiver o valor informado e False caso contrário

Responda as questões sobre a Responda as questões sobre a função UpCaseStr:função UpCaseStr:

function UpCaseStr(S: string): string;

var

I: Integer;

begin

for I := 1 to length(S) do

if (S[I] >= 'a') and (S[I] <= 'z') then .....;

UpCaseStr := S;

end;

QuestõesQuestões

Qual é o tipo de RESULTADO fornecido pela função UpCaseStr? E o tipo do ARGUMENTO (parâmetro)?

Qual a finalidade do comando --UpCaseStr := S; -- ?

Quais são as variáveis LOCAIS ?

Qual é a outra função chamada por UpCaseStr?