Buscar

AO1 - Algoritimo 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 5 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

Prévia do material em texto

Pontuação desta tentativa: 1 de 1
Pergunta 1
0,2 / 0,2 pts
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, apenas, em:
 
I, II e III.
 
III, apenas.
 
II e III, apenas.
 
I, apenas.
Correto!
 
I e II, apenas.
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 
Pergunta 2
0,2 / 0,2 pts
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 
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, apenas, em:
 
III, apenas.
 
I, apenas.
 
I e II, apenas.
Correto!
 
I, II e III.
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.
 
II e III, apenas.
Pergunta 3
0,2 / 0,2 pts
Um desenvolvedor está trabalhando em um projeto de software e decide aplicar a técnica de 
dividir para conquistar, onde o programa é dividido em porções menores chamadas de módulos. 
Os módulos podem ser compostos por rotinas, que são classificadas em funções e 
procedimentos. Funções operam valores passados em parâmetros e devolvem um valor 
resultante, enquanto procedimentos utilizam ou não argumentos e não devolvem valor 
Sobre procedimentos e funções, avalie as proposições a seguir e a relação entre elas:
I. Funções e procedimentos funcionam da mesma forma.
PORQUE
II. Ambos devolvem valores de acordo com os argumentos.
Assinale a alternativa correta:
 
As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.
 
As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.
Correto!
 
As asserções I e II são proposições falsas.
 
A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
 
A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
Alternativa correta. Ambas as proposições I e II são falsas, pois funções são rotinas que operam 
valores passados em parâmetros e devolvem um valor resultante, enquanto procedimentos são 
rotinas que podem ou não utilizar argumentos, não devolvendo um valor resultante.
Pergunta 4
0,2 / 0,2 pts
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ão1;
                       else expressão2.
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:
 
As asserções I e II são ambas proposições falsas.
Correto!
 
A asserção I é uma proposição verdadeira, e a asserção II é uma proposição falsa.
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, exp3retorna 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; 
 
As asserções I e II são proposições verdadeiras, mas a asserção II não é uma justificativa da I.
 
A asserção I é uma proposição falsa, e a asserção II é uma proposição verdadeira.
 
As asserções I e II são proposições verdadeiras, e a asserção II é uma justificativa da I.
Pergunta 5
0,2 / 0,2 pts
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 
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.
Assinale a alternativa correta em relação ao comando que o programador deverá utilizar, 
dentro da função de validação de CPF, para terminar a execução do programa de forma 
anormal com o código de erro solicitado pela especificação do analista:
Correto!
 
Exit ().
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.
 
Goto.
 
Return.
 
Break.
Pontuação do teste: 1 de 1

Outros materiais