Buscar

PROGRAMAÇÃO ORIENTADA A OBJETOS I - Q-III

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

Curso PROGRAMAÇÃO ORIENTADA A OBJETOS I 
Teste QUESTIONÁRIO UNIDADE III 
Iniciado 26/06/24 22:11 
Enviado 26/06/24 22:20 
Status Completada 
Resultado da 
tentativa 
2,5 em 2,5 pontos 
Tempo decorrido 9 minutos 
Resultados 
exibidos 
Todas as respostas, Respostas enviadas, Respostas corretas, Comentários, 
Perguntas respondidas incorretamente 
• Pergunta 1 
0,25 em 0,25 pontos 
 
No contexto de exceções em C#, qual das seguintes afirmações é verdadeira sobre o 
funcionamento e uso da palavra-chave throw? Considerando um cenário onde uma 
exceção é lançada devido a um erro, como tentativa de acessar um índice inexistente em 
uma matriz. 
 
Resposta 
Selecionada: 
c. 
Throw cria e lança uma exceção, interrompendo o fluxo normal do 
programa. 
Respostas: a. 
A palavra-chave throw é usada para capturar exceções. 
 b. 
O throw apenas funciona com exceções do tipo System.Exception. 
 
c. 
Throw cria e lança uma exceção, interrompendo o fluxo normal do 
programa. 
 d. 
O uso do throw é opcional em blocos try-catch. 
 
e. 
Throw é usado para ignorar exceções e continuar a execução do 
programa. 
Comentário da 
resposta: 
Resposta: C. 
Comentário: A palavra-chave throw em C# é usada para gerar (ou 
“lançar”) uma exceção, interrompendo assim o fluxo normal de 
execução do programa e iniciando a busca por um bloco catch adequado 
para lidar com a exceção. 
 
 
• Pergunta 2 
0,25 em 0,25 pontos 
 
Avalie o seguinte código C# que demonstra o uso de delegação e eventos. O código define 
um evento Notificar na classe Evento e o dispara no método Main. Qual é o 
comportamento esperado do programa quando executado? 
 
 
 
 
Resposta 
Selecionada: 
b. 
Será impresso “Evento disparado!” no console. 
Respostas: a. 
O programa causará um erro de compilação, pois eventos não 
podem ser disparados diretamente. 
 b. 
Será impresso “Evento disparado!” no console. 
 c. 
Nada será impresso no console, pois o evento não possui assinantes. 
 d. 
O programa resultará em uma exceção de referência nula. 
 
e. 
O evento será disparado, mas a mensagem não será impressa, pois 
falta a implementação do método. 
Comentário 
da resposta: 
Resposta: B. 
Comentário: A classe Evento define um evento Notificar do tipo delegate 
Notificacao. No método Main, uma instância de Evento (meuEvento) é 
criada, e o método MostrarMensagem é inscrito no evento Notificar. 
Quando o método DispararEvento é chamado, ele verifica se o evento 
Notificar tem algum inscrito (usando o operador ?.) e, em caso afirmativo, 
dispara o evento que, por sua vez, invoca o método MostrarMensagem. 
Isso resulta na impressão da mensagem “Evento disparado!” no console. 
 
 
• Pergunta 3 
0,25 em 0,25 pontos 
 
Analise o seguinte trecho de código em C# que utiliza tuplas para armazenar e decompor 
informações. Determine qual das opções descreve corretamente o resultado da execução 
do programa. 
 
 
 
 
Resposta 
Selecionada: 
e. 
Será impresso “O 2º planeta do sistema solar é Marte.” 
Respostas: a. 
O código resulta em erro de compilação devido à tentativa de 
decompor a tupla em variáveis. 
 b. 
Será impresso “O Marteº planeta do sistema solar é 2.” 
 
c. 
Nada será impresso, pois as tuplas não podem ser usadas dessa 
maneira. 
 
d. 
O código resulta em uma exceção de execução devido à má 
formação da tupla. 
 e. 
 
Será impresso “O 2º planeta do sistema solar é Marte.” 
Comentário 
da resposta: 
Resposta: E. 
Comentário: O código cria uma tupla nomeada planeta contendo dois 
elementos: o nome do planeta (“Marte”) e sua posição no sistema solar 
(2). Em seguida, a tupla é decomposta em duas variáveis, nome e 
posicao, que são utilizadas na string interpolada. Portanto, a saída 
correta será “O 2º planeta do sistema solar é Marte”, onde posicao é 2 e 
nome é Marte. 
 
• Pergunta 4 
0,25 em 0,25 pontos 
 
