Baixe o app para aproveitar ainda mais
Prévia do material em texto
17/03/2019 EPS http://simulado.estacio.br/alunos/?user_cod=2140790&user_matr=201807098699 1/5 CCT0749_A5_201807098699_V1 Examine as afirmativas a seguir e marque a alternativa correta. I- A estrutura de decisão pode alterar ou desviar o fluxo natural de execução de um algoritmo. II- O uso de uma estrutura de decisão composta pode ser mais eficiente que o uso de duas estruturas de decisão simples, pois reduz o número de testes. III- Muitas vezes é possível combinar a condição de duas estruturas de decisão simples em apenas uma utilizando operadores lógicos. Verifique o trecho de código abaixo e marque a alternativa que apresenta a melhor construção para as condições abaixo, utilizando uma estrutura de decisão composta. if(a > 0) cout < < "pertinente"; if(a < 5) cout < < "pertinente"; if(a > =5) cout < < " não pertinente"; ALGORITMOS CCT0749_A5_201807098699_V1 Lupa Calc. Vídeo PPT MP3 Aluno: PABLO ALVES DE MELO Matrícula: 201807098699 Disc.: ALGORITMOS 2019.1 EAD (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. Apenas a alternativa iii está correta. Todas as alternativas estão erradas. Apenas a alternativa ii está correta. Apenas a alternativa i está correta. Todas as alternativas estão corretas. Explicação: As estruturas de decisão realmente alteram o fluxo de um programa, uma estrutura composta é mais eficiente que duas simples, já que há menos testes e podemos usar operadores lógicos para combinar condições e reduzir o número de estruturas de decisão simples. Portanto todas as afirmativas estão corretas. 2. if(a > 0 && a < 5) cout < < "pertinente"; else cout < < " não pertinente"; if(0 > a > 5) cout < < "pertinente"; else cout < < " não pertinente"; if(a > 0 + a < 5) cout < < "pertinente"; else cout < < "não pertinente"; if(a > 0 || a < 5) cout < < "pertinente"; else cout < < " não pertinente"; if(a > 5 && a < 0) cout < < "pertinente"; else cout < < "não pertinente"; 17/03/2019 EPS http://simulado.estacio.br/alunos/?user_cod=2140790&user_matr=201807098699 2/5 Assinale a opção correta. O que será impresso na tela, respectivamente, após duas execuções seguidas, sendo que na 1ª. execução o valor de entrada é 7 e na 2ª. execução o valor de entrada é 8. Para isso, considere o seguinte trecho em C++. int num; cout << "Digite um numero: "; cin >> num; if (num != 2 || num != 4 || num != 6) { num = num + 2; cout << num << " "; } if (num != 8) { num--; cout << num << " "; } else cout << num * 5 ; Considere o trecho de programa em C++. O que é impresso na tela ? int x = 10, y = 3, z, k; Explicação: O trecho do código exibe a informação "pertinente" para os valores de a maior que zero e menores que cinco. E a informação "não pertinente", para valores de a iguais ou maiores que cinco. Portanto a condição correta é ; Se (a > 0 e a < 5) imprime "pertinente"; do contrário imprime " não pertinente"; 3. 9 6 10 9 9 40 9 8 10 9 9 8 10 40 8 10 40 Explicação: Analisando o trecho de programa em C++ ... 1a. execução : num recebe 7. Daí, testamos o 1o. if. Note que usamos o || lógico. A condição é verdadeira e entramos no bloco do 1o. if. Então, num recebe 9 e é impresso o valor 9 na tela. Seguimos para o próximo if e testamos sua condição. É verdade que 9 != 8 ? Sim. Entramos no bloco do 2o. if e então decrementamos 9 para 8 e imprimimos o valor 8. Concluindo esta 1a. execução : Foram impressos 9 8 2a. execução : num recebe 8. Daí, testamos o 1o. if. Note que usamos o || lógico. A condição é verdadeira e entramos no bloco do 1o. if. Então, num recebe 10 e é impresso o valor 10. Seguimos para o próximo if e testamos sua condição. É verdade que 10 != 8 ? Sim. Entramos no bloco do 2o. if e então decrementamos 10 para 9, imprimindo o valor 9. Concluindo esta 2a. execução : Foram impressos 10 9 4. 17/03/2019 EPS http://simulado.estacio.br/alunos/?user_cod=2140790&user_matr=201807098699 3/5 y = x + y - 1; z = x/y; k = y % x; if (k == 0) cout << "x = " << x << " y = " << y << " z = " << z << " k = " << k; else cout << x + 1 << " " << y - 1 << " " << z + 2 << " " << k - 2; Considere o trecho de programa em C++. O que é impresso na tela ? int x = 10, y = 3, z, k; y = x + y - 1; z = x/y; k = y % x; if ( k != 0) cout << "x = " << x << " y = " << y << " z = " << z << " k = " << k << "\n"; x = 10 y = 12 z = 0.833 k = 0 x= 11 y = 11 z = 2 k = 0 x = 10 y = 12 z = 0 k = 0 10 12 2 0 11 11 2 0 Explicação: É preciso fazer um teste de mesa ou chinês e encontrar a resposta correta, como indicado. Para isso, o conteúdo sobre comando condicional, atualmente, na aula 5, é suficiente, junto com declaração de variáveis de aula anterior. x recebe 10 e depois y recebe 3 e depois y recebe 10+3-1, que dá 12 z recebe 10/12, que dá 0 k recebe 2 TEste do if é falso. Então, entra-se no else e é impresso : 11 11 2 0 5. 10 12 0.833 1.2 x= 10 y = 12 z = 0 k = 2 Nada é impresso na tela, pois k é zero. x = 10 y = 12 z = 0.833 k = 1.2 10 12 0 2 Explicação: É preciso fazer um teste de mesa ou chinês e encontrar a resposta correta, como indicado. Para isso, o conteúdo da aula 5 é suficiente, junto com declaração de variáveis de aula anterior. int x = 10, y = 3, z, k; y = x + y - 1; z = x/y; k = y % x; if ( k != 0) cout << "x = " << x << " y = " << y << " z = " << z << " k = " << k << "\n"; Teste de mesa x y z k 10 3 12 0 2 y recebe 10+3-1, que é 12. Logo, y recebe 12 17/03/2019 EPS http://simulado.estacio.br/alunos/?user_cod=2140790&user_matr=201807098699 4/5 Analise o trecho abaixo que um aluno desenvolveu na linguagem C++ e escolha a opção onde estão os valores que aprecem na tela. int x = 235, y = 138, z = 177, m; m = z; if( x < m) m = x; if( y < m) m = y; cout << m << " " << x << " " << y ; Quando estudamos sobre a estrutura do se ... entao...senao, sempre nos é dito que, quando tivermos duas possibilidades de respostas, devemos escolher a estrutura do se composto ao invés de usar duas estruturas do se simples. Observe as afirmativas abaixo e, depois, escolha a resposta que respalda o uso do se composto pelo que foi dito acima ao invés do se simples. I Maior clareza no código, mas não influência na eficiência do mesmo II Maior eficiência porque diminui o número de testes no código III Maior eficiência somente porque o código fica mais legível, visto que o resultado final é o mesmo IV Somente uma escolha do desenvolvedor, visto que o resultado o resultado final é o mesmo z recebe x/y, que é 10/12 que dá zero. k recebe 12%10, que dá 2. Como k é diferente de 0 temos que será impresso : x = 10 y = 12 z = 0 k = 2 6. 177 235 138 138 235 138 177 138 235 138 138 235 235 235 138 Explicação: A variável m ficará com o menor valor 7. A II E A III estão corretas Somente a II está correta Somente a I está correta Somente a IV está correta A II E IV estão corretas Explicação: I Maior clareza no código, mas não influência na eficiência do mesmo .Comentário : Falso. Traz clareza e afeta a eficiência sim, pois acaba se fazendo testes desnecessários. II Maior eficiência porque diminui o número de testes no código Comentário : Correto. III Maior eficiência somente porque o código fica mais legível, visto que o resultado final é o mesmo. Comentário : Falso. Não é só legibilidade, mas é uma questão de eficiência, pois evita-se teste desnecessário. IV Somente uma escolha do desenvolvedor, visto que o resultado o resultado final é o mesmo Comentário : Falso. O desenvolvedor pode escolher sim, mas o uso adequado do condicional composto pode trazer maior eficiência para o código. Opção correta : Somente a II está correta 17/03/2019 EPS http://simulado.estacio.br/alunos/?user_cod=2140790&user_matr=201807098699 5/5 O programa abaixo recebeu o valor 2 como entrada. Analise o programa abaixo e assinale a o valor que será impresso. #include using namespace std; int main() { int a, b; cout<< "\n Digite um valor: "; cin>> a; if (a <= 2) b = a + 2 * 30 / 10; else b = a - 2 * 30 /10; cout<< b; system("pause"); } 8. -4 12 2 8 0 Legenda: Questão não respondida Questão não gravada Questão gravada Exercício inciado em 17/03/2019 12:49:09.
Compartilhar