Buscar

AO2_ Algoritmos e Lógica de Programação

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 16 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 16 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 9, do total de 16 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

21/09/2021 19:15 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/16387/quizzes/79328 1/16
AO2
Entrega 26 set em 23:59 Pontos 6 Perguntas 10
Disponível 21 set em 0:00 - 26 set em 23:59 6 dias Limite de tempo Nenhum
Instruções
Histórico de tentativas
Tentativa Tempo Pontuação
MAIS RECENTE Tentativa 1 223 minutos 4,2 de 6
 As respostas corretas estarão disponíveis em 27 set em 0:00.
Pontuação deste teste: 4,2 de 6
Enviado 21 set em 19:00
Esta tentativa levou 223 minutos.
Importante:
Caso você esteja realizando a atividade através do aplicativo "Canvas Student", é necessário que
você clique em "FAZER O QUESTIONÁRIO", no final da página.
0,6 / 0,6 ptsPergunta 1
Leia os textos a seguir:
 
O que é estrutura de repetição?
 
Dentro da lógica de programação é uma estrutura que permite
executar mais de uma vez o mesmo comando ou conjunto de
comandos, de acordo com uma condição ou com um contador.
São utilizadas, por exemplo, para repetir ações semelhantes que são
executadas para todos os elementos de uma lista de dados, ou
simplesmente para repetir um mesmo processamento até que a
condição seja satisfeita.
(...)
While
É dentre as 3 a mais simples.
https://famonline.instructure.com/courses/16387/quizzes/79328/history?version=1
21/09/2021 19:15 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/16387/quizzes/79328 2/16
Repete um bloco de código enquanto uma condição permanecer
verdadeira
Caso a condição seja falsa, os comandos dentro do while não
serão executados e a execução continuará com os comandos após
o while
A repetição do while é controlada por uma condição que verifica
alguma variável. Porém para que o while funcione corretamente é
importante que essa variável sofra alteração dentro do while. Ex:
um contador.
Após entrar dentro da repetição, o bloco de comandos sempre será
executado, mesmo que dentro do bloco a variável que está
controlando a execução seja alterada.
(...)
 
Fonte: ZANELATO, J. Lógica de Programação - estruturas de
repetição. Disponível em: https://podprogramar.com.br/logica-de-
programacao-estruturas-de-repeticao/ . Acesso em: 05 de abril de
2021.
 
Analise o código a seguir em linguagem C:
 
#include <stdio.h>
 
int main()
{
 int a, b;
 a = 1;
 while (a < 10)
 {
 b = a + 2;
 while (b < 10)
 {
 printf("%d ",a);
 printf("%d ",b);
 b = b + 1;
 }
 a = a + 1;
 }
 
 return 0;
https://podprogramar.com.br/logica-de-programacao-estruturas-de-repeticao/
21/09/2021 19:15 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/16387/quizzes/79328 3/16
}
 
Assinale a alternativa correta que descreve quantas vezes o comando
printf será executado?
 10 vezes. 
 55 vezes. 
 56 vezes. 
Alternativa correta.
O programa será executado entrando no primeiro while, e
atribuindo um valor a B através de um cálculo. A partir disso, ele
vai entrar no segundo while, onde temos dois printf, que serão
executados algumas vezes, enquanto a condição do segundo
while for verdadeira.
Quando o segundo while não for mais verdadeiro, o programa vai
sair desse while e voltar para o primeiro, vai fazer o incremento da
variável a e executar o primeiro while novamente.
Isso vai se repetir até que a condição do primeiro while seja falsa.
Tudo isso fará com que o printf execute 56 vezes.
A saída do programa será: 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 4 2 5 2 6 2
7 2 8 2 9 3 5 3 6 3 7 3 8 3 9 4 6 4 7 4 8 4 9 5 7 5 8 5 9 6 8 6 9 7 9.
 28 vezes. 
 53 vezes. 
0,6 / 0,6 ptsPergunta 2
Leia o texto a seguir:
 
O que é uma variável?
Variável é um local reservado na memória para armazenar um tipo de
dado.
Toda variável deve ter um identificador, ou seja, um nome. Além de ter
um nome, a variável também precisa ter um tipo. O tipo de dado de
uma variável determina o que ela é capaz de armazenar.
 