Considere o seguinte trecho de código C# que demonstra a manipulação de uma coleção 
List<T>. Identifique qual será o resultado da execução deste programa. 
 
 
 
 
Resposta Selecionada: a. 
O programa imprimirá “Maçã, Laranja, Cereja”. 
Respostas: a. 
O programa imprimirá “Maçã, Laranja, Cereja”. 
 b. 
O programa resultará em um erro de execução. 
 c. 
O programa imprimirá “Maçã, Banana, Cereja”. 
 d. 
O programa imprimirá “Maçã, Laranja, Banana”. 
 e. 
O programa imprimirá “Laranja, Banana, Cereja”. 
 
 
• Pergunta 5 
0,25 em 0,25 pontos 
 
Examine o seguinte código C# que utiliza expressões regulares para verificar se um texto 
segue um padrão específico. Qual será o resultado do programa ao ser executado com a 
entrada fornecida? 
 
 
 
 
Resposta 
Selecionada: 
a. 
O programa imprimirá “Nome Sith válido: True”, pois a entrada 
corresponde ao padrão de um nome Sith, começando com “Darth” 
seguido por um nome com a primeira letra maiúscula. 
Respostas: a. 
 
O programa imprimirá “Nome Sith válido: True”, pois a entrada 
corresponde ao padrão de um nome Sith, começando com “Darth” 
seguido por um nome com a primeira letra maiúscula. 
 
b. 
O programa resultará em um erro de compilação, pois a expressão 
regular está formatada incorretamente. 
 
c. 
O programa imprimirá “Nome Sith válido: False”, pois a entrada não 
corresponde ao padrão definido na expressão regular. 
 
d. 
O programa causará uma exceção devido ao uso inadequado de 
expressões regulares. 
 
e. 
O programa imprimirá “Nome Sith válido: True”, mas a entrada 
fornecida não segue o padrão tradicional de nomes Sith. 
Comentário 
da resposta: 
Resposta: A. 
Comentário: A expressão regular definida no código, @”Darth\s[A-Z][a-
z]+”, especifica um padrão que corresponde à palavra “Darth”, seguida 
por um espaço em branco (\s) e um nome que começa com uma letra 
maiúscula seguida de uma ou mais letras minúsculas. A entrada “Darth 
Vader” encaixa-se perfeitamente neste padrão. Portanto, o método 
Regex.IsMatch retornará True, e a saída será “Nome Sith válido: True”. 
 
• Pergunta 6 
0,25 em 0,25 pontos 
 
Analise o código C# a seguir, que utiliza expressões regulares para verificar se uma 
entrada de texto segue um padrão específico. Determine qual será o resultado da 
execução deste programa com a entrada fornecida. 
 
 
 
 
Resposta 
Selecionada: 
a. 
O programa imprimirá “Nome do personagem válido: True”, pois a 
entrada segue o padrão de um nome com inicial maiúscula seguido por 
“de” e o nome de uma localidade. 
Respostas: a. 
O programa imprimirá “Nome do personagem válido: True”, pois a 
entrada segue o padrão de um nome com inicial maiúscula seguido por 
“de” e o nome de uma localidade. 
 
b. 
O programa resultará em um erro de compilação devido ao uso 
incorreto de expressões regulares. 
 
c. 
O programa imprimirá “Nome do personagem válido: False”, pois a 
entrada não corresponde ao padrão definido pela expressão regular. 
 d. 
 
O programa causará uma exceção em tempo de execução devido ao 
formato inválido da expressão regular. 
 
e. 
O programa imprimirá “Nome do personagem válido: True”, mas a 
entrada fornecida não corresponde ao padrão típico de nomes. 
Comentário 
da resposta: 
Resposta: A. 
Comentário: A expressão regular definida no código, @”^[A-Z][a-
z]+\sde\s[a-zA-Z]+”, especifica um padrão que corresponde a um nome 
começando com letra maiúscula seguida por letras minúsculas, um 
espaço, a palavra “de”, outro espaço e um nome de localidade que pode 
ter letras maiúsculas ou minúsculas. A entrada “Frodo de Hobbiton” se 
encaixa perfeitamente neste padrão, com “Frodo” sendo o nome do 
personagem e “Hobbiton” sendo a localidade. Portanto, o método 
Regex.IsMatch retornará True, e a saída será “Nome do personagem 
válido: True”. 
 
• Pergunta 7 
0,25 em 0,25 pontos 
 
