Ir ao conteúdo

Algoritmo para Visualg que faça uma indexação ordenada


ROWESTPHAL

Posts recomendados

Postado

Bom dia pessoa, fazer uma ordenação ate consigo, mas nao estou conseguindo fazer indices, eu faço um cadastro qualquer e nao posso alterar meu vetor principal, tenho que fazer outro vetor com esse resultado. Alguem por favor me ajuda!!!

Exemplo:

como foi cadastradio os numeros

1 68

2 72

3 17

4 32

5 24

segundo index que está com o numero da posição

Endereço

1 3

2 5

3 4

4 1

5 2

Bom dia pessoa, fazer uma ordenação ate consigo, mas nao estou conseguindo fazer indices, eu faço um cadastro qualquer e nao posso alterar meu vetor principal, tenho que fazer outro vetor com esse resultado. Alguem por favor me ajuda!!!

Exemplo:

como foi cadastradio os numeros

1 68

2 72

3 17

4 32

5 24

segundo index que está com o numero da posição

Endereço

1 3

2 5

3 4

4 1

5 2

algoritmo "semnome"

// Função :

// Autor :

// Data : 29/3/2012

// Seção de Declarações

var

i:inteiro//contador1

j,contador:inteiro//contador2

num, index_num: vetor[1..5]de inteiro//declaração do vetor que será ordenado

temp:inteiro

inicio

// Seção de Comandos

para i de 1 ate 5 faca

escreval ("Numero?")

leia (num)

//solicita entrada dos números

fimpara

para i de 1 ate 5 faca

para j de 1 ate 5 faca

//são duas estruturas de repetição, pois dois números serão comparados repetidamente

se num<num[j] então //compara dois números

temp <- j num[j]// coloca o maior na variável temporária

num[j] <- num//coloca o menor no lugar do maior

num <- temp//coloca o maior(que estava na variável temporária) no lugar em que estava o menor

fimse

fimpara

fimpara

para i de 1 ate 5 faca

escreva (index_num)

escreva (num)

fimpara

fimalgoritmo

esse algoritmo ordenar, mas nao estou conseguindo fazer como demostri lá em cima...por favor ajudem!!!

como posso implementara algo desse tipo em visualg para ver se roda

inicio

para contador1 = 1 ate quantidade_alunos faça

para contador2 = contador1 + 1 ate quantidade_alunos faca

se alunos_nome[indice_nome[contador2]]< alunos_nome[indice_nome[contador1]] então

aux= indice_nome[contador1]

indice_nome[contador1] = indice_nome[contador2]

indice_nome[contador2] = aux

Postado

Salve, ROWESTPHAL,

Olha, uma possível solução para esse problema é você usar um vetor temporário onde você irá guardar os valores ordenados do vetor principal. Feito isso, você compara cada elemento de ambos os vetores (o ordenado e o principal) para descobrir em que posição eles se igualam.

Pegando o seu exemplo:


vet[1] = 68
vet[2] = 72
vet[3] = 17
vet[4] = 32
vet[5] = 24

Ordene esses valores num vetor temporário:


tmp[1] = 17
tmp[2] = 24
tmp[3] = 32
tmp[4] = 68
tmp[5] = 72

Agora é só fazer um laço para identificar a posição dos elementos do vetor temporário de acordo com os valores encontrados no vetor principal.

Dica: procure por Bubble sort no Google para você ver como é feita a ordenação usando esse algoritmo. É basicamente o que você buscou fazer neste seu algoritmo, mas tem alguns pequenos detalhes que devem ser corrigidos.

;)

NW

Arquivado

Este tópico foi arquivado e está fechado para 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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!