aula 11 modularização

27
BC0505 - Processamento da Informa¸c˜ ao Modulariza¸ ao de C´ odigo Marcio K. Oikawa (Teoria) Mar¸co/2015 Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informa¸c˜ ao

Upload: brunomatos7

Post on 08-Nov-2015

217 views

Category:

Documents


1 download

DESCRIPTION

aula ufabc

TRANSCRIPT

  • BC0505 - Processamento da InformacaoModularizacao de Codigo

    Marcio K. Oikawa (Teoria)

    Marco/2015

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Introducao

    Estudaremos nesta aula:

    O que e modularizacao?

    Quais sao as vantagens de um codigo modularizado?

    O que e parametrizacao?

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Introducao

    Modularizacao e:

    Um processo para desenvolvimento e organizacao de codigo;

    Uma forma de reutilizacao de codigo;

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • O que e modularizacao?

    Definicao de metodos;

    Chamada de metodos;

    Parametrizacao;

    Escopo de variaveis;

    Passagem de parametros por valor e referencia;

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Metodos em Java

    A maioria das linguagens imperativas oferece formas demodularizar codigo;

    Modulos sao trechos de codigo com proposito especfico,usados para melhorar a legibilidade, organizacao e reutilizacaode comandos;

    E uma estrategia excelente para programar grandes sistemas;

    Cada linguagem possui um termo especial para caracterizarseu modulo. Os termos mais comuns sao funcoes eprocedimentos. Em Java, o modulo e chamado metodo.

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Declaracao do Metodo

    A declaracao de um metodo consiste em definir um trecho decodigo que sera executado todas as vezes que o metodo forchamado.

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Definicao e Chamada de Metodo

    Durante o desenvolvimento de codigos durante o quadrimestre,pudemos usar (mesmo sem saber) metodos que foram uteis para odesenvolvimento de nossos trabalhos. Podemos citar alguns deles:

    Math.sqrt(double): Calcula a raiz quadrada de um numero;

    Math.random(): Calcula um numero aleatorio;

    System.out.println(String): Exibe uma mensagem na tela;

    ...

    O que eles tem em comum?

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Definicao e Chamada de Metodo

    O que eles tem em comum?

    Alguem os desenvolveu, mas voce nao precisou saber como foifeito (Encapsulamento);

    Voce pode usar esses metodos varias vezes, em diferentesalgoritmos (Reutilizacao de codigo);

    Eles certamente facilitaram o desenvolvimento de seusalgoritmos, deixando o seu codigo mais claro.

    Chamada de Metodo

    Quando o seu algoritmo usa um metodo, costumamos dizer que eleesta chamando o metodo. Sempre existe um metodo chamador eum metodo chamado.

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Estrutura de um Metodo

    Vamos estudar um pouco da estrutura de um metodo.

    int somaInteiros ( int a, int b ){int res;res = a + b;

    return res;

    }

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Estrutura de um Metodo

    int somaInteiros ( int a, int b ){int res;res = a + b;

    return res;

    }

    tipo de retorno

    Tipo de retorno

    Alguns metodos realizam calculos, gerando um resultado final quesera usado pelo codigo que o chamou. O tipo de retorno representao tipo do dado que sera devolvido para o metodo chamador.

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Estrutura de um Metodo

    int somaInteiros ( int a, int b ){int res;res = a + b;

    return res;

    }

    nome

    Nome

    O nome do metodo e o identificador do metodo. As regras paradefinicao de um nome sao as mesmas de variaveis e constantes.

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Estrutura de um Metodo

    int somaInteiros ( int a, int b){int res;res = a + b;

    return res;

    }

    parametros

    Parametros

    Parametros sao essenciais para qualquer metodo. Representam osvalores de entrada que o metodo necessita para realizar suasoperacoes. Os parametros devem ser declarados no metodo comovariaveis comuns (indicando seu tipo). A ordem os parametros esua quantidade devem ser respeitados todas as vezes que metodofor chamado.

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Estrutura de um Metodo

    int somaInteiros ( int a, int b ){int res;res = a + b;

    return res;

    }

    codigo

    Codigo

    Sao os comandos que realizam o processamento das informacoesdentro do metodo.

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Estrutura de um Metodo

    int somaInteiros ( int a, int b ){int res;res = a + b;

    return res;

    }

    retorno

    Retorno

    O retorno e uma parte essencial da estrutura do metodo. Aposfinalizado o processamento, o retorno devera devolver o resultadofinal do processamento para o codigo chamador. O valor retornadodeve ser do mesmo tipo de retorno.

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Estrutura de um Metodo

    ...int x, y;x = 23;y = -4;

    int k = somaInteiros(x, y);

    System.out.println(k);...

    int somaInteiros (int a, int b){int res;res = a + b;return res;

    }res = 19

    somaInteiros(23, -4)

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Exemplo

    Vamos criar uma classe com varios metodos, que realizamordenacao de um vetor, tentando compara-los em termos deeficiencia.

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Exemplo

    O primeiro algoritmo que faremos e o Bubble Sort. Antes, poremvamos escrever um metodo para realizar a troca de valores entreduas variaveis, que e uma operacao que usamos em varios osalgoritmos.

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Bubble Sort

    Vamos tentar simplificar o Bubble Sort, criando um metodo querealiza troca de valores entre variaveis.int tmp;

    for (int i=0; i

  • Bubble Sort

    Vamos tentar simplificar o Bubble Sort, criando um metodo querealiza troca de valores entre variaveis.int tmp;

    for (int i=0; i

  • Passagem de parametros

    void troca (int x, int y){

    int tmp;

    tmp = x;

    x = y;

    y = tmp;

    return;

    }

    Passagem de parametros

    Este codigo funciona para o Bubblesort?

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Passagem de parametros

    Qual problema apresenta o codigo do metodo que trocavalores?

    Como resolver?

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Passagem de parametros

    void troca (int V, int x, int y){

    //x e y agora sao ndices do vetor V

    int tmp;

    tmp = V[x];

    V[x] = V[y];

    V[y] = tmp;

    return;

    }

    Passagem de parametros

    Por que o comportamento e diferente?

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Passagem de parametros

    Existem basicamente dois sistemas de passagem de parametros:

    Passagem de parametros por valor: Um metodo recebeuma copia do valor de uma variavel, de modo que alteracoesocorridas no metodo nao sao propagadas para a variaveloriginal.

    Passagem de parametros por referencia: Um metodorecebe o endereco de memoria da variavel (ou seja, a propriavariavel), de modo que alteracoes ocorridas no metodo saopropagadas para a variavel original.

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Passagem de parametros

    Em Java, o sistema de passagem de parametros e definido pelotipo da variavel:

    Variaveis de tipos primitivos sao passados por valor;

    Variaveis de tipos classe (objetos de classe) sao passados porreferencia.

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Exerccios

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Exerccio 1

    Construa um modulo que verifica se um numero e, ou nao, primo.

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao

  • Exerccio 2

    Construa modulos que recebem um vetor e o ordenam. Escolha umdos algoritmos de ordenacao ja vistos em aula.

    Marcio K. Oikawa (Teoria) BC0505 - Processamento da Informacao