Baixe o app para aproveitar ainda mais
Prévia do material em texto
ALGORITMOS 6a aula Lupa Vídeo PPT MP3 Exercício: CCT0749_EX_A6__V1 18/10/2018 23:40:16 (Finalizada) Aluno(a): EDOARDO ULYSSES FONTOURA KRAUSE JUNIOR 2018.3 EAD Disciplina: CCT0749 - ALGORITMOS 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. As afirmativas II, III e IV são verdadeiras Somente a afirmativa II é verdadeira Somente a afirmativa I é verdadeira As afirmativas I e IV são verdadeiras Somente a afirmativa III é falsa 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? switch/case do/while for cout while 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 << " ### " ; 7 não é divisível por 2. 7 ### Apenas 7 7 é divisível por 3 e por 5 . Nada aparece, pois o trecho de programa possui erro . 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; } 15 25 15 50 90 55 1 15 27.5 15 55 90 50 90 15 25 15 55 90 15 27.5 15 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 alternativa que apresenta as saídas obtidas 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 esperado valor acima do esperado valor ainda aceitável valor fora de faixa nenhuma mensagem será exibida 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. table cout break cin 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 composto Operador ternário comando switch Estrutura condicional de comando simples Explicação: Como dito no gabarito. O operador ? : equivale ao comando if ... else.
Compartilhar