VisualgMaster

Bem vindo ao fórum visualgmaster, tudo relacionado ao visualg, tire suas dúvidas, resolva seus algoritmos.
 
InícioInício  PortalPortal  FAQFAQ  BuscarBuscar  Registrar-seRegistrar-se  MembrosMembros  GruposGrupos  Conectar-se  

Compartilhe | 
 

 ordenar saida de matriz em ordem decrescente

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
tfeijo
Novato
Novato


Masculino
Número de Mensagens : 2
Idade : 29
Localização : Valença/RJ
Data de inscrição : 06/11/2008

MensagemAssunto: ordenar saida de matriz em ordem decrescente   Qui Nov 06, 2008 3:44 pm

Este é meu primeiro tópico e já vim com um desafio(pelo menos pra mim) bem dificil...


Esta ai o enunciado:
Entrada
A entrada é composta de vários conjuntos de teste. A primeira linha de um conjunto de teste
contém dois números inteiros A e V, que indicam respectivamente o número de aeroportos e o
número de vôos. Os aeroportos são identificados por inteiros de 1 até A. As V linhas seguintes
contêm cada uma a informação de um vôo, representada por um par de números inteiros
positivos O e D, indicando que há um vôo do aeroporto O para o aeroporto D. O final da
entrada é indicado por A = V = 0.
Saída
Para cada conjunto de teste da entrada seu programa deve produzir várias linhas de resultado.
A primeira linha identifica o conjunto de teste, no formato “Teste n”, onde n é numerado a
partir de 1. As A linhas restantes devem conter dois dados: os identificadores dos aeroportos
em ordem decrescente de tráfego aéreo e a quantidade de vôos que chegam e saem deste
aeroporto. Deve ser deixada uma linha em branco ao final de cada caso de teste. O formato
mostrado no exemplo de saída abaixo deve ser seguido rigorosamente.


E aqui o código que eu fiz depois de 2 dias trabalhando... Very Happy



Algoritmo "caos_aereo"

Var

b,a,v,o,t,d,i,j,k:inteiro
voo,VT:vetor[1..10] de inteiro
teste:vetor[1..10,1..10] de inteiro

Inicio
a := 1
v := 1
t := 0
o := 0
d := 0

Escreval("Entrada:")
Enquanto ((a<>0) e (v<>0)) faca
//Le a quantidade de aeroporto e de voos
Leia(a,v)
{A variavel "t" recebe a quantidade de teste que foi feito
e o vetor "voo" recebe a quantidade de vôos foi feito em cada teste}
Se a<>0 entao
t:=t+1
voo[t]:=v
Fimse

Para i:=1 ate v faca
Leia(o,d)
//Armazena a quantidade de voos tem cada aeroporto em VT
VT[o]:= VT[o]+1
VT[d]:= VT[d]+1
//Passa as variáveis do vetor VT e armazena na matriz
teste[t,o]:=VT[o]
teste[t,d]:=VT[d]
Fimpara
//Zera o vetor para um novo teste
Para i:=1 ate v faca
VT[i]:= 0
VT[i]:= 0
Fimpara
Fimenquanto


//Escreve todos os valores de cada teste escrito acima
Para i:=1 ate t faca
Escreval("Teste",i)
Para j:=1 ate voo[i] faca
Se (teste[i,j]<>0) entao
Escreval(j,teste[i,j])
Fimse
Fimpara
Fimpara

Fimalgoritmo

Entao, como eu faço pra ordenar a saida, de acordo com o numero de voos, de cada aeroporto, em cada teste?
Voltar ao Topo Ir em baixo
Ver perfil do usuário
tfeijo
Novato
Novato


Masculino
Número de Mensagens : 2
Idade : 29
Localização : Valença/RJ
Data de inscrição : 06/11/2008

MensagemAssunto: Re: ordenar saida de matriz em ordem decrescente   Qui Nov 20, 2008 1:49 pm

Já que ninguem soube essa questão aew está a solução encontrada por mim depois de vários dias...

//------------------------------------------
// Saída dos dados
//------------------------------------------
Para i:=1 ate t faca
//Imprime t(quantidade de testes feitos) vezes.
Escreval("Teste",i)

Para j:=1 ate voo[i] faca
//Pega o maior valor da matriz e armazena o valor na variavel "maior"
//e a posição, desse maior valor, na variavel "posicao".
Para k:=1 ate voo[i] faca
Se (maior<teste[i,k]) entao
maior:=teste[i,k]
posicao:=k
Fimse
Fimpara

Se (maior<>0) e (posicao<>0) entao
//Zera o maior valor da matriz depois de imprimi-lo
//para fazer um looping em ordem decrescente
Escreval(posicao,maior)
teste[i,posicao]:=0
//Zera a variavel "maior" para que o looping funcione
maior:=0
Fimse
Fimpara
Fimpara
Voltar ao Topo Ir em baixo
Ver perfil do usuário
 
ordenar saida de matriz em ordem decrescente
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1
 Tópicos similares
-
» Visual G - Vetor decrescente
» mês em ordem crescente
» Ordenar variavel em ordem decrescente
» Classificação ordem Decrescente de data em Relatório
» [Resolvido]Campo "contar" em ordem decrescente no relatório

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
VisualgMaster :: VisualgMaster :: Pedidos de algoritmos-
Ir para: