Métodos. Utilizados para dividir o programa em subprogramas

Documentos relacionados
LÓGICA DE PROGRAMAÇÃO (JAVA) ESTRUTURAS REPETIÇÃO. Professor Carlos Muniz

Linguagem de programação Java

Vetores Unimensionais

Modularização ou Subrotinas Parte I

Seleção Múltipla Laços (while, do-while, for) AULA 05

Arrays em Java. Introdução à Programação. Bruno Cartaxo

Programação de Computadores para GI

Linguagem de Programação JAVA. Tiago Alves de Oliveira

LÓGICA DE PROGRAMAÇÃO (JAVA) VARIÁVEIS. Professor Carlos Muniz

Vetores Unimensionais

Aula 07 Introdução à Programação Subprogramas

Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Algoritmos II Aula 2 Vetores

Programação de Computadores I. Aula - Vetores. Professor Ilaim Costa Junior.

Lista de Exercícios I. 01. Desenvolva um programa em Java que receba três valores numéricos inteiros e mostre a soma desses três números.

Aula 7 Modularização. Processamento da Informação. Universidade Federal do ABC

Estrutura de Condição, Escolha e Repetição

public class ExecScanner1 { public static void main(string[] args) { // TODO code application logic here

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Aula 11: Modularização

Algoritmos e Programação

Atributos e Métodos Estáticos

Sintaxe Básica do Java. João Paulo Q. dos Santos

Vetores Unimensionais

Introdução a JAVA. Variáveis, tipos, expressões, comandos e blocos

Comando Portugol (Visualg) Java

Análise de Programação

Aula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Arrays e Marizes. João Paulo Q. dos Santos

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

CONTEÚDO 04 VETORES. Disciplina: Algoritmos e POO Professora: Alba Lopes.

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Programação Orientada a Objetos II

Explicação do programa:

Comando de Seleção em Java

Sintaxe Básica de Java Parte 2

Aula 4. TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 2014 Marcelo Henrique dos Santos -

Variáveis Compostas. Vanessa Braganholo

Linguagem de Programação II Implementação

Módulos ou Subrotinas: PARTE II. Criando seus próprios módulos

PROGRAMAÇÃO I A LINGUAGEM DE PROGRAMAÇÃO JAVA II

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

4 TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Sub Rotinas. Estrutura de Dados. Prof. Kleber Rezende

Universidade Federal de Goiás Instituto de Informática 1ª Prova de Introdução a Programação 06/04/11

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Aula 3. Objetivos Sequências de escapes ; Um aplicativo que adiciona inteiro; Aritmética.

POO fundamentos Parte II. Professor Vicente Paulo de Camargo

Permite modularidade (dividir programa em partes): Facilita a depuração (debug) e portabilidade.

Lógica de Programação. Lógica de Programação com Java

Linguagem C Funções. André Tavares da Silva.

LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

Introdução à Programação Aula 09. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Módulos ou Subrotinas: PARTE II. Criando seus próprios módulos

Manual de conversão de Pseudo-algoritmo para Java

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções

Aula 2 POO 1 Prática. Profa. Elaine Faria UFU

Variáveis primitivas e Controle de fluxo

Exercícios Resolvidos. Java Básico

Programação para GI. Subprogramas

Java e sua Sintaxe. Estrutura mínima de um programa em Java: public class Exemplo { }

Exercícios Repetição

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Programação Estruturada e Orientada a Objetos

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga

Introdução a JAVA. Variaveis, tipos, expressões, comandos e blocos

Universidade Federal do ABC Programação Estruturada Fabrício Olivetti França Lista de Exercícios 02

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Tratamento de Exceções

ALGORITMOS I. Procedimentos e Funções

Algoritmos II prof. Daniel Oliveira

Unidade 3: Estruturas de Controle Parte 2 - Lógica, SWITCH, FOR, WHILE e DO WHILE Prof. Daniel Caetano

Algoritmos I Aula 14 Java: estruturas de seleção e repetição

Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira

Algoritmos. Conceitos e Comandos

Linguagem de Programação II Implementação

Transcrição:

Métodos Isidro

Métodos Utilizados para dividir o programa em subprogramas

Métodos Porque é importante o uso de métodos? Evita retrabalho Diminui o tamanho do código Aumenta a clareza Dividir e Conquistar

Métodos Na aula vamos aprender: Utilizar métodos já existentes Criar e utilizar os nossos próprios métodos

Métodos Utilizando métodos existentes..

Aprendendo com o que você já conhece.. pow é um método Pré-definido que você já usou! Indica a classe a que o método pertence: Math É a chamada do méto Para chamar um método dentro do seu programa você precisa Saber a classe que ele pertence e a assinatura dele. A classe e assinatura estão na API do JAVA: http://download.oracle.com/javase/6/docs/api/

API JAVA http://download.oracle.com/javase/6/docs/api/ Métodos da classe Math

Assinatura do método Explica como devo chamar (usar o método) Valor de retorno Nome Número de parâmetros Tipo de cada parâmetro

Assinatura do método Assinatura indica o que posso fazer e o que não posso (veja exemplos abaixo): correto correto incorreto incorreto Explique porque está correto ou incorreto.

Assinatura do método Alguns métodos podem ser usados de várias maneiras. Quem manda é a assinatura dele! Veja o método abs: Esse é um dos exemplos de polimorfismo em Programação Orientada a Objetos

Em suma Todo método, seja ele pré-definido ou não, possui as seguintes características: Pertence a uma classe Ex: import java.lang.math Nas nossas aulas, todos os métodos QUE NÓS VAMOS DEFINIR vão pertencer a uma única classe (mesma que classe principal) Tipo: valor de retorno do método Identificador Parâmetros Exemplo: Math.pow(base, expo) Parâmetros O Tipo é o tipo do valor que o método retorna. Neste caso é do tipo Double. Identificador Se um método não retorna valor então ele é do tipo void.

Métodos Definindo nossos próprios métodos

Estudo de Caso Imagine um programa simples para calcular a soma de dois números e que exibe a seguinte saída: Cabeçalhos

PROBLEMA!!!! Muito código REPETIDO Somente para imprimir os Cabeçalhos.

Estudo de Caso Solução Definição do método. OBS1: Dentro da classe princi OBS2: Fora do método main (antes ou depois)

Definição de Métodos E como criamos métodos em JAVA? Siga o algoritmo a seguir

Definição de Métodos Algoritmo 1. Dar um nome para o método 2. Definir se ele precisa ou não retornar algum valor 2.1 Se sim: defina qual valor 2.2 Se não: o valor é void 3. Definir se ele precisa de parâmetros 3.1 Se sim: defina quais são os nomes e o tipo de cada um 4. Criar a assinatura do método em java 5. Colocar o código dentro da assinatura 6. Chamar o método

Definição de Métodos Algoritmo 1. Dar um nome para o método O nome deve indicar o que o método faz Exemplo: cabecalho

Definição de Métodos Algoritmo 2. Definir se ele precisa ou não retornar algum valor 2.1 Se sim: defina qual valor 2.2 Se não: o valor é void Exemplos: O método cabecalho, não precisa retornar valor, pois serve apenas para imprimir um cabeçalho. Já o método pow precisa retornar um valor real que é a potência entre dois números Já o método abs precisa retornar um valor real que é o valor absoluto de um número

Definição de Métodos Algoritmo 3. Definir se ele precisa de parâmetros 3.1 Se sim: defina quais são eles e o tipo de cada um Exemplo: O método cabeçalho precisa receber o tamanho do cabeçalho. Esse tamanho deve ser inteiro Esse tamanho é o que chamamos de parâmetro do método Lembrando que o método pow recebe dois parâmetros: base e expoente

Definição de Métodos Algoritmo 4. Criar uma assinatura para o método em JAVA public static TIPO NOME_METODO(TIPO NOME_PARÂMETRO) SINTAXE GERAL

Definição de Métodos Algoritmo 4. Criar uma assinatura para o método em JAVA SINTAXE DO EXEMPLO Tipo do parâmetro public static void cabecalho(int tamanho) Não retorna valor Nome do método Nome do parâmetro

Assinatura indica onde começa a definição do método Dentro da classe Principal APÓS o método main

Algoritmo Definição de Métodos 4. Criar uma assinatura para o método em JAVA Outros exemplos.. public static pow (double base, double altura) public static int soma(int num1, int num2) public static double soma(double num1, double num2) public static void compara (String nome1, String nome2) public static int exemplo1(string s, int a, double b) public static void exemplo2(double[] a, String[] b) public static void main(string[] args) Nosso velho amigo main

Definição de Métodos Algoritmo 4. Criar uma assinatura para o método em JAVA public static TIPO NOME_METODO(TIPO NOME_PARÂMETRO) Tipo do parâmetro SINTAXE GERAL public static void cabecalho(int tamanho) SINTAXE DO EXEMPLO Não retorna valor Nome do método Nome do parâmetro

Definição de Métodos Algoritmo 5. Colocar o código dentro da assinatura O código obedece todas as regras que vimos até aqui na disciplina

static tipo_do_método parâmetros) { } variáveis locais; instrução 1;... instrução... N; return valor; nome_d0_método (lista de Lista de Parâmetros: são variáveis que se comunicam com outras funções. Exemplo: int valor1, int valor2, float valor3; lista de parâmetros RETURN: todo método pode retornar no máximo UM VALOR (de qualquer tipo) através do comando return. É este valor retornado que determina o tipo do método. Se o valor retornado for um FLOAT o método será do tipo float, e assim por diante. Obs.: A palavra-chave static indica que o método não precisa ser instanciado, ou seja, não Precisa de objetos

Definição de Métodos Algoritmo 6. Chamar o método Não adianta ter o método, nós precisamos uilizá-lo. (Chamá-lo)

chamada chamada chamada

Definição de Métodos Algoritmo 6. Chamar o método Posso chamar quantas vezes eu quiser Posso chamar dentro de outros métodos Posso chamar dentro de outras classes (fora do escopo dessa disciplina) Posso chamar um método dentro dele mesmo, RECURSIVIDADE (fora do escopo dessa disciplina)

Compare o Antes e o Depois. Antes Depois

Definição de Métodos E como fica a execução do método? Ver animação em Jeliot

Tamanho recebe o valor 30

Outro exemplo K é uma constante Global (declarada fora do main) Chamada do Método Método que retorna valor

Outro exemplo import javax.swing.joptionpane; public class Main { //Procedimento de adicao static void modadicao(double v1, double v2) { } double res; res = v1 + v2; JOptionPane.showMessageDialo g( null, "Soma = " + res); } //Metodo Principal public static void main(string[] args) { } modadicao(1,2); int a = 5, b = 10; modadicao(a,b); for(int i = 0; i < 3; i++) modadicao(i*2, i*2+1);

Poderíamos criar várias métodos Estudar o próximo exemplo! Observe que ele usa o comando CASE..

Exemplo: Java Principal (main) import javax.swing.joptionpane; 2. public class Menu { 3. public static void main (String args[]){ 4. int opcao; 5. opcao = Integer.parseInt(JOptionPane.showInputDialog( 6. "Escolha a sua opção:\n" + 7. "1 - Adição\n" + 8. "2 - Subtração\n" + 9. "3 - Multiplicação\n" + 10. "4 - Divisão")); 11. switch (opcao){ 12. case 1 : modadicao(); break; 13. case 2 : modsubtr(); break; 14. case 3 : modmultipl(); break; 15. case 4 : moddiv();break; 16. default : JOptionPane.showMessageDialog( 17. null, "Fim do Programa"); 18. } 19. }

Exemplo: Java modadicao static void modadicao( ){ double v1; double v2; double res; v1 = Double.parseDouble(JOptionPane.showInputDialog( "Digite o primeiro valor")); v2 = Double.parseDouble(JOptionPane.showInputDialog( "Digite o segundo valor")); res = v1 + v2; JOptionPane.showMessageDialog( null, "Soma = " + res);

Exemplo: Java modsubtr static void modsubtr( ){ double v1; double v2; double res; v1 = Double.parseDouble(JOptionPane.showInputDialog( "Digite o primeiro valor")); v2 = Double.parseDouble(JOptionPane.showInputDialog( "Digite o segundo valor")); res = v1 - v2; JOptionPane.showMessageDialog(null, "Subtração = " + res);

Exemplo: Java modmultipl static void modmultipl( ){ double v1; double v2; double res; v1 = Double.parseDouble(JOptionPane.showInputDialog( "Digite o primeiro valor")); v2 = Double.parseDouble(JOptionPane.showInputDialog( "Digite o segundo valor")); res = v1 * v2; JOptionPane.showMessageDialog( null, "Multiplicação = " + res);

Mais exemplo... import javax.swing.joptionpane; public class Exemplo { public static void main(string args []){ int numero; int fat; numero = Integer.parseInt(JOptionPane.showInputDialog("Qual é o número?")); fat = fatorial(numero); JOptionPane.showMessageDialog(null, "O fatorial de " + numero + " é " + fat); } static int fatorial (int numero){ int f = 1; for (int i = 1; i <= numero; i++) f = f * i; return f; }}

Vamos fazer métodos de leitura e escrita em um vetor import java.util.scanner; public class Main { public static void leiavetor(int A[]) { } Scanner sc = new Scanner(System.in); for(int i = 0; i < A.length; i++) A[i] = sc.nextint(); public static void imprimevetor(int B[]) { } for(int i = 0; i < B.length; i++) System.out.println(B[i]); public static void main(string[] args) { } } Scanner sc = new Scanner(System.in); System.out.println("Entre com a dimensao do vetor e com seus elementos"); int n = sc.nextint(); int x[] = new int[n]; leiavetor(x); imprimevetor(x);

Método para calcular o produto escalar de dois vetores import java.util.scanner; public class Main { public static double InnerProduct(double A[], double B[]) { double soma = 0; for(int i = 0; i < A.length; i++) soma+=a[i]*b[i]; return soma; } public static void main(string[] args) { double u[] = {1,2,3}; double v[] = {3,2,1}; System.out.println(InnerProduct(u,v)); } }

Vamos fazer métodos para leitura e escrita em um vetor import java.util.scanner; public class Main { public static void leiavetor(int A[]) { } Scanner sc = new Scanner(System.in); for(int i = 0; i < A.length; i++) A[i] = sc.nextint(); public static void imprimevetor(int B[]) { } for(int i = 0; i < B.length; i++) System.out.println(B[i]); public static void main(string[] args) { } } Scanner sc = new Scanner(System.in); System.out.println("Entre com a dimensao do vetor e com seus elementos"); int n = sc.nextint(); int x[] = new int[n]; leiavetor(x); imprimevetor(x);

Observações sobre métodos Uma variável que é declarada dentro de um método é chamada de variável local. A variável local existe somente dentro do método. O método fica na memória durante a sua execução, depois disso ele é destruído da memória e suas variáveis também. Uma varíável criada fora de qualquer método e dentro da classe principal é chamada de variável global. A variável global existe dentro de qualquer método criada dentro do programa. A variável global existe durante toda execução do programa

Qual a saída???

Qual a saída? Exemplo de declaração De variável global

Exemplo de declaração De variável global Estude esse exemplo!!!!

Observações Mesmo nome dos métodos, porém com parâmetros distintos isto funciona! Veja que conseguimos alterar o conteúdo de vetores Porém, não conseguimos alterar o conteúdo de variáveis simples

Modularização Classe Principal { método main { } Primeiro método a ser executado É obrigatória a existência dele método A { } } método B { }

Exercícios 1. Escrever um programa que possua um método simples para imprimir espaços em branco. 2. Elaborar um programa que possua um método que efetue e permita apresentar o somatório dos N primeiros números inteiros, definidos pelo usuário (1+2+3+4+5+6..+N)

Exercícios 3. 4. Desenvolva um programa que crie um método para ler a temperatura em graus centígrados e apresente-a convertida em graus Fahrenheit. A fórmula de conversão é: F = (9 * C + 160)/5, na qual F é a temperatura em Fahrenheit e C é a temperatura em centígrados. Escreva um programa que utilize um método para calcular a série de Fibonacci de N termos, e retorne o valor de um referido termo. A série de Finonacci é formada pela seqüência 1, 1, 2, 3, 5, 8, 13, 21, 34,.. etc., em que se caracteriza pela soma de um termo posterior como seu anterior subseqüente.