Informática, perguntado por norbertotadashi, 8 meses atrás

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.

Soluções para a tarefa

Respondido por thiagopokem
14

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

Respondido por yancarvalho3
4

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

Anexos:
Perguntas interessantes