21/09/2021 19:15 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/16387/quizzes/79328 4/16
Tipos de dados
Existem diversos tipos de dados que podem ser usados nas variáveis.
Cada tipo de dado é específico para armazenar um determinado
formato de dado.
Podemos dizer que os principais tipos de dados numéricos se dividem
em:
Inteiro: armazena números inteiros
Real: armazena números com casas decimais, são as variáveis de
ponto flutuante;
O tipo de dado caracter é capaz de representar um caracter ou um
conjunto de caracteres (letras, dígitos ou símbolos).
 
Fonte: CASAVELLA, E. Variáveis em Linguagem C. Disponível
em: http://linguagemc.com.br/variaveis-em-linguagem-c/ . Acesso
em: 05 de abril de 2021.
 
O tipo de dados float refere-se também aos dados do tipo
 real com precisão dupla. 
 local. 
 caractere. 
 inteiro. 
 real com precisão simples. 
Alternativa correta.
O tipo de dado chamado de float em linguagem C representa os
números reais.
Caracteres são representados pelo char.
Números inteiros são representados pelo int.
Números reais com precisão dupla são representados pelo
double.
Local não é um tipo de dado. 
0 / 0,6 ptsPergunta 3IncorretaIncorreta
http://linguagemc.com.br/variaveis-em-linguagem-c/
21/09/2021 19:15 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/16387/quizzes/79328 5/16
Leia o trecho a seguir:
 
A construção de software não é uma tarefa simples. Por isso, está
sujeita a diversos tipos de problema que acabam resultando na
obtenção de um produto diferente daquele que se espera.
Para que os erros de software sejam descobertos antes de o software
ser liberado para utilização, existe uma série de atividades chamadas
de validação, verificação e teste, com a finalidade de garantir que tanto
o modo pelo qual o software está sendo construído quanto o produto
em si estejam em conformidade com o especificado.
(Fonte: DELAMARO, M. E.; MALDONADO, J. C.; JINO, M. Introdução
ao teste de software.
Rio de Janeiro: Campos/Elsevier, 2007).
Considerando as informações apresentadas, avalie as afirmações a seguir:
 
I. A única forma de testar um algoritmo é testá-lo após a codificação em uma
linguagem de programação, com isso, podemos entrar com os dados. Os
resultados finais mostram o comportamento exato do algoritmo nos vários
cenários de teste.
II. Um sistema é composto por um conjunto de programas, sendo que cada
qual possui um objetivo específico, mas que são todos voltados para resolver
um problema maior. Por isso, fazer testes unitários não contribui para o teste
de um sistema. Somente um teste amplo é capaz de mostrar pontos falhos
no todo.
III. Ao término da elaboração do algoritmo, o programador deve buscar
formas de verificar se está funcionando corretamente. Uma forma eficaz de
utilizar uma técnica com a qual possa identificar todas as variáveis
manipuladas no algoritmo, verificar todas as condições (requisitos)
necessárias para solucionar o problema, dispositivos de entrada e saída, e
pontos que demonstrem o comportamento do programa.
 
É correto o que se afirma em:
 I e III, apenas. 
 I e II, apenas 
21/09/2021 19:15 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/16387/quizzes/79328 6/16
Alternativa B
Alternativa está incorreta. A afirmativa I é falsa, uma vez que
existe outra forma de testar um programa antes de sua
codificação. Para esse fim, temos o teste de mesa, que verifica
em tempo de algoritmo codificado em pseudolinguagem ou
fluxograma. Assim, não há necessidade de o computador fazer o
teste de mesa, o qual pode ser feito com a utilização somente de
lápis e papel. A afirmativa II é falsa por afirmar que testes
unitários não contribuem para o teste de sistema. Se um sistema
é composto de vários programas, então o testeunitário contribui
muito para o teste de sistema, pois este está voltado para a
verificação de um resultado amplo; já o teste unitário busca a
verificação muito próxima de cada linha codificada no programa. A
afirmativa III é verdadeira. Após produzir o algoritmo, o
programador deve verificar se este está funcionando
corretamente, ou seja, se está fazendo o que foi pedido. Por isso,
existe uma técnica eficaz, chamada teste de mesa, a qual facilita
o entendimento do fluxo de execução do algoritmo e permite
identificar erros de lógica na construção do algoritmo. Esta técnica
é composta por um instrumento que reúne todas as variáveis
envolvidas no algoritmo e todas as condições que o programa
deve prever. Nessa técnica, também é possível que se planejem
vários cenários a se testar. Portanto, a alternativa correta é III,
apenas.
 III, apenas. 
 II e III, apenas. 
 I, apenas. 
