Buscar

Exercício 6 Algoritmos

Prévia do material em texto

Exercício: CCT0749_EX_A6_201801153345_V1 22/10/2018 16:19:08 (Finalizada)
Aluno(a): JORGIVALDO NOGUEIRA LEAL 2018.3 EAD
Disciplina: CCT0749 - ALGORITMOS 201801153345
 
 
 1a Questão
Às vezes me perguntam se existe alguma razão para existirem tantas formas de decisão nas linguagens de programação.
Eu sempre digo: Claro que sim!
Analise as afirmativas abaixo e escolha a opção certa.
I Se tivermos que fazer um teste e só executar um bloco, que pode ter uma instrução ou mais instruções, o if simples deverá ser
escolhido. 
II Se tivermos duas possibilidades de respostas, não poderemos usar dois if(s) simples, onde o teste de um é o complementa o
do outro, porque poderão sair duas respostas. 
III Se tivermos três possibilidades de respostas, podemos usar um if simples e um if composto que não teremos problemas com
as respostas. 
IV Quando temos 10 possibilidades de respostas, poderemos usar 10 if(s) simples, embora usar ifs encadeados seria mais
eficiente. 
Somente a afirmativa III é falsa
As afirmativas II, III e IV são verdadeiras
Somente a afirmativa I é verdadeira
 As afirmativas I e IV são verdadeiras
Somente a afirmativa II é verdadeira
 
 
Explicação: As respostas falsas são conclusivas
 
 
 
 2a Questão
Quero escrever um programa que leia o número equivalente a um dia da semana e retorne o nome equivalente considerando que 1-
Domingo, 2 - Segunda etc. Qual a estrutura básica em C++ que deve ser utilizada para fazer esta seleção múltipla?
for
 switch/case
while
do/while
cout
 
 
Explicação:
switch/case
 
É para repetição do/while
 
É para repetição for
 
É para impressão na tela cout
 
É para repetição while
 
 
 
 3a Questão
Considere o trecho de programa em C++ abaixo. O que é impresso na tela quando o número de entrada é 7 ? Assinale a opção
correta.
 int num;
 cout << "Digite um numero: ";
 cin >> num;
 if (num % 2 == 0)
 cout << num << "é divisível por 2";
 else
 if (num % 3 == 0 && num % 5 == 0)
 cout << num << " é divisível por 3 e por 5";
 else
 cout << num << " ### " ;
 
 
Nada aparece, pois o trecho de programa possui erro.
 
Apenas 7
 
7 é divisível por 3 e por 5.
 
7 não é divisível por 2.
 7 ###
 
 
Explicação:
Analisando o trecho em C++ e considerando a entrada 7 temos :
num recebeu 7 na entrada.
1o. teste : 7 % 2 é zero ? Falso. Então, entramos no else do 1o. if e testamos a condição do 2o. if
2o. teste : 7 % 3 é zero ? Falso. Nem adianta testar a outra condição deste if, pois existe o &&. DAí, entramos no else do 2o. if,
imprimindo na tela 
 7###
Logo, a resposta correta é 7###
 
 
 
 
 4a Questão
Considere que o trecho de código em C++ foi executado 2 vezes, sendo que na 1ª. execução o valor de entrada foi 10 e na 2ª.
execução, o valor de entrada foi 5. Ao final das duas execuções, respectivamente, o que foi impresso na tela ? 
 
cout << "Digite um valor : "; 
 cin >> z; 
 switch(z) { 
 case 5 : cout << 3 * z << " "; 
 case 10 : cout << 11 /2 * z << " "; 
 case 20 : cout << z * z - 10 << endl; 
 break; 
 default : cout << "Entrada invalida. " << endl; 
 } 
 
55 90 15 27.5 15
 50 90 15 25 15
55 1
15 27.5 15 55 90
15 25 15 50 90
 
 
Explicação:
O aluno deverá fazer um teste de mesa ou chinês para poder escolher a resposta certa. Tal questão envolve conhecimento de switch ...
case com e sem break e de operadores aritméticos, como a divisão entre inteiros ocorrida no 2o. case.
 
 
 
 5a Questão
Analise o trecho do algoritmo abaixo e indique a alterna�va que apresenta as saídas ob�das para os valores: A=17, B=21 e C=13.
SE (A > (B+C)) ENTÃO
ESCREVA("+++++")
SENÃO
SE (B<=C) ENTÃO
ESCREVA("%%%%%")
SENÃO 
ESCREVA("^^^^^")
FIM SE 
ESCREVA("=====")
 FIM SE
+++++ 
=====
^^^^^
%%%%%
=====
 ^^^^^
=====
 
 
Explicação:
Analise o trecho do algoritmo abaixo e indique a alternativa que apresenta as saídas obtidas para os valores: A=17, B=21 e C=13.
SE (A > (B+C)) ENTÃO //1o. teste : 17 > (34) ? FAlso. Entraremos no 1o. senão.
 ESCREVA("+++++") //não entra aqui
SENÃO //Entra aqui devido à falha do 1o. teste
 SE (B<=C) ENTÃO //2o. teste : 21 <= 12 ? Falso. Então, entraremos no bloco do 2o. senão
 ESCREVA("%%%%%") //não entra aqui
 SENÃO 
 ESCREVA("^^^^^") //SErá executada esta linha e depois seguiremos em frente.
FIM SE 
ESCREVA("=====") //Após terminar o bloco do comando condicional, executamos esta linha
 FIM SE
 
DA análise feita acima dois "escreva" são executados :
ESCREVA("^^^^^") 
ESCREVA("=====") 
O que dará o seguinte resultado : 
^^^^^
=====
 
 
 
 
 6a Questão
Caso o valor inserido pelo usuário seja igual a 5, qual a mensagem exibida pelo código:
 
int a;
 
cin >> a;
 if (a<5)
 cout << "valor esperado";
 else
 if (a>=5 && a<=10)
 cout << "valor ainda aceitável";
 else
 if (a>10 && a<20)
 cout << "valor acima do esperado";
 else
 if (a>=20) cout << "valor fora de faixa";
valor acima do esperado
nenhuma mensagem será exibida
valor fora de faixa
 valor ainda aceitável
valor esperado
 
 
Explicação: Se a variável a assume o valor 5 a única condição verdadeira é a>=5 && a<=10, portanto a saída será "valor ainda
aceitável "
 
 
 
 7a Questão
Qual o comando utilizado pelo C++ para implementação de algoritmos onde seja necessário que o usuário entre com um valor
referente a uma opção a ser escolhida, quando é necessário consulta em uma tabela ou a um menu exibido na tela.
break
cin
cout
table
 switch/case
 
 
Explicação: a estrutura de escolha é implementada no C++ pelo comando switch/case
 
 
 
 8a Questão
 
A linguagem C++ possui estruturas de decisão, as quais podem mudar a sequência de execução dos comandos. Analise o trecho de programa abaixo e
assinale a alternativa que corresponda a estrutura de decisão utilizada.
int main() {
 int num;
 cout<<"Digite um número: ";
cin>> num;
 (num > 0)?cout<< num : cout<<" Número negativo ";
 return 0;
 }
 
aninhamento de if
Estrutura condicional de comando simples
comando switch
 Operador ternário
Estrutura condicional de comando composto
 
 
Explicação:
Como dito no gabarito. O operador ? : equivale ao comando if ... else.

Continue navegando