Buscar

PROGRAMACAO DE SOLUCOES COMPUTACIONAIS - Avaliacao A2

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

PROGRAMAÇÃO DE SOLUÇÕES COMPUTACIONAIS
ATIVIDADE A2
QUESTÃO 01
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) 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.
b) Na entrada de dados, o computador deve exibir as informações digitadas pelo usuário.
c) 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.
d) O processamento de dados realiza operações matemáticas, contudo, não permite o
armazenamento de dados.
e) 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.
QUESTÃO 02
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) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
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 falsa, e a II é uma proposição verdadeira.
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.
QUESTÃO 03
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 representa 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) 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 falsa, e a II é uma proposição verdadeira.
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.
QUESTÃO 04
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 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) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
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 falsa, e a II é uma proposição verdadeira.
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.
QUESTÃO 05
Laços de repetição são comumente utilizados em algoritmos que estruturam diferentes tipos de
soluções computacionais. Estes algoritmos apresentam variações, em geral, focados em
controlar critérios e quantidades de repetições. A imagem a seguir representa uma aplicação
hipotética das estruturas while e do-while. Na imagem, o personagem Papa-Léguas está
correndo e parando na ponta do penhasco, com uma representação visual da instrução while
(not edge) run();. A frente, passando do penhasco e suspenso no ar, o personagem Coiote
apresenta a instrução do run() while (not edge);.
Disponível em: https://www.reddit.com/. Acesso em: 3 de jul.de 2022.
Sobre a utilização de estruturas de repetição, assinale a alternativa correta.
a) A estrutura do-while não executará os comandos internos em seu escopo dependendo
da condição de teste, assim como a estrutura while, ou seja, dependendo do teste
realizado, o Coiote poderia não ter caído.
b) Os comandos while e do-while funcionam da mesma forma, no caso da imagem o
Coiote passou da ponta do penhasco por, logicamente, a sua instrução ter sido
executada antes da instrução do Papa-Léguas.
c) As estruturas de controle apresentam a possibilidade de criar laços de repetição,
incluindo os comandos if, switch, for e while, portando a instrução do Papa-Léguas
poderia ser através de um if.
d) O while de Papa-Léguas verifica a condição e depois executa a instrução de corrida, já
o Coiote executa antes a instrução de corrida e depois verifica a condição, através do
do-while, por isso Coiote caiu e o Papa-Léguas não.
e) While, do-while e for são instruções de repetição com o mesmo direcionamento de
aplicação, ou seja, a única diferença entre os três comandos é a forma de escrita, o que
torna as condições de Coiote e Papa-Léguas idêntica.
QUESTÃO 06
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 pelo método bolha.
c) O algoritmo apresentado é o de ordenação por seleção.
d) O algoritmo apresentado é o de ordenação por inserção.
e) O algoritmo apresentado é o de ordenação por recursão.
QUESTÃO 07
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 utilizados para
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 afirma em:
a) I e IV, apenas.
b) I, II e III, apenas.
c) I, II e IV, apenas.
d) I e II, apenas.
e) II e III, apenas.
QUESTÃO 08
Dentro os métodos fundamentais de ordenação, alguns algoritmos utilizam técnicas
simples, como condições e laços. Outros exigem técnicas mais elaboradas. Dentre os
três algoritmos elementares, são elencados:
Ordenação por Inserção - Insertion Sort
Ordenação por Seleção - Selection Sort
Ordenação pelo Método da Bolha - Bubble Sort
Considerando algoritmosde ordenação, avalie as asserções a seguir e a relação
proposta entre elas.
I. Algoritmos de ordenação podem ser implementados com técnicas simples, contudo, em
alguns casos, os algoritmos elementares podem ser ineficientes.
PORQUE
II. Via de regra, algoritmos mais complexos necessitam de técnicas complexas de
implementação, como recursão.
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) 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 falsa, e a II é uma proposição verdadeira.
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.
QUESTÃO 09
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 verdadeiras, e a II é uma justificativa correta da I.
c) A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
d) As asserções I e II são proposições falsas.
e) A asserção I é uma proposição verdadeira e a asserção II é uma proposição falsa.
QUESTÃO 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 afirma em:
a) I e IV, apenas.
b) I, II e III, apenas.
c) I, II e IV, apenas.
d) I e II, apenas.
e) II e III, apenas.
QUESTÃO 11
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) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
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 falsa, e a II é uma proposição verdadeira.
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.
QUESTÃO 12
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) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
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 falsa, e a II é uma proposição verdadeira.
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 da I
QUESTÃO 13
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 afirma em:
a) I e IV, apenas.
b) I, II e III, apenas.
c) I, II e IV, apenas.
d) I e II, apenas.
e) II e III, apenas.
QUESTÃO 14
Quando inicializamos um objeto, dizemos que estamos construindo esse objeto da
classe envolvida na instruçã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) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
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 falsa, e a II é uma proposição verdadeira.
d) As asserções I e II são proposições falsas.
e) As asserçõesI e II são proposições verdadeiras, mas a II não é uma justificativa correta
da I.
QUESTÃO 15
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 Bubble Sort pode ser considerado um algoritmo complexo de ordenação,
que utiliza recursão.
b) O algoritmo Insertion Sort pode ser considerado um algoritmo complexo de ordenação,
que utiliza recursão.
c) O algoritmo Selection Sort pode ser considerado um algoritmo complexo de ordenação,
que utiliza recursão.
d) O algoritmo Array 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.

Continue navegando