0,6 / 0,6 ptsPergunta 4
Leia o texto a seguir:
 
Na grande maioria das vezes, não nos damos conta disso, mas ao
fazer uma análise do nosso cotidiano, podemos compreender como
todas as nossas ações são consequência de uma cadeia de outras
ações menores que nos levaram até uma atitude final.
Vamos tomar como exemplo o café que tomamos de manhã.
Quando perguntam como tomamos nosso café, a maioria de nós
responde que, ao acordarmos, preparamos o café com auxílio de uma
cafeteira elétrica, colocamos ele em uma caneca e o tomamos.
Mas, ao destrinchar este processo, somos capazes de estipular uma
sequência de passos que nos levaram ao ato final de beber este café.
Esta sequência pode ser:
21/09/2021 19:15 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/16387/quizzes/79328 7/16
1. Ao acordar, levanto da cama;
2. Após levantar da cama, desço as escadas;
3. Após descer as escadas, entro na cozinha;
4. Após entrar na cozinha, pego o pó de café no armário;
5. Após pegar o pó de café, o coloco dentro da cafeteira;
6. Após colocar o pó na cafeteira, jogo água no compartimento
específico;
7. Após inserir todos os ingredientes na máquina, aperto o botão de
ligar;
8. Quando o café está pronto, pego a garrafa;
9. Após pegar a garrafa, despejo o café dentro de uma caneca;
10. Após colocar o café na caneca, bebo o café.
 
Se detalharmos ainda mais este processo, é possível incluir mais
passos dentro desta sequência.
(...)
Lógica de programação é a organização coesa de uma sequência de
instruções voltadas à resolução de um problema, ou à criação de um
software ou aplicação.
A lógica de programação é o conhecimento anterior a qualquer outro
quando falamos em desenvolvimento web porque é a partir dele que
os aprendizados posteriores, como por exemplo o das linguagens de
programação, fará sentido.
Cada linguagem tem suas próprias particularidades, como sua sintaxe,
seus tipos de dados e sua orientação, mas a lógica por trás de todas é
a mesma.
(...)
 
Fonte: ROVEDO, U. Lógica de Programação: O que é e por que é
importante?. Kenzie Academy. Disponível
em: https://kenzie.com.br/blog/logica-de-programacao/ . Acesso
em:05 de abril de 2021.
 
Levando-se em consideração a lógica, de maneira geral, e que se
aplica sempre quando estamos trabalhando com programação, analise
a sequência de números a seguir:
Os primeiros cinco números de uma sequência são 0.5, 2, 8, 32, 128.
Assinale a alternativa correta sobre essa sequência considerando-se a
lógica:
 O sexto número da sequência é 512. 
https://kenzie.com.br/blog/logica-de-programacao/
21/09/2021 19:15 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/16387/quizzes/79328 8/16
Alternativa correta.
Essa sequência numérica é feita com base na multiplicação dos
números por 4.
0.5 * 4 = 2
2 * 4 = 8
8 * 4 = 32
32 * 4 = 128
Logo, o próximo número será 128 * 4 = 512.
 O sétimo número da sequência é menor que 1000. 
 O próximo número da sequência é ímpar. 
 Essa sequência não segue nenhuma lógica. 
 Todos os números da sequência são pares. 
0,6 / 0,6 ptsPergunta 5
Leia o texto a seguir:
 
Toda linguagem de programação possui três aspectos que um
programador, ao fazer uso de uma dada linguagem, deve ter pleno
domínio: aspectos lexicais, sintáticos e semânticos. Os lexicais dizem
respeito ao conjunto de palavras que o programa reconhece
(dicionário), o que vale tanto para variáveis, comandos e
identificadores. Os sintáticos referem-se à estrutura de cada comando,
ou seja, a sintaxe do comando. Os semânticos estão relacionados com
a manipulação dos dados e seus respectivos tipos.
Do ponto de vista léxico, existem linguagens de programação que
possuem regras muitos específicas para a identificação de seus vários
identificadores (variáveis, comandos, labels etc.).
Qual é o termo que designa uma linguagem que diferencia letras
maiúsculas de letras minúsculas na codificação dos comandos e
atribuição de identificadores (variáveis, nomes de funções e labels)?
 Palavra Reservada. 
 Eclipse. 
