Você está na página 1de 15

Curso: Análise e Desenvolvimento de Sistemas/ Série: 2 Turmas: Turno: Noturno

Engenharia de Software A,B,C,D

Professor(a): Edson Alexandre D. Moreno Horário: 19h00 às 22h10


Acadêmico (a): RA:
Disciplina: Algoritmos e Lógica de Programação Data: 26/09/2023 terça-feira
Prova Prova Atividades de Prova Nota final do bimestre
Prática estudo integrada
programadas (AEP)
5,0 3,0 1,0 1,0 10,0
INSTRUÇÕES PARA REALIZAÇÃO DA PROVA:
 Os dados do cabeçalho deverão ser preenchidos com letra maiúscula. E as questões deverão ser
respondidas com letra legível.
 É vedado, durante a prova, o porte e/ou o uso de aparelhos sonoros, fonográficos, de comunicação ou de
registro eletrônico ou não, tais como: notebooks, celulares, tabletes e similares.
 A prova é individual e sem consulta, deverá ser respondida a caneta azul ou preta. Prova escrita a lápis
não dá direito à revisão. Não é permitido o uso de corretivo.
 É obrigatória a permanência do acadêmico 1 (uma) hora em sala de aula após o início da prova.
 Não será permitida a entrada na sala de aula após 10 minutos do início da prova.
 É obrigatória a assinatura da lista de presença impressa na qual constam RA, nome e curso.
 O valor de cada questão está ao lado da mesma.
 Todas as respostas devem constar no espaço destinado e autorizado pelo professor, à resposta.
 Em caso de qualquer irregularidade comunicar ao Professor ou fiscal de sala.
 Ao término da prova, levante o braço e aguarde atendimento do professor ou do fiscal.

1º bimestre 2º bimestre 1ª substitutiva 2ª substitutiva

B
E
C
D
C
C
A
D
1) (pontos: 0,2) Estruturas de repetição, também conhecidas como laços ou loops, são
componentes fundamentais em algoritmos e programação. Elas permitem que um conjunto de
instruções seja executado repetidamente com base em uma condição ou um número
predefinido de vezes. Essas estruturas são usadas quando se deseja executar um bloco de
código várias vezes, evitando a repetição manual das mesmas instruções. Estrutura de
repetição permite que uma sequência de comandos seja executada repetidamente até que uma
determinada condição de interrupção seja satisfeita. (FARRER, 1999).

Abaixo, seguem algumas afirmações a respeito de estruturas repetitivas:

I) A estrutura de repetição REPITA ATE possui a interrupção no fim do laço, entretanto,


dependendo da condição (ou condições) imposta(s), pode ser que nem mesmo uma
única vez a sequência de comandos seja executada.
II) A estrutura de repetição ENQUANTO FAÇA executa a sequência de comandos
inserida no laço enquanto a condição (ou condições) imposta(s) forem satisfeitas.
III) A estrutura de repetição PARA possibilita uma sequência repetitiva sem a
necessidade que a variável com função de contador seja incrementada ou
decrementada com linha de código específica.
.

Analisando as afirmações acima, ASSINALE a alternativa correta:

a) I e II apenas
b) II e III apenas
c) I e III apenas
d) II apenas
e) Todas estão corretas

2) (pontos: 0,2) Uma ação é um evento que ocorre num período de tempo finito,
estabelecendo um efeito intencionado e bem definido (FARRER, 1999).
Um algoritmo é um caminho para a solução de um problema, visto que podem existir diversos
caminhos que conduzem a ela (LOPES; GARCIA, 2002).
Com base nas definições dos autores e no conteúdo observado durante as aulas,
ANALISE as seguintes afirmações com relação a exemplos de Algoritmos:

I) “preparar uma porção de batatas fritas”.


II) “efetuar a troca de um pneu furado”.
III) “atribuir a décima parte do valor 245 a uma variável”.
.
É CORRETO o que se afirma em:

a) I e III apenas
b) I, II apenas
c) I apenas
d) III apenas
e) todas as alternativas

3) (pontos: 0,2) Em algoritmos, as variáveis só podem armazenar dados do mesmo tipo,


sendo eles: inteiro, real, caractere e lógico. Em linguagem de programação, atribuímos essa
característica como “linguagem fortemente tipada”.
Uma variável inteira armazena dados numéricos que não possuem componentes
decimais ou fracionários, podendo o número ser positivo ou negativo (ASCENCIO; CAMPOS,
2010).
Complementando o autor, variáveis do tipo real podem possuir decimais ou frações e da
mesma forma que os inteiros, podem ser positivos ou negativos.

