
ATIVIDADE 3 - ALGORITMOS E LÓGICA DE PROGRAMAÇÃO - 54_2025
ATIVIDADE 3 - ALGORITMOS E LÓGICA DE PROGRAMAÇÃO - 54_2025
QUESTÃO 1
Analise o algoritmo a seguir:
Algoritmo abc
Var
a, b, c: inteiro
Início
a <- 12
b <- 5
c <- a
b <- c
a <- b
Escreva (a)
Escreva (b)
Escreva (c)
Fim
Fonte: Elaborado pelo professor.
Assinale o resultado de sua execução:
Alternativas
Alternativa 1 - A = 5, B =5, C = 5
Alternativa 2 - A = 12, B = 5, C= 5
Alternativa 3 - A = 5, B = 12, C = 12
Alternativa 4 - A = 12, B = 12, C = 5
Alternativa 5 - A = 12, B = 12, C = 12
QUESTÃO 2
Estruturas de decisão e repetição são fundamentais na construção de algoritmos que precisam tomar decisões e executar ações repetitivamente. Considere o pseudocódigo abaixo que calcula a soma dos números ímpares e a média dos números pares de 1 até um valor n informado pelo usuário. Analise o código e responda qual será a saída exibida quando o valor de n for 6.
Algoritmo calculaSomaMedia
Var
n, i, somaImpares, somaPares, contPares: inteiro
mediaPares: real
Início
somaImpares <- 0
somaPares <- 0
contPares <- 0
Escreva("Informe o valor de n:")
Leia(n)
Para i de 1 até n faça
Se (i % 2 = 0) então
somaPares <- somaPares + i
contPares <- contPares + 1
Senão
somaImpares <- somaImpares + i
Fim_se
Fim_para
Se (contPares > 0) então
mediaPares <- somaPares / contPares
Senão
mediaPares <- 0
Fim_se
Escreva("A soma dos números ímpares de 1 até ", n, " é ", somaImpares)
Escreva("A média dos números pares de 1 até ", n, " é ", mediaPares)
Fim
Fonte: Elaborado pelo professor.
Assinale a alternativa que corresponde à saída exibida para n = 6.
Alternativas
Alternativa 1 - A soma dos números ímpares de 1 até 6 é 9 e a média dos números pares é 3.0
Alternativa 2 - A soma dos números ímpares de 1 até 6 é 9 e a média dos números pares é 4.0
Alternativa 3 - A soma dos números ímpares de 1 até 6 é 12 e a média dos números pares é 3.0
Alternativa 4 - A soma dos números ímpares de 1 até 6 é 12 e a média dos números pares é 4.0
Alternativa 5 - A soma dos números ímpares de 1 até 6 é 15 e a média dos números pares é 3.0
QUESTÃO 3
Em algoritmos, as funções são utilizadas para modularizar o código, facilitando a reutilização e a manutenção. Ao utilizar funções, podemos dividir o problema em partes menores e mais gerenciáveis. Considere o pseudocódigo abaixo que utiliza uma função para calcular a área de um círculo. A função calcula a área baseando-se no raio fornecido pelo usuário.
Algoritmo calculaAreaCirculo
Var
raio: real
area: real
Função calculaArea(r: real): real
Var
pi: real
Início
pi <- 3.14
Retorne (pi * r * r)
Fim_função
Início
Escreva("Informe o raio do círculo:")
Leia(raio)
area <- calculaArea(raio)
Escreva("A área do círculo com raio ", raio, " é ", area)
Fim
Fonte: Elaborado pelo professor.
Analise o código e responda qual será a saída exibida quando o valor de raio for 3.
Alternativas
Alternativa 1 - A área do círculo com raio 3 é 18.84
Alternativa 2 - A área do círculo com raio 3 é 28.26
Alternativa 3 - A área do círculo com raio 3 é 27.12
Alternativa 4 - A área do círculo com raio 3 é 31.42
Alternativa 5 - A área do círculo com raio 3 é 21.24
QUESTÃO 4
Os registros são estruturas de dados que agregam diversas informações, que podem ser de diferentes tipos. Com essa estrutura é possível gerar novos tipos de dados, além dos definidos pelas linguagens de programação. O trecho de pseudocódigo abaixo apresenta um algoritmo que inclui a declaração e utilização de um registro.
01 - Algoritmo registraPessoa
02 - Tipo
03 - pessoa = registro
04 - nome: vetor[1..50] de caractere
05 - idade: inteiro
06 - peso: real
07 - Fim_registro
08 - Var v1: pessoa
09 - Início
10 - escreva("Insira o nome da pessoa:")
11 - leia(pessoa.nome)
12 - escreva("Insira a idade da pessoa:")
13 - leia(pessoa.idade)
14 - escreva("Insira o peso da pessoa:")
15 - leia(pessoa.peso)
16 - Fim
ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da programação de computadores. 5. ed. São Paulo: Prentice Hall, 2010.
Considere o algoritmo recém apresentado para avaliar as afirmações a seguir.
- O campo nome da pessoa, na linha 4, está declarado corretamente.
- A declaração da variável v1, na linha 8, foi feita corretamente.
III. A leitura dos dados nas linhas 11, 13 e 15 foram feitas corretamente.
É correto o que se afirma em:
Alternativas
Alternativa 1 - II, apenas.
Alternativa 2 - I e II, apenas.
Alternativa 3 - I e III, apenas.
Alternativa 4 - II e III, apenas.
Alternativa 5 - I, II e III.
QUESTÃO 5
Ascencio e Campos (2010), descrevem alguns passos para se construir algoritmos, são eles: compreender o problema, definir as informações de entrada, definir o processamento e definir as informações de saída. Nesse contexto, analise o código a seguir:
Algoritmo soma
Var
n1, n2, s: inteiro
Início
Leia (n1, n2)
s <- n1 + n2
Escreva(s)
Fim
ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da Programação de Computadores. 5. ed. São Paulo: Prentice Hall, 2010.
A partir das informações acima, analise as afirmativas a seguir:
- O objetivo do código é somar dois números.
- Os dados de entrada serão gerados no final da execução.
III. O processamento consiste em efetuar a operação de soma com os dois números obtidos
- A saída será o resultado a soma.
É correto o que se afirma em:
Alternativas
Alternativa 1 - I e II, apenas.
Alternativa 2 - III e IV, apenas.
Alternativa 3 - I, II e III, apenas.
Alternativa 4 - I, III e IV, apenas.
Alternativa 5 - I, II, III e IV.
QUESTÃO 6
Inúmeras aplicações têm, em certo ponto de seu código, que decidir entre tomar um caminho ou outro. Por exemplo, algumas ações podem ser tomadas caso um número qualquer seja igual a zero, ou caso o número seja menor do que zero, e assim por diante. Veja esse algoritmo como exemplo:
01 - Algoritmo testaNumero
02 - Var numero: inteiro
03 - Início
04 - leia(numero)
05 - Se((-1)*numero < 0) então
06 - escreva("Caso 1.")
07 - Senão
08 - Se ((-1)*numero > 0) então
09 - escreva("Caso 2.")
10 - Senão
11 - escreva("Caso 3.")
12 - Fim_se
13 - Fim_se
14 - Fim
Fonte: Elaborado pelo professor.
Com base em seus conhecimentos a respeito de estruturas condicionais, realize o teste de mesa do algoritmo e analise as afirmativas a seguir.
- A linha 6 do algoritmo só será executada caso o usuário insira um valor positivo.
- A condição da linha 8 só será testada caso o usuário insira um valor não-positivo.
III. A linha 10 será executada quando o número for diferente de zero.
Sendo assim, é correto o que se afirma em:
Alternativas
Alternativa 1 - I, apenas.
Alternativa 2 - II, apenas.
Alternativa 3 - III, apenas.
Alternativa 4 - I e II, apenas.
Alternativa 5 - I, II e III.
QUESTÃO 7
Algoritmos de busca são fundamentais para localizar elementos específicos dentro de uma estrutura de dados. Considere o pseudocódigo abaixo que implementa o algoritmo de busca binária para encontrar a posição de um valor x em um vetor A de n elementos, assumindo que o vetor está previamente ordenado em ordem crescente.
Algoritmo buscaBinaria
Var
A: vetor[1..n] de inteiro
x, esquerda, direita, meio: inteiro
Início
esquerda <- 1
direita <- n
Enquanto (esquerda <= direita) faça
meio <- (esquerda + direita) / 2
Se (A[meio] = x) então
Escreva("Elemento encontrado na posição ", meio)
Retorne
Senão
Se (A[meio] < x) então
esquerda <- meio + 1
Senão
direita <- meio - 1
Fim_se
Fim_se
Fim_enquanto
Escreva("Elemento não encontrado")
Fim
Fonte: Elaborado pelo professor.
Analise o código e responda qual será a saída exibida quando o valor de x for 15 no vetor [3, 6, 8, 12, 15, 18, 20].
Alternativas
Alternativa 1 - Erro de execução.
Alternativa 2 - Elemento não encontrado.
Alternativa 3 - Elemento encontrado na posição 3.
Alternativa 4 - Elemento encontrado na posição 4.
Alternativa 5 - Elemento encontrado na posição 5.
QUESTÃO 8
Analise o código a seguir:
Algoritmo Resultado
Var
numero: inteiro
Início
Escreva("Digite um número:")
Leia(numero)
Escreva("O resultado é: 1")
Fim
Fonte: Elaborado pelo professor, 2024.
A partir de sua análise pode-se afirmar que:
Alternativas
Alternativa 1 - O código está incompleto.
Alternativa 2 - O resultado será sempre 1.
Alternativa 3 - O código entrará em loop infinito.
Alternativa 4 - O resultado será o valor digitado pelo usuário.
Alternativa 5 - O resultado será o valor digitado pelo usuário com incremento de 1.
QUESTÃO 9
O algoritmo abaixo foi criado com o intuito de inicializar uma matriz de 2 (duas) linhas por 3 (três) colunas.
01 - Algoritmo manipulaMatriz
02 - Var mat: Vetor[1..2, 1..3] de inteiro
03 - i, j: inteiro
04 - Início
05 - i <- 1
06 - j <- 1
07 - Enquanto (i <= 3) faça
08 - Enquanto(j <= 2) faça
09 - mat[i,j] <- i*j
10 - j <- j + 1
11 - Fim_enquanto
12 - Fim_enquanto
13 - Fim
Fonte: Elaborado pelo professor, 2020.
Considerando que a indexação da matriz começa pelo número 1, avalie as afirmações abaixo.
- Em um dado ponto da execução do algoritmo, o elemento da primeira linha, segunda coluna, terá seu conteúdo valendo 2 (dois).
- Há um erro semântico na linha 7, pois a matriz possui duas linhas apenas.
III. Da maneira como foi escrito, o algoritmo nunca irá entrar em loop infinito.
É correto o que se afirma em:
Alternativas
Alternativa 1 - I, apenas.
Alternativa 2 - II, apenas.
Alternativa 3 - III, apenas.
Alternativa 4 - I e II, apenas.
Alternativa 5 - I, II e III.
QUESTÃO 10
Analise o código a seguir:
Algoritmo numero
Var
n: inteiro
Início
Escreva(“Digite um número:”)
Leia(n)
Se (n == 0) então
Escreva(“O número é par”)
Senão
Escreva(“O número é ímpar”)
Fim_se
Fim
Fonte: Elaborado pelo professor, 2024.
O código acima tem o propósito de informar ao usuário se o número digitado é par ou ímpar, porém ele está com um erro no trecho de código destacado em negrito e sublinhado. Sendo assim, assinale a alternativa que contém a lógica para substituir no trecho de código sublinhado e destacado em negrito para que o algoritmo seja corrigido e funcione corretamente:
Alternativas
Alternativa 1 - n == 2 = 0
Alternativa 2 - n DIV 2 = 0
Alternativa 3 - n MOD 2 = 0
Alternativa 4 - n = 2 MOD 2
Alternativa 5 - n MOD 2 0


