{"id":274,"date":"2017-08-24T18:56:51","date_gmt":"2017-08-24T21:56:51","guid":{"rendered":"http:\/\/web.inf.ufpr.br\/didonet\/?page_id=274"},"modified":"2017-08-24T18:57:43","modified_gmt":"2017-08-24T21:57:43","slug":"exercicios-ci062","status":"publish","type":"page","link":"https:\/\/web.inf.ufpr.br\/didonet\/teaching-disciplinas\/exercicios-ci062\/","title":{"rendered":"Exerc\u00edcios CI062"},"content":{"rendered":"<p><span style=\"font-size: 10pt\">1 &#8211; Explique quais s\u00e3o os 4 elementos b\u00e1sicos que nos permitem abstrair um problema para cria\u00e7\u00e3o de modelos conceituais orientados \u00e0 objetos.<\/span><\/p>\n<p><span style=\"font-size: 10pt\">2 &#8211; Crie um modelo de classes para representar uma biblioteca. Respeite as especifica\u00e7\u00f5es abaixo:<\/span><br \/>\n<span style=\"font-size: 10pt\">&#8211; A biblioteca cont\u00e9m v\u00e1rios exemplares.<\/span><br \/>\n<span style=\"font-size: 10pt\">&#8211; Defina dois tipos de exemplares: teses e livros.<\/span><br \/>\n<span style=\"font-size: 10pt\">&#8211; Os exemplares possuem t\u00edtulo e zero ou mais autores. <\/span><br \/>\n<span style=\"font-size: 10pt\">&#8211; Os autores tem um nome.<\/span><br \/>\n<span style=\"font-size: 10pt\">&#8211; Ambos tipos exemplares possuem a funcionalidade de impress\u00e3o de dados:<\/span><br \/>\n<span style=\"font-size: 10pt\"> &#8211; as teses imprimem o t\u00edtulo, autores e data defesa;<\/span><br \/>\n<span style=\"font-size: 10pt\">&#8211; os livros imprimem o t\u00edtulo e autores.<\/span><\/p>\n<p><span style=\"font-size: 10pt\">3 &#8211; Porque podemos afirmar que o fluxo de execu\u00e7\u00e3o de um programa implementado usando t\u00e9cnicas OO \u00e9 baseado em estados?<\/span><\/p>\n<p><span style=\"font-size: 10pt\">4) O c\u00f3digo abaixo \u00e9 a especifica\u00e7\u00e3o de um servidor de c\u00e1lculo em nuvem que executa requisi\u00e7\u00f5es por demana, isto \u00e9, executa servi\u00e7os de c\u00e1lculo. O servidor possui a seguinte especifica\u00e7\u00e3o:<\/span><br \/>\n<span style=\"font-size: 10pt\">&#8211; o servidor n\u00e3o conhece o servi\u00e7o de c\u00e1lculo antes do momento da execu\u00e7\u00e3o;<\/span><br \/>\n<span style=\"font-size: 10pt\">&#8211; o servi\u00e7o de c\u00e1lculo \u00e9 processado sempre sobre um \u00fanico par\u00e2metro de entrada. A opera\u00e7\u00e3o dever\u00e1 ser passada como par\u00e2metro.<\/span><br \/>\n<span style=\"font-size: 10pt\">&#8211; a especifica\u00e7\u00e3o do servidor e do servi\u00e7o implementa as 2 interfaces abaixo. <\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">interface Servidor {<\/span><br \/>\n<span style=\"font-size: 10pt\"><span style=\"font-family: courier new,courier,monospace\">\u00a0\u00a0 public void processa <\/span><span style=\"font-family: courier new,courier,monospace\">(Servico srv, Object param);<\/span><\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">}<\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">interface Servico {<\/span><br \/>\n<span style=\"font-size: 10pt\"><span style=\"font-family: courier new,courier,monospace\">\u00a0\u00a0 public Integer executa <\/span><span style=\"font-family: courier new,courier,monospace\">(Object entrada);<\/span><\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">}<\/span><br \/>\n<span style=\"font-size: 10pt\">Extenda esta especifica\u00e7\u00e3o para:<\/span><br \/>\n<span style=\"font-size: 10pt\">a) Definir dois servi\u00e7os de c\u00e1lculo: 1) incrementa um n\u00famero de uma unidade (1). 2) conta quantos caracteres possui uma string.<\/span><br \/>\n<span style=\"font-size: 10pt\">b) Definir um servidor que implemente o m\u00e9todo gen\u00e9rico <em>processa<\/em>.<\/span><br \/>\n<span style=\"font-size: 10pt\">c) Criar um programa que instancie um servidor e execute os dois servi\u00e7os, usando par\u00e2metros \u201c42\u201d e \u201cnovastring\u201d.<\/span><\/p>\n<p><span style=\"font-size: 10pt\">5 &#8211; O c\u00f3digo OO abaixo deveria instanciar 1 aluno e 2 professores. Responda \u00e0s seguintes quest\u00f5es:<\/span><br \/>\n<span style=\"font-size: 10pt\">a) Corrija os erros do c\u00f3digo abaixo, e explique as causas dos erros (n\u00e3o \u00e9 permitido excluir ou incluir linhas).<\/span><br \/>\n<span style=\"font-size: 10pt\">b) Ap\u00f3s a execu\u00e7\u00e3o do programa corrigido, quais s\u00e3o os valores das vari\u00e1veis p1, p3 e p4 e de seus atributos respectivos?<\/span><\/p>\n<p><span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">abstract class Pessoa {<\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">\u00a0\u00a0 String nome;<\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">}<\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">class Aluno extends Pessoa {<\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">\u00a0\u00a0 Integer idade;<\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">}<\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">class Professor extends Pessoa {<\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">}<\/span><\/p>\n<p><span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">class Programa {<\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">\u00a0\u00a0 public static void main (String args[]){<\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0 Professor p1 = new Pessoa();<\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0 Pessoa p2 = new Aluno();<\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0 Professor p3 = new Professor(), p4;<\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0 p1.nome = \u201cJohn Doe\u201d; <\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0 p4 = p1;<\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0 p2.idade = 14; <\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0 p1 = null; <\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">\u00a0\u00a0 }<\/span><br \/>\n<span style=\"font-family: courier new,courier,monospace;font-size: 10pt\">}<\/span><\/p>\n<p><span style=\"font-size: 10pt\">6- Implemente o comando de atribui\u00e7\u00e3o \u201c=\u201d usando apenas troca de mensagens.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1 &#8211; Explique quais s\u00e3o os 4 elementos b\u00e1sicos que nos permitem abstrair um problema para cria\u00e7\u00e3o de modelos conceituais orientados \u00e0 objetos. 2 &#8211; Crie um modelo de classes para representar uma biblioteca. Respeite as especifica\u00e7\u00f5es abaixo: &#8211; A biblioteca cont\u00e9m v\u00e1rios exemplares. &#8211; Defina dois tipos de exemplares: teses e livros. &#8211; Os&hellip;<\/p>\n","protected":false},"author":21,"featured_media":0,"parent":31,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-274","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/pages\/274","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/comments?post=274"}],"version-history":[{"count":2,"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/pages\/274\/revisions"}],"predecessor-version":[{"id":277,"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/pages\/274\/revisions\/277"}],"up":[{"embeddable":true,"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/pages\/31"}],"wp:attachment":[{"href":"https:\/\/web.inf.ufpr.br\/didonet\/wp-json\/wp\/v2\/media?parent=274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}