Programação Orientada por Objectos (POO) Semestre de Verão de º Trabalho prático. Data de Entrega: 19 de Abril de 2010
|
|
- Maria Clara da Costa Fagundes
- 6 Há anos
- Visualizações:
Transcrição
1 Programação Orientada por Objectos (POO) Semestre de Verão de º Trabalho prático Data de Entrega: 19 de Abril de 2010 OBJECTIVOS: Exprimir objectivos na forma de algoritmos recursivos. Completar e desenvolver aplicações simples usando o paradigma da Programação Orientada por Objectos. NOTA: No relatório têm que constar todos os programas de teste que lhe permitiram validar a correcção dos métodos e classes realizadas. 1º Grupo Complete as seguintes frases: a) Algoritmos usam ciclos e se necessário estruturas de dados adicionais. Algoritmos invocam-se a si próprios até que certa condição seja satisfeita. b) Para verificar se um elemento existe num array ordenado deve-se usar o algoritmo de pesquisa. Responda de forma sucinta às seguintes questões: a) Num algoritmo recursivo quando a chamada recursiva aparece no final, dá-se o nome de recursividade terminal ou final. Neste caso a última chamada recursiva pode ser transformada num ciclo. Como? b) Existe alguma relação entre stack overflow e recursão infinita? c) Quais os cuidados a ter nos algoritmos recursivos para que a recursão seja finita. Análise e implementação: 1. Indique, justificando, o resultado da execução de main e dê nomes sugestivos ao método e aos parâmetros. public static void xpto( String s, int x, int y ) { if ( x >= y ) xpto(s, x / y, y); System.out.print( s.charat( x % y) ); public static void main( String[] args) { xpto("01", 5, 2)); 2. Realize um método com a seguinte assinatura, utilizando um algoritmo recursivo: String getcapicua( int n1, int n2 ), que recebe dois valores inteiros compreendidos entre 1 e 9, e retorne uma string com os valores de n1 a n2, seguidos dos valores de (n2-1) a n1. Exemplos de utilização: System.out.println( getcapicua( 1, 1 ) ); 1 System.out.println( getcapicua( 1, 2 ) ); 121 System.out.println( getcapicua( 3, 9 ) ); Realize um método com a seguinte assinatura, utilizando um algoritmo recursivo: public static int countbits1( int n ) que recebe um inteiro positivo n e retorna o número de bits a 1 da representação em binário do valor inteiro positivo n. Exemplos de utilização: System.out.println( countbits1( 0x7FFFFFFF ) ); 31 2 System.out.println( countbits1( 011 ) ); 4. Realize um método com a seguinte assinatura, utilizando um algoritmo recursivo: int[] findsum( int[] sortedarray, int sum ) que, dado o array ordenado de forma estritamente crescente sortedarray e o inteiro sum, retorna dois elementos desse array tal que a soma seja igual a sum. Esses dois elementos são retornados através de um array com duas posições. Caso não existam dois elementos cuja soma seja sum, deve ser retornado null.
2 2º Grupo 1. Pretende-se implementar uma solução para representar sequências de valores inteiros. Para o efeito chegou-se ao seguinte diagrama de classes: public class Sequence { private int currentindex = 0; public final int getcurrentindex() { return currentindex; public void advance() { if (haselement()) ++ currentindex; public boolean haselement() { return currentindex < getsize(); public int currentelement() { return 0; public int getsize() { return 0; public class FixedSize extends Sequence { private final int size; public FixedSize( int sz ) { size = sz; public final int getsize() { return size; public class InfiniteSequence extends Sequence { public final boolean haselement() { return true; public final int getsize() { return -1; A classe Sequence contém as operações comuns a todas as sequências. Uma sequência caracteriza-se pelos valores que a compõem, obtidos usando os métodos currentelement (que devolve o elemento actual), haselement (verifica se foi atingido o final da sequência) e advance (avança para o próximo elemento, caso exista). O método getcurrentindex devolve o número de ordem do elemento actual da sequência. O método getsize devolve o número de inteiros que compõem a sequência, caso seja finita, caso contrário retorna -1. A classe FixedSize é a classe base de todas as instâncias que representam sequências de n inteiros. A classe InfiniteSequence é a classe base de todas as instâncias que representam sequências infinitas. Tendo em consideração o diagrama de classes e a definição das classes Sequence, FixedSize e InfiniteSequence: Defina a classe EvenNumbers cujas instâncias representam sequências de n inteiros pares consecutivos a partir de um dado valor. No construtor são passados o número de inteiros da sequência e o limite inferior. Como exemplo considere o seguinte troço de código que produz o output: 0:2 1:4 2:6 3:8. for ( Sequence s = new EvenNumbers(4, 1) ; s.haselement() ; s.advance() ) if ( s.currentelement()!= s.currentelement() ) System.out.print( "ERRO DE IMPLEMENTAÇÃO" ); else System.out.print( s.getcurrentindex() + ":" + s.currentelement() + " " );
3 Defina a classe SortArray cujas instâncias representam sequências de n inteiros ordenados de forma estritamente crescente contidos na parte do array definida pelos índices de bi (inclusivo) até ei (exclusivo). Como exemplo considere o seguinte troço de código que produz: 0:1 1:2 3:5 4:8 0:2 1:5. int[] a = {7, 5, 8, 5, 2, 1 ; Sequence s1 = new SortArray(a, 1, 6), s2 = new SortArray(a, 3, 5); for (; s1.haselement(); s1.advance() ) System.out.print( s1.getcurrentindex() + ":" + s1.currentelement() + " " ); for (; s2.haselement() ; s2.advance() ) System.out.print( s2.getcurrentindex() + ":" + s2.currentelement() + " " ); Defina a classe RandomNumbers que representa uma sequência infinita pseudo-aleatória de números. A classe java.util.random disponibiliza o método de instância nextint que, sempre que é evocado, gera aleatoriamente um valor inteiro. O seguinte troço de código deve produzir 10 números aleatórios. for ( Sequence s = new RandomNumbers(); s.getcurrentindex() < 10; s.advance() ) { if ( s.currentelement()!= s.currentelement() ) System.out.print( "ERRO DE IMPLEMENTAÇÃO" ); else System.out.print( s.currentelement() + " " ); Defina a classe Composite que representa sequências compostas pela concatenação de sequências. Acrescente à classe Composite o método add e redefina os métodos herdados de forma a que o troço de código abaixo apresentado produza o output presente na caixa de texto: Composite x = new Composite(); x.add( new SortArray( new int[] {4,2, 0, 2) ); if (! x.add( new RandomNumbers() ) ) System.out.println("1 - Não é possível adicionar sequências infinitas"); Composite y = new Composite(); y.add( x ); x.add( new EvenNumbers(3, 12) ); if (! x.add( new Sequence() ) ) System.out.println("2 - Não é possível adicionar sequências vazias"); System.out.print( "Lista " + y.getsize() + ": " ); for ( ; y.haselement() ; y.advance() ) System.out.print( y.getcurrentindex() + ":" + y.currentelement() + " " ); 1 - Não é possível adicionar sequências infinitas 2 - Não é possível adicionar sequências vazias Lista 5: 0:2 1:4 2:12 3:14 4:16
4 2. Observe o diagrama UML presente na seguinte Figura e considere-o nas alíneas seguintes Complete as seguintes frases: a) Através do diagrama anterior, verifica-se que a classe E a classe B e a interface I2. b) Podemos afirmar que todos os objectos do tipo B são do tipo mas que nem todos do tipo B são do tipo. c) O método público print3 pode ser invocado sobre variáveis do tipo enquanto o método pode ser invocado sobre qualquer dos tipos que constam no diagrama. d) A declaração do método na classe C está incorrecta porque. e) Embora não esteja declarado, a classe D tem que ter pelo menos um porque. f) O troço de código I2 i2 = new I2(); origina um erro de... porque. g) O troço de código I1 i1 = new A( 1 ); origina um erro de... porque. h) Assumindo que a classe D tem um construtor sem parâmetros, o troço de código C c = new D(); origina um erro de... porque. i) O troço de código I2 i2 = new D(); i2.print3(); origina erro de... porque. j) O troço de código A a = new C(); D d = (D)a; d.print3() origina um erro de... porque. Responda de forma sucinta às seguintes questões: a) A interface I2 podia ser transformada numa classe abstracta? b) O construtor da classe A é herdado pelas classes C e D? E pode ser sobrecarregado ou sobreposto? Defina as classes correspondentes ao diagrama de classes em que o método: print1 escreve no console output o nome da classe; print2 invoca primeiro o print1 da classe base e a seguir o print1 da própria classe; print3 invoca primeiro o print1 da própria classe e a seguir o print1 da classe base.
5 3. Pretende-se desenvolver uma aplicação que implemente o Jogo do Adivinha. Neste jogo, o jogador pensa em algo (pensamento) e a aplicação, através de uma sequência de perguntas, de resposta sim/não (decisão), tenta adivinhar em que é que o utilizador estava a pensar. Em está disponível uma versão online deste jogo, com maior complexidade do que aquela que é pedida neste trabalho. O jogo usa uma árvore de decisão para manter a informação relativa aos pensamentos (elipses na Figura 1) e decisões (rectângulos na Figura 1). A Figura apresenta um exemplo da árvore de decisão, através da qual é possível adivinhar quatro animais usando três questões de decisão. Por exemplo, sabe-se que uma Cobra não tem Patas, é um Réptil e não é uma Ave (elementos com fundo amarelo na figura 1). root: Ave? Águia Réptil? Patas? Leão Lagartixa Cobra Figura 1: Árvore de decisão a) Defina uma hierarquia de tipos que suporte a representação da Figura 1, e construa a árvore de decisão. b) Acrescente suporte para: i. Apresentar a árvore de decisão root.show( Sim, Não ); Resultado (exemplo para a árvore de decisão da Figura 1): Ave Sim: Águia Não: Réptil Sim: Patas Sim: Lagartixa Não: Cobra Não: Leão ii. iii. Obter o número de pensamentos int nt = root.getnumberofthoughts(); // nt = 4 Verificar da existência de determinado pensamento boolean exists = root.containsthougth( Cobra ); // exists = true iv. Mostrar as decisões positivas (Sim) relativas a determinado pensamento cobra.showdecisionpath(); lagartixa.showdecisionpath(); Cobra -> Réptil Lagartixa -> Patas -> Réptil c) Implemente a funcionalidade de jogo, de forma a ser possível: i. Pedir ao utilizador para pensar em algo e, com uma sequência de perguntas de resposta Sim/Não, adivinhar em que é que ele pensou.
6 ii. No caso de derrota por parte da aplicação (errar na resposta), perguntar em que é que o utilizador estava a pensar (pensamento) e de forma é que é diferente (decisão), e adicionar essa informação à árvore existente. System.out.println( Pense em algo. ); Response res = root.guess(kbd); // descobre em que estou a pensar e usa // kbd, para fazer perguntas ao utilizador if (res.success()) { System.out.println( Acertei :-) ); res.showdecisionpath(); else { System.out.println( Ups, estava quase!. Afinal não é + res.getthought()); System.out.println( Em que pensaste? ); Thought newth = new Thought(kbd.nextLine()); System.out.println( O que o diferencia? ); Decision newdecision = new Decision(kbd.nextLine(), newth); res.replacewithdecision(newdecision); newth.showdecisionpath(); Exemplo em que o utilizador pensou em Cobra : (texto do utilizador em itálico, sublinhado e negrito) Pense em algo. Ave? N Réptil? S Patas? S Pensou em Cobra? S Acertei :-) Cobra -> Réptil Exemplo em que o utilizador pensou em Peixe : Pense em algo. Ave? N Réptil? N Pensou em Leão? N Ups, estava quase!. Afinal não é Leão. Em que pensaste? Peixe O que o diferencia? Escamas Peixe -> Escamas A Figura 2 mostra as alterações à árvore de decisão após adição do pensamento Peixe e respectiva pergunta de decisão Escamas. Note que o novo pensamento é sempre colocado no lado Sim da decisão, e que o pensamento anterior é colocado do lado oposto. A nova decisão é colocada na posição do antigo pensamento (no caso, Escamas substituí Leão ). root: Ave? root: Ave? Águia Réptil? Águia Réptil? Patas? Leão Patas? Escamas? Lagartixa Cobra Lagartixa Cobra Peixe Leão Figura 2: Alterações à árvore de decisão após adição do Peixe Bom trabalho
Nome: Número: Segunda Parte (3 valores) Primeira Parte (7 valores)
2º Teste 2013/2014 1º Semestre 201401140900 2º Teste 2013/2014 1º Semestre 14 de Janeiro de 2014, 09:00 (120 minutos) Nome: Número: 1/8 Primeira Parte (7 valores) PERGUNTA NOTA 1.1.1 1.1.2 1.1.3 1.2.1
Leia mais9 Classes Abstractas e Interfaces
9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Leia maisOrientação a Objetos AULA 09
Orientação a Objetos AULA 09 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Coleções ü Coleções lista de objetos ü Coleções conjuntos 2 Coleções Podemos armazenar vários objetos em um array e este
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Leia mais4 Conceito de Herança
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
Leia mais1. Estude e implemente a classe Exemplo1 apresentada abaixo:
P. Fazendeiro & P. Prata POO FP09/1 Exceções Uma exceção (Exception) é um sinal gerado pela máquina virtual de Java em tempo de execução indicando uma situação de erro da qual é possível recuperar. O objectivo
Leia maisDepartamento de Ciência de Computadores Estruturas de Dados (CC114)
1. Cotação de cada pergunta: 1. 30 / 2. 40 / 3. 30 (Total: 100 pontos) 2. Responda às questões de forma clara e concisa nas folhas de exame distribuídas. 1. (Valorização: 30%) Responda às seguintes questões:
Leia maisRecursividade. Prof. Jesus José de Oliveira Neto
Recursividade Prof. Jesus José de Oliveira Neto Algoritmos podem ser definidos de duas formas: Forma iterativa ou não recursiva: utiliza laços de repetição (while, for, do/while) Forma recursiva: métodos
Leia maisCURSO BÁSICO DE PROGRAMAÇÃO AULA 14. Funções e procedimentos
CURSO BÁSICO DE PROGRAMAÇÃO AULA 14 Funções e procedimentos Introdução Problemas complexos exigem algoritmos complexos; Quanto mais complexo o algoritmo, mais difícil é escrevê-lo; Solução: uso de funções
Leia maisProva 2 PMR3201 1o. semestre 2016 Prof. Thiago Martins
Prova 2 PMR3201 1o. semestre 2016 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço. Os códigos fornecidos na seção Códigos-fonte de apoio podem ser referenciados
Leia maisLista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }
Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos
Leia maisProgramação com Objectos. 2º Teste 2015/2016 1º Semestre
1/7 2015/2016 1º Semestre 13 de Janeiro de 2016, 18:30 (120 minutos) 2º Teste Nome: Número: Primeira Parte (3 valores) PERGUNTA RESPOSTA Segunda Parte (7 valores) PERGUNTA 1.1 2.1 1.2 2.2.1 1.3 2.2.2 1.4
Leia maisINSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados
INSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados Ano Lectivo de 2002/2003 2 o Semestre RESOLUÇÃO DA REPESCAGEM DO 1 o TESTE I. (2.0+1.5+1.5 = 5.0 val.) a) Considere o programa em C seguinte.
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Variáveis e Métodos de Classe Em Java, quer as classes quer as instâncias das classes são objectos. Onde está o estado da classe? Com que operações é manipulado? UBI, Departamento de Informática T04-1
Leia maisEspecificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)
Mecanismos de controlo de acesso Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a cada classe e cada membro da classe (dados e métodos) Modificadores de acesso: public protected private
Leia maisPROGRESSÃO GEOMÉTRICA
Hewlett-Packard PROGRESSÃO GEOMÉTRICA Aulas 01 a 05 Elson Rodrigues, Gabriel Carvalho e Paulo Luiz Ramos Ano: 2015 Sumário PROGRESSÃO GEOMÉTRICA (P.G.)... 1 PRELIMINAR 1... 1 DEFINIÇÃO... 1 A RAZÃO DE
Leia maisESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA (ABORDAGEM RECURSIVA)
ESTRUTURAS DE DADOS E ALGORITMOS 1 LISTA LIGADA (ABORDAGEM RECURSIVA) Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande QUESTÕES DE IMPLEMENTAÇÃO Implementacao
Leia maisAula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU
Aula 5 POO 1 Encapsulamento Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações
Leia maisInterfaces POO. Prof. Marcio Delamaro
Interfaces POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/41 O que é interface É um template de classe Outras classes podem seguir esse template Chamamos isso
Leia maisProgramação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -
Programação Java - Herança, Classes Abstratas e Interfaces - Marco Fagundes mfagundes@tre-pa.gov.br 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes
Leia maisAULA TEÓRICA 10. Tema 9. Interface. Tema 10. Recursividade
AULA TEÓRICA 10 Tema 9. Interface Tema 10. Recursividade 1 Interface Uma interface é como uma classe que não pode ser instanciada. Seu objectivo é espicificar um conjunto de métodos que uma classe deverá
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
Leia maisDepartamento de Ciência de Computadores Estruturas de Dados (CC114)
1. Cotação de cada pergunta: 1. 32 / 2. 38 / 3. 30 (Total: 100 pontos) 2. Responda às questões de forma clara e concisa nas folhas de exame distribuídas. 1. (Valorização: 32%) Responda às seguintes questões:
Leia maisProva 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins
Prova PMR0 o semestre 0 Prof Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço ( pontos) Uma árvore binária de busca é uma árvore binária na qual para qualquer sub-árvore
Leia maisRESPOSTA: import java.util.arraylist; import java.util.list; class CarrinhoDeCompras2 { List<Produto> produtos;
Fundação CECIERJ - Vice Presidência de Educação Superior a Distância Curso de Tecnologia em Sistemas de Computação Disciplina: Programação Orientada a Objetos AP2 2 semestre de 2016. Nome Assinatura Observações:
Leia maisProva 2 PMR2300 1o. semestre 2015 Prof. Thiago Martins
Prova PMR00 o. semestre 0 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço.. ( pontos) Um heap binário é uma árvore binária completa (todos os níveis exceto o último
Leia maisProgramação Orientada por Objectos 2007/2008
Programação Orientada por Objectos 2007/2008 Segundo Teste, 30/6/2008, Duração 1h30 (20 valores) 1 [2v] Considere que pretende desenvolver uma função num jogo que trata uma colisão entre dois objectos
Leia maisUNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS
Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista
Leia maisUNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS
Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
Leia maisExame de Estruturas de Dados 2010.Junho.26
Exame de Estruturas de Dados 2010.Junho.26 Duração: 2:30 horas Valorização: 12 valores. 1. Responda às seguintes questões: a) Faça o estudo da complexidade do seguinte método: 1. void fun2(int n, int v[])
Leia maisProgramação por Objectos. Java
Programação por Objectos Java Parte 7: Interfaces LEEC@IST Java 1/31 Interfaces revisão (1) Uma interface é um conjunto de protótipos de métodos (sem implementações) que especifica um serviço bem definido:
Leia mais2 Vectores de objectos
2 Vectores de objectos Agenda de contactos 3 Objectivo Manipular uma agenda de contactos. Descrição e Funcionalides Cada contacto na agenda caracteriza-se por um nome, um telefone e um e-mail. Na agenda,
Leia maisUniversidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java
Guia da Sintaxe do Java TIPOS PRIMITIVOS DE DADOS DO JAVA São os tipos nativos de dados do Java, que podem ser usados na declaração de atributos, variáveis, parâmetros. Tipo primitivo Tamanho Valor padrão
Leia maisUniversidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática
6 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... Diz-se que o nome de um método foi sobrecarregado ( overloaded
Leia maisLista Simplesmente Encadeada - Projeto. Prof. Leonardo Barreto Campos 1
Lista Simplesmente Encadeada - Projeto Prof. Leonardo Barreto Campos 1 Sumário Introdução Classe Aluno Classe Lista Classe ListaAluno Classe ListaAlunoJFrame Leonardo Barreto Campos 2/40 Introdução Agora
Leia maisUNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra
Leia maisApêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são:
Apêndice A Classe Vector A classe Vector permite a representação de um vetor de dados de maneira similar à de um array, visto na disciplina Programação Orientada a Objetos I, mas com maior flexibilidade.
Leia maisFCUP 2010/11. Departamento de Ciência de Computadores Estruturas de Dados (CC114) 1 o Teste: 27/Abril/2011
1 1 Departamento de Ciência de Computadores Estruturas de Dados (CC114) 1 o Teste: 27/Abril/2011 FCUP 2010/11 duração: 2 horas 1. Teste A (indicar o teste que estão a fazer na folha de resposta) 2. Cotação
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
6 Exceções Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável O controlo da execução do programa
Leia maisnome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){
UNIVERSIDADE FEDERAL DE SANTA CATARINA - Departamento de Automação e Sistemas PROGRAMAÇÃO DE SISTEMAS AUTOMATIZADOS - 2016/2 - P2 Nome: ------------------------------------------------------------------------------------------------------
Leia maisProf. Vicente Paulo de Camargo UML - INTRODUÇÃO UML = Unified Modeling Language = linguagem de modelagem de sistemas Permite especificar, visualizar e documentar modelos de software orientados a objetos
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Modificadores de Acesso: public e private Prof. Tulio Alberton Ribeiro Instituto Federal de Santa Catarina IFSC campus São José tulio.alberton@ifsc.edu.br 31 de julho de
Leia mais[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999.
Cap. IV - Programação Concorrente [Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999. [Gosling] The Java Language Specification James Gosling, Bill Joy and
Leia maisProgramação Estruturada e Orientada a Objetos
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Programação Estruturada e Orientada a Objetos Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Java Collections Framework (JCF) Uma coleção (collection) é um objeto que agrupa vários elementos. A JCF consiste numa arquitetura para representação e manipulação de coleções. Contém: - Um conjunto de
Leia mais1. Cotação de cada pergunta: / / (Total: 100 pontos) 2. Responda às questões de forma clara e concisa nas folhas de exame.
Departamento de Ciência de Computadores Estruturas de Dados (CC114) 2 o Teste: 25/Junho/2012 FCUP 2011/12 duração: 2.5 horas 1. Cotação de cada pergunta: 1. 30 / 2. 35 / 3. 35 (Total: 100 pontos) 2. Responda
Leia maisPalavras Reservadas da Linguagem Java
Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO
COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO FOZ DO IGUAÇU 2013 LISTA
Leia maisDepartamento de Ciência de Computadores Estruturas de Dados (CC114)
1. Cotação de cada pergunta: 1. 32 / 2. 36 / 3. 32 (Total: 100 pontos) 2. Responda às questões de forma clara e concisa nas folhas de exame distribuídas. 1. (Valorização: 32%) Responda às seguintes questões:
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)
Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça Problema: Definir uma dependência um-para-muitos entre objetos, de forma quando o estado
Leia maisProva de Recuperação PMR3201/PMR2300 1o. semestre 2015 Prof. Thiago Martins
Prova de Recuperação PMR21/PMR2 1o. semestre 2 Prof. Thiago Martins Instruções: screva o nome e o número USP na folha de papel almaço. 1. (2 pontos) Uma pilha é uma estrutura de dados na qual o elemento
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia maisProfa. Thienne Johnson EACH/USP
Profa. Thienne Johnson EACH/USP Declarando classes usando generics Métodos que usam um parâmetro de tipo como tipo de retorno Declaração da classe BasicGeneric: class BasicGeneric Contém o parâmetro
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
5 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... - Diz-se que o nome de um método foi sobrecarregado ( overloaded
Leia maisLinguagem de Programação III
Linguagem de Programação III Aula-7 Reutilização de Classes Prof. Esbel Tomás Valero Orellana Até Aqui Introdução a POO e sua implementação em Java Atributos, métodos e encapsulamento dos mesmos Trabalhando
Leia maisCollections Framework
Collections Framework 1 Arrays p Manipular array é bastante trabalhoso. p Dificuldades aparecem em diversos momentos: n não podemos redimensionar um array em Java; n é impossível buscar diretamente por
Leia maisQuando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.
6 Exceções Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável - O controlo da execução do programa
Leia maisOrientação a Objetos e Java
Orientação a Objetos e Java Daves Martins davesmartins@yahoo.com.br Mestre em Computação de Alto Desempenho pela UFRJ Especialista em Banco de Dados Analista Web Orientação a Objetos e Java Características
Leia maisExercícios sobre repetição. 1. Escreva um método que lê via teclado 8 números e retorna a quantidade de negativos.
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Lista de exercícios 6 Exercícios sobre repetição 1. Escreva um método que lê via teclado 8 números e retorna
Leia maisAula 9: Bagels. Kaya Sumire Abe Bianca Alessandra Visineski Alberton 10/10/2012
Aula 9: Bagels Kaya Sumire Abe kaya.sumire@gmail.com Bianca Alessandra Visineski Alberton bi.alberton@gmail.com 10/10/2012 Resumo Nesta aula, serão apresentadas mais funções do Python. Além disso, duas
Leia maisImplementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação
Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Introdução Além de utilizar as classes presentes na biblioteca padrão, programadores podem definir suas próprias
Leia maisNomes, vinculações e escopos
Nomes, vinculações e escopos Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl
Leia maisParadigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Leia maisRESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:
RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em: http://www.oxnar.com.br/aulas/java ATIVIDADE ELABORAR O PROGRAMA DE CÁLCULOS DE ÁREAS USANDO
Leia maisFicha Prática 10. António Nestor Ribeiro, Paulo Azevedo, Mário Martins PPIV (LESI) 2005/06
Ficha Prática 10 António Nestor Ribeiro, Paulo Azevedo, Mário Martins {anr,pja,fmm@di.uminho.pt PPIV (LESI) 2005/06 Objectivos 1. Interfaces: declaração e utilização. 2. Interfaces como tipos de dados
Leia maisAULA TEÓRICA 9. Tema 8. Herança (continuação) Ø Sobreposição de métodos. Ø Variáveis e métodos estáticos. Ø Hierarquia de classes.
AULA TEÓRICA 9 Tema 8. Herança (continuação) Ø Sobreposição de métodos. Ø Variáveis e métodos estáticos. Ø Hierarquia de classes. Ø Polimorfismo Elaborado por eng.tatiana Kovalenko Sobreposição de métodos
Leia maisRecursividade. Métodos iterativos. Prof. Cesar Augusto Tacla. Métodos iterativos utilizam estruturas de repetição
Recursividade Prof. Cesar Augusto Tacla Métodos iterativos Métodos iterativos utilizam estruturas de repetição For While Do while Normalmente, um método invoca outros métodos, não a si mesmo. 2 1 Recursividade
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem
Leia maisDIRETORIA ACADÊMICA DE GESTÃO E TECNOLOGIA DA INFORMAÇÃO DIATINF TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TADS
DIRETORIA ACADÊMICA DE GESTÃO E TECNOLOGIA DA INFORMAÇÃO DIATINF TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TADS LISTA DE EXERCÍCIOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS 1. Crie um modelo (classe)
Leia maisProgramação por Objectos. Java
Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/50 Herança revisão (1) A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse
Leia maisAula teórica 14. Tema 12. Subprogramas (cont)
Aula teórica 14 Tema 12. Subprogramas (cont) Passagem de parâmetros. Valor de retorno Preparado por eng.tatiana Kovalenko 1 Variáveis globais Variáveis declarados no início da execução do programa, fora
Leia maisPROGRAMAÇÃO JAVA. Parte 3
PROGRAMAÇÃO JAVA Parte 3 O PRIMEIRO PROGRAMA O Java executa uma instrução a seguir a outra, pela ordem em que estão escritas. Essa sequência poderá ser contrariada de forma especial: Alternativas: Ciclos
Leia maisA Relação de Subtipo e Tipos Genéricos
O tipo List representa as listas que declaram ter elementos do tipo Object O tipo que representa as listas que declaram ter elementos de um tipo qualquer é List Este tipo é definido à custa
Leia maisAnálise de Programação
Análise de Programação Fundamentos da Linguagem de Programação Java Prof. Gilberto B. Oliveira Variáveis Atributos: Variáveis Declaradas fora de um método, sem o modificador static Variáveis membro ou
Leia maisProgramação Orientada a Objetos Relacionamentos entre classes
Programação Orientada a Objetos Relacionamentos entre classes Prof. Vicente Paulo de Camargo RELACIONAMENTO ENTRE CLASSES Interface agregação Dependencia composição generalização associação RELACIONAMENTO
Leia maisTestes com objetos mock. Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Análise e Projeto Orientados a Objetos
Testes com objetos mock Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Análise e Projeto Orientados a Objetos Introdução Testes são essenciais para garantir a qualidade do código. No entanto:
Leia mais3 Classes e instanciação de objectos (em Java)
3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável O controlo da execução do programa é transferido
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação GGI030 Programação Orientada a Objetos 1o. Semestre de 2017 Prof.
Universidade Federal de Uberlândia Faculdade de Computação GGI030 Programação Orientada a Objetos 1o. Semestre de 2017 Prof. Renato Pimentel Prática 02 Java básico Atividade individual. Crie um novo projeto
Leia maisTrabalho de Grupo de Otimização Ano letivo: 2014/2015
1. Formule o problema de Programação Linear. Defina convenientemente as variáveis que achar mais relevantes e explique as restrições utilizadas. Através da análise do problema torna-se relevante definir
Leia maisSISTEMAS DIGITAIS MEFT/MEAer de Abril de 2016, 18:00
SISTEMS DIGITIS MEFT/MEer 5-6 9 de bril de 6, 8: ntes de iniciar o teste, tenha em atenção o seguinte: i. Duração do teste: hm. ii. O teste contempla 6 perguntas, distribuídas em páginas. iii. Existem
Leia maisFundamentos da Programação
Fundamentos da Programação Solução do Primeiro Teste 26 de Outubro de 2013 09:00 10:30 1. (1.0) O que é um processo computacional? Qual a relação entre um programa e um processo computacional? Um processo
Leia maisLEIC-A / MEIC-A 2007/2008 (1º
1/11 LEIC-A / MEIC-A 2007/2008 (1º Semestre) Teste (versão A) 08 de Janeiro de 2008, 09:00 (120 minutos) Nome: Primeira Parte (5 valores) PERGUNTA RESPOSTA 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 Segunda
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
5 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... - Diz-se que o nome de um método foi sobrecarregado ( overloaded
Leia maisBacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java
Linguagem Java Objetivos????? ADAPTAR O TEXTO ABAIXO????? Aprender a sintaxe da Estrutura de Repetição ENQUANTO-FAÇA na linguagem PORTUGOL Aprender a resolver problemas que requeiram o uso de ESTRUTURAS
Leia maisInput / Output na linguagem java. Para isso usamos um dos construtores da classe java.io.file:
Input e Output 1 A classe File Input / Output na linguagem java Antes de podermos ler/escrever de/para um ficheiro temos que criar um objecto do tipo File e associar esse objecto ao ficheiro a que queremos
Leia maisFundamentos de programação
Fundamentos de programação Métodos Modularização de código Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno O que é um método? Um método é um trecho de código identificado Possuem um
Leia maisEncapsulamento. Alberto Costa Neto DComp - UFS
Encapsulamento Alberto Costa Neto DComp - UFS 1 Motivação O que aprendemos até agora? O que diferencia a POO da Programação Imperativa? Estas informações são suficientes para construir um projeto OO eficiente?
Leia maisProgramação Orientada a Objetos II
Programação Orientada a Objetos II Introdução Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa Introdução ao Desenvolvimento
Leia maisProgramação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos
Programação Orientada a Objetos: Herança Alexandre César Muniz de Oliveira Análise e Projeto Orientados a Objetos A análise orientada a objetos Determina o que o sistema deve fazer: Quais os atores envolvidos?
Leia maisHerança e Polimorfismo
Herança e Polimorfismo 2013 O que veremos hoje? Herança e polimorfismo Transparências baseadas no material do Prof. Gilbert Azevedo e Prof. Jailton Carlos Objetivos Conceito de Polimorfismo em POO Mais
Leia maisdouble x; x = enigmab1(100);
8h Universidade Federal do ABC Avaliação: Prova 02 Disciplina: Processamento da Informação Turmas: A4, A5 (8hs) Professor: Jesús P. Mena-Chalco Data: 05/05/2016 Nome: RA: Instruções para a prova (leia
Leia maisProgramação Orientada por Objectos 2010/11. 2º Exame 28 de Junho de 2011
Programação Orientada por Objectos 2010/11 2º Exame 28 de Junho de 2011 Instruções (leia com cuidado): Escreva de forma CLARA o seu nome e número em todas as folhas. O exame contém 8 páginas dividido em
Leia mais