VisualgMaster
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
VisualgMaster

Bem vindo ao fórum visualgmaster, tudo relacionado ao visualg, tire suas dúvidas, resolva seus algoritmos.
 
InícioInício  PortalPortal  ProcurarProcurar  Últimas imagensÚltimas imagens  RegistarRegistar  Entrar  

 

 ordenar saida de matriz em ordem decrescente

Ir para baixo 
AutorMensagem
tfeijo
Novato
Novato



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

ordenar saida de matriz em ordem decrescente Empty
MensagemAssunto: ordenar saida de matriz em ordem decrescente   ordenar saida de matriz em ordem decrescente Icon_minitimeQui 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?
Ir para o topo Ir para baixo
tfeijo
Novato
Novato



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

ordenar saida de matriz em ordem decrescente Empty
MensagemAssunto: Re: ordenar saida de matriz em ordem decrescente   ordenar saida de matriz em ordem decrescente Icon_minitimeQui 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
Ir para o topo Ir para baixo
 
ordenar saida de matriz em ordem decrescente
Ir para o topo 
Página 1 de 1
 Tópicos semelhantes
-
» Ordem crescente na matriz
» Matriz em C#
» Matriz 10x10
» Por em ordem crescente e descrecente
» Algoritmo para calculo de determinantes de ordem "n"

Permissões neste sub-fórumNão podes responder a tópicos
VisualgMaster :: VisualgMaster :: Pedidos de algoritmos-
Ir para: