Buscar

Atividade Objetiva 3_ Algoritmos e Lógica de Programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

/
0,2 / 0,2 ptsPergunta 1
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.
 
O programador deverá alterar o programa por um único comando if, compondo
as 4 relações com os operadores lógicos && e ||.
 
O programador deverá alterar o programa somente por outra estrutura if-else-if,
pois a linguagem C não disponibiliza outro recurso para esse fim.
/
 
O programador pode alterar toda a sequência de if por uma estrutura SWITCH.
Nesse sentido, as anomalias de performance e clareza de código seriam
resolvidas com o comando SWITCH.
Correto!Correto!
Alternativa A
Alternativa está correta, pois o comando SWITCH permite ao programador
fazer o teste sucessivo do valor de uma variável, a partir de uma lista. O
conteúdo da variável é comparado e, caso seja verdadeiro, o comando é
executado; a utilização do comando break leva o programa para o fim da
estrutura, não sendo necessário testar todos os quatros valores. Esta é
uma solução alternativa e elegante ao conjunto de comandos ifs do
problema proposto.
 
Para resolver o problema de 4 testes obrigatórios, deve-se colocar o comando
goto onde deverá estar localizado ao final do último teste if.
 
Para resolver o problema de 4 testes obrigatórios, deve-se colocar o comando
return no bloco de comando verdadeiro de cada if, com isso, o programa
atenderá à condição e não fará a verificação do próximo if.
0,2 / 0,2 ptsPergunta 2
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:
 III, apenas. 
 I, II e III. 
 II e III, apenas. 
 I, apenas. 
 I e II, apenas. Correto!Correto!
Alternativa A
Alternativa está correta. A afirmativa I está correta porque o switch é um
comando interno de solução múltipla e que permite testar sucessivamente
o valor de uma expressão, a partir de uma lista, o que está plenamente de
acordo com a estrutura de decisão if-else-if. Além disso, traz o benefício da
clareza na codificação da resolução de problemas. A afirmativa II está
correta, pois a linguagem C proporciona uma estrutura para soluções de
problemas que necessitam dos paradigmas de condições encadeadas.
Para isso, utilizamos estrutura de ninhos de ifs que proporcionam
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. A
afirmativa III está incorreta, por afirmar que a linguagem C não proporciona
a implementação de estrutura if-else-if. Para isto pode ser utilizada a
seguinte estrutura: “if (expressão) bloco de comando; else if (expressão)
bloco de comando; ...else(bloco de comando)”. Portanto, a alternativa
correta é I e II, apenas.
0,2 / 0,2 ptsPergunta 3
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?
 Return. 
 Exit (). Correto!Correto!
Alternativa A
Alternativa está correta, pois o comando exit() encerra a execução do
programa imediatamente. Esse comando retorna um código de retorno ao
sistema, e esse código é atribuído pelo programador, que neste caso o
analista solicitou que fosse 999. Portanto, o comando a ser codificado é
exit(999).
 Continue. 
 Break. 
 Goto. 
0,2 / 0,2 ptsPergunta 4
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:
 
A asserção I é uma proposiçãofalsa, e a asserção II é uma proposição
verdadeira.
 
A asserção I é uma proposição verdadeira, e a asserção II é uma proposição
falsa.
Correto!Correto!
Alternativa A
Alternativa está correta. A asserção I é verdadeira porque o operador ?
substitui plenamente o comando if-then-else, por possuir uma estrutura
compatível com a estrutura if-then-else. Sua forma é:
 
 Exp1 ? exp2 : exp3
 
Em que exp1, exp2 e epx3 são expressões: exp1 é avaliada, se for
verdadeira, então exp2 retorna o valor da expressão, caso contrário, exp3
retorna o valor da expressão. A asserção II é falsa porque a estrutura do
operador é em linha, proporcionando somente um teste lógico. Ele é
chamado de ternário porque requer 3 operandos: exp1; exp2 e exp3.
 As asserções I e II são ambas proposições falsas. 
 
As asserções I e II são proposições verdadeiras, e a asserção II é uma
justificativa da I.
 
As asserções I e II são proposições verdadeiras, mas a asserção II não é uma
justificativa da I.
/
0,2 / 0,2 ptsPergunta 5
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:
 II e III, apenas. 
 I e II, apenas. 
 I, apenas. 
 I, II e III. Correto!Correto!
Alternativa A
Alternativa está correta. A afirmativa I está correta, pois a escolha da
estrutura cabe ao programador. Não há nenhuma limitação técnica nos
comandos for, while e do-while. O comando for é sugerido quando o
número de repetições é controlado por uma variável. O comando while é
sugerido quando não há necessidade de inicializar ou atualizar variáveis
contadoras. O comando do-while é sugerido quando for necessário
executar um bloco pelo menos uma vez. A afirmativa II está correta porque
a estrutura do comando do-while força uma primeira execução do bloco de
comandos. A afirmativa III está correta, já que a estrutura do comando
while faz primeiramente a verificação da condição e entra no bloco somente
se for verdadeira. Portanto, a alternativa correta é I, II e III.
/
 III, apenas.

Outros materiais