Buscar

PROVA A2 - PROGRAMAÇÃO DE SOLUÇÕES COMPUTACIONAIS

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 9 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

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 6, do total de 9 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

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 9, do total de 9 páginas

Prévia do material em texto

1) Parte relevante das linguagens de programação mais utilizadas na atualidade possibilitam a 
utilização de mecanismos de tratamento de exceção. Um tratamento de exceção é responsável por 
tratar ocorrências que alteram o fluxo usual da execução de algoritmos em programas de 
computador. 
 
No que diz respeito ao tratamento de exceções, analise as asserções a seguir e a relação 
proposta entre elas. 
I. Mesmo contribuindo para os programas de computador se tornarem mais estáveis e 
evitando erros como estouro de memória, corrupção de dados ou saídas inválidas, é comum o 
uso de tratamento em exceção ser criticado. 
PORQUE 
II. O uso de tratamento de exceção pode encorajar o abuso de blocos try/catch mal 
projetados, podendo não deixar clara ocorrência de exceções nas rotinas que deveriam tratá-
las. 
A seguir, assinale a alternativa correta. 
 
a) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta 
da I. 
b) As asserções I e II são proposições falsas. 
c) C)A asserção I é uma proposição verdadeira e a asserção II é uma proposição falsa. 
d) D)As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I. 
 
2) Vetores (ou arrays) são usados para armazenar vários valores em uma única variável, ao 
invés de declarar variáveis separadas para cada valor. É a forma mais simples de organizar listas de 
dados na memória, pois são armazenados em sequência, um após o outro, o que permite que 
qualquer valor de qualquer posição seja acessado livremente. 
 
Considerando o conceito de arrays, avalie as asserções a seguir e a relação proposta entre elas. 
I. Após definir ou alocar um vetor (array), não é possível aumentar o seu tamanho. 
PORQUE 
II. Como as suas partes são divididas de forma sequencial na memória, não é possível 
aumentar a alocação, sendo que a sequência da memória pode ser ocupada por outras 
estruturas. 
 
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 justificativa correta da I. 
b) As asserções I e II são proposições falsas. 
c) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta 
da I. 
d) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. 
e) A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. 
 
3) Se as estruturas de repetição não existissem na programação, as soluções seriam muito mais 
limitadas em relação ao que se pode criar hoje. Além de menor eficiência, a escrita dos códigos 
estaria comprometida em diversos aspectos, pois, sempre que uma instrução tivesse que ser 
repetida, teria que ser escrita diversas vezes. 
 
Com base nas estruturas de repetição, avalie as afirmações a seguir. 
I. No contexto de laços de repetição, uma variável acumuladora recebe um valor inicial e é 
incrementada nas iterações de um laço por uma expressão. 
II. As estruturas de repetição necessitam de variáveis acumuladoras, pois, sem elas, não seria 
possível determinar um critério de parada. 
III. As estruturas de repetição apresentam como padrão a realização de um teste antes da 
execução de suas instruções, não sendo possível realizar testes ao seu final. 
IV. Comandos de entrada de dados podem ser realizados internamente nas estruturas de 
repetição, não prejudicando sua execução, caso sejam implementados corretamente. 
 
É correto o que se afirmar em: 
a) II e III, apenas. 
b) I e II, apenas. 
c) I e IV, apenas. 
d) I, II e IV, apenas. 
e) I, II e III, apenas. 
 
4) Um tipo abstrato de dados (TAD) trata-se de um conjunto de dados estruturados e um 
conjunto de operações que podem ser executadas sobre esses dados. Alguns tipos são muito 
utilizados em computação: pilha e fila. Considerando os tipos abstratos de dados citados, avalie as 
asserções a seguir e a relação proposta entre elas. 
 
I. Nas estruturas de dados pilha e fila, a inserção e a retirada de elementos seguem regras bem 
definidas. A pilha segue LIFO (last in, first out): o último elemento a ser inserido é o primeiro 
disponível para remoção. 
PORQUE 
II. A pilha não segue o padrão da fila, FIFO (first in, first out), onde o primeiro elemento que é 
inserido deve ser o primeiro que é removido. 
A respeito dessas asserções, assinale a opção correta. 
a) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I 
b) A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. 
c) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. 
d) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I. 
e) As asserções I e II são proposições falsas. 
 
 
5) Em programação, relações entre as classes ocorrem de diferentes formas. Considere 
o código abaixo, que representa um veículo: 
 
class Veiculo { 
 private Motor motor; 
 private Cabine cabine; 
} 
 
Considerando as relações entre as classes no paradigma de programação orientada a 
objetos, avalie as asserções a seguir e a relação proposta entre elas. 
I. O código acima representa uma composição, considerando Motor e Cabine. 
PORQUE 
II. A composição represente uma relação "tem-um", e o código expressa que o veículo 
tem um motor e uma cabine. 
 
A respeito dessas asserções, assinale a opção correta. 
a) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. 
b) A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. 
c) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I. 
d) As asserções I e II são proposições falsas. 
e) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta 
da I. 
 
