Gostaria de saber se é possível fazer o seguinte exercício [...] no VisuAlg

Olá, :smiley:
Meu professor do curso de Técnico em Informática na Etec Lauro Gomes (caso alguém conheça) em São Bernardo, pediu para nós resolver-mos o seguinte exercício:

[quote]Construir um algoritmo para ordenar uma lista com 5 nomes em ordem crescente.[/quote],
Gostaria de saber se é possível fazer este exercício no VisuAlg, que é um editor e interpretador de pseudocódigos. :?:

Então galera para contribuir com o fórum coloquei aqui o algoritmo que fiz para resolver esse problema: :thumbup:

[code]algoritmo “Ordenar5Nomes”

var word1, word2, word3, word4, word5, p1word, p2word, p3word, p4word, p5word : caractere
cont : inteiro
inicio
// cabeçário
escreval(" ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||")
escreval(" || Programa para ordenar 5 palavras em ordem alfabética ||")
escreval(" ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||")

  escreval("__________________________________________________________________________________")
  escreval("")

  // solicitação da palavras ao usuário
  escreva("Entre com a primeira palavra: ")
  leia(word1)
  escreva("Entre com a segunda palavra: ")
  leia(word2)
  escreva("Entre com a terceira palavra: ")
  leia(word3)
  escreva("Entre com a quarta palavra: ")
  leia(word4)
  escreva("Entre com a quinta palavra: ")
  leia(word5)

  escreval("__________________________________________________________________________________")
  escreval("")
  
  se(word1 = word2) ou (word1 = word3) ou (word1 = word4) ou (word1 = word5) ou (word2 = word3) ou (word2 = word4) ou (word2 = word5) ou (word3 = word4) ou (word3 = word5) ou (word4 = word5) entao
  escreval("Existem palavras iguais na sequência inserida, ")
  escreval("por favor verifique e tente novamente.")
  senao
  // descobrindo a posição da primeira palavra
  se(word1 < word2) entao
  cont <- cont + 1
  fimse
  
  se(word1 < word3) entao
  cont <- cont + 1
  fimse
  
  se(word1 < word4) entao
  cont <- cont + 1
  fimse
  
  se(word1 < word5) entao
  cont <- cont + 1
  fimse
  
  // atribuindo a palavra à variável de posição adequada
  se(cont = 4) entao
  p1word <- word1
  fimse

  se(cont = 3) entao
  p2word <- word1
  fimse

  se(cont = 2) entao
  p3word <- word1
  fimse
  
  se(cont = 1) entao
  p4word <- word1
  fimse
  
  se(cont = 0) entao
  p5word <- word1
  fimse

  cont <- 0 // reiniciando o contador
  
  // descobrindo a posição da segunda palavra
  se(word2 < word1) entao
  cont <- cont + 1
  fimse

  se(word2 < word3) entao
  cont <- cont + 1
  fimse

  se(word2 < word4) entao
  cont <- cont + 1
  fimse

  se(word2 < word5) entao
  cont <- cont + 1
  fimse

  // atribuindo a palavra à variável de posição adequada
  se(cont = 4) entao
  p1word <- word2
  fimse

  se(cont = 3) entao
  p2word <- word2
  fimse

  se(cont = 2) entao
  p3word <- word2
  fimse

  se(cont = 1) entao
  p4word <- word2
  fimse

  se(cont = 0) entao
  p5word <- word2
  fimse
  
  cont <- 0 // reiniciando o contador
  
  // descobrindo a posição da terceira palavra
  se(word3 < word1) entao
  cont <- cont + 1
  fimse

  se(word3 < word2) entao
  cont <- cont + 1
  fimse

  se(word3 < word4) entao
  cont <- cont + 1
  fimse

  se(word3 < word5) entao
  cont <- cont + 1
  fimse

  // atribuindo a palavra à variável de posição adequada
  se(cont = 4) entao
  p1word <- word3
  fimse

  se(cont = 3) entao
  p2word <- word3
  fimse

  se(cont = 2) entao
  p3word <- word3
  fimse

  se(cont = 1) entao
  p4word <- word3
  fimse

  se(cont = 0) entao
  p5word <- word3
  fimse
  
  cont <- 0 // reiniciando o contador

  // descobrindo a posição da quarta palavra
  se(word4 < word1) entao
  cont <- cont + 1
  fimse

  se(word4 < word2) entao
  cont <- cont + 1
  fimse

  se(word4 < word3) entao
  cont <- cont + 1
  fimse

  se(word4 < word5) entao
  cont <- cont + 1
  fimse

  // atribuindo a palavra à variável de posição adequada
  se(cont = 4) entao
  p1word <- word4
  fimse

  se(cont = 3) entao
  p2word <- word4
  fimse

  se(cont = 2) entao
  p3word <- word4
  fimse

  se(cont = 1) entao
  p4word <- word4
  fimse

  se(cont = 0) entao
  p5word <- word1
  fimse
  
  cont <- 0 // reiniciando o contador
  
  // descobrindo a posição da quinta palavra
  se(word5 < word1) entao
  cont <- cont + 1
  fimse

  se(word5 < word2) entao
  cont <- cont + 1
  fimse

  se(word5 < word3) entao
  cont <- cont + 1
  fimse

  se(word5 < word4) entao
  cont <- cont + 1
  fimse

  // atribuindo a palavra à variável de posição adequada
  se(cont = 4) entao
  p1word <- word5
  fimse

  se(cont = 3) entao
  p2word <- word5
  fimse

  se(cont = 2) entao
  p3word <- word5
  fimse

  se(cont = 1) entao
  p4word <- word5
  fimse

  se(cont <= 0) entao
  p5word <- word5
  fimse

  cont <- 0 // reiniciando o contador
  
  escreval("1ª palavra:", p1word)
  escreval("2ª palavra:", p2word)
  escreval("3ª palavra:", p3word)
  escreval("4ª palavra:", p4word)
  escreval("5ª palavra:", p5word)
  
  fimse
  
  escreval("__________________________________________________________________________________")

