Você está na página 1de 7

Plataforma QstioneQuestõesProvasCorreção de ProvasCursos

Mais…
Disciplinas
Novidades
Período ativo
202302
Alternar período para…
202302
Aug 1, 2023
202301
Jan 1, 2023
202202
Aug 1, 2022
202201
Jan 1, 2022
202102
Jul 31, 2021
Conectado como
VICTOR DE ALMEIDA THOMAZ
Seus dados Mudar senha
Sair

FOLHAS DE RESPOSTAS
Fila de correção Enviar para correção
PROFESSOR
Notas e correções
NOTA
CURSO DE GRADUAÇÃO EM CIÊNCIA DA
FINAL
COMPUTAÇÃO
Aluno:
Componente Curricular: PRINCÍPIOS DE CONSTRUÇÃO DE
ALGORÍTIMOS
Professor (es): Victor Thomaz
Período: 202302 Turma: Data: 26/09/2023

PCA - AV1 - 2023.2 - TURMA 02


RELATÓRIO DE DEVOLUTIVA DE PROVA
PROVA 05198 - CADERNO 003
1ª QUESTÃO
Resposta comentada:
A regra do “and” resulta em “True” somente quando as duas expressões “y < 0 and x
> y” forem “True”, por isso a primeira saída na tela é “False”. A regra do “not” inverte o
resultado da expressão, logo “not(x < 4)” será “True”. Já a regra do “or” resulta em
“False” somente quando todos os seus operandos forem “False”. Como a condição “not
(x == 5 and y == x*2)” já é “True”, isto é o suficiente para toda a expressão também
resultar em “True”.
Feedback:
--
2ª QUESTÃO

Pgina 1 de 7
Resposta comentada:
# --------------------------------
import os

path_dir = input(r"Caminho para diretorio: ")


nome = input("Nome do arquivo: ")

print(f"Pesquisando em : {path_dir}")

lista_arquivos = os.listdir(path_dir)

encontrou = False
for i in range(len(lista_arquivos)):
x = lista_arquivos[i]
if (x == nome):
print(f'Arquivo encontrado: {x}')
encontrou = True

if (encontrou == False):
print(f'Arquivo nao encontrado no diretorio: {path_dir}')
# --------------------------------

As lacunas devem ser preenchidas conforme a seguir, respectivamente:

“lista_arquivos” em “for i in range(len(lista_arquivos)):”;

“i” em “x = lista_arquivos[i]”;

“x” em “if (x == nome):”

Feedback:
--
3ª QUESTÃO
Resposta comentada:
Em I, é correto dizer que a estrutura de repetição for em conjunto com a função range
possibilita iterações considerando uma faixa específica de valores que controlam a
quantidade de repetições. No entanto, II não é uma justifica correta de I, pois o break
interrompe a iteração atual e finaliza o loop, enquanto continue força o início de uma
nova iteração.
Feedback:
--
4ª QUESTÃO

Pgina 2 de 7
Resposta comentada:

As lacunas devem ser preenchidas com os nomes das variáveis, respectivamente:

“i” em “res.append(input(lista_perguntas[i]))”;

“!=” em “if indice == 2 and res[indice] != bolsa_ano:”;

“indice” em “indice = indice + 1”

Código completo abaixo:


lista_perguntas = [
"Nome completo: ",
"Número de matrícula: ",
"Ano de ingresso: "
]

bolsa_ano = '2023'

res = []
for i in range(len(lista_perguntas)):
res.append(input(lista_perguntas[i]))

indice = 0
while (indice < len(res)):
if indice == 2 and res[indice] == bolsa_ano:
print(f'A aluno {res[0]} esta apto para receber bolsa de estudos.')
else:
if indice == 2 and res[indice] != bolsa_ano:
print(f'A aluno {res[0]} não esta apto a receber bolsa de estudos.')
indice = indice + 1

Feedback:
--
5ª QUESTÃO
Resposta comentada:

A alternativa exp_3 e exp1é a correta.

Em exp_3 vemos que a quantidade de dígitos especificados pela expressão é justamente


a quantidade do número de matrícula aceitando apenas dígitos de 0 até 9.

A exp_2 é aceita vários caracteres inclusive @, por isso não é apropriada para
verificação de número de telefone.

Na exp_1, vemos grupos de dígitos de 2, 3 e 4 (especificado pelo par de chaves). Além


disso, temos um número 9 fixo, caracterizando número de telefone que utilizamos na
atualidade.

Feedback:
--
6ª QUESTÃO

Pgina 3 de 7
Resposta comentada:
Em I, é correto dizer que a estrutura de repetição for em conjunto com a função range
possibilita iterar sobre os valores do vetor, partindo do primeiro (esquerda) valor até o
último (direita). No entanto, II não é uma justifica correta de I, pois os valores índices
devem iniciar sempre em 0, que a forma de acessar o primeiro elemento do vetor, sendo
incorreto dizer que “o primeiro valor armazenado será acessado pelo índice 1”, mas sim
pelo índice 0.
Feedback:
--
7ª QUESTÃO
Resposta comentada:

Afirmativa correta é somente “II e V”.