6) Existem diferentes tipos de algoritmos de ordenação. Um algoritmo de ordenação é 
um algoritmo de manipulação de dados que coloca os elementos em uma dada 
sequência, efetuando sua ordenação completa ou parcial. Uma das razões para se 
ordenar uma sequência de dados é a possibilidade de acesso a eles de modo mais 
eficiente. 
 
Em relação a algoritmos de ordenação, marque a alternativa correta: 
 
a) O algoritmo Array Sort pode ser considerado um algoritmo complexo de ordenação, 
que utiliza recursão. 
b) O algoritmo Bubble Sort pode ser considerado um algoritmo complexo de ordenação, 
que utiliza recursão. 
c) O algoritmo Insertion Sort pode ser considerado um algoritmo complexo de 
ordenação, que utiliza recursão. 
d) O algoritmo Selection Sort pode ser considerado um algoritmo complexo de 
ordenação, que utiliza recursão. 
e) O algoritmo Quick Sort pode ser considerado um algoritmo complexo de ordenação, 
que utiliza recursão. 
 
7) Observe o código abaixo, escrito em linguagem de programação Java. 
 
 public class HelloWorldMetodos { 
 static void olaMetodos (){ 
 System.out.println ('Sou um novo método!'); 
 } 
 public static void main(String[] args) { 
 System.out.println ('Começando a execução do programa.'); 
 olaMetodos(); 
 System.out.println ('Terminando a execução do programa.'); 
 } 
} 
 
Com base na estrutura apresentada, avalie as afirmações a seguir. 
I. Apesar de estar elencado no código fonte, a saída 'Sou um novo método!' não será exibida 
na execução do programa. 
II. O método olaMetodos() depende de uma estrutura de repetição para ser executado. 
III. A solução executa um total de 3 comandos de saída de dados, 2 no main e 1 no 
olaMetodos(). 
IV. Um método pode ser criado e não ser executado. No caso do presente código, se o método 
não fosse chamado no main, o programa não apresentaria um erro. 
É correto o que se afirmar em: 
a) I e IV, apenas. 
b) III e IV, apenas. 
c) II e III, apenas. 
d) I, II e III, apenas. 
e) I, II e IV, apenas. 
 
8) Quando inicializamos um objeto, dizemos que estamos construindo esse objeto da classe 
envolvida nainstrução. Isso é feito por um bloco denominado construtor. Podemos utilizar um 
construtor padrão da classe, que o compilador nos entrega gratuitamente. Esse construtor zera 
todas as variáveis da classe. 
 
Considerando a aplicabilidade de construtores, avalie as asserções a seguir e a relação proposta 
entre elas. 
I. Um construtor padrão zera todas as variáveis da classe, independentemente do tipo dessas 
variáveis. Contudo, o construtor pode determinar características diferentes para os objetos 
instanciados. 
PORQUE 
II. Por meio da escrita de um construtor personalizado, podemos construir um objeto 
realizando a atribuição de valores às variáveis de instância. 
 
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 justificativa correta da I. 
b) A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. 
c) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. 
d) As asserções I e II são proposições falsas. 
e) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. 
 
9) Um componente altamente coeso é aquele que possui uma única razão de ser, um único 
propósito, uma única finalidade, que resolve somente um problema. Para construir um 
componente com essas características, é necessário colocar utilizar boas práticas de programação 
orientada a objetos. 
 
Considerando o princípio da alta coesão, avalie as asserções a seguir e a relação proposta 
entre elas. 
I. O componente que apresenta uma razão única de ser e um único propósito tende a estar 
estruturado com boas práticas de encapsulamento. 
PORQUE 
II. Quando o componente tem uma função singular na solução, é natural que parte de suas 
informações tenham níveis de restrição mais elevados. 
 
A respeito dessas asserções, assinale a opção correta. 
a) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta 
da I. 
b) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I. 
c) A asserção I é uma proposição verdadeira, e a II é uma proposiçã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. 
 
10) Um sistema computacional desenvolvido com uma linguagem de programação orientada a 
objetos é, como o nome do paradigma sugere, composto por objetos que interagem por meio da 
troca de mensagens (chamadas de métodos). Como sabemos, objetos são construídos a partir de 
classes e um dos primeiros passos na implementação de um sistema computacional desse tipo é 
identificar as classes de interesse e a forma como elas se relacionam. Em geral, há dois tipos de 
relacionamentos entre classes. Eles são chamados de TEM-UM (do inglês HAS-A) e É-UM (do inglês 
IS-A). 
Com base na programação orientada a objetos, avalie as afirmações a seguir. 
I. Se uma classe base, denominada pessoa, for herdada pelas classes padeiro e escritor, isso 
quer dizer que padeiro é uma pessoa e escritor é uma pessoa. 
II. Se uma classe pacote possuir variáveis de instância do tipo comida e bebida, terá uma 
relação de composição (tem-um). 
III. Caso uma classe chamada Navio tenha uma classe base chamada "ObjetoDoSistema", essa 
não é uma relação de “é-um”, pois a classe base do navio teria de ser “Veiculo”. 
IV. Em diversos casos a composição pode ser mais bem empregada que a herança, porém, ele 
possui um limite de 10 objetos. 
É correto o que se afirmar em: 
a) I, II e III, apenas. 
b) I, II e IV, apenas. 
c) I e IV, apenas. 
d) II e III, apenas. 
e) I e II, apenas. 
 
