Buscar

AULA CAPITULO VII Funções

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

20172º Semestre
2Sumário 
➢ Subprogramas
➢ Criação
➢ Chamada
➢ Parâmetros
➢ Passagem por valor
➢ Passagem por referência
➢ Visibilidade
➢ Variáveis locais
➢ Variáveis globais
Subprogramas 3
➢ São estruturas que agrupam um conjunto de comandos, que são executados 
quando o subprograma é chamado / invocado retornando ou não um valor.
➢ Quando um subprograma não retorna nenhum valor é denominado de 
procedimento
➢ Quando um subprograma retorna um valor é denominado de função
➢ A linguagem Java não faz distinção
4Subprogramas
Vantagens
➢ Reduzem o tamanho do programa
➢ Evitam a repetição de trechos de códigos, minimizando erros e facilitando 
alterações
➢ Facilitam a compreensão e visualização do programa.
➢ Permitem o reaproveitamento de códigos construídos anteriormente
➢ Abstracção da implementação 
5Subprogramas
Funções
➢ Uma função é um conjunto de qualquer tipo de instruções. 
➢ Sintaxe
return-type function-name(argument declarations) 
{ 
declarações e expressões 
} 
➢ O return-type e argument são opcionais, exemplo: 
dummy() {}  usar void  void dumy(void){}
➢ Se a função não tiver retorno então passa a ser um procedimento
➢ A devolução do resultado de execução da função é devolvido usando a palavra reservada: 
return
Sumário 5
➢ Subprogramas
➢ Criação
➢ Chamada
➢ Parâmetros
➢ Passagem por valor
➢ Passagem por referência
➢ Visibilidade
➢ Variáveis locais
➢ Variáveis globais
Criação de um subprograma em JAVA 6
➢ Os subprogramas dividem-se em duas partes: o cabeçalho e as instruções
➢ O cabeçalho é constituído por:
static return-type function-name(argument declarations)
▪ static representa em OO, um espaço de memória partilhado para definição 
da função. 
▪ O return-type deverá apresentar apenas um tipo de dados (int, float, String, double
etc..) 
▪ O nome do subprograma function-name é escolhido pelo developer
(atenção!!!)
▪ Os argument podem ser em nº infinito 
➢ As instruções podem constar de todos os mecanismos conhecidos até agora: 
declaração de variáveis, sequência, decisão e repetição. 
Criação de um subprograma em JAVA 6
tipo_de_retorno nome_da_função Lista_de_argumentos
instrução
retorno_do_valor
Sumário 7
➢ Subprogramas
➢ Criação
➢ Chamada
➢ Parâmetros
➢ Passagem por valor
➢ Passagem por referência
➢ Visibilidade
➢ Variáveis locais
➢ Variáveis globais
8
➢ Cada subprograma é identificado por um nome que é atribuído pelo programador
o Significa que as instruções que o compõem são executadas apenas pela indicação 
desse nome seguido de um par de parêntesis curvos (), contendo a lista de 
parâmetros que o subprograma necessita para funcionar. 
➢ Quando não há parâmetros a usar, colocam-se apenas os parêntesis curvos ().
➢ Para utilizar um subprograma não é necessário saber como funciona internamente, mas 
sim conhecer os parâmetros esperados (quantidade, sequência e tipos de dados). 
➢ Valor de retorno do subprograma: 
• Quando existe: chamada é uma instrução autónoma 
• Quando não existe: chamada tem que ser integrada numa instrução, para que o 
valor devolvido possa ser utilizado. 
Chamada de um subprograma em Java
9Chamada de um subprograma em Java com 
retorno
➢ Output ?
➢ Chamada de um subprograma com retorno
10Chamada de um subprograma em Java sem 
retorno
➢ Chamada de um subprograma sem retorno
➢ Output ?
11Sumário
➢ Subprogramas
➢ Criação
➢ Chamada
➢ Parâmetros
➢ Passagem por valor
➢ Passagem por referência
➢ Visibilidade
➢ Variáveis locais
➢ Variáveis globais
12Parâmetros 
➢ Parâmetros são os valores recebidos e / ou retornados por uma função
➢ Parâmetros formais: variáveis definidas no cabeçalho da função
▪ static int funcao_exemplo(int valor_recebido) 
➢ Parâmetris reais: valores que em cada chamada se pretende que os parâmetros 
formais assumam
▪ int resultado = funcao_exemplo(2); 
13Sumário
➢ Subprogramas
➢ Criação
➢ Chamada
➢ Parâmetros
➢ Passagem por valor
➢ Passagem por referência
➢ Visibilidade
➢ Variáveis locais
➢ Variáveis globais
14Passagem por Valor
➢ Quando passamos uma variável do tipo primitivo para uma função 
chamamos esta passagem de passagem por valor
➢ Significa que não é o parâmetro real que é passado ao subprograma, mas 
sim uma cópia do seu valor.
➢ O que implica que o valor passado se mantem 
inalterável após a execução do subprograma, 
independentemente das alterações feitas ao 
parâmetro formal correspondente no interior do 
subprograma.
Passagem por valor
Exemplo
15
➢ Output ?
16Sumário
➢ Subprogramas
➢ Criação
➢ Chamada
➢ Parâmetros
➢ Passagem por valor
➢ Passagem por referência
➢ Visibilidade
➢ Variáveis locais
➢ Variáveis globais
17Passagem por referência
➢ Significa que é passado ao subprograma o parâmetro real (seu valor incluído) 
➢ não suportado pela linguagem JAVA de forma 
directa, suportado pela linguagem C. 
➢ Qualquer alteração efectuada pelo subprograma sobre o parâmetro formal é 
reflectido ao valor passado. 
18Passagem por referência
➢ Um dos mecanismos que o Java têm para realizar a passagem por referência é a 
utilização dos objectos
➢ Quando passamos uma variável do tipo objecto, na realidade apenas a referência do 
objecto é passada para a função. O objecto em questão fica activo e acessível desta 
referência.
➢ Os atributos dos objectos podem ser alterados e estas alterações serão mantidades
mesmo após a execução do método.
19Passagem por referência
➢ Output ?
Valor de sb antes chamada = Programação II 
Valor de sb apos chamada = Programação II é interessante
20Sumário
➢ Subprogramas
➢ Criação
➢ Chamada
➢ Parâmetros
➢ Passagem por valor
➢ Passagem por referência
➢ Visibilidade
➢ Variáveis locais
➢ Variáveis globais
Visibilidade 21
➢ Um subprograma não pode utilizar variáveis declaradas noutros subprogramas 
➢ As variáveis definidas em cada subprograma só são visíveis dentro desse subprograma. 
São invisíveis para todos os restantes subprogramas 
➢ Output ?
ERRO porque a variável número é apenas visível dentro subprograma muda
22Sumário
➢ Subprogramas
➢ Criação
➢ Chamada
➢ Parâmetros
➢ Passagem por valor
➢ Passagem por referência
➢ Visibilidade
➢ Variáveis locais
➢ Variáveis globais
23Variáveis Locais
➢Uma variável declarada dentro de um subprograma é chamada 
variável local ao subprograma 
➢Uma variável local é criada sempre que o subprograma é activado
e destruída sempre que o subprograma termina a execução 
➢É possível, por isso, declarar variáveis com o mesmo nome, mas em 
subprogramas diferentes. 
24Sumário
➢ Subprogramas
➢ Criação
➢ Chamada
➢ Parâmetros
➢ Passagem por valor
➢ Passagem por referência
➢ Visibilidade
➢ Variáveis locais
➢ Variáveis globais
25Variáveis globais
➢Variáveis declaradas fora de qualquer subprograma, têm a 
designação de variáveis globais 
➢As variáveis globais são criadas no início da execução do programa 
e só são destruídas no final de execução do programa 
➢As variáveis globais são visíveis em qualquer subprograma, e 
podem ser alteradas por qualquer subprograma 
26Variáveis globais
Exemplo
➢ variavelGlobal é uma variável global pois é visível ao longo de todo o programa
27Dúvidas
28Exercicios
➢ Qual o resultado deste Programa
36.0
28Exercicios
➢ Implemente uma função em Java para imprimir o conteúdo de um vector de 10 
posições. A função deve receber um parâmetro do tipo caractere que indica se o 
conteúdo deve ser exibido na ordem correta ou na ordem inversa (“C” para 
correta e “I” para inversa).
➢ Implemente uma função em Java que receba um nome por parâmetro e 
verifique se esse nome se encontranum vector. Retorne verdadeiro caso o valor 
se encontre e falso, caso contrário. 
➢ Crie um método que recebe um array de inteiros e retorna a quantidade de 
elementos do array que são números negativos.
➢ Crie um método que recebe um array de inteiros e um valor inteiro x e retorna a 
quantidade de vezes que x aparece no array a.

Outros materiais