Qual é a principal vantagem de utilizar nomes de variáveis, classes e métodos descritivos, 
ao invés de nomes genéricos como “x” ou “y”, especialmente em projetos de grande escala 
e com vários desenvolvedores?Resposta 
Selecionada: 
b. 
Facilita a leitura e compreensão do código, melhorando a 
manutenção e o debugging. 
Respostas: a. 
Aumenta a eficiência da execução do código. 
 
b. 
Facilita a leitura e compreensão do código, melhorando a 
manutenção e o debugging. 
 c. 
Reduz o tamanho total do código-fonte. 
 d. 
Elimina a necessidade de comentários no código. 
 e. 
Aumenta a velocidade de compilação do código. 
Comentário da 
resposta: 
Resposta: B. 
Comentário: Nomes descritivos para variáveis, classes e métodos 
tornam o código mais legível e compreensível, o que é crucial para a 
manutenção e o processo de debugging, especialmente em projetos com 
múltiplos desenvolvedores. 
 
 
• Pergunta 8 
0,25 em 0,25 pontos 
 
No contexto dos padrões de design na engenharia de software, como o padrão Singleton, 
aplicado à uma classe, contribui para a eficácia de um sistema de software? 
Resposta 
Selecionada: 
c. 
Assegura que apenas uma instância da classe exista, evitando conflitos 
e inconsistências. 
Respostas: a. 
É um modificador aplicado a atributos, indicando que ele é uma 
constante e seu valor não pode ser alterado após ter sido inicializado. 
 
b. 
Garante que a classe seja instanciada várias vezes para melhorar o 
desempenho. 
 
c. 
Assegura que apenas uma instância da classe exista, evitando conflitos 
e inconsistências. 
 
d. 
Facilita a alteração da instância da classe por diferentes partes do 
código. 
 
e. 
Promove a criação dinâmica de instâncias da classe para 
adaptabilidade. 
Comentário 
da resposta: 
Resposta: C. 
Comentário: O padrão Singleton, ao garantir que apenas uma instância 
de uma classe exista em todo o programa, evita conflitos e 
inconsistências que poderiam surgir com múltiplas instâncias. Isso é 
especialmente útil em casos como o da classe, onde uma única entidade 
representativa é necessária. 
 
 
• Pergunta 9 
0,25 em 0,25 pontos 
 
Como os padrões estruturais, como o Adapter e o Composite contribuem para a 
arquitetura de um sistema de software? 
Resposta 
Selecionada: 
c. 
Facilitam a integração e interação de componentes desenvolvidos 
separadamente. 
Respostas: a. 
Eles simplificam a lógica de negócios ao reduzir a quantidade de 
código. 
 b. 
Estes padrões aumentam a velocidade de execução do sistema. 
 
c. 
Facilitam a integração e interação de componentes desenvolvidos 
separadamente. 
 
d. 
Reduzem a necessidade de testes ao garantir a confiabilidade do 
código. 
 
e. 
Centralizam todas as funcionalidades do sistema em um único 
módulo. 
 
Comentário 
da resposta: 
Resposta: C. 
Comentário: Os padrões estruturais, como Adapter e Composite, são 
projetados para organizar a arquitetura do software de forma que 
diferentes componentes, possivelmente desenvolvidos de forma 
independente, possam ser integrados e interagir de maneira eficiente e 
harmoniosa. Isso é essencial para a manutenção da flexibilidade e 
escalabilidade do sistema. 
 
• Pergunta 10 
0,25 em 0,25 pontos 
 
Considerando as boas práticas de programação em C#, qual é a abordagem mais eficaz 
para a utilização de comentários no código, visando maximizar a clareza e 
manutenabilidade? 
 
Resposta 
Selecionada: 
c. 
Preferir comentar blocos de código ou funções complexas em vez 
de cada linha. 
Respostas: a. 
Comentar todas as linhas de código para garantir clareza. 
 b. 
Usar comentários somente para marcar seções de código. 
 
c. 
Preferir comentar blocos de código ou funções complexas em vez 
de cada linha. 
 
d. 
Evitar comentários, confiando apenas em nomes de variáveis e 
métodos descritivos. 
 
e. 
Usar comentários somente para documentar bugs e problemas no 
código. 
Comentário da 
resposta: 
Resposta: C. 
Comentário: Comentar blocos de código ou funções complexas, ao invés 
de cada linha, ajuda a evitar poluição visual no código e fornece 
orientações claras em partes do código que podem não ser 
imediatamente óbvias, mantendo a clareza e a eficiência.

Mais conteúdos dessa disciplina

  • Relacionados
  • Inteligência Artificial