11) Analise o algoritmo abaixo: 
Ordenação(vetor v, inteiro n) 
 para j de 1 até n-1 
 x = v[j] 
 i = j−1 
 enquanto i ≥ 0 e v[i] > x 
 v[i+1] = v[i] 
 i = i−1 
 v[i+1] = x 
 
 Em relação a esse algoritmo de ordenação, marque a alternativa correta: 
a) O algoritmo apresentado é o de ordenação por dedução. 
b) O algoritmo apresentado é o de ordenação por seleção. 
c) O algoritmo apresentado é o de ordenação pelo método bolha. 
d) O algoritmo apresentado é o de ordenação por inserção. 
e) O algoritmo apresentado é o de ordenação por recursão. 
 
 
12) Um algoritmo básico de sequência simples pode ser estruturado em três etapas básicas: 
entrada, processamento e saída. Cada etapa apresenta suas particularidades e lógicas de 
estruturação. Sobre a estruturação de um algoritmo de sequência simples, assinale a alternativa 
correta. 
 
a) O processamento de dados pode realizar operações de soma, subtração, multiplicação e 
divisão, além de repetir diversas dessas operações em sequência. 
b) A saída de dados contempla a etapa de recepção de dados por parte do usuário e realização de 
cálculos complexos. 
c) O processamento de dados realiza operações matemáticas, contudo, não permite o 
armazenamento de dados. 
d) O processamento de dados pode realizar operações de matemática simples, porém, o 
resultado dessas operações não poderá ser exibido na etapa de saída de dados. 
e) Na entrada de dados, o computador deve exibir as informações digitadas pelo usuário. 
 
13) A compreensão da lógica proposicional é importante para que, ao construir algoritmos e 
escrever programas de computador, um programador seja capaz de estruturar soluções simples e 
objetivas, que sejam ágeis e de fácil compreensão. Para isso, compreender alguns conceitos de 
lógica é essencial. 
 
Com base no excerto apresentado, avalie as afirmações a seguir. 
I. A tautologia pode ser definida como uma proposição composta cuja última coluna da tabela 
verdade possui somente valor verdadeiro, independentemente dos valores das proposições 
simples componentes. 
II. A Contradição pode ser definida como uma proposição composta cuja última coluna da 
tabela verdade possui somente valor falso, independente dos valores verdade das proposições 
simples componentes. 
III. É comum que seja possível encontrar expressões mais simples que outras que representam 
uma condição em um programa de computador, em vista da possibilidade de existência de 
equivalência lógica. 
IV. A equivalência lógica utiliza de expressões irregulares da matemática para simplificar a 
execução de algoritmos de computador, diminuindo os testes de expressão, mas tornando as 
soluções mais onerosas para serem executadas. 
 
É correto o que se afirmar em: 
a) I e III, apenas. 
b) II e III, apenas. 
c) I e IV, apenas. 
d) I, II e III, apenas. 
e) I, II e IV, apenas. 
 
14) Observe o código abaixo, que representa um método de dano, compatível com o 
contexto de programação de jogos. 
 
public void SofrerDano(int dano){ 
 vida -= dano; 
 System.out.println(nome + " sofreu um dano de " + dano); 
} 
Considerando o código acima, avalie as asserções a seguir e a relação proposta entre elas. 
I. A variável dano, situada dentro dos parênteses do método SofrerDano, é denominada como 
parâmetro e está sendo utilizada como valor a ser subtraído da variável vida. 
PORQUE 
II. Um parâmetro deve ser utilizado exclusivamente para realizar operações aritméticas, dado 
que é um valor numérico. 
 
A respeito dessas asserções, assinale a opção correta. 
a) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta 
da I. 
b) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. 
c) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I. 
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. 
 
15) Através das estruturas de seleção, é possível permitir ou não a execução de 
determinados blocos de ações. O comando mais usual em linguagens de 
programação para tais estruturas é o se ou if. Os operadores racionais são 
comumente utilizadospara realizar testes nas estruturas de seleção, podendo 
comparar valores e retornar se a comparação é verdadeira ou falsa. 
 
Com base no excerto apresentado, avalie as afirmações a seguir. 
I. O operador racional “>”, que representa maior que, pode ser utilizado para comparar duas 
variáveis, verificando se uma é maior que a outra. 
II. O operador racional “>”, que representa maior que, pode ser utilizado para comparar uma 
variável com um valor fixo, verificando se a variável é maior que o número de comparação. 
III. O operador “=”, que representa igual, compara dois valores e retorna verdadeiro caso 
sejam iguais. 
IV. O operador “!=”, que representa diferente, compara dois valores e retorna verdadeiro caso 
sejam diferentes. 
 
É correto o que se afirmar em: 
a) I, II e III, apenas. 
b) II e III, apenas. 
c) I, II e IV, apenas. 
d) I e II, apenas. 
e) I e IV, apenas.

Continue navegando