Вы находитесь на странице: 1из 23

Professor: Jos Carrra

profjosecarrera@gmail.com http://ead.gilsonteixeira.com

Sumrio - Funes
Introduo Funes Variveis Locais x Variveis Globais Funes com parmetros

Passagem por Valor Passagem por Referncia

Exerccios

Introduo - Funes

um bloco de programa.
Aplicam-se todas as regras de programao j estudadas. A diferena em relao a um procedimento est no fato de sempre retornar um valor.
3

Funes

Sintaxe:
Function Identificador: tipo de dado ; var <variveis> Begin <instrues> End;

Onde:

Identificador o nome da funo. Tipo de dado indica o tipo que ser retornado.
4

Funes

Estrutura de programa autnoma que est includa num programa Pascal. Nele podemos utilizar todos os elementos j vistos anteriormente em pascal, como se fosse um programa completo.

Para isso, precisamos declarar e chamar a funo.


Obs: Em Pascal as funes devem ser definidas antes do programa principal.
5

Funes
Function Identificador: tipo de dado ; ...

Tipo de dado necessariamente um tipo de dado simples ou uma string. Esse tipo de dado associado funo chamado de tipo da funo
6

Funes

No corpo da funo dever existir uma atribuio do tipo:


... Identificador := Expresso ; ...

Obrigatrio

O valor desta expresso o que ser retornado para o processamento.


7

Declarao e Retorno

Exemplo: Criar uma funo que verifica se nmero par, retornando TRUE ou FALSE.
Function parOuImpar:boolean; Var num:integer; Begin write('Digite um numero: '); read(num); if(num mod 2 = 0) then parOuImpar := true else parOuImpar := false; end;

Exemplo: Criar o programa principal, que chama a funo par ou impar. Program exemplo; Var opcao:integer; x:boolean; Begin writeln('--- Menu Principal ---'); writeln(' 1 - Par ou Impar'); writeln('Escolha uma opo: '); read(opcao); if (opcao=1) then x:=parOuImpar; writeln('funcao retornou: ', x); End.

Chamada

Variveis Globais X Locais

Variveis Globais:
Declarada no incio de um programa. Pode ser utilizada por qualquer procedimento ou funo.

Variveis Locais:
Declarada dentro de uma funo ou procedimento. valida apenas dentro da subrotina que est declarada.
10

Funes

Variveis Globais

Variveis Locais
Function parOuImpar:boolean; Var num:integer; begin ... end;
11

Program exemplo; Var opcao:integer; x:boolean; begin ... End.

Sintaxe:

Funes com Parmetros


Function Nome (parmetros):tipo da funo; var <variveis> Begin <instrues> End;

Onde:

Nome o identificador do procedimento. Parmetros so os dados esperados pelo procedimento.


12

Funes com Parmetros


Parmetros:

Servem como ponto de comunicao entre o programa principal e a rotina. Asseguram que a rotina receber os dados necessrios para execuo. Podem ser passados de duas formas: por valor e por referncia
13

Funes com Parmetros

Passagem por Valor:

Caracteriza-se pela no alterao do valor do parmetro real, quando este manipulado dentro da rotina. O contedo da varivel passada copiado para a rotina, onde, qualquer modificao no afeta o valor real.

Declarao dos parmetros no precedida por var


14

Funes com Parmetros


Declarao Passagem por Valor Exemplo: Funo que realiza o clculo do fatorial de um nmero inteiro e retorna o resultado.

Function fatorial(num:integer):integer; Var fat, i:integer; Begin fat:=1; for i:=1 to num do fat:= fat*I; fatorial:= fat; end;

15

Exemplo: Criar o programa principal, que chama a funo fatorial.


Program fat_ex1; Var opcao, numero, resp:integer; begin writeln(Menu Principal); writeln(1 Fatorial); write(Escolha uma opo: ); read(opcao); if (opcao=1) then begin writeln(Calcular o fatorial de que numero?); readln(numero); resp :=fatorial(numero); writeln(Fatorial de , numero, , resp); end; End.

Funes com Parmetros

16

Exemplo: Criar o programa principal, que chama a funo fatorial.


Program fat_ex1; Var opcao, numero:integer; begin write(Menu Principal); write(1 Fatorial); write(Escolha uma opo: ); read(opcao); if (opcao=1) then begin writeln(Calcular o fatorial de que numero?); readln(numero); writeln(Fatorial de , numero, , fatorial(numero)); end; End.

Funes com Parmetros

17

Funes com Parmetros

Passagem por Referncia:

Caracteriza-se pela alterao do valor do parmetro real, quando este manipulado dentro da rotina. O parmetro passado referenciado pela rotina, onde, qualquer modificao afeta o valor real. Parmetros so precedidos da palavra reservada var
18

Funes com Parmetros


Declarao Passagem por Referncia Exemplo: Funo que recebe um nmero real, separa a parte inteira da fracionria e retorna o valor original.

Function numeroReal(var a:real):real; Begin parteFracionaria:= frac(a); parteInteira:= trunc(a); numeroReal:= parteInteira + parteFracionaria; end;
19

Funes com Parmetros

Exemplo: Criar o programa principal, que chama a funo numeroReal.


Program ex2; Var numero, parteFracionaria, parteInteira:real; Begin write(Digite um nmero real: ); write('Digite um nmero real: '); read(numero); numero:= numeroReal(numero); writeln('Numero digitado foi: ', numero); writeln('Parte Inteira :', parteInteira); writeln('Parte Fracionria', parteFracionaria); End.

20

Subprogramas

Exerccio 1:

Faa um programa contendo uma sub-rotina que retorne 1 se o nmero digitado for positivo ou 0 se for negativo.

Ex1 Lista

21

Subprogramas

Exerccio 2:

Elabore um programa contendo uma subrotina que receba as trs notas de um aluno como parmetros em uma letra. Se a letra for A, a sub-rotina dever calcular a mdia aritmtica das notas do aluno; se for P, dever calcular a mdia ponderada com pesos 5, 3 e 2. A mdia calculada dever ser devolvida ao programa principal para, ento, ser mostrada. Ex 7 Lista
22

Material disponvel em: http://ead.gilsonteixeira.com

profjosecarrera@gmail.com
23

Вам также может понравиться