Algoritmos e Programação - 2013.2 - Aula 16

21
Algoritmos e Programação Prof.º Thyago Maia 2013.2

description

Algoritmos e Programação - 2013.2 - Aula 16

Transcript of Algoritmos e Programação - 2013.2 - Aula 16

Page 1: Algoritmos e Programação - 2013.2 - Aula 16

Algoritmos e Programação

Prof.º Thyago Maia

2013.2

Page 2: Algoritmos e Programação - 2013.2 - Aula 16

Objetivos

Aula 16

• Introduzir o conceito de Métodos

• Fazer com que o aluno crie seus próprios métodos;

2

Page 3: Algoritmos e Programação - 2013.2 - Aula 16

Métodos

Page 4: Algoritmos e Programação - 2013.2 - Aula 16

Métodos

• Definem ações a serem tomadas na execução de um programa;

• São conjuntos ordenados de declarações de dados, instruções e expressões;

• Tratam-se de blocos nomeados de código, que exercem uma função específica (Ex.: soma, imprime, calcula...);

• São definidos em classes;

Page 5: Algoritmos e Programação - 2013.2 - Aula 16

Métodos

• Vantagens do uso dos Métodos:

– Reduzem o tamanho do código-fonte de programas;

– Facilitam a visualização e compreensão de programas;

– Pensa-se na solução do problema por partes;

– É mais fácil corrigir e detectar erros;

– Se é preciso alterar, altera-se apenas uma vez;

– Um mesmo métodos poderá ser utilizado em várias classes;

Page 6: Algoritmos e Programação - 2013.2 - Aula 16

Métodos

• Podemos classificar os métodos da seguinte maneira:

–Métodos que não retornam valor;

–Métodos que retornam valor;

–Métodos sem parâmetros;

–Métodos com parâmetro(s);

Page 7: Algoritmos e Programação - 2013.2 - Aula 16

Métodos

• Sintaxe – Métodos sem retorno e parâmetros:

• A palavra reservada void indica que o método nome_metodo não retorna valores;

• O conjunto de parênteses sem conteúdo indicam que o método não possui parâmetros;

void nome_metodo()

{

// Lista de instruções

}

Page 8: Algoritmos e Programação - 2013.2 - Aula 16

Exemplo

• Faça um programa que lê 2 notas de um determinado aluno e calcule sua média;

Page 9: Algoritmos e Programação - 2013.2 - Aula 16

// Classe sem método

import java.util.Scanner;

public class tarefa {

public static void main(String[] args) {

Scanner entrada = new Scanner(System.in);

double nota1, nota2;

System.out.println("Digite a primeira nota: ");

nota1 = entrada.nextDouble();

System.out.println("Digite a segunda nota: ");

nota2 = entrada.nextDouble();

System.out.println("Média: " + ((nota1+nota2)/2));

}

}

Page 10: Algoritmos e Programação - 2013.2 - Aula 16

// Classe com método

import java.util.Scanner;

public class tarefa {

public static void main(String[] args) {

calcula_media();

}

static void calcula_media()

{

Scanner entrada = new Scanner(System.in);

double nota1, nota2;

System.out.println("Digite a primeira nota: ");

nota1 = entrada.nextDouble();

System.out.println("Digite a segunda nota: ");

nota2 = entrada.nextDouble();

System.out.println("Média: " + ((nota1+nota2)/2));

}

}

Page 11: Algoritmos e Programação - 2013.2 - Aula 16

Métodos

• Sintaxe – Métodos sem retorno e com parâmetros:

• A palavra reservada void indica que o métodonome_metodo não retorna valores;

• As variáveis e objetos (e seus tipos) delimitados entre parênteses são os parâmetros;

void nome_metodo(tipo nome_parametro)

{

// Lista de instruções

}

Page 12: Algoritmos e Programação - 2013.2 - Aula 16

// Exemplo anterior – Método com passagem de parâmetro

import java.util.Scanner;

