Aula Teste INFNET terça-feira, 11 de janeiro de 2011

Slides:



Advertisements
Apresentações semelhantes
JAVA Orientação a Objetos
Advertisements

Programação em Java Prof. Maurício Braga
Programação em Java Prof. Maurício Braga
Recursividade Inhaúma Neves Ferraz
Soluções Iterativas com Laços
Programação Orientada a Objetos*
Resolução por algoritmos de Busca
Construção de Algoritmos 2
Programação em Java Prof. Maurício Braga
Estruturas de Repetição
Métodos, Parâmetros, Argumentos e Contratos
Capítulo 1 Introdução.
Introdução à Programação usando Processing Programação Gráfica 2D Estrutura de Seleção Exercício Estrutura de Seleção 2º Semestre 2009 > PUCPR > Design.
15/1/2014 Professor Leomir J. Borba- – 1 Tec. Em Analise e desenvolv. De Sistemas analise.
Java: Pacotes e Modificadores de Visibilidade
Java: Pacotes e Modificadores de Visibilidade
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Programação Básica em Java
Recursividade Inhaúma Neves Ferraz
DIAGRAMA DE ATIVIDADES
Arrays Profa. Isabel Harb Manssour (Material adaptado das aulas dos Profs.: Luciana Nedel, Júlio Machado e Bernardo Copstein) Arrays Exercícios.
Wagner Santos C. de Jesus
Membros estáticos.
9 Controle de fluxo Seqüenciadores. Jumps. Escapes. Exceções.
Auditoria de Segurança da Informação
Treinamento no GRADEp HelloWorld Args. Slide 2 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - julho 2005 HelloWorld e Args Autoria Autora.
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
Capítulo 9 Herança 1.
Métodos Programação II 1 Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Elementos de Classe, class wrappers.
Linguagem de Programação
Classes e objetos Arrays e Sobrecarga
Estrutura de decisão e repetição em JAVA
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação JAVA
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Threads: Introdução e Implementação
Tipos Agregados Homogêneos e Listas
Programação Orientada a Objetos com Java
História da Torre de Hanoi
JAVA Linguagem Ambiente de Desenvolvimento
Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Salas de Matemática.
Atributos, Encapsulamento e Interface em Java
Linguagem técnica de programação I Java
Entendendo as definições de classe
Recursão.
José Pacheco A. Prado. Você pode definir diferentes cursores em seus projetos. Para isto basta utilizar a função setCursor.
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Os métodos equals() e hashCode()
1 JavaCC Prof. Alexandre Monteiro Baseado em material cedido pelo Prof. Euclides Arcoverde Recife.
Orientação a Objetos e Java Graduação em Ciência da Computação
Vetor Prof. Guilherme Baião S. Silva Adaptações:
Capítulo 1. static import  A importação estática pode ser utilizado quando queremos acessar métodos ou atributos estáticos de uma outra classe.  Através.
Tipos Especiais de Listas
Pilhas Profa. Nádia Félix.
Recursão Uma função é dita recursiva quando dentro do seu código existe uma chamada para si mesma Exemplo Cálculo do fatorial de um número:
Listas Simplesmente Encadeadas
Wagner Santos C. de Jesus
BCC 101 – Matemática Discreta I
Tratamento de Exceções
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Polimorfismo.
Estrutura de Controle em JAVA
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
Utilizando UML e Padrões Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Março de 2010.
Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes
Aula Prática 5 05/05/2010. //Estrutura do método public int subtrair (int a, int b){ //Calcule a operação desejada. int resultado = a – b; //Retorne o.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Implementação Orientada a Objetos – Aula 09 Pacotes Prof. Danielle Martin Universidade de Mogi das Cruzes
Transcrição da apresentação:

Aula Teste INFNET terça-feira, 11 de janeiro de 2011 IMPLEMENTAÇÃO DA TORRE DE HANOI NA LINGUAGEM JAVA Prof. Alex Avellar contato@aavellar.com

Objetivo Apresentar os conceitos fundamentais da Torre de Hanoi Apresentar o algoritmo para resolução do problema Realizar uma implementação em Linguagem Java do Algoritmo proposto

Pré-requisitos Conhecimentos em Programação Conhecimentos em comandos básicos da linguagem Java

