Prévia do material em texto
QUESTÃO 1
·
Observe um exemplo de algoritmo que automatiza a tomada de decisão:
Linha
Código
01
02
03
04
05
06
07
08
09
10
11
Algoritmo teste
Var x: inteiro
Início
Escreva(“Digite um número inteiro:”)
Leia(x)
Se (x MOD 2 = 0) então
Escreva(“Situação 1”)
Senão
Escreva(“Situação 2”)
Fim_se
Fim
LEAL, G. C. L.; OLIVEIRA, P. M. de. Algoritmos e Lógica de Programação I. Maringá: UniCesumar, 2020. (Adaptado)
Com base no pseudocódigo anterior, analise as afirmativas a seguir:
I. O algoritmo está escrito de forma inconsistente com a sintaxe do pseudocódigo.
II. Ao executar a linha de código 5, se o usuário inserir o valor “10” para x, teremos a mensagem “Situação 2” sendo impressa na tela.
III. Esse algoritmo pode ser adaptado para identificar se o valor de x, informado pelo usuário, é ou não divisível por 2.
É correto o que se afirma em:
Parte superior do formulário
Alternativas
Alternativa 1:
I, apenas.
Alternativa 2:
II, apenas.
Alternativa 3:
III, apenas.
Alternativa 4:
I e II, apenas.
Alternativa 5:
II e III, apenas.
Parte inferior do formulário
QUESTÃO 2
·
O vetor pessoas: vetor[1..20, 1..64] de caractere, possibilita que armazenemos 20 pessoas com até 64 caracteres. Contudo, o correto seria transformar esta estrutura em registro.
Analise as afirmativas, a seguir, e assinale a alternativa correta.
Parte superior do formulário
Alternativas
Alternativa 1:
tipo
pes = registro
nome: vetor[1..64] de caractere
fim_registro
var
pessoas: vetor[1..20] de pes
Alternativa 2:
tipo
pes = registro
nome: vetor[1..20] de caractere
fim_registro
var
pessoas: vetor[1..64] de pes
Alternativa 3:
tipo
pes = registro
nome: vetor[1..20, 1..64] de caractere
fim_registro
var
pessoas: vetor[1..20] de pes
Alternativa 4:
registro
pes = tipo
nome: vetor[1..20, 1..64] de caractere
fim_registro
var
pessoas: vetor[1..20] de pes
Alternativa 5:
tipo
pes = vetor
nome: vetor[1..20, 1..64] de caractere
fim_registro
var
pessoas: vetor[1..20] de pes
Parte inferior do formulário
QUESTÃO 3
·
Em muitas situações nos deparamos com problemas complexos e abrangentes. Para resolver esse tipo de problema temos que dividí-lo em subproblemas mais simples e específicos, dividindo assim a sua complexidade e facilitando a resolução, através de procedimentos específicos.
FORBELLONE, A. L. V.; EBERSPACHER, H. F. Lógica de Programação. 3. ed. São Paulo: Makron Books, 2005.
Considere o algoritmo em pseudocódigo abaixo.
01 - Algoritmo quadrado
02 - Procedimento elevaAoQuadrado(x: inteiro)
03 - Início
04 - x <- x * x
05 - Fim_procedimento
06 - Var x: inteiro
07 - Início
08 - escreva("Insira o valor:")
09 - leia(x)
10 - elevaAoQuadrado(x)
11 - escreva(x)
12 - Fim
Sendo assim, tomando por base seus conhecimentos a respeito de procedimentos, leia as afirmações que se seguem.
I – A linha 2 contém a declaração da passagem por valor, do parâmetro x. Assim a instrução da linha 11 imprimirá o resultado do cálculo do número informado pelo usuário elevado ao quadrado, na linha 9.
II – Independentemente da passagem de parâmetro da linha 2 ser definida como valor ou referência, o algoritmo será capaz de imprimir o quadrado do número inserido pelo usuário pois a variável x, declarada na linha 6 irá sobrepor a declaração da linha 2.
III – O procedimento foi declarado com sintaxe correta, dispensando o uso da palavra reservada "retorne", palavra essa que é reservada à sintaxe de declaração de funções.
Sendo assim, é correto o que se afirma em:
Parte superior do formulário
Alternativas
Alternativa 1:
I, apenas.
Alternativa 2:
II, apenas.
Alternativa 3:
III, apenas.
Alternativa 4:
I e III, apenas.
Alternativa 5:
II e III, apenas.
Parte inferior do formulário
QUESTÃO 4
·
Ao construir algoritmos utilizando estruturas de repetição, muitas vezes, precisaremos utilizar variáveis contadoras e acumuladoras. Aprendemos os conceitos relacionados a esses modelos de variáveis, como utilizá-las e qual a diferença entre elas.
Sobre variáveis contadoras e acumuladoras, analise as afirmativas a seguir:
I – As variáveis do tipo contadoras são utilizadas para incrementar ou decrementar um valor constante nos laços de repetições.
II – As variáveis contadoras e acumuladoras não necessitam serem inicializadas.
III – As variáveis acumuladoras são utilizadas para incrementar valores em um valor variável dentro de uma estrutura de repetição.
IV – As variáveis contadoras e acumuladoras devem ser inicializadas.
É correto o que ser afirma em:
Parte superior do formulário
Alternativas
Alternativa 1:
I, apenas.
Alternativa 2:
I e II, apenas.
Alternativa 3:
III e IV, apenas.
Alternativa 4:
I, III e IV, apenas.
Alternativa 5:
I, II, III e IV.
Parte inferior do formulário
QUESTÃO 5
·
Analise o trecho do pseudocódigo a seguir:
Algoritmo Validar
Tipo
reg_user = registro
user: vetor[1..6] de caracteres
senha: vetor[1..8] de caracteres
fim_registro
funcao validar(usuario, senha):inteiro
var
posicao: inteiro
inicio
para posicao de 1 ate 10 passo cad faca
se(usuario = login[posicao].user) entao
se (senha = login[posicao].senha) entao
retorne 1
senao
retorne 0
fim_se
senao
retorne -1
fim_se
fim_para
fim_funcao
var
login: vetor[1..100] de reg_user
user: vetor[1..6] de caracteres
senha: vetor[1..8] de caracteres
cad, e_validado: inteiro
inicio
...
e_validado <- validar(user, senha)
se(???) entao
escreva ("Senha não confere")
fim_se
se(???) entao
escreva ("Você está logado no sistema")
fim_se
se(???) entao
escreva ("Usuário não existe")
fim_se
...
fim
De acordo com o pseudocódigo, analise as alternativas a seguir, de forma que complete as lacunas na ordem que segue (assumir que todas as variáveis e funções foram declaradas e que o pseudocódigo está funcional):
I - e_validado = 1, e_validado = -1, e_validado = 0
II - e_validado = -1, e_validado = 0, e_validado = 1
III - e_validado = 0, e_validado = 1, e_validado = -1
É correto o que se afirma em:
Parte superior do formulário
Alternativas
Alternativa 1:
I, apenas.
Alternativa 2:
III, apenas.
Alternativa 3:
I e II, apenas.
Alternativa 4:
II e III, apenas.
Alternativa 5:
I, II e III.
Parte inferior do formulário
QUESTÃO 6
·
Através das estruturas de decisão, o programa pode escolher, em tempo de execução, por tomar um dentre vários caminhos possíveis, de acordo com uma condição pré-estabelecida. Combinada a uma estrutura de repetição, a estrutura condicional pode auxiliar o algoritmo a tomar uma sequência de decisões.
Sabendo disso, analise o algoritmo abaixo.
01 - Algoritmo contador
02 - Var numero, cont: inteiro
03 - Início
04 - cont <- 0
05 - leia(numero)
06 - Enquanto (numero > 0)
07 - Se (numero MOD 5 = 0) então
08 - cont <- cont + 1
09 - Fim_se
10 - numero <- numero / 10
11 - Fim_enquanto
12 - escreva(cont)
13 - Fim
Tomando por base o passo a passo apresentado no algoritmo acima leia as afirmações.
I – Esse algoritmo serve apenas para dizer se o "numero" informado pelo usuário é múltiplo de 5, ou não.
II – A instrução descrita na linha 10 só será executada caso a condição da linha 7 seja verdadeira.
III – O algoritmo irá imprimir, na linha 12, quantos algarismos iguais a 5 estão contidos no "numero" informado pelo usuário.
Sendo assim, é correto o que se afirma em:
Parte superior do formulário
Alternativas
Alternativa 1:
I, apenas.
Alternativa 2:
II, apenas.
Alternativa 3:
III, apenas.
Alternativa 4:
I e II, apenas.Alternativa 5:
II e III, apenas.
Parte inferior do formulário
QUESTÃO 7
·
Estruturas de repetição também são conhecidas como laços ou loops. Tais estruturas são um dos mecanismos mais formidáveis de algoritmos, já que permitem automatizar tarefas que seriam extremamente repetitivas e propensas a erro, caso fossem executadas por humanos. Os laços permitem que um bloco de comandos seja repetido (iterado) por diversas vezes, com base em condições lógico-relacionais.
Fonte: LEAL, G. C. L.; OLIVEIRA, P. M. de. Algoritmos e Lógica de Programação I. Maringá: UniCesumar, 2020.
A respeito de estruturas de repetição, analise as afirmativas a seguir:
I. O laço “Enquanto” é conhecido por realizar o teste condicional logo no início do bloco de comandos.
II. O laço “Repita-Até_que” é famoso por garantir que o bloco de comandos definido por ele seja executado ao menos uma vez.
III. O laço conhecido como “Para-de-ate-passo-faça” também é chamado de “laço por contagem”.
É correto o que se afirma em:
Parte superior do formulário
Alternativas
Alternativa 1:
I, II e III.
Alternativa 2:
I, apenas.
Alternativa 3:
I e II, apenas.
Alternativa 4:
I e III, apenas.
Alternativa 5:
II e III, apenas.
Parte inferior do formulário
QUESTÃO 8
·
As estruturas unidimensionais, conhecidas como vetores, consistem em um arranjo de elementos armazenados na memória principal, sequencialmente, todos com o mesmo nome (LOPES; GARCIA, 2002). O vetor segue o mesmo princípio de uma matriz linha da matemática. Em cada coluna da linha, temos uma variável com o mesmo nome, no entanto, em diferentes posições no arranjo.
Fonte: LOPES, A.; GARCIA, G. Introdução à Programação. Rio de Janeiro: Elsevier, 2002.
Assim, com base em seus conhecimentos sobre vetores, analise as afirmativas a seguir:
I. Em pseudocódigo, é interessante que, ao declarar um novo vetor, deixemos claro qual é o tamanho máximo do respectivo vetor.
II. Um vetor pode ser combinado com registros para armazenar mais de um tipo de dados em uma mesma posição do vetor, simultaneamente.
III. Para armazenar toda uma palavra, do tipo texto, é preciso utilizar um vetor de caracteres.
É correto o que se afirma em:
Parte superior do formulário
Alternativas
Alternativa 1:
I, apenas.
Alternativa 2:
II, apenas.
Alternativa 3:
I e II, apenas.
Alternativa 4:
I e III, apenas.
Alternativa 5:
I, II e III.
Parte inferior do formulário
QUESTÃO 9
·
1) Analise o algoritmo a seguir e assinale o resultado de sua execução:
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
Logo, a resposta correta é:
Parte superior do formulário
Alternativas
Alternativa 1:
A = 12, B = 12, C = 12
Alternativa 2:
A = 5, B = 12, C = 12
Alternativa 3:
A = 12, B = 12, C = 5
Alternativa 4:
A = 12, B = 5, C= 5
Alternativa 5:
A = 5, B =5, C = 5
Parte inferior do formulário
QUESTÃO 10
·
Um objeto é dito recursivo se ele for definido em termos de si próprio. Destaca-se que o conceito de recursão não é encontrado somente na programação mas também na matemática e no dia a dia como, por exemplo, quando vemos uma imagem que contém a si própria.
LEAL, Gislaine Camila Lapasini, OLIVEIRA, Pietro Martins de. Algoritmos e Lógica de Programação I. Maringá: Unicesumar, 2020.
Assim, considere o seguinte trecho de pseudocódigo do algoritmo fatRec, abaixo, cujo propósito é calcular e exibir, na tela, o fatorial de 5.
01 - Algoritmo fatRec
02 - Funcao fat(x: inteiro): inteiro
03 - Início
04 - Se (________) então
05 - retorne 1
06 - Senão
07 - retorne x * __________
08 - Fim_se
09 - Fim_funcao
10 - Var n, resultado: inteiro
11 - Início
12 - n <- 5
13 - ______________ <- fat(n)
14 - escreva(resultad0)
15 - Fim
Com base em suas habilidades no desenvolvimento e compreensão de algoritmos, assinale a alternativa que melhor se adequa à realidade e ao propósito do algoritmo fatRec apresentado acima.
Parte superior do formulário
Alternativas
Alternativa 1:
As lacunas das linhas 4, 7 e 13 devem ser preenchidas pelas instruções "x = 1", "fat(x)" e "n", respectivamente.
Alternativa 2:
As lacunas das linhas 4, 7 e 13 devem ser preenchidas pelas instruções "x = 1", "fat(x-1)" e "n", respectivamente.
Alternativa 3:
As lacunas das linhas 4, 7 e 13 devem ser preenchidas pelas instruções "x = 1", "fat(x)" e "resultado", respectivamente.
Alternativa 4:
As lacunas das linhas 4, 7 e 13 devem ser preenchidas pelas instruções "x = 0", "fat(x-1)" e "resultado", respectivamente.
Alternativa 5:
As lacunas das linhas 4, 7 e 13 devem ser preenchidas pelas instruções "fat(x) = 0", "fat(x)" e "resultado", respectivamente.
Parte inferior do formulário