Funções e Procedimentos      Prof. Adriano Teixeira de Souza
   Procedimentos – são estruturas que agrupam um    conjunto de comandos, que são executados    quando o procedimento é c...
   Evitam que os blocos do programa fiquem grandes    demais e mais difíceis de ler e entender.   Ajudam a organizar o p...
<tipo> nome_da_função (<tipo> arg1, <tipo>arg2, ...,                      <tipo> argN){<corpo da função>return valor_de_re...
   Exemplo de uma função:       int soma(int a, int b)       {       int c;       c = a + b;       return c;       }     ...
Toda função deve ter um tipo                     Os argumentos (ou parâmetros)(String, int, float), o qual indicará o     ...
   Uma função pode não ter argumentos, basta    não informá-los. Exemplo:       int random()       {       Random rand = ...
   A expressão contida no comando return é    chamado de valor de retorno da função.   Esse comando é sempre o último a ...
   Uma forma clássica de realizarmos a invocação (ou    chamada) de uma função é atribuindo o seu valor a    uma variável...
   Função que calcula a soma dos valores de x e    y:      static int x, y, resultado;      static int soma(int a, int b)...
   As variáveis x e y no exemplo anterior são    chamadas de parâmetros reais.   Conforme exemplo anterior, os argumento...
   É utilizado em procedimentos.   É um tipo que representa o “nada”, ou seja:    ◦ uma variável desse tipo armazena con...
void nome_do_procedimento (<tipo>parâmetro1,             <tipo> parâmetro2, ..., <tipo>parâmetroN){<corpo do procedimento>...
   Exemplo de procedimento:      void imprime_dobro(int x)      {      System.out.println("Dobro de x: ”+ 2*x);      }   ...
   Para invocarmos um procedimento, devemos    utilizá-lo como qualquer outro comando:       procedimento(parâmetros);  ...
static int x, y, resultado;static void soma(){resultado = x + y;}public static void main(String[] args){x = 3;y = 5;soma()...
   Parâmetros ou argumentos são os valores    recebidos e/ou retornados por uma função.   Podem ser divididos em duas ca...
Parâmetros formaisstatic int soma(int a, int b){return (a + b);}public static void main(String[] args){int x = 3;int y = 5...
   É o mecanismo de informar sobre quais valores o    processamento definido na função deve ser realizado.   Os parâmetr...
0001 1001    Os valores das                                                       0101 1010                              ...
 Quando passamos uma variável do tipo  primitivo para um método chamamos esta  passagem de passagem por valor. A variáve...
Exemplo de passagem de parâmetro por valorpublic class PassagemValor {  public static int quadrado(int x) {    x=x*x;    r...
Toda passagem de parâmetros no Java              é feita por valor!A cada chamada de método, os parâmetrossão copiados e e...
   Os valores das variáveis externas não são passados    para a função, mas sim os seus endereços.   Ocorre alteração no...
0001 1001      0101 1010      1111 0101      1011 0011      0000 0001      0001 1001var   0101 1010      1111 0101      10...
   Uma desvantagem da passagem por valor é que, se    um item de dados grande está sendo    passado, copiar esses dados p...
   No caso de objetos, a referência dos    mesmos é passada por valor, portanto não é    possível alterar a referência de...
   Quando passamos uma variável do tipo    objeto, na realidade apenas a referência do    objeto é passada para o método....
public class PassagemObjetos {  public static void alteraMsg(StringBuffer sb) {    sb.append(“ alterada”);  }    public st...
   Outra forma de se utilizar objetos para passar    parâmetros é utilizando “arrays”.   Ao invés de passar uma variável...
public class PassagemObjetosArray {  public static void quadrado(int i[]) {    i[0]=i[0]*i[0];  }    public static void ma...
   1) Faça um programa que:    ◦ Leia um vetor “turma” de 5 alunos    ◦ Cada registro/objeto de aluno deve ter o numero d...
   2) Escreva um programa em Java que manipule um vetor de    registros com dados de 10 trabalhadores de uma empresa,    ...
Upcoming SlideShare
Loading in...5
×

Estrutura de Dados em Java (Funções e Procedimentos)

16,981

Published on

Published in: Technology
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total Views
16,981
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
318
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Estrutura de Dados em Java (Funções e Procedimentos)"

  1. 1. Funções e Procedimentos Prof. Adriano Teixeira de Souza
  2. 2.  Procedimentos – são estruturas que agrupam um conjunto de comandos, que são executados quando o procedimento é chamado. Funções – são procedimentos que retornam um valor ao seu término. A Linguagem Java não faz distinção. Prof. Adriano Teixeira de Souza
  3. 3.  Evitam que os blocos do programa fiquem grandes demais e mais difíceis de ler e entender. Ajudam a organizar o programa. Permitem reaproveitamento de códigos construídos anteriormente. Evitam repetição de trechos de códigos, minimizando erros e facilitando alterações. Prof. Adriano Teixeira de Souza
  4. 4. <tipo> nome_da_função (<tipo> arg1, <tipo>arg2, ..., <tipo> argN){<corpo da função>return valor_de_retorno;} Prof. Adriano Teixeira de Souza
  5. 5.  Exemplo de uma função: int soma(int a, int b) { int c; c = a + b; return c; } Prof. Adriano Teixeira de Souza
  6. 6. Toda função deve ter um tipo Os argumentos (ou parâmetros)(String, int, float), o qual indicará o indicam o tipo e quais valores sãotipo de seu valor de retorno esperados para serem manipulados(saída). pela função (entrada). int soma(int a, int b) { int c; Corpo da função c = a + b; return c; } Prof. Adriano Teixeira de Souza
  7. 7.  Uma função pode não ter argumentos, basta não informá-los. Exemplo: int random() { Random rand = new Random(); return rand.nextInt(100); } Prof. Adriano Teixeira de Souza
  8. 8.  A expressão contida no comando return é chamado de valor de retorno da função. Esse comando é sempre o último a ser executado por uma função. Nada após ele será executado. As funções só podem ser declaradas fora de outras funções. Lembre-se que o corpo do programa principal (main(String[] args)) é uma função! Prof. Adriano Teixeira de Souza
  9. 9.  Uma forma clássica de realizarmos a invocação (ou chamada) de uma função é atribuindo o seu valor a uma variável: resultado = soma(x,y); Na verdade, o resultado da chamada de uma função é uma expressão, que pode ser usada em qualquer lugar que aceite uma expressão: System.out.println("Soma: ”+ soma(a,b) ); Prof. Adriano Teixeira de Souza
  10. 10.  Função que calcula a soma dos valores de x e y: static int x, y, resultado; static int soma(int a, int b){ return (a + b); } public static void main(String[] args){ x = 3; y = 5; resultado = soma(x, y); System.out.println(resultado); } Prof. Adriano Teixeira de Souza
  11. 11.  As variáveis x e y no exemplo anterior são chamadas de parâmetros reais. Conforme exemplo anterior, os argumentos não possuem necessariamente os mesmos nomes que os parâmetros que a função espera. Seus valores são apenas copiados para a função chamada, sem ser afetados pelas alterações nos parâmetros dentro da função. Prof. Adriano Teixeira de Souza
  12. 12.  É utilizado em procedimentos. É um tipo que representa o “nada”, ou seja: ◦ uma variável desse tipo armazena conteúdo indeterminado, ◦ uma função desse tipo retorna um conteúdo indeterminado. Indica que uma função não retorna nenhum valor, ou seja, é um procedimento. Prof. Adriano Teixeira de Souza
  13. 13. void nome_do_procedimento (<tipo>parâmetro1, <tipo> parâmetro2, ..., <tipo>parâmetroN){<corpo do procedimento>} Prof. Adriano Teixeira de Souza
  14. 14.  Exemplo de procedimento: void imprime_dobro(int x) { System.out.println("Dobro de x: ”+ 2*x); } Prof. Adriano Teixeira de Souza
  15. 15.  Para invocarmos um procedimento, devemos utilizá-lo como qualquer outro comando: procedimento(parâmetros); Compare a diferença de invocação de uma função: resultado = função(parâmetros); Prof. Adriano Teixeira de Souza
  16. 16. static int x, y, resultado;static void soma(){resultado = x + y;}public static void main(String[] args){x = 3;y = 5;soma();System.out.println(resultado);} Prof. Adriano Teixeira de Souza
  17. 17.  Parâmetros ou argumentos são os valores recebidos e/ou retornados por uma função. Podem ser divididos em duas categorias: ◦ Formais: correspondem aos parâmetros utilizados na definição da função. ◦ Reais: correspondem aos parâmetros da função chamadora utilizados para chamar a função. Prof. Adriano Teixeira de Souza
  18. 18. Parâmetros formaisstatic int soma(int a, int b){return (a + b);}public static void main(String[] args){int x = 3;int y = 5;System.out.println(soma(x + y));} Parâmetros reais Prof. Adriano Teixeira de Souza
  19. 19.  É o mecanismo de informar sobre quais valores o processamento definido na função deve ser realizado. Os parâmetros são passados para uma função de acordo com a sua posição. Os parâmetros formais de uma função se comportam como variáveis locais (criados na entrada e destruídos na saída) No caso do Java, esta variável pode representar um tipo primitivo ou um objeto. Existem duas categorias: ◦ Por valor ◦ Por referência Prof. Adriano Teixeira de Souza
  20. 20. 0001 1001 Os valores das 0101 1010 1111 0101 variáveis externas 1011 0011 0000 0001 (função chamadora) var 0001 1001 são copiados para as 0101 0000 1010 0001 1111 0001 0101 1001 variáveis internas da 1011 0101 0000 1111 0011 1010 0001 0101 função chamada. 0001 1001 0101 1010 1111 0101 Alteração no valor das 1011 0011 0000 0001 variáveis terá efeito var_interna 0001 1001 local à função 0101 1010 1111 0101 chamada. 1011 0011 0000 0001 0001 1001 0101 1010 1111 0101 1011 0011 Prof. Adriano Teixeira de Souza
  21. 21.  Quando passamos uma variável do tipo primitivo para um método chamamos esta passagem de passagem por valor. A variável original que foi informada na chamada da função não é alterada. Uma cópia do valor da mesma é passada para ser utilizada dentro do método. Por isso chamamos de passagem por valor.
  22. 22. Exemplo de passagem de parâmetro por valorpublic class PassagemValor { public static int quadrado(int x) { x=x*x; return x; } public static void main(String args[]) { int x = 3,y; y = quadrado(x); System.out.println(“quadrado de ”+x+“=”+y); }}
  23. 23. Toda passagem de parâmetros no Java é feita por valor!A cada chamada de método, os parâmetrossão copiados e estas cópias são utilizadas naexecução do mesmo.
  24. 24.  Os valores das variáveis externas não são passados para a função, mas sim os seus endereços. Ocorre alteração no valor das variáveis externas. Prof. Adriano Teixeira de Souza
  25. 25. 0001 1001 0101 1010 1111 0101 1011 0011 0000 0001 0001 1001var 0101 1010 1111 0101 1011 0011 0000 0001 0001 1001 0101 1010 1111 0101 1011 0011 0000 0001 0001 1001 0101 1010 1111 0101 1011 0011 0000 0001 0001 1001 0101 1010 1111 0101 1011 0011 Prof. Adriano Teixeira de Souza
  26. 26.  Uma desvantagem da passagem por valor é que, se um item de dados grande está sendo passado, copiar esses dados pode consumir um tempo de processamento considerável. Prof. Adriano Teixeira de Souza
  27. 27.  No caso de objetos, a referência dos mesmos é passada por valor, portanto não é possível alterar a referência de uma variável através de um método. Mas o conteúdo dos objetos podem ser alterados e estes são mantidos mesmo após a execução do método. Por isso merecem um tratamento diferenciado.
  28. 28.  Quando passamos uma variável do tipo objeto, na realidade apenas a referência do objeto é passada para o método. O objeto em questão está ativo e acessível através desta referência. Os atributos dos objetos podem ser alterados e estas alterações serão mantidas mesmo após a execução do método.
  29. 29. public class PassagemObjetos { public static void alteraMsg(StringBuffer sb) { sb.append(“ alterada”); } public static void main(String args[]) { StringBuffer sb = new StringBuffer(“mensagem”); alteraMsg(sb); System.out.println(sb.toString()); }}
  30. 30.  Outra forma de se utilizar objetos para passar parâmetros é utilizando “arrays”. Ao invés de passar uma variável diretamente por parâmetro utilizamos um vetor da seguinte forma:
  31. 31. public class PassagemObjetosArray { public static void quadrado(int i[]) { i[0]=i[0]*i[0]; } public static void main(String args[]) { int i[] = new int[1]; i[0]=3; quadrado(i); System.out.println(“resultado=”+i[0]); }}Note que utilizamos um vetor de uma posição só. Não é uma soluçãoelegante, pois à primeira vista do programa podemosequivocadamente imaginar que o vetor possui uma função diferente.Pois o conceito de vetor não foi idealizado para esta finalidade.
  32. 32.  1) Faça um programa que: ◦ Leia um vetor “turma” de 5 alunos ◦ Cada registro/objeto de aluno deve ter o numero de matrícula do aluno e suas notas de 4 bimestres. ◦ Faca um procedimento que Imprima a lista de matrícula e notas de cada aluno ◦ Faca uma funcao que tenha como parametro um objeto Aluno e retorne a média das 4 nota ◦ Percorra o vetor de alunos e imprima a matricula e a média calculada( pela funcao criada) para cada aluno. Prof. Adriano Teixeira de Souza
  33. 33.  2) Escreva um programa em Java que manipule um vetor de registros com dados de 10 trabalhadores de uma empresa, conforme a estrutura a seguir: ◦ int id; ◦ String nome; ◦ char sexo; ◦ float salario; O programa deve ter as seguintes funções: ◦ a) uma função para ler os dados dos 10 funcionários. ◦ b) uma procedimento que receba por referência a lista e exiba os dados dos 10 funcionários. ◦ c) uma função que receba, como parâmetro, um caractere correspondente ao sexo e a lista para exibir os dados somente dos funcionários do respectivo sexo. ◦ d) uma procedimento que receba por referência a lista de funcionários e atualize o salário de todos os funcionários de acordo com o percentual informado como parâmetro. Prof. Adriano Teixeira de Souza
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×