·

Cursos Gerais ·

Programação

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta
Equipe Meu Guru

Prefere sua atividade resolvida por um tutor especialista?

  • Receba resolvida até o seu prazo
  • Converse com o tutor pelo chat
  • Garantia de 7 dias contra erros

Texto de pré-visualização

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS\nSão Gabriel\nDisciplina\t\tCurso\t\t\tTurma\t\tPeríodo\nParáfrago\tLing. de Programação\tEng. de Computação / Sist. de Informação\tManhã\t4º\n\nAluno: __________\n\nProva 2\n\n1. Considere o código Java abaixo:\n\npublic class MyClass {\n\tpublic static void main(String[] args) {\n\t\tint k = 0;\n\t\ttry {\n\t\t\tk = 5 / 0;\n\t\t} catch (ArithmeticException e) {\n\t\t\tSystem.out.println(\"A\");\n\t\t} catch (RuntimeException e) {\n\t\t\tSystem.out.println(\"2\");\n\t\t} catch (Exception e) {\n\t\t\tSystem.out.println(\"3\");\n\t\t} finally {\n\t\t\tSystem.out.println(\"4\");\n\t\t}\n\t\tSystem.out.println(\"5\");\n\t}\n}\n\n(4pt) ArithmeticException é uma classe que entende a classe RuntimeException que, por sua vez, estende a classe Exception. Existe igual a ela para o programa em conjunto: 1, 4, 5.\n\n2. Considere o código abaixo:\n\nclass Misterio {\n\tprivate int a = 3;\n\tprotected int b = 5;\n\tpublic int c = 7;\n\tpublic Misterio(int a) {\n\t\tthis.a = a;\n\t}\n}\n\nclass Desafio extends Misterio {\n\tprivate int d = 10;\n\tpublic void setA(int a) {\n\t\tsuper.a = a;\n\t}\n\tpublic void setB(int b) {\n\t\tthis.b = b;\n\t}\n\tpublic static void main(String[] args) {\n\t\tint n = 2;\n\t\tMisterio m = new Desafio();\n\t\tSystem.out.println(m.b);\n\t\tSystem.out.println(m.c);\n\t\tSystem.out.println((Desafio) m).b);\n\t}\n} (a) (6pt) Liste quais os problemas encontrados no código acima.\nLinha 15 - Erro de tentativa alterar a privacidade do método a\nLinha 23 - Erro de tentar alterar atributo privado (na class Misterio)\nLinha 23 - Ando inconsistente e foi deprectado\nLinha 26 - Tipo errado em erro expresso (O e 1)\n\n(b) (4pt) Ignore os erros do código. Qual seria o resultado esperado?\nLinha 27 - OK\nLinha 29 - ?????????? tipo e descrito assim por classes\n\nobs: o erro é uma classe abstract (detected) com um erro secundário\nque é uma classe que não declare o 'throws'\n\nc) Observe este exemplo.\n\nConsidere a declaração PROLOG abaixo:\nregra(I, 0).\nregra(X | [1], S) :- regra(I, S), S is S1 + X.\n\n(a) (2pt) Qual o resultado da consulta? - regra([3, 5, 7], S)?\n(5,5,3,1,0\n\n(b) (2pt) Desenhe a árvore de backtracking para a consulta acima.\n\n\n\n4. (2pt) Avalie as seguintes formas em LISP:\na. (car '(1 2 3 4))\n\nb. (cdr '(B J K L (M)))\n\nc. (cdr (cdr (cdr '(B J K L (M))))))\n\n5. (10pt) Implemente um sistema de gestão de conteúdo de texto para Web que seja capaz de gerar conteúdo estático e dinâmico. Conteúdos estáticos armazenam internamente o texto desejado, enquanto conteúdos dinâmicos armazenam o endereço na forma de URL, onde o conteúdo desejado poderá ser conectado. Implemente um sistema que armazene todo o conteúdo adicionado pelos diversos consumidores. profissionais de empresas. O sistema deverá possuir uma função getAllContent() que irá retornar em uma String todo o conteúdo armazenado. Implemente também a exceção InvalidContentException, que deverá ser lançada quando algum programador tentar criar um conteúdo vaziogu, O sistema deverá contemplar:\n\nabstract class Conteudo throws InvalidContentException {\n\tprotected String autor;\n\tprotected String eTitulo;\n\tpublic Conteudo() throws InvalidContentException {\n\t\tthis.autor = \"\";\n\t\tif (conteudoVazio(e)) {\n\t\t\tthrow new InvalidContentException(a);\n\t\t}\n\t}\n\n\tpublic abstract String getConteudo();\n\tpublic void setConteudo(String c) {\n\t\tthis.conteudo = c;\n\t}\n}\n\nclass Estendido extends Conteudo {\n\tprivate String[] conteudoC;\n\n\tpublic String getConteudo() {\n\t\t// Função para ler a URL\n\t\treturn conteudoC;\n\t}\n}\n\nclass SiteConteudo {\n\tprivate conteudo[];\n\tprivate int tamanho;\n\tprivate int contador;\n\n\tpublic SiteConteudo(int size) {\n\t\tthis.tamanho = size;\n\t\tthis.contador = 0;\n\t}\n\n\tpublic void addConteudo(Conteudo c) {\n\t\tthis.conteudo[this.contador];\n\t\tcontador++;\n\t}\n} a. As classes necessárias para implementar os diversos tipos de conteúdo e o sistema de conteúdo.\nb. A declaração dos principais atributos e métodos das classes (não é necessário implementar os mé- todos).\nc. A implementação do método getAllContent().\nd. Aplicação correta do encapsulamento, herança e polimorfismo.\ne. Aplicação de conceitos avançados de POO, quando aplicável.\nf. Lançamento e tratamento de exceções.\ng. Uma função main que ilustre o funcionamento básico do programa.\n\npublic String getAllContent() {\n String texto = \"Lista de conteúdo:\\n\\n\";\n for (int i = 0; i < tamanho; i++) {\n texto += conteúdo[i].getConteúdo() + \"\\n\";\n }\n return texto;\n}\n\nException InvalidContentException extends Exception {\n private String autor;\n public InvalidContentException(String autor) {\n super(\"Conteúdo inválido para \" + autor);\n this.autor = autor;\n }\n}\n\npublic static void main(String[] args) {\n Sincronico nova = new Sincronico(40);\n Conteudo cont = new Sincronico(\"www.pac.br\", \"mago\");\n nova.add(cont);\n System.out.println(nova.getAllContent());\n}\n