Upload
marcoalves
View
214
Download
0
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?