21/09/2021 19:15 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/16387/quizzes/79328 9/16
 IDE. 
 Expressões. 
 Case Sensitive. 
Alternativa A
Alternativa está correta, pois case sensitive é um termo da Língua
Inglesa, incorporado aos termos das linguagens de programação,
que designa uma linguagem de programação que faz a
diferenciação entre letras minúsculas e maiúsculas na escrita.
Esse ponto é muito importante, pois faz referência a variáveis
homônimas escritas de formas diferentes (por exemplo, a
variável contador é diferente da variável Contador) e que podem
produzir erros de lógica.
0 / 0,6 ptsPergunta 6IncorretaIncorreta
Observe o código a seguir:
 
#include <stdio.h>
#include <locale.h>
int main()
{
 setlocale(LC_ALL, "Portuguese");
 int temp, cont;
 int vetor_prova[10] = {9,8,7,6,5,4,3,2,1,0};
 while (cont < 10)
 {
 temp = vetor_prova[cont];
 vetor_prova[cont] = vetor_prova[9-cont];
 vetor_prova[9-cont] = temp;
 cont = cont + 1;
 }
 for (cont = 0; cont <=9; cont++)
 {
21/09/2021 19:15 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/16387/quizzes/79328 10/16
 printf ("posição %d é igual a %d \n", cont, vetor_prova[cont]);
 }
 return 0;
}
 
Considerando o código apresentado acima, assinale a alternativa
correta sobre qual será o conteúdo do vetor chamado vet_prova ao fim
da execução do programa.
 9, 8, 7, 6, 5, 4, 3, 2, 1, 0. 
Alternativa incorreta.
Um vetor foi criado no programa e já recebeu os valores
9,8,7,6,5,4,3,2,1,0 como seu conteúdo.
Então, um while é executado 10 vezes, e em cada uma dessas
execuções, o conteúdo existente no vetor foi invertido de posição,
até que no fim do processo, ele tem todos os valores invertidos,
ficando 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
 0, 2, 4, 6, 8, 1, 3, 5, 7, 9. 
 1, 3, 5, 7, 9. 
 0, 2, 4, 6, 8. 
 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. 
0 / 0,6 ptsPergunta 7IncorretaIncorreta
Leia o trecho abaixo:
 
O fluxo normal de um programa de computador executa instruções em
uma sequência: parte-se da primeira instrução do algoritmo até
alcançar a última instrução da sequência. Um dos recursos utilizados
em linguagens de programação, como forma de desvio do fluxo, é a
utilização de funções. As funções são trechos de códigos executados
que podem ser chamadas em qualquer ponto do programa, por outras
funções.
Toda função, exceto as funções declaradas como void, deve devolver
valor para o ponto de chamada. Esse valor é devolvido pelo comando
21/09/2021 19:15 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/16387/quizzes/79328 11/16
return.
Para ilustrar a situação, imagine que um programa necessita fazer uma
parte do cálculo de pagamento de um funcionário. Esse cálculo é feito
a partir dos proventos e dos descontos. Então, o programa deve ser
seccionado em várias funções para calcular cada um dos elementos.
Cada função deve fazer o cálculo que é de sua responsabilidadee
devolver o resultado para o ponto que a chamou (Função principal).
Esta, por sua vez, utiliza os valores devolvidos para fazer a soma de
proventos e a dedução dos descontos, gerando o valor líquido.
Considerando esse contexto, avalie as seguintes asserções e a
relação proposta entre elas.
 
I. Dentro de uma mesma função, pode haver mais de um comando
return, porém, todos devem devolver valores do mesmo tipo.
 
PORQUE
 
II. O comando return deve devolver valores que sejam do mesmo tipo
que constam na declaração da função. Por exemplo a função “double
calcSalario()”, que deve devolver um valor calculado do tipo double
no(s) comando(s) return.
 
A respeito das asserções, assinale a opção correta:
 As asserções I e II são proposições ambas falsas. 
 
A asserção I é uma proposição falsa, e a asserção II é uma proposição
verdadeira.
Alternativa E
 Alternativa está incorreta. A asserção I é uma proposição