Apresentações Experiência Expectativa Motivação Material de Apoio: www.aavellar.com

Sumário Objetivo Fundamentos da Torre de Hanoi Descrição do Algoritmo Conceitos da Linguagem Java Implementação da solução Conclusão

Bibliografia 1) PREISS, Bruno R. , Estruturas de Dados e Algoritmos: padrões de projetos orientados a objetos com java, 2000. 2) FURGERI, S., Java 6 – Desenvolvendo e Implementando Aplicações, Érica , 2009. 3) SEDGEWICK, R., Algorithms in Java, Addison – Wesley, 2003. 4) TOWER OF HANOI: Fascinating Facts (LHS): http://www.lhs.berkeley.edu/Java/Tower/towerhistory.html

1. Torre de Hanoi

Fundamentos da Torre de Hanoi Fonte: TOWER OF HANOI Edouard Lucas Lenda Hindu Torre de Bramanismo Jovens Monges Discos de Ouro 64 Níveis De Parville Templo de Bernares Centro do Mundo Hastes de Diamante e Discos finos como o corpo de uma abelha

Limitações

2. Algoritmo

Algoritmo

3. Implementação

Implementação da Torre de Hanoi na linguagem Java import java.util.*; public class Hanoi { else { System.out.println("Pino 1: "+ t1 ); System.out.println("Pino 2: "+ t2 ); System.out.println("Pino 3: "+ t3 ); System.out.println(""); movimentar (ndiscos -1, t1, t3, t2); t3.push(t1.peek()); t1.pop(); movimentar (ndiscos -1, t2, t1, t3); } } public void movimentar (int ndiscos, Stack t1, Stack t2, Stack t3) { if( ndiscos == 1 ) { t3.push(t1.peek()); t1.pop(); System.out.println("Pino 1: "+ t1 ); System.out.println("Pino 2: "+ t2 ); System.out.println("Pino 3: "+ t3 ); System.out.println(""); }

Implementação da Torre de Hanoi na linguagem Java import java.util.*; public class Hanoi { else { System.out.println("Pino 1: "+ t1 ); System.out.println("Pino 2: "+ t2 ); System.out.println("Pino 3: "+ t3 ); System.out.println(""); movimentar (ndiscos -1, t1, t3, t2); t3.push(t1.peek()); t1.pop(); movimentar (ndiscos -1, t2, t1, t3); } } public void movimentar (int ndiscos, Stack t1, Stack t2, Stack t3) { if( ndiscos == 1 ) { t3.push(t1.peek()); t1.pop(); System.out.println("Pino 1: "+ t1 ); System.out.println("Pino 2: "+ t2 ); System.out.println("Pino 3: "+ t3 ); System.out.println(""); }

Implementação da Torre de Hanoi na linguagem Java import java.util.*; public class Hanoi { else { System.out.println("Pino 1: "+ t1 ); System.out.println("Pino 2: "+ t2 ); System.out.println("Pino 3: "+ t3 ); System.out.println(""); movimentar (ndiscos -1, t1, t3, t2); t3.push(t1.peek()); t1.pop(); movimentar (ndiscos -1, t2, t1, t3); } } public void movimentar (int ndiscos, Stack t1, Stack t2, Stack t3) { if( ndiscos == 1 ) { t3.push(t1.peek()); t1.pop(); System.out.println("Pino 1: "+ t1 ); System.out.println("Pino 2: "+ t2 ); System.out.println("Pino 3: "+ t3 ); System.out.println(""); }

Implementação da Torre de Hanoi na linguagem Java public static void main(String args[]) { Hanoi obj = new Hanoi (); // Numero total de discos int ndiscos = 3; // Instancia Vetor pinos Stack Pino[] = new Stack [3]; // Instancia Pinos for (int i = 0; i < 3; i++) { Pino[i] = new Stack(); } // Entra com valores for (int i = ndiscos; i > 0; i--) { Pino[0].push(new Integer(i)); } obj.movimentar(ndiscos, Pino[0], Pino[1], Pino[2]); } }

Implementação da Torre de Hanoi na linguagem Java public static void main(String args[]) { Hanoi obj = new Hanoi (); // Numero total de discos int ndiscos = 3; // Instancia Vetor pinos Stack Pino[] = new Stack [3]; // Instancia Pinos for (int i = 0; i < 3; i++) { Pino[i] = new Stack(); } // Entra com valores for (int i = ndiscos; i > 0; i--) { Pino[0].push(new Integer(i)); } obj.movimentar(ndiscos, Pino[0], Pino[1], Pino[2]); } }

Implementação da Torre de Hanoi na linguagem Java // Entra com valores for (int i = ndiscos; i > 0; i--) { Pino[0].push(new Integer(i)); } obj.movimentar(ndiscos, Pino[0], Pino[1], Pino[2]); } } public static void main(String args[]) { Hanoi obj = new Hanoi (); // Numero total de discos int ndiscos = 3; // Instancia Vetor pinos Stack Pino[] = new Stack [3]; // Instancia Pinos for (int i = 0; i < 3; i++) { Pino[i] = new Stack(); }

Implementação da Torre de Hanoi na linguagem Java public static void main(String args[]) { Hanoi obj = new Hanoi (); // Numero total de discos int ndiscos = 3; // Instancia Vetor pinos Stack Pino[] = new Stack [3]; // Instancia Pinos for (int i = 0; i < 3; i++) { Pino[i] = new Stack(); } // Entra com valores for (int i = ndiscos; i > 0; i--) { Pino[0].push(new Integer(i)); } obj.movimentar(ndiscos, Pino[0], Pino[1], Pino[2]); } }

Implementação da Torre de Hanoi na linguagem Java else { System.out.println("Pino 1: "+ t1 ); System.out.println("Pino 2: "+ t2 ); System.out.println("Pino 3: "+ t3 ); System.out.println(""); movimentar (ndiscos -1, t1, t3, t2); t3.push(t1.peek()); t1.pop(); movimentar (ndiscos -1, t2, t1, t3); } } public void movimentar (int ndiscos, Stack t1, Stack t2, Stack t3) { if( ndiscos == 1 ) { t3.push(t1.peek()); t1.pop(); System.out.println("Pino 1: "+ t1 ); System.out.println("Pino 2: "+ t2 ); System.out.println("Pino 3: "+ t3 ); System.out.println(""); }

Implementação da Torre de Hanoi na linguagem Java public void movimentar (int ndiscos, Stack t1, Stack t2, Stack t3) { if( ndiscos == 1 ) { t3.push(t1.peek()); t1.pop(); System.out.println("Pino 1: "+ t1 ); System.out.println("Pino 2: "+ t2 ); System.out.println("Pino 3: "+ t3 ); System.out.println(""); } else { System.out.println("Pino 1: "+ t1 ); System.out.println("Pino 2: "+ t2 ); System.out.println("Pino 3: "+ t3 ); System.out.println(""); movimentar (ndiscos -1, t1, t3, t2); t3.push(t1.peek()); t1.pop(); movimentar (ndiscos -1, t2, t1, t3); } }

Implementação da Torre de Hanoi na linguagem Java else { System.out.println("Pino 1: "+ t1 ); System.out.println("Pino 2: "+ t2 ); System.out.println("Pino 3: "+ t3 ); System.out.println(""); movimentar (ndiscos -1, t1, t3, t2); t3.push(t1.peek()); t1.pop(); movimentar (ndiscos -1, t2, t1, t3); } } public void movimentar (int ndiscos, Stack t1, Stack t2, Stack t3) { if( ndiscos == 1 ) { t3.push(t1.peek()); t1.pop(); System.out.println("Pino 1: "+ t1 ); System.out.println("Pino 2: "+ t2 ); System.out.println("Pino 3: "+ t3 ); System.out.println(""); }

Implementação da Torre de Hanoi na linguagem Java else { System.out.println("Pino 1: "+ t1 ); System.out.println("Pino 2: "+ t2 ); System.out.println("Pino 3: "+ t3 ); System.out.println(""); movimentar (ndiscos -1, t1, t3, t2); t3.push(t1.peek()); t1.pop(); movimentar (ndiscos -1, t2, t1, t3); } }

Exercício Reescreva o algoritmo da Torre de Hanoi apresentado a solução de forma iterativa, ou seja usando estrutura de repetições (laços) Codifique em Linguagem Java Entre no link abaixo e envie o algoritmo criado e o programa final www.aavelar.com

5. Conclusões e Perguntas