fimalgoritmo[/code]

É.

Valeu pela resposta. :thumbup:

Um adendo, resolver-mos não existe. É resolvermos mesmo, tudo junto.
Segundo, é possível, porém, o processo é meio complicado.
Acho o visualg meio chatinho para certas coisas.
Enfim, você precisa de um pouco de dedicação nele, até entender a lógica.

Para ordenar 5 números o processo é o mesmo que para ordenar 1000 ou um milhão de números.

Uma forma bem boboca de fazer isso é o seguinte: pense nos seguintes números em uma matriz do VisuAlg:

Posição 1 - 3
Posição 2 - 1
Posição 3 - 4
Posição 4 - 1
Posição 5 - 5

Só de você olhar, sabe que o resultado tem de ser 1, 1, 3, 4, 5. Mas como você chegaria a esse resultado?
Eu faria o seguinte (não é um método muito bonito, na verdade é bem ineficiente, mas é o que você faria no braço): a partir da primeira posição, ache no resto da matriz o menor número, e troque o valor dessa posição com o número que você achou. (É claro que você só troca se o número que você achou for menor que o número que você já tem.)
No exemplo de cima:
(3), 1, 4, 1, 5 - você tem de olhar os números 1, 4, 1, e 5. Você sabe que o menor número é 1, e a posição dele é 4 (ok, existe um menor número na posição 2, mas vou dizer depois por que é assim.
Então você troca de lugar os números 3 (que está na posição 1) e o 1 (que está na posição 4). Ficaria:
1, (1), 4, 3, 5
Agora você começa a olhar o número que está na segunda posição (que é 1) e achar o menor número que está a partir da terceira posição.
Como você deve ter percebido, o número que está na segunda posição é 1, e o menor número (a partir da terceira posição) é 3, então você não deve trocar os números de lugar.
Agora vamos examinar o número que está na terceira posição (que é 4) e examinar o menor número a partir da quarta posição.
O menor número é 3, então podemos trocar os números de lugar. Vai ficar:
1, 1, (3), 4, 5
Agora vamos examinar o número que está na quarta posição (que é 4) e examinar o menor número a partir da quinta posição.
O menor número é 5, então não se deve trocar os números. Vai ficar:
1, 1, 3, (4), 5.

Pronto! Agora só falta você descobrir como achar o menor número a partir de uma determinada posição e achar sua posição. Acho que você tem cabeça suficiente para entender como fazer.

Ha ha ha, você deu a resposta lógica que eu gostaria de dar

Galera consegui fazer vou colocar o algoritmo aqui daqui a pouco.

Acho melhor não pois depois algum espertinho na minha sala pega a resposta aqui e ganha crédito também :wink:

Acho melhor não pois depois algum espertinho na minha sala pega a resposta aqui e ganha crédito também :wink: [/quote]
Não é preciso colocar o algoritmo aqui.
Coloque apenas uma descrição.
A implementação é algo inerente a cada um, agora, não seja egoísta.
O fórum tem como objetivo o compartilhamento de informações, não a cópia do esforço de alguns.
Compartilhe uma idéia geral do que foi feito, já basta.

Acho melhor não pois depois algum espertinho na minha sala pega a resposta aqui e ganha crédito também :wink: [/quote]E você é o espertinho que queria a lógica de alguém aqui…