verdadeira porque o comando return possui duas importantes
utilizações dentro de uma função: provocar a saída imediata da
função e devolver um valor para o ponto de chamada da função.
A linguagem C permite que, dentro de uma mesma função, seja
codificado mais de um comando return. Isso porque o término de
uma função pode ser executado em qualquer ponto dela. É
importante, porém, que o valor devolvido em todos os pontos seja
do mesmo tipo do dado que consta no comando de declaração da
função. A asserção II é uma proposição verdadeira porque a
linguagem C impõe que todo comando return (quando devolve
valores), ao ser codificado, deverá devolver valores do mesmo
tipo de dado que consta na declaração da função. A asserção II
justifica a corretamente a asserção I, já que ela afirma que os
comandos devem devolver valores do mesmo tipo.
21/09/2021 19:15 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/16387/quizzes/79328 12/16
 
As asserções I e II são proposições verdadeiras, e a asserção II é uma
justificativa correta da I.
 
A asserção I é uma proposição verdadeira, e a asserção II é uma
proposição falsa.
 
As asserções I e II são proposições verdadeiras, mas a asserção II não
é uma justificativa da I.
0,6 / 0,6 ptsPergunta 8
Leia o texto abaixo:
 
Um programador deve ter competência para resolver problemas
computacionais organizadamente. Ele deve praticar os seguintes
passos para a resolução sistemática de um problema computacional,
no qual temos o entendimento macro do problema, a elaboração do
algoritmo, a diagramação da solução e a codificação do programa.
Todas as fases assinaladas são importantes. Destacamos a de
elaboração do algoritmo, que traz subsídios sólidos para que a busca
do programa seja com baixo índice de erros em suas soluções
computacionais.
Considerando o trecho acima, avalie as seguintes asserções e a
relação proposta entre elas.
 
I. Uma pseudolinguagem possui uma estrutura que simula as
linguagens de programação formais praticadas por programadores
profissionais.
 
PORQUE
 
II. Um programa codificado em pseudolinguagem deve ser totalmente
aderente à estrutura de controle de fluxo e comandos das linguagens
formais de programação.
 
A respeito dessas asserções, assinale a opção correta:
21/09/2021 19:15 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/16387/quizzes/79328 13/16
 
As asserções I e II são proposições verdadeiras, mas a II não é uma
justificativa da I.
 
As asserções I e II são proposições verdadeiras, e a II é uma
justificativa da I.
Alternativa A
Alternativa está correta. A asserção I é uma proposição
verdadeira porque uma pseudolinguagem é uma reprodução
informal das linguagens de programação formais. Portanto, uma
pseudolinguagem deve ter a seguinte estrutura: Início do
programa, uma seção para a declaração de variáveis e uma
seção para a codificação do algoritmo. Além disso, é necessário
que a pseudolinguagem possua regras para os aspectos lexicais,
sintáticos e semânticos que toda linguagem de programação
possui. A asserção II é uma proposição verdadeira e justifica
corretamente a asserção I. Uma pseudolinguagem precisa ter
uma estrutura em conformidade com as linguagens formais
porque faz com que a transformação da pseudolinguagem para o
código formal tenha uma correspondência de paradigmas entre
ambas.
 
A asserção I é uma proposição falsa, e a II é uma proposição
verdadeira.
 
A asserção I é uma proposição verdadeira, e a II é uma proposição
falsa.
 As asserções I e II são proposições falsas. 
0,6 / 0,6 ptsPergunta 9
Leia o texto a seguir:
 
Toda linguagem de programação possui comandos que permitem a
execução repetida de um determinado trecho de código de programa.
Com esse recurso, o programador não precisa duplicar as linhas de
código em virtude da necessidade de executá-las várias vezes. Os
diversos comandos disponíveis são denominados estruturas de
repetição, comumente conhecidas como laços ou loop.
(Fonte: ALVES, W. P. Linguagem e Lógica de Programação.
São Paulo: Érica, 2015 - Adaptado).
21/09/2021 19:15 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/16387/quizzes/79328 14/16
Posto isso, avalie as afirmações a seguir:
 
I. A utilização das estruturas de repetição “enquanto...faça...” e
“para...de...ate...faça” podem ser utilizadas nos mesmos casos que
necessitem de solução com laço de repetição com a quantidade de
iterações definidas.
II. A utilização do laço de repetição “para...de...ate...faça” é
recomendada para o laço de repetição cujas quantidades de iterações
não são previsíveis.
III. A utilização de laço de repetição “enquanto...faça...” atende
somente a soluções que necessitem de um laço de repetição com a
quantidade de iterações indefinidas.
 