public class tarefa {

public static void main(String[] args) {

Scanner entrada = new Scanner(System.in);

double nota1, nota2;

System.out.println("Digite a primeira nota: ");

nota1 = entrada.nextDouble();

System.out.println("Digite a segunda nota: ");

nota2 = entrada.nextDouble();

calcula_media(nota1, nota2);

}

static void calcula_media(double n1, double n2)

{

System.out.println("Média: " + (n1+n2)/2);

}

}

Page 13: Algoritmos e Programação - 2013.2 - Aula 16

Métodos

• Sintaxe – Métodos com retorno:

• Em tipo , indicamos o tipo de dado a ser retornado pelo método (Ex.: int, double, float, etc.);

• Utilizamos a palavra reservada return para efetivamente retornar um valor;

tipo nome_metodo()

{

// Lista de instruções

return valor;

}

Page 14: Algoritmos e Programação - 2013.2 - Aula 16

// Exemplo anterior - Método com retorno e parâmetros

import java.util.Scanner;

public class tarefa {

public static void main(String[] args) {

Scanner entrada = new Scanner(System.in);

double n1, n2, media;

System.out.println("Digite a primeira nota: ");

n1 = entrada.nextDouble();

System.out.println("Digite a segunda nota: ");

n2 = entrada.nextDouble();

media = calcula_media(n1, n2);

System.out.println(“Média: “ + media);

}

static double calcula_media(double nota1, double nota2)

{

return (nota1+nota2)/2;

}

}

Page 15: Algoritmos e Programação - 2013.2 - Aula 16

Exercícios

Page 16: Algoritmos e Programação - 2013.2 - Aula 16

Exercício

• Faça um programa que lê os lados de um retângulo e calcula o seu perímetro em um método;

– Perímetro do retângulo = (2*largura) + (2*comprimento)

Page 17: Algoritmos e Programação - 2013.2 - Aula 16

Exercício

• Faça um programa que lê a idade de 10 pessoas em um vetor.

– Os comandos de impressão de mensagens (Ex.: Digite sua idade) e leitura das idades deverão ser efetuadas por um método;

– A impressão de todas as idades digitadas deverá ser realizada por outro método;

Page 18: Algoritmos e Programação - 2013.2 - Aula 16

Exercício

• Faça um programa que lê as idades de pessoas em um vetor de 15 posições. Você deverá implementar:

– Um método que efetuará a contagem das pessoas com idades entre 0 e 18 anos;

– Um método que efetuará a contagem das pessoas com idades entre 19 e 23 anos;

– Um método que efetuará a contagem das pessoas com idades acima de 23 anos;

• O programa deverá escrever os resultados de cada contagem;

– Tais métodos deverão ser implementados fora da classe principal (deverá ser criada uma classe adicional);

Page 19: Algoritmos e Programação - 2013.2 - Aula 16

Exercício

• Faça um programa que receba um número inteiro positivo N. Tal número deverá ser submetido para um método, que deverá retornar a soma dos números inteiros existentes entre o número 1 e N (inclusive);

– Tal método deverá ser implementado fora da classe principal (deverá ser criada uma classe adicional);

Page 20: Algoritmos e Programação - 2013.2 - Aula 16

Exercício

• A prefeitura de uma cidade fez uma pesquisa entre seus habitantes, coletando dados sobre o salário e o número de filhos. Faça um método que leia esses dados para um número não determinado de pessoas e retorne a média de salário da população, a média do número de filhos, o maior salário e o percentual de pessoas com salário inferior a R$ 380,00.

– A chamada desse método deverá ser realizada a partir do método main da classe principal;

– O método em questão deverá ser implementado em outra classe (que não seja a principal);

Page 21: Algoritmos e Programação - 2013.2 - Aula 16

Exercício

• Crie um programa que receba três valores (obrigatoriamente maiores que zero), representando as medidas dos três lados de um triângulo. Elabore métodos (em uma classe que não seja a principal) para:

– Determinar se esses lados formam um triângulo (a medida de um lado qualquer deve ser inferior ou igual a soma das medidas dos outros lados);

– Determinar e mostrar o tipo de triângulo (equilátero, isósceles ou escaleno), caso as medidas formem um triângulo;

• Todas as mensagens deverão ser apresentadas na classe principal;