Com base nas definições acima, ANALISE as afirmações abaixo:

I) A informação altura de uma pessoa deve ser declarada como tipo inteiro.
II) A informação “doador de sangue” somente deverá ser declarada com tipo lógico.
III) A quantidade de estoque de um produto poderá ser do tipo real ou inteiro (dependerá
da regra de negócio da empresa).
.
Analisando as afirmações acima, ASSINALE a alternativa correta:

a) I apenas
b) I e II apenas
c) III apenas
d) II e III apenas
e) Todas estão corretas

4) (pontos: 0,2) Em algoritmos, variáveis são espaços de memória reservados para


armazenar valores que podem ser manipulados e modificados durante a execução do
programa. Essas variáveis possuem um nome que serve como identificador único, permitindo
que o programador faça referência a elas para recuperar ou alterar o valor armazenado.
Considerando um pseudocódigo (algoritmo), e ainda a respeito de variáveis numéricas
conforme mencionado na questão anterior, ANALISE a seguinte declaração de variáveis:

Var
X,Y: inteiro

Declarando as variáveis X e Y conforme exemplo acima, e atribuindo respectivamente


os valores 8 e 4 para X e Y, INDIQUE a alternativa resultante da execução do comando:
escreval(15%(x div y*(3-1)*2))
a) 0
b) 1
c) 3
d) 7
e) nenhuma das alternativas
5) (pontos: 0,2) De acordo com Lopes e Garcia (2002), as expressões estão diretamente
relacionadas ao conceito de fórmula matemática, em que um conjunto de variáveis e constantes
relaciona-se por meio de operadores. As expressões dividem-se em: aritméticas, relacional,
lógicas e literais. ANALISE as afirmações abaixo:

I) Operadores lógicos são utilizados para fazer disjunção, conjunção e negação.


II) Operadores lógicos, relacionais e aritméticos podem ser utilizados na mesma
expressão.
III) O operador aritmético de multiplicação é o asterisco ou sinal de vezes (x).
.
É CORRETO o que se afirma em:

a) I apenas
b) I e II apenas
c) II e III apenas
d) III apenas
e) todas estão corretas

6) (pontos: 0,2) Operadores relacionais são símbolos usados em algoritmos e


programação para comparar dois valores e determinar a relação entre eles. Eles permitem que
você avalie se uma condição específica é verdadeira ou falsa com base na relação entre os
valores comparados. As expressões relacionais referem-se à comparação entre dois valores
de mesmo tipo (ASCENCIO; CAMPOS, 2010).
Com base na definição do autor e nos conhecimentos obtidos durante as aulas,
ANALISE as afirmações abaixo:

I) Podemos utilizar expressões relacionais somente em estruturas condicionais.


II) Expressões relacionais podem ser utilizadas em conjunto com operadores lógicos.
III) Estruturas condicionais e de repetição podem utilizar expressões relacionais.
.
Considerando as afirmações acima, ASSINALE a alternativa correta:

a) I apenas
b) II apenas
c) II e III apenas
d) III apenas
e) todas estão corretas
7) (pontos: 0,2) De acordo com Lopes e Garcia (2002), as expressões estão diretamente
relacionadas ao conceito de fórmula matemática, em que um conjunto de variáveis e constantes
relacionam-se por meio de operadores. O operador "%" é comumente conhecido como o
operador de módulo ou resto, e é utilizado para calcular o resto da divisão entre dois números
inteiros. O operador "%" retorna o valor do resto da divisão do primeiro número pelo segundo
número. Considerando três variáveis X, Y e Z declaradas com tipo inteiro e inicializadas
respectivamente com 14, 3 e 0, ANALISE as seguintes atribuições:

I) Z(Y % 2)+Y
II) ZY % X+Y
III) Z(X % 4)+3
.
Com base nas atribuições à variável Z acima, ASSINALE a alternativa correta que
corresponde aos respectivos resultados das operações acima:

a) 4, 6, 5
b) 4, 6, 0
c) 4, 0, 5
d) 5, 6, 4
e) nenhuma das alternativas

8) (pontos: 0,2) Nas estruturas de repetição, o número de repetições pode ser fixo ou
estar relacionado a uma ou mais condições, isto é, os laços de repetição podem ser
classificados em laços contados e laços condicionais (ASCENCIO; CAMPOS, 2010). AVALIE
as afirmações abaixo:

