Buscar

Lista 02 - TAP (alunos)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
Instituto de Ciências Exatas e Informática - Campus Betim
	Disciplina
Técnicas Avançadas de Programação
	Curso
Sistemas de Informação
	Turno
Noite
	Período
5◦
	Professor
Fábio Leandro Rodrigues Cordeiro fabio@pucminas.br
	Valor
XP
	Aluno
Felipe Carvalho de Avelar
Lista Revisão 2
1. Associe a coluna de Técnicas com a descrição ao lado:
a) Divisão e Conquista	(	) Quebra o problema em sub-problemas menores;
b) Programação Dinâmica	(	) O nome tem origem no método de solução por tabelas;
c) Método Guloso		(		) Resolve todos os sub-problemas menores e reusa as soluções ótimas; (		) Uma vez realizado uma escolha ela nunca é revista;
(	) Uma função de seleção indica quais dos candidatos restantes é o melhor.
2. São características da Técnica de Projeto de Algoritmos Gulosos, exceto:
a) Sempre escolhem a alternativa que a priori mostram-se mais promissoras naquele instante;
b) Uma vez tomada uma decisão, não a reconsideram em hipótese alguma;
c) O Critério guloso consiste em realizar uma decisão local ótima;
d) Cada instância do problema é resolvida a partir de sub-instâncias da instância original;
e) Nunca examina um elemento mais de uma vez, ou faz parte da solução ou não faz.
3. (INEP - 2017 - ENADE) Um país utiliza moedas de 1, 5, 10, 25 e 50 centavos. Um programador desenvolveu o método a seguir, que implementa a estratégia gulosa para o problema do troco mínimo. Esse método recebe como parâmetro um valor inteiro, em centavos, e retorna um array no qual cada posição indica a quantidade de moedas de cada valor.
public static int[ ] troco(int valor){
int [ ] moedas = new int[5]; moedas[4] = valor / 50;
valor = valor % 50; moedas[3] = valor / 25; valor = valor % 25; moedas[2] = valor / 10; valor = valor % 10; moedas[1] = valor / 5; valor = valor % 5;
moedas[0] = valor; return(moedas);
}
Considerando o método apresentado, avalie as asserções
a seguir e a relação proposta entre elas.
I. O método guloso encontra o menor número de moedas para o valor de entrada, considerando as moedas do país. PORQUE
II. Métodos gulosos sempre encontram a solução global ótima. A respeito dessas asserções, assinale a opção correta. a)
As asserções I e II são proposições verdadeiras, e a II é uma justi cativa correta da I.
b) As asserções I e II são proposições verdadeiras, mas a II não é uma justi cativa correta da I.
c) A asserção I é uma proposição verdadeira, e a II é uma pro- posição falsa.
d) A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
e) As asserções I e II são proposições falsas.
4. Julgue os itens a seguir em V ou F sob as perspectivas das Técnicas de Programação Dinâmica e Método Guloso
( F ) Tanto a Programação Dinâmica quanto o Método Guloso trabalham de forma top-down;
( V ) A Programação Dinâmica faz uma escolha a cada passo, das quais dependem das soluções dos sub-problemas de forma botton-up;
( F ) A Técnica Gulosa quando funciona corretamente, a primeira solução encontrada é sempre ótima. 
( V ) Na Técnica de Programação Dinâmica um candidato excluído do conjunto de solução não é mais
considerado.
( V ) Sempre escolhem a alternativa que a priori mostram-se mais promissoras naquele instante;
5. O algoritmo de cálculo da sequência de Fibonacci abaixo descreve uma das Técnicas de Projeto de Algoritmos estudada. De na e explique o funcionamento dela, e o porquê desta classi cação para este problema em especí co?
int Fibonacci(int n) {
int[ ] memory = new int[n + 1]; memory[1] = 1;
memory[2] = 1;
for (int i = 3; i <= n; i++) {
memory[i] = memory[i - 1] + memory[i - 2];	 	
}
return memory[n];
}
6. Levando em consideração a implementação do Problema da Mochila abaixo em Programação dinâ- mica, identi que qual o tipo da implementação (Com ou Sem Repetição) e execute o algoritmo passo a passo, conforme visto em sala:
7. Sobre os Paradigmas de Programação é correto a rmar que:
a) Os paradigmas determinam as estruturas dos elementos que compõem um programa e coordenam suas interações entre si e agentes externos.
b) O paradigma de programação orientada por objetos se caracteriza por ser baseado em módulos ou subprogramas.
c) O paradigma de POO é de nido pela utilização da lógica funcional.
d) Na programação por lógica funcional os dados são acessados de forma modular, de acordo com o tipo de dado e do tipo de método que possui acesso a eles.
e) Podemos citar a limitação humana para compreender um sistema complexo como um todo, como motivação principal para mudança da programação funcional para a POO.
8. Sobre os Padrões de Projeto e Modelos Arquiteturais de Programação, associe:
(a) DAL	(b) DAO	(c) CRUD	(d) XML	(e) Singleton	(f) Strategy
( DAO ) É um padrão que abstrai e encapsula os mecanismos de acesso a dados, deixando transparente a maneira como esses dados são acessados do resto da aplicação.
( DAO ) A partir deste conceito é possível criar classes de dados que são independentes da fonte de dados ser um Banco de Dados, um arquivo de texto ou XML.
( XML ) É um padrão que especi ca um formato largamente utilizado para representação, armazena- mento e transferência de dados.
( XML ) é suportado por diversas linguagens da atualidade, inclusive o C#, e facilita a interoperabilidade entre sistemas distintos
( CRUD ) Acrônico das palavras Create, Read, Update e Delete.
( CRUD ) É utilizado quando se refere as operações básicas para manutenção de um dado. 
( DAL ) Camada de Acesso a Dados, que de ne uma interface de acesso aos dados.
( Singleton ) É considerado um dos padrões de projeto mais utilizadas, e tem por nalidade a garantia de apenas uma instância de uma instância através de um ponto global de acesso.
( Strategy ) Este padrão de ne uma família de algoritmos e é capaz de intercambiar, de forma encapsulada, separando assim o comportamento que variam em interfaces.
9. De na e Explique cada um dos polimor smo, descreva um exemplo de uso para cada um:
a) Polimor smo/AdHoc/Sobrecarga:
b) Polimor smo/AdHoc/Coerção:
c) Polimor smo/Universal/Paramétrico:
d) Polimor smo/Universal/Inclusão:
10. Sobre os tipos de Polimor smo julgue as assertivas:
I) O AD HOC é considerado uma forma limitada de polimor smo e é dividida em duas formas: coerção e sobrecarga. v
II) Se o método Soma é de nido com tendo dois parâmetros reais, e são passados para ele, um valor inteiro e um valor real, dizemos então que temos um polimor smo paramétrico por coerção (casting).
III) Polimor smo por sobrecarga é aquele em que é permitida a utilização do mesmo nome de função com diferentes tipos de parâmetros. v
IV) Um exemplo de polimor smo universal por inclusão é aquele que o tipo não existe sozinho, sendo necessário que sejam incluídos por parâmetro algum tipo de dado.
V) O polimor smo universal por inclusão caracteriza-se por uma função que foi de nida em um determinado tipo pode manipular todos os subtipos nas classes derivadas.
a) V; F; V; F, V
b) V; F; V; F, F
c) F; V; V; V; F
d) F; F; F; V; V
e) V; V; V; F; V
11. Julgue as alternativas abaixo em Certo e Errado.
a) Callback Function são chamadas de funções feitas em c/c++ onde são feitas chamadas de função através de ponteiro. Comportamento parecido tem-se utilizando a técnica de Delegates em C#, porem com ponteiros não seguros. ( ) certo ( ) errado
b) O fragmento de código abaixo mostra a declaração de um delegate de forma correta: Delegate string MeuDelegate(string p1, string p2); ( ) certo ( ) errado
c) Os delegates permitem que uma classe chame métodos em outras sem exigir que esta outra classe seja derivada de um ancestral conhecido. ( ) certo ( ) errado
d) Eventos (Events), é uma técnica utilizada para o funcionamento do ambiente de desenvolvimento grá co do C#, e são fundamentados em delegates. ( ) certo ( ) errado
e) Um delegate é criado de forma similar à de um método concreto, onde sua assinatura é composta por: Nome do delegate; argumentos de entrada e tipo de retorno. ( ) certo ( ) errado
12. (UPENET/IAUPE - 2017) Sobre o uso de delegates na linguagem C# .NET, assinalea alternativa INCORRETA.
a) Uma vantagem da utilização de delegates é a sua aplicabilidade no modelo de eventos do .NET.
b) Um delegate com tipo de retorno void é automaticamente um System.MulticastDelegate.
c) Não podemos derivar de MulticastDelegate diretamente.
d) A common language runtime provê os métodos adicionais BeginInvoke e EndInvoke além dos herdados de MulticastDelegate.
e) O delegate genérico Action <T> encapsula um método que retorna um inteiro de código de erro.
13. De na e explique os delegates Action e Func do C#, e onde o seus respectivos usos são recomendáveis:

Continue navegando