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

Documentos relacionados
Fundamentos de programação

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

IO.println(a+" * "+b+" = "+produto); } }

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 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Tipos de dados e comandos POO

Operadores e Estruturas de Decisão

(Conceito de Variável Indexada, Funções e Procedimentos)

Operadores e Estruturas de Decisão. Vanessa Braganholo

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

Estruturas de Repetição e String. Vanessa Braganholo

ALGORITMOS. Professor: Diego Oliveira. Aula 06 - Tipos Primitivos de Dados

Comando de Seleção em Java

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

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

MsC. João Maria MsC. Liviane Melo

Programação de Computadores para GI

Tipos de dados, constantes e variáveis. Prof.: Jesus

1 Da aula teórica ao Java

Operadores e Estruturas de Decisão

Prof.: Michele Nasu Tomiyama Bucci

Exercícios sobre repetição. 1. Escreva um método que lê via teclado 8 números e retorna a quantidade de negativos.

final class UltimosDiasMeses{ static final int[] DIAS_DO_MES = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; }

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

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

Estruturas de Repetição e String

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

Classes, instâncias e métodos de acesso. prática

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

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

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

Métodos. Utilizados para dividir o programa em subprogramas

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

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

Variáveis Compostas. Vanessa Braganholo

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

Atribuições: Valores, Ponteiros e Referências

Vetores Unimensionais

Caderno de Exercícios

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

Universidade Federal de Uberlândia Faculdade de Computação GGI030 Programação Orientada a Objetos 1o. Semestre de 2017 Prof.

Comando Portugol (Visualg) Java

DIRETORIA ACADÊMICA DE GESTÃO E TECNOLOGIA DA INFORMAÇÃO DIATINF TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TADS

Organização de programas em Java

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

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

Aula de PG Novembro de 2013, LT14D e LT11D - Sobre o Tipo String do Java

BC-0505 Processamento da Informação

Problema do Caminho Hamiltoniano

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Simulado de Linguagem de Programação Java

Linguagem de programação Java

Orientação a Objetos e Java

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

Estruturas de Repe,ção e String

Apêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são:

Arrays, Encapsulamento usando de listas de objetos,tratamento de exceções, Funções Matemáticas e Manipulação de Strings

Universidade Estadual de Santa Cruz

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

Programação Orientada a Objetos II

Algoritmos II Aula 11 Funções e Procedimentos

Usando o Eclipse - Fundamentos. Professor Vicente Paulo de Camargo

Lista de exercícios 2

INSTRUÇÕES DE REPETIÇÃO

Universidade Federal do ABC BCM Processamento da Informação Prática Prova Substitutiva Primeiro Quadrimestre de 2018

Organização de programas em Java

Manual de conversão de Pseudo-algoritmo para Java

Recursividade. Métodos iterativos. Prof. Cesar Augusto Tacla. Métodos iterativos utilizam estruturas de repetição

Programação Java (nível intermediário) Encapsulamento

Análise de Programação

POO fundamentos Parte II. Professor Vicente Paulo de Camargo

Algoritmos I Aula 13 Linguagem de Programação Java

RESPOSTA: import java.util.arraylist; import java.util.list; class CarrinhoDeCompras2 { List<Produto> produtos;

Programação Orientada a Objetos Classes e Objetos. Prof. Vicente Paulo de Camargo

double x; x = enigmab1(100);

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

notas de aula versão 1 - Jerônimo C. Pellegrini notas de aula versão 1 11 de fevereiro de 2011

Linguagem de Programação II Implementação

Noções sobre Objetos e Classes

Subprogramação. Leonardo Gresta Paulino Murta.

Aula teórica 14. Tema 12. Subprogramas (cont)

Variáveis primitivas e Controle de fluxo

Algoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente):


Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

Tipos primitivos de Java Entrada de Dados Formatação da Saída. Aula 03

Vetores Unimensionais

3. Para a classe Circulo abaixo, escreva os métodos indicados pelos dois primeiros comentários.

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

Processamento da Informação Estruturas de seleção simples e composta

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU

Módulo Lógica Programação com aplicações em Java. Projeto khouse Profissionalizante Profª Larissa Brandão

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

Variáveis Compostas. Leonardo Gresta Paulino Murta.

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

Transcrição:

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

Funções (= métodos em Java) Já usamos algumas funções sem nos darmos conta: System.out.println Math.random, Math.sqrt,... scanner.nextint(), nextfloat(),...... Há algumas rotinas de código que podem ser utilizadas repetidamente e em diversos contextos diferentes. Frequentemente é conveniente as encapsular em funções. Funções/Métodos servem para reunir o código responsável por desempenhar um papel e o deixar disponível através de um nome coerente (ex. seno, coseno, raiz quadrada,....). Isso nos foi conveniente até agora para nos importarmos apenas com o que elas fazem e não como elas fazem (pense em como implementaria Math.random, por exemplo). 2/17