Acesso ao vetor por índice negativo indica valor no final do vetor para o início, logo,
vetor[-1] é 80 e vetor[-2] é 70. Portanto no “print A”, o valor apresentado é 70.

No “print B”, os valores são [30, 40, 50, 60], pois vetor [2:6], indica a notação de “slice”
apresentando valores do índice 2 do vetor até o índice 5 (o índice 6 não é incluso).

Novamente, em notação de “slice”, no “print C”, os valores são [10, 20, 30, 40, 50], pois
vetor [:5] (índice omitido no início), apresentando valores do índice 0 (início do vetor) até
o índice 4 (o índice 5 não é incluso).

No “print D”, os valores são [70, 80], pois vetor [6:] (índice omitido no final), apresenta o
valor no índice 6 até o final do vetor.

Feedback:
--
8ª QUESTÃO
Resposta comentada:

A) Incorreta. Começar a iteração em 0, não atendendo ao requisito de começar em 1 e


incluir todos os números na faixa de 1 até 10.

B) Incorreta. Esta opção excluiria o número 10 da iteração, pois range(1, 10) gera
números de 1 até 9.

C) Incorreta. Utilizar range(10) começa a iteração em 0, o que não atende ao requisito de


começar em 1.

D) Incorreta. Esta opção começaria a iteração em 2 e iria até 10, não incluindo o 11.

E) Correta. Ao usar range(1, 11), você especifica que a iteração deve começar em 1 e ir
até (mas não incluir) 11, o que resulta nos números de 1 a 10.

Feedback:
--
9ª QUESTÃO

Pgina 4 de 7
Resposta comentada:

Na alternativa correta, a abordagem utiliza duas variáveis: uma para contar o número de
números inseridos e outra para acumular a soma dos números. A condição de parada é
baseada no número total de números inseridos, o que garante um cálculo correto da
média.

É incorreto deixar de contar a quantidade de números inseridos no cálculo correto da


média, pois você não terá controle sobre quantos números foram somados.

No contexto específico deste problema, é incorreto basear a condição de parada como


um resultado do cálculo, pois não há uma maneira eficaz de determinar quando parar o
loop, pois a condição de parada está baseada na média, que ainda não foi calculada.

Usar um número máximo de iterações como condição de parada pode não garantir que
a média seja calculada com precisão, especialmente se o usuário inserir um número
diferente a cada iteração. Esta alternativa está incorreta.

Calcular a média a cada iteração não é necessário e pode aumentar a complexidade do


código sem benefício adicional. A condição de parada também não é ideal, pois não leva
em consideração o número total de números inseridos, assim, esta alternativa é
incorreta.

Feedback:
--
10ª QUESTÃO

Pgina 5 de 7
Resposta comentada:

O código apresenta estruturas de decisão com dois “if” aninhados, “elif” (else if) e
“else”.

A resposta correta para a lacuna A) é if x == y, pois o comando print na sequência já


mostra a mensagem que “x e y são iguais”.

A lacuna B) é um if dentro do if da lacuna A) e seu objetivo é somente permitir a divisão


de x por y quando y não é zero, logo a resposta correta para a lacuna B) é if y != 0.
Nesse caso, repare que existe um else associado com o print indicando que houve
divisão por zero (isto é, y é igual a zero).

A resposta correta para a lacuna C) é elif x < y, pois o print informa que “x é menor”.

A resposta correta para a lacuna D) é simplesmente o else associado ao elif anterior, no


mesmo nível de identação da lacuna C), já que a execução nesta linha do código indica
que x e y são diferentes e que y é menor que x.

Veja o código completo a seguir:


x = int(input("Informe um número para x: "))
y = int(input("Informe um número para y: "))
if x == y: # A)
print("x e y são iguais")
if y != 0: # B)
print("x / y é ", x/y)
else:
print("Erro: Divisão por zero.")
elif x < y: # C)
print("x é menor")
else: # D)
print("y é menor")

Feedback:
--
11ª QUESTÃO
Resposta comentada:
Em I, é correto dizer que a estrutura de repetição for em conjunto com a função range
possibilita iterações considerando uma faixa específica de valores. No entanto, II não é
uma justifica correta de I, pois o primeiro valor k, usado como índice de acesso ao vetor
é o valor 2. Logo vetor[2], apresenta o conteúdo ‘PCA’. A variável b=2 passada a função
range, fará com que o próximo valor de k seja 4, logo vetor[4], mostra o conteúdo 2.
Seguindo a mesma lógica, vetor[6] apresenta o conteúdo 0. Isto é, o código irá
apresentar os valores: ‘PCA’, 2 e 0.
Feedback:
--
12ª QUESTÃO
Resposta comentada:
O comando “for” com “range” faz com que, inicialmente, a variável “i” assuma o valor 5
que por sua vez é atribuído a variável soma (inicializada com zero). Porém, a condicional
“if soma == 5:” será verdadeira e o “break” será executado terminando a repetição logo
na primeira iteração. Com isso, o valor apresentado na tela é 5.
Feedback:
--
Desenvolvido por EAD Master.

Pgina 6 de 7
v2023.8.2
20230816201848

Pgina 7 de 7

Você também pode gostar