Atividade Objetiva 2
Pergunta 1
Leia o texto a seguir:
A solução de um problema computacional pode ter várias soluções lógicas. As linguagens de programação atuais disponibilizam recursos suficientes para suportar os vários paradigmas da lógica de programação. Portanto, é natural que os programadores se preocupem muito mais com os aspectos da solução correta e às vezes em detrimento da performance e das boas práticas de programação. Os programas devem ser corretos, ter soluções simples e com comandos adequados aos paradigmas de lógicas utilizados na solução do problema.
Considerando as informações apresentadas, avalie as afirmações a seguir:
I. O switch é um comando que suporta a estrutura de decisão if-else-if quando temos a possiblidade de criar formas de soluções mais claras de codificação.
II. Para soluções de problemas que necessitam dos paradigmas de condições encadeadas (ninhos de if), a linguagem C possibilita a utilização de um conjunto de comandos ifs encadeados. Para facilitar o entendimento do encadeamento codificado, o programador dever codificar de modo que os níveis de encadeamento sejam endentados, ou seja, os comandos ifs mais externos ficam posicionados mais à esquerda, e conforme desce um nível, desloca-se o if da camada inferior em posições mais à direita do código.
III. Existe um paradigma em lógica de programação que é uma variação da decisão simples if, a escalada de if-else-if; porém, é uma estrutura de decisão que não pode ser implementada na linguagem C, porque não proporciona estrutura de comando para essa finalidade.
É correto o que se afirma em:
Leia o texto a seguir:
A linguagem de programa C possui um conjunto de testes condicionais que determinam o curso da ação. Uma expressão condicional chega a um valor verdadeiro ou falso. Isso permite que uma ampla gama de rotinas seja codificada de forma extremamente eficiente. O C suporta dois tipos de comando de seleção: os comandos if e switch. Além disso, o operador ? (símbolo para o operador ternário) é uma alternativa ao if em certas circunstâncias.
(Fonte: SCHILDT, H. C Completo e Total. São Paulo: Makron Books, 2006. p.66).Considerando esse contexto, avalie as seguintes asserções e a relação proposta entre elas.
I. Podemos utilizar o operador ? para substituir os comandos if-then-else na forma geral:
if (condição) expressão;
else expressão.
PORQUE
II. O operador ? possibilita o teste lógico de três condições em linha.
A respeito dessas asserções, assinale a opção correta:
Leia o texto a seguir:
Um programador experiente recebe o seguinte desafio de seu coordenador: realizar a manutenção em um programa desenvolvido na linguagem de programação C. Em um determinado trecho do programa, existe uma função com um conjunto de if-else-if aninhados, o qual verifica se o conteúdo de uma determinada variável numérica é igual a um determinado valor. Esse ponto específico do código está muito confuso. O programador verificou também que, para a mesma variável, foi colocada uma sequência de if, conforme demonstrado no trecho de código abaixo:
....
1 if (a == 5) {
2 x = x * 1.1;
3 }
4 if (a == 10.0) {
5 x = x * 1.2;
6 }
7 if (a == 20.0) {
8 x = x * 1.3;
9 }
10 if (a == 30.0) {
11 x = x * 1.4;
12 }
13 x = x + k;
O que motiva a manutenção nesse ponto do código é a estrutura de if analisada, que é um ponto onde a performance do programa é prejudicada, pois a mesma variável é testada 4 vezes, mesmo que o resultado do primeiro if já tenha sido verdadeiro.
Considerando as informações apresentadas, assinale a opção correta.
Leia o texto a seguir:
Um programador de computador, produtor de soluções de sistemas para um órgão governamental, necessita dar uma solução para um problema proposto. O programa deverá fazer uma série de ações relativas à pessoa física, tendo como base o Cadastro de Pessoa Física (CPF) do cidadão. O programa recebe o CPF, digitado pelo teclado. A função main() chama várias outras funções para completar o processamento deste programa hipotético. O programador codifica todas as funções do programa, inclusive a função que faz a verificação da validade do CPF.
O analista que especificou o programa pediu que o programador codificasse as instruções que encerram o programa, caso o CPF seja inválido, ou seja, faça uma parada brusca, com um código de cancelamento 999; caso o CPF seja válido, o programa deve continuar normalmente o processamento do programa.
Qual comando o programador deverá utilizar, dentro da função de validação de CPF, para que o programa termine de forma anormal com o código de erro solicitado pela especificação do analista?
Leia o texto a seguir:
O laço de repetição é um recurso da lógica de programação imprescindível para o controle de fluxo de um programa. Em linguagem C, podemos utilizar três comandos que atendem perfeitamente a esse recurso, que são os for, while e do-while. A estrutura de repetição for tem por objetivo executar um bloco de comando, por um certo número de vezes, controlado por uma variável específica para esse fim. Sugerido quando o número de repetições é controlado por uma variável controladora ou quando houver a necessidade de inicialização e atualização.
Considerando as informações apresentadas, avalie as afirmações a seguir:
I. Para determinada situação que necessita de um laço de repetição, podemos utilizar qualquer um dos os três comados em C (for, while ou do-while), porém, do ponto de vista lógico, e até de performance, são recomendados comandos específicos para determinados tipos de problema.
II. O comando do-while é bastante recomendável quando se fizer necessário executar um bloco pelo menos uma vez e após a primeira vez.
III. No comando while, se a condição for falsa na entrada do laço de repetição, o bloco não é executado nenhuma vez, o que faz com que o laço não seja executado.
É correto o que se afirma em:
Nenhum comentário:
Postar um comentário