I) Podemos utilizar qualquer laço de repetição para validar a entrada de um valor entre
10 e 100.
II) Para apresentar todos os números pares entre 2 e 100, somente será possível
utilizando o laço de repetição PARA com PASSO 2.
III) É possível utilizar qualquer laço de repetição para apresentar os números ímpares
entre 13 e 19.
.
Avaliando as afirmações acima, ASSINALE a alternativa correta:

a) I e II apenas
b) II e III apenas
c) II apenas
d) III apenas
e) todas estão corretas
9) (pontos: 0,5) A vantagem da estrutura de repetição é que não precisamos reescrever
trechos de código idênticos, reduzindo assim o tamanho do algoritmo. Além disso, podemos
determinar repetições com número de vezes variável (LOPES; GARCIA, 2002). Com base na
informação do autor, nos conhecimentos obtidos em aula e no algoritmo abaixo, DISCORRA
sobre o que seria necessário para que o algoritmo fizesse a entrevista com um número dinâmico
de pessoas (controlada pelo usuário), e não estático (fixo) 10 como foi definido.

Há algumas possibilidades para tornar o laço dinâmico. Exemplo1: Solicitar uma variável
(quantidade de pessoas) e efetuar o laço de acordo com essa variável. Outra possibilidade
(exemplo2), é ao final de uma entrevista perguntar ao usuário deseja entrevistar outra pessoa,
e aí continuar a entrevista ou não.
Abaixo, segue um modelo do exemplo1:
10) (pontos: 1,0) Números primos são números inteiros maiores que 1 que possuem
apenas dois divisores positivos: 1 e eles mesmos. Em outras palavras, são números que não
podem ser divididos por nenhum outro número inteiro além de 1 e o próprio número. Alguns
exemplos de números primos incluem 2, 3, 5, 7, 11, 13 e assim por diante. Os números que
não são primos são chamados de números compostos, pois têm mais de dois divisores
positivos. A identificação e o estudo de números primos são fundamentais em matemática e
têm aplicações em várias áreas, incluindo criptografia e teoria dos números. Utilizando
entendimento a respeito de números primos acima e o conhecimento obtido durante as aulas,
CONSTRUA um algoritmo completo (pseudocódigo) que apresente todos os números primos
entre 1 e 999.

Seria possível utilizar qualquer um dos três tipos de laços de repetição. Abaixo seguem dois
exemplos, um utilizando o laço PARA e outro utilizando o REPITA
11) (pontos: 0,5) A entrada de dados em algoritmos é uma parte fundamental da
programação e da resolução de problemas computacionais. Segundo Ascencio e Campos
(2010), a entrada de dados permite receber os dados digitados pelo usuário e é realizado por
meio do comando Leia e os dados recebidos são armazenados em variáveis.
Abaixo, temos um algoritmo desenvolvido com a ferramenta Visualg que solicita duas
informações de entrada (nome e sexo) para 3 pessoas. Após a execução, é evidente a
ocorrência um erro lógico pois apenas para a primeira pessoa foi solicitado as duas
informações. ANALISE o algoritmo e a tela de execução do mesmo e DISCORRA a respeito
do motivo do erro ocorrer, e apresente uma solução para resolver o problema.

Após entrevistar a primeira pessoa, as variáveis ficarão carregadas (com valores). Como
na validação do sexo é utilizado a estrutura repetitiva ENQUANTO FAÇA, que testa a condição
no início da estrutura, a partir do segundo entrevistado o laço (enquanto) não será executado
novamente pois a variável sexo já possuirá um valor.
Para resolver este problema, há várias possibilidades e qualquer uma das citadas abaixo
será considerada correta:

1) inicializar a variável sexo (sexo ””) após ter solicitado o nome;


2) mudar o laço de repetição ENQUANTO FAÇA para REPITA ATÉ, deixando assim a condição
no fim do laço;
3) Colocar um Escreva e Leia (para o sexo) antes de entrar no laço de repetição. Ficaria
redundante, mas funcionaria.
12) (pontos: 0,5) “Teste de mesa” é uma técnica utilizada em programação de
computadores para verificar a lógica e o funcionamento de um algoritmo. Essa técnica é
realizada manualmente, simulando a execução do programa passo a passo, seguindo as
instruções e registrando os valores intermediários das variáveis em uma tabela, conhecida
como "mesa". O objetivo do teste de mesa é identificar erros de lógica no algoritmo, encontrar
possíveis problemas na execução e entender como as variáveis estão sendo modificadas em
cada etapa do processo. Isso pode ser especialmente útil para detectar falhas que não são
aparentes apenas ao olhar o código-fonte.

