Baixe o app para aproveitar ainda mais
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.
Compartilhar