É correto o que se afirma em:
 II e III, apenas. 
 III, apenas. 
 I, apenas. 
Alternativa A
Alternativa está correta. A afirmativa I é verdadeira porque a
estrutura de repetição “enquanto...faça...” pode ser utilizada em
soluções que necessitem de um laço de repetição com a
quantidade de interações definidas, pois pode-se controlar a
quantidade de iterações na variável sentinela. A afirmativa II é
falsa, pois a estrutura de repetição “para...de...ate...faça” é
apropriada para soluções que necessitem de um laço de repetição
com a quantidade de iterações definidas, porque o controle de
iterações já faz parte da estrutura do comando. Assim, as duas
estruturas de repetição podem ser utilizadas nos mesmos casos
que necessitem de uma solução com um laço de repetição com a
quantidade de iterações definidas. A afirmativa III é falsa porque a
estrutura de repetição “enquanto...faça...” atende tanto às
soluções que necessitem de um laço de repetição com a
quantidade de iterações indefinidas, quanto às quantidades de
iterações indefinidas. Por isso, a alternativa correta é I, apenas.
 I e II, apenas. 
 I, II e III. 
0,6 / 0,6 ptsPergunta 10
21/09/2021 19:15 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/16387/quizzes/79328 15/16
Leia o trecho abaixo:
 
Em um programa de computador, as instruções são executas em uma
sequência, partindo-se da primeira instrução do algoritmo e, pelo fato
de não haver desvios (condições e laços de repetição),
segue gravitacionalmente até alcançar a última instrução da
sequência. Para que o fluxo seja interrompido, utilizam-se recursos
imperativos, como o comando goto, também conhecido por comando
de interrupção abrupta, ou comando de chamada de função, além de
alguma estrutura de repetição ou por estrutura de decisão.
Os comandos de controle automático de fluxo (while, for, do-while) são
comandos que proporcionam ao programador uma forma segura de
condução do fluxo natural do programa, enquanto o comando goto
atribui ao programador este controle.
A partir dessas informações, avalie as afirmações a seguir:
 
I. Uma boa prática de programação é a utilização de quantos
comandos goto forem necessários para controlar o fluxo do programa.
Isso evidencia também que o programadoré muito habilidoso na
manipulação dos comandos que controlam o fluxo de execução dos
programas.
II. O comando return é utilizado quando a função necessita retornar ao
ponto de onde ela foi chamada. Esse comando retorna um valor ou
pode não retornar valor, ou seja, quando a função não tiver um valor
associado a ela (void).
III. O comando break é utilizado quando o programador necessita
encerrar a execução do programa imediatamente.
 
É correto o que se afirma em:
 II, apenas. 
Alternativa está correta. A afirmativa I é falsa porque o
comando goto é um recurso que deve ser evitado na lógica de
programação, posto que ele possibilita que o fluxo normal da
lógica seja interrompido, e isso propicia muitas oportunidades de
erros de lógica. Não se coloca em dúvida a habilidade de quem o
usa, porém, partindo-se do princípio de que programas são
passíveis de manutenção, o comando goto dificulta o
entendimento da lógica e potencializa os riscos de surgimento
de bugs. A afirmativa II é verdadeira porque o comando return é
utilizado para retornar à função chamada para o ponto que a
chamou. Trata-se de um desvio porque faz com que a execução
retorne ao ponto onde a chamada da função foi feita. Sua sintaxe
é return expressão. A “expressão” é opcional, caso a função
chamada não tiver um valor associado a ela (void). A afirmativa III
é falsa porque a função break não encerra o programa, mas: i)
Terminar um case (Comando switch); ii) Forçar o fim de um laço
de repetição (for, while ou do-while). O comando que encerra um
programa é o exit(). Logo, a alternativa correta é II, apenas.
21/09/2021 19:15 AO2: Algoritmos e Lógica de Programação
https://famonline.instructure.com/courses/16387/quizzes/79328 16/16
 I, II e III. 
 I e II, apenas. 
 I, apenas. 
 III, apenas. 
Pontuação do teste: 4,2 de 6

Outros materiais