Analisando o algoritmo abaixo e aplicando a técnica do “teste de mesa”, DESCREVA


qual será o resultado final apresentado ao usuário, considerando que ao efetuar o “teste de
mesa”, fora atribuído, respectivamente os valores 3, 3 e 2 para as variáveis n1, n2 e n3.
JUSTIFIQUE sua resposta.

Será apresentado “o maior é 2”


Isso ocorrerá pois no primeiro teste condicional (n1>n2) e (n1>n3) será executado o
senão, fazendo com que o segundo teste condicional (n2>n1) e (n2>n3) seja testado e mais
uma vez sendo executado o senão.
13) (pontos: 0,3) A estrutura que permite desviar o fluxo do programa é denominada
estrutura condicional, estrutura de seleção ou estrutura de controle (MANZANO; OLIVEIRA,
1997; ASCENCIO; CAMPOS, 2010). Lopes (2002) define que estrutura condicional consiste em
uma estrutura de controle de fluxo que permite executar um ou mais comandos se a condição
testada for verdadeira ou executar um ou mais comandos se a condição for falsa.
Com base nas informações dos autores e nos conhecimentos obtidos ao longo do bimestre,
DISCORRA sobre os possíveis tipos de estrutura condicional aplicados em algoritmos.

Estrutura condicional simples:


Possui apenas um caminho (caso a condição seja satisfeita).
SE <condição> ENTÃO
//comandos
FIMSE

Estrutura condicional composta:


Possui dois caminhos (condição satisfeita e condição não satisfeita).
SE <condição> ENTÃO
//comandos
SENAO
//comandos
FIMSE

Estrutura condicional aninhada


Quando você possui uma estrutura condicional dentro de outra (como utilizado no exercício anterior)
Se <condição> ENTÃO
//comandos
SENAO
Se <condição> ENTAO
// comandos
FIMSE
FIMSE

Estrutura condicional de múltipla escolha:


Possui vários caminhos.
ESCOLHA variável
Caso 1
Caso 2
Caso 3
Outro caso //opcional
FIMESCOLHA
14) (pontos: 0,2) Ainda a respeito de “Teste de Mesa” conforme definido na questão 12,
analise o algoritmo abaixo e efetue o teste completo, simulando a entrada de valor 6 para a
variável X e APRESENTE o valor final para a variável T ao término do algoritmo, bem como
todas as variações ocorridas (variável T) ao longo da execução completa do código.

T=0 X Y T
6 1 1
2 6
T=1 36
108
T=6

T=36

T=108
36+(36*2)
15) (pontos: 0,2) Todo dado a ser armazenado na memória de um computador deve ser
previamente identificado, ou seja, primeiro é necessário saber qual o seu tipo para depois fazer
o seu armazenamento adequado (MANZANO, 2000).
Com base na definição do autor e no conhecimento obtido durante as aulas, DESCREVA
como os identificadores (nome dado às variáveis) devem ser definidos a respeito de sua
nomenclatura, apresentando ao menos 5 exemplos de identificadores válidos e 5 de
identificadores inválidos.

Identificadores são os nomes atribuídos às variáveis.


Não podem conter espaços, não pode conter caracteres especiais (exceto underline),
não pode começar com números e não pode utilizar palavras reservadas (comandos,
operadores, etc).
Exemplos de uso incorreto:
1x, e, nome aluno, tes%te, leia
16) (pontos: 0,2) Uma variável do tipo inteiro armazena dados numéricos que não
possuem componentes decimais ou fracionários. O número pode ser positivo ou negativo
(ASCENCIO; CAMPOS, 2010)
A inicialização de uma variável refere-se à atribuição de um valor inicial a essa variável
antes de usá-la em um programa ou algoritmo. Isso é importante porque a variável deve conter
um valor definido antes de ser usada em cálculos, comparações ou outras operações. A
inicialização é uma prática comum para evitar comportamentos indefinidos e erros em um
programa. Analise o código fonte abaixo e a tela de execução do mesmo e DESCREVA o que
ocorreu de anormal, bem como o motivo, apresentando a solução para resolução do problema.

O problema ocorre em função da variável soma ser totalizadora e ir acumulando a soma


de cada nota (n) informada. Para resolver isso, a variável soma deve ser inicializada com valor
zero entre o REPITA e o PARA, ou seja, a cada pessoa entrevistada, a variável seria zerada
(inicializada).
Rascunho
Rascunho

Você também pode gostar