ALGORITMOS  LP 1 

funções e procedimentos

em java

Professora Marcela Santos

profmarcelasantos@gmail.com

introdução

  • Imagine que uma determinada empresa de robótica precise gerar relatórios constantemente com o cabeçalho da empresa


  • Para automatizar essa operação um dos membros da equipe criou um programa em Java para gerar os relatórios e a as seguintes linhas para adicionar o cabeçalho:


System.out.println("*********Santos Robótica********* ");

System.out.println("contato@santosrobotica.com.br ");

    função ou procedimento


    • Depois de uma análise, o dono da empresa resolveu que o telefone deve aparecer no cabeçalho também


    • Marcelo, o responsável pela codificação não ficou muito feliz, pois afinal por dia a empresa gera 1.000.000 relatórios de teste dos softwares desenvolvidos para os robôs. Esses relatórios são gerados a partir de programas Java...


    • Você saberia me dizer porque Marcelo ficou tão chateado?

    função ou procedimento


    • Qualquer modificação implicará na mudança de muitos pontos do código


    • Existe alguma maneira de criar um subprograma para modificar o cabeçalho ???

    • Assim, poderíamos reaproveitá-lo sempre que necessário



    função ou procedimento


    static void exibeCabecalho(){

    System.out.println("*********Santos Robótica********* ");

    System.out.println("contato@santosrobotica.com.br ");

    System.out.println("fone:(12)3456-7890 ");

    }

    funções ou procedimentos

    • Assim toda vez que necessário, podemos chamar o método


    class Programa {
    public static void main ( String [] args ) {
    // chamando a função exibeCabecalho
    exibeCabecalho () ;
    System . out . println ( " Relatório de pecas com defeito:  " ) ;
    System . out . println () ;
    // chamando a função exibeCabecalho
    exibeCabecalho () ;
    System . out . println ( " Relatório de pedidos do cliente" ) ;
    }

    Funções e procedimentos


    • Toda vez que for necessário, usar a função(procedimento) e não ter que ficar copiando e colando código


    • O código fica muito mais legível, ainda mais, se o programador for esperto como vocês são e nomear as funções com nomes que representam o que elas fazem :)

    funções


    • As funções são subprogramas que devolvem um valor, depois de realizar a sua operação.
    • Esse valor deve ter um tipo, e esse tipo é o que usado para "tipar" a função.
    • O cabeçalho (primeira linha) de uma função é formado por
      • static:
      • tipo de retorno: int, double, String, char....
      • nome da função
      • (lista de parâmetros)

    procedimentos


    • Já um procedimento, é um subprograma que não devolve nada depois de realizar a sua tarefa.
      • Lembrem dos procedimentos ler e escrever que usamos em pseudocódigo???

    • O cabeçalho de um procedimento é formado por:

      • static
      • void: indicando que não tem tipo de retorno
      • nome do procedimento
      • (lista de parâmetros)

    funções e procedimentos em java


    • Em linguagens orientadas a objetos, as funções e procedimentos são chamados de MÉTODOS

    • Mas lembre-se sempre:
      • função: retorna um valor portanto deve ter um tipo de retorno
      • procedimento: não retorna nenhum valor, portanto sempre é void

    parâmetros


    • Considere um programa de computador que realiza operações financeiras como o cálculo de juros simples por exemplo.

    • Para evitar repetição de código, podemos definir um método para realizar esse cálculo e reutilizá-lo todo vez que for necessário.

    parâmetros


    static void calculaJurosSimples () {
    double juros = 10000 * 0.015 * 12;
     }

    • Esse método não parece muito útil, pois sempre calculará
      • para um capital de 10000
      • a uma taxa de 1,5% ao mês
      • em um período de 12 meses

    parâmetros

    • Para tornarmos o método calculaJuroSimples mais útil podemos PARAMETRIZÁ-LO
    • Um parâmetro é um valor que o método recebe antes de executá-lo


    static void calculaJurosSimples ( double capital , double taxa , int periodo ) {

    double juros = capital * taxa * periodo ;

     }

    parâmetros


    class Programa {

    public static void main ( String [] args ) {
    calculaJurosSimples (10000 , 0.015 , 12) ;
    calculaJurosSimples (25400 , 0.02 , 30) ;
    }

    respostas

    class Programa {
    public static void main ( String [] args ) {
    double resposta1 = calculaJurosSimples (10000 , 0.015 , 12) ;
    double resposta2 = calculaJurosSimples (25400 , 0.02 , 30) ;
    System . out . println ( " Juros : " + resposta1 ) ;
    System . out . println ( " Juros : " + resposta2 ) ;
    }

    • Agora podemos recuperar o cálculo no método main

    resposta


    • O valor calculado dentro do método calculaJurosSimples é armazenado em uma variável local.


    • Essa variável não pode ser acessada dentro do método main.


    • Em outras palavras, o método main não tem acesso ao juros que foi calculado dentro do método calculaJurosSimples.

    resposta

    • Todo método pode, ao final do seu processamento, devolver uma resposta para que o chamou.

    static double calculaJurosSimples ( double capital , double taxa , int periodo ) {
    double juros = capital * taxa * periodo ;

    return juros ;
     }

    • Observe as duas modificações realizadas no método calculaJurosSimples.
      • mudar void para double
      • adicionar o comando return
    Made with Slides.com