O pseudocódigo apresentado a seguir foi escrito para calcular e exibir a raiz quadrada de um número real. Esse número não é negativo, mas, embora funcione em determinadas circunstâncias, esse pseudocódigo não oferece resultados corretos em outras circunstâncias.
Programa "CalculaRaiz"
//Extrai e exibe a raiz quadrada de um número real, não negativo.
//---------------------------------------------------------------
Declare Num, Raiz: real
Início
Escreva("Digite um número positivo:")
Leia(Num)
Se(Num<0) Então
Escreva("Valor inválido")
FimSe
EscrevaLn("")
EscrevaLn("")
{Tenta extrair a raiz quadrada do número lido}
Raiz ¬ Num^(1/2)
EscrevaLn("Raiz quadrada de", Num,": ",Raiz)
FimPrograma
Após analisar o código, assinale a alternativa correta:
A variável Num deveria ser declarada como inteira.
A variável Raiz deveria ser declarada como inteira.
No lugar da “estrutura de decisão”, deveria ser um loop
numérico para verificar Num.
No lugar da “estrutura de decisão”, deveria ser um loop lógico para validar Num.
A “estrutura de decisão” deveria ser composta e não simples para verificar Num.
Respostas
Resposta:
No lugar da “estrutura de decisão”, deveria ser um loop lógico para validar Num.
Explicação:
O grande problema é que ele lê o número e depois verifica se este é 0, contudo ele continua executando o código então mesmo após a mensagem de:
Escreva("Valor inválido")
O código continuará sendo executado, mesmo o número sendo inválido, para corrigir isso bastaria colocar a estrutura condicional e a de leitura dentro de um laço de repetição que se repetiria enquanto o número fosse inválido:
enquanto(Num < 0) faca
Leia(Num)
fimenquanto
O resultado do pseudocódigo apresentado não é o correto pois a estrutura condicional "se" não representa nada e não altera o resultado, logo, em seu lugar deveria ter um loop utilizando uma estrutura de repetição para verificar o valor de num. Alternativa 3.
Mas de que forma poderíamos resolver esse problema no pseudocódigo?
A primeira forma poderia ser a utilização correta da estrutura condicional "se", nesse caso todo o cálculo e resultado deveriam estar dentro dessa estrutura, onde só realizaria o cálculo caso o número (num) fosse maior que zero. O código ficaria assim:
Se(Num>0) Então
Escreva("Valor válido")
Raiz ¬ Num^(1/2)
EscrevaLn("Raiz quadrada de", Num,": ",Raiz)
FimSe
Senão Se(Num<0) Então
Escreva("Valor inválido")
FimSe
A outra forma seria adicionando uma estrutura de repetição para gerar um loop onde só aceitaria o valor de num sair caso ele fosse maior que 0.
Saiba mais sobre pseudocódigos aqui: https://brainly.com.br/tarefa/54124520
#SPJ2