Ir ao conteúdo
  • Cadastre-se

Visualg não continua o código


Posts recomendados

Fiz um código simples para mostrar três números em ordem decrescente, o visualg mostra só o primeiro e "não lê" o resto do código:

algoritmo "2.2 Pag 46"
// Função : Algoritmo que leia três valores e moestre-os em ordem decrescente
// Autor :
// Data : 10/4/2016
// Seção de Declarações
var
A, B, C:inteiro
inicio
// Seção de Comandos

escreval ("Digite o primeiro valor")
leia (A)
escreval ("Digite o segundo valor")
leia (B)
escreval ("Digite o terceiro valor")
leia (C)
se (A > B) e (A > C) então
   escreval (A)
senao
   se (B > A) e (B > C) então
      escreval (" ", B)
   senao
      escreval (" ", C)
   fimse
fimse
   se (B < C) e (B < A) então
      se (C > A) então
         escreval (A, B)
      senao
         escreval (C, B)
      fimse
   fimse


 

Obrigado pela atenção.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@EvandroT   ele lê o código, mas esses se e senão não estão funcionando do jeito certo não.  Melhor usar vetores para isso.  Então acrescentei essas linhas aí no seu código.   Tente assim:

Algoritmo "2.2 Pag 46"
var
A, B, C,d:inteiro
vet    : vetor[1..3] DE inteiro
inicio
//escreval ("Digite o primeiro valor")
//leia (A)
//escreval ("Digite o segundo valor")
//leia (B)
//escreval ("Digite o terceiro valor")
//leia (C)
para a de 1 ate 3 faca
  escreval("digite o ",a," valor")
  leia (vet[a])
fimpara
//se (A > B) e (A > C) então
//   escreval (A)
//senao
//   se (B > A) e (B > C) então
//      escreval (" ", B)
//   senao
//      escreval (" ", C)
//   fimse
//fimse
//   se (B < C) e (B < A) então
//      se (C > A) então
//         escreval (A, B)
//      senao
//         escreval (C, B)
//      fimse
//   fimse
para b de 1 ate 3 faca
  para c de b ate 3 faca
    se vet[b] > vet[c] então
      d := vet[b]
      vet[b] := vet[c]
      vet[c] := d
    fimse
  fimpara
fimpara
limpatela
escreval("Escrevendo Em Ordem Decescente")
para b de 3 ate 1 passo -1 faca
  escreval("VALOR ",vet[b])
fimpara
Fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá a todos.

 

@devair1010, só pedimos que evite dar uma uma "resposta pronta" para o usuário, ok? recomendamos que estimule o próprio usuário a implementar as sugestões... :)

 

 

 

Vou tentar complementar...

 

1) Utilizando variáveis simples

@EvandroT, em relação ao seu código original, você está utilizando variáveis individuais, daí precisaria revisar as sentenças das suas estruturas de seleção (dos se), assim como sugerido por @devair1010. Essas estruturas de "se"s devem abranger todas as possibilidades, ou seja, quais são os casos possível em relação a essas 3 variáveis? por exemplo: "Uma delas maior", "Duas delas maiores (iguais)", "As três iguais" etc. Após, criar os se de forma que todas as formas sejam tratadas... Uma forma de verificar e testar é utilizando o conceito de "teste de mesa"!

 

2) Utilizando vetores

Uma forma também interessante de verificar o maior é deixar os valores em ordem decrescente, ou seja, daí o primeiro será o maior... claro que nesse caso também será necessário verificar se o seguintes são iguais, pois pode haver empate! Essa técnica está maios ou menos apresentada no código de @devair1010 na postagem acima.

 

A primeira etapa seria ler os dados inserindo no vetor (cada posição do vetor, seria uma variáveis, só que acessível mais facilmente, utilizando um valor de posição).

 

A segunda, seria "ordenar esse vetor", utilizando um Algoritmo de ordenação. Recomendam-se o Bubble Sort, creio que seja o mais famoso e de fácil entendimento e implementação. Se não me engano é o utilizando no código acima... (de qualquer sorte, o código precisa ser revisado, tem um pequeno errinho lá).

 

***

 

Em fim, o código acima já tem uma boa base de como pode se basear o seu código, apenas sendo necessário revisar o método de ordenação, ou seja, entendo que seria necessário compreendê-lo um pouco mais a fundo caso venha querer utilizá-lo (e até mesmo corrigir um pequeno errinho que tem lá.)

 

No aguardo.

 

 

 

 

 

 

 

 

 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Muito obrigado Devair e Simon por ajudarem, confesso que o meu código ficou um pouco confuso e pouco prático. Gostei muito das soluções indicadas, me ajudaram a consegui fazer o código "rodar" :

 

algoritmo "2.2 Pag 46"
// Função : "Algoritmo que leia três valores e moestre-os em ordem decrescente"
// Autor :
// Data : 10/4/2016
// Seção de Declarações
var
A, B, C:inteiro
inicio
// Seção de Comandos

escreval ("Digite o primeiro valor")
leia (A)
escreval ("Digite o segundo valor")
leia (B)
escreval ("Digite o terceiro valor")
leia (C)
se (A = B) ou (A = C) ou (B = C) então
   escreval ("valores iguais")
senao
   se (A > B) e (A > C) então  //A é o maior
      se (B > C) então
         escreval (A, B, C)
      senao
           escreval(A, C, B)
      fimse
   fimse
   se (B > A) e (B > C) então //B é o maior
      se (A > C) então
         escreval (B, A, C)
      senao
           escreval (B, C, A)
      fimse
   fimse
   se (C > A) e (C > B) então //C é o maior
      se (B > A) então
         escreval (C, B, A)
      senao
           escreval(C, A, B)
      fimse
   fimse
fimse

fimalgoritmo

Obrigado pela ajuda!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @EvandroT,

 

Quase isso...

 

Agora é fazer testes de mesa e verificando se bate com o desejado, caso não, teve verificar e corrigir.

 

Exemplo de valores para A, B e C.

- Todos os valores diferentes;

- Um maior e os outros dois iguais;

- Dois maiores e um menor.

 

Inicialmente, você pode inserir qualquer valor, ex.:

 

- 1, 2, 3; (deverá exibir 3 2 1)

- 2, 1, 1; (deverá exibir 2 1 1)

- 1, 2, 2. (deverá exibir 2 2 1)

Respectivamente...

 

Após está certo, precisa também verificar as outras possibilidade, ou seja, trocando os números de ordem...

 

 

No aguardo.

 


 

 

 

adicionado 2 minutos depois

PS: o código tá bem organizado!!! só precisa de alguns ajustes.

PS2: essa algoritmo está utilizando o princípio 1) que citei lá em cima, caso depois queira tentar fazer pelo 2), estamos aqui tentar ajudar também.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!