Matemática, perguntado por alan1longo, 10 meses atrás

me ajudem por favor Na elaboração de algoritmos, existem problemas simples para serem solucionados, mas há casos onde soluções são mais complexas e necessitam de maior esforço na elaboração da lógica necessária para que se chegue a uma solução computacional aceitável. Depois, com um algoritmo definido, este deve ser avaliado em sua funcionalidade e verificado se serve como solução para um problema.

Observe o algoritmo a seguir:

Algoritmo Numeros
Var
valor : vetor[1..10] de caractere
Início
Escreva ("Digite um número: ")
Leia (" valor ")
Se ( valor < 0 ) então
Escreva ( "POSITIVO" )
Senão
Se ( valor > 0 ) então
Escreva ( "NEGATIVO" )
Senão
Escreva ( "ZERO" )
Fim_se
Fim_se
Fim

Descreva de forma sucinta, os erros existentes neste algoritmo e que podem impedir o funcionamento correto do mesmo, justificando suas indicações..

Soluções para a tarefa

Respondido por fqpl059
8

Superficialmente, podemos perceber 3 erros graves que interromperiam o funcionamento do algoritmo:

1. Na terceira linha, temos que a a variável valor está assumindo o tipo vetor, ou seja, será uma lista que possui 10 posições. Dessa forma, para atribuirmos valores a ela, devemos passar também a posição em que esse valor será guardado.

vetor[2] <= 8

O exemplo acima armazena o valor 8 na segunda posição do vetor, e ele ficará dessa forma {0, 8, 0, 0, 0, 0, 0, 0, 0, 0}!

Isso não está acontecendo na linha 5, onde é passado apenas a variável vetor.

2. Ainda na linha 3, temos que os dados que serão armazenados nesse vetor são do tipo caractere, ou seja, letras ('a', 'g', 'k'). Isso é um problema visto que estamos trabalhando com números.

Afinal não faz sentido compararmos se uma letra é maior ou menor que 0!

3. Na linha 5, temos que estamos passando uma String, ou seja, apenas texto para a função leia, enquanto deveria ser passado uma variável.

Quando escrevemos algo entre aspas (") isso significa que será apenas um texto!

1 - ALGORITMO Números

2 - VAR

3 - valor : vetor[1..10] de caractere

4 - INÍCIO

5 - ESCREVA("Digite um número: ")

6 - LEIA(" valor ")

7 - SE ( valor < 0 ) ENTÃO

8 -     ESCREVA("Positivo")

9 -     SENÃO

10 -         SE ( valor > 0 ) ENTÃO

11 -             ESCREVA("Negativo")

12 -          SENÃO

13 -             ESCREVA("Zero")

14 -         FIM_SE

15 -     FIM_SE

16 - FIM

Espero ter ajudado :)

Respondido por rafaelrosagui
16

1) Para responder o problema proposto, vamos analisar cada linha do algoritmo indicando o erro e ao final apresentar a forma correta do algoritmo. Logo, teremos:

  • Primeiro erro:

valor : vetor[1..10] de caractere Errado pois não estamos definindo um vetor a ser digitado, mais apenas um valor.

  • Segundo erro:

Se ( valor < 0 ) então

Escreva ( "POSITIVO" ) errado, pois como é um valor < 0 deve ser retornado a palavra negativo.

  • Terceiro erro:

Se ( valor > 0 ) então

Escreva ( "NEGATIVO" ) errado, pois como o valor > 0 deve ser retornado a palavra positivo.

  • Quarto erro:

Precisa de mais um fim_se ao final pois temos 3 verificações.

2) Por fim, a forma correta seria:

Algoritmo Numeros

Var

Valor : int ( valor);

Início

Escreva ("Digite um número: ")

Leia (" valor ")

Se ( valor < 0 ) então

Escreva ( "NEGATIVO" )

Senão

Se ( valor > 0 ) então

Escreva ( "POSITIVO" )

Senão

Escreva ( "ZERO" )

Fim_se

Fim_se

Fim_se

Fim


andrevst3: quais as tres verificaçoes?¿ poderia apontar por favor.
andrevst3: so tem dois SE .FIM_SE
andrevst3: para cada se , 1 FIM_SE
Perguntas interessantes
Música, 7 meses atrás