Funções Funções, assim como em matemática, podem receber parâmetros (ocasionalmente também chamados de argumentos) Considere a função f (a, b) = a b. Ela recebe dois parâmetros, a e b e devolve o valor de a elevado a b. A função equivalente já existe em Java e é chamada Math.pow.... double a = scanner.nextdouble(); double b = scanner.nextdouble(); double pot = Math.pow(a, b);... 3/17

Funções Considere a fórmula de Heron para o cálculo da área do triângulo dados os seus três lados, a, b e c. public static double area(double a, double b, double c) { double s = (a + b + c) / 2; double area = Math.sqrt(s * (s-a) * (s-b) * (s-c)); return area; } A primeira linha é chamada de assinatura da função. Ela define o tipo da função (double), e os parâmetros (seus tipos e seus nomes). return devolve o valor calculado pela função. O tipo do valor devolvido deve ser igual ao tipo da função 4/17

Funções - Comentários Funções podem chamar (e frequentemente o fazem) outras funções. Se você está copiando e colando o mesmo código frequentemente e com apenas pequenas adaptações, considere encapsulá-lo em uma função. Ao contrário de funções matemáticas, métodos em Java podem não devolver valor algum. Neste caso esses métodos executam algum procedimento que é util para o utilizador. Ex.: println. 5/17

O tipo void O tipo void é um tipo especial. Ele representa nada, ou seja, uma variável deste tipo não faz sentido. Contudo é útil para indicar o tipo de uma função que não devolve valor algum. Por exemplo, a função abaixo: public static void imprime (int numero) { System.out.printf("Número %d\n", numero); } A função main é do tipo void 6/17

Ex. 1 - Fatorial Escreva uma função que computa o fatorial de um número n passado por parâmetro. Sua função deve ter a seguinte assinatura: public static long fat(long n). OBS: Caso n 0 seu programa deve retornar 1. Use a função anterior e crie um programa que imprima os valores de n! para n = 1,..., 20. 7/17

Ex.2 - Parte 1 - Verificação de primalidade Encapsule o código de verificação de primalidade abaixo em uma funçao com assinatura: public static boolean eprimo (int n) e altere o programa para usar a função mantendo o seu comportamento. import java.util.scanner; public class Main { public static void main(string[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextint(); int limite = (int)math.sqrt(n); boolean eh_primo = n > 1 && (n == 2 n % 2!= 0); for (int i = 3; i <= limite && eh_primo; i += 2) eh_primo = (n % i)!= 0; System.out.println(eh_primo? "Primo" : "Nao primo"); } } 8/17

Ex. 2 - Parte 2 - Números primos gêmeos Números primos gêmeos são pares de números primos (p 1, p 2 ) tais que p 2 = p 1 + 2. Usando a função desenvolvida na parte 1, escreva um programa que imprime os n primeiros pares de números primos gêmeos. : n, o número de pares a serem impressos : lista com os n primeiros pares de números primos gêmeos 2 (3, 5), (5, 7) 5 (3, 5), (5, 7), (11, 13), (17, 19), (29, 31) 9/17

Lista (submissão via TIDIA) Esta lista de exercícios deve ser submetida via TIDIA em um único arquivo JAVA contendo as implementações de cada uma das funções pedidas 1. Implemente uma função que retorna se dois números do tipo double são iguais de acordo com uma tolerância... public static boolean igual(double x, double y, double tol){ // implementação }... 2.1 2.2 0.01 false 0.3 0.33 0.1 true 10/17

Lista (submissão via TIDIA) 2. Implemente uma função que retorna o número de vogais em uma string (que só tem letras sem acento e espaço) Dica: use String.toLowerCase() para garantir que todas as letras estejam minúsculas TestE 2 tsktsk 0 11/17

Lista (submissão via TIDIA) 3. Implemente uma função que retorna o número de palavras em uma string (que só tem letras sem acento e espaço) Wow 1 Deu certo 2 12/17

Lista (submissão via TIDIA) 4. Implemente uma função que retorna o número de consoantes em uma string (que só tem letras sem acento e espaço) usando as funções 2 e 3 Wow 2 Deu certo 4 13/17

Lista (submissão via TIDIA) 5. Implemente uma função que retorna se um ponto está dentro de um círculo (dado centro e raio)... public static boolean estadentro(double x, double y, double cx, double cy, double r){ // implementação }... 1 1 2 2 5 true 1 1 0 0 0.2 false 14/17

Lista (submissão via TIDIA) 6. Implemente uma função que retorna a mediana de 3 elementos 1 2 3 2 10 1 9 9 15/17

Lista (submissão via TIDIA) 7. Implemente uma função que retorna o número em decimal correspondente a um número binário armazenado em uma string 111 7 1010 10 16/17

Lista (submissão via TIDIA) 8. Implemente uma função que converte uma placa de carro em um número inteiro não negativo a partir de 0 Uma placa tem formato LLLNNNN em que cada L corresponde a uma letra e cada N corresponde a um dígito (0,1,...,9) AAA0000 0 BAA0000 6760000 17/17