Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) ordenar fração dentro de um vetor


flavioavilela

Pergunta

bom dia a todos...

tenho um vetor que armazena 8 frações... esse vetor é bidimencional... logo, ele é vetor[1][1] para o numerador e vetor[1][2] para o denominador... eu sei utilizar os métodos de ordenação, mas não sei como usar com vetor, para comparar se vetor[1][1] com o vetor[1][2] é maior que o vetor[2][1] com o vetor[2][2]...

alguém pode ajudar e me indicar qual o melhor método a usar???

desde já, agradeço a atenção...

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
pois é, e como farei para ordenar?

existem algumas maneiras de se fazer isso, mas vou te passar a maneira mais simples

supondo que as frações sejam representadas assim: 1/4, 3/2, 2/5 ...etc

basta criar uma lista que receberá os valores assim representados e fará o sort ( ordenação )

procedure TForm1.Button1Click(Sender: TObject);
var
  lista : TStringList; i : integer;
begin
  lista := TStringList.Create;
  lista.Add('1/4');
  lista.Add('3/2');
  lista.Add('2/5');
  lista.Sort; //neste ponto a lista fica ordenada

  for i := 0 to lista.Count-1 do
    ShowMessage(lista[i]);

  lista.Free;
end;

OBS: se não for isso veja esses links

http://br.answers.yahoo.com/question/index...10035818AAtZHRS

http://dicasdedelphi.blogspot.com/2008/03/...-de-record.html

ou voce pode usar essa lógica

http://forum.imasters.uol.com.br/index.php...post__p__573931

caso ainda não tenha entendido essa lógica, este artigo vai ajudar a esclarecer as idéias

http://pessoal.sercomtel.com.br/matematica...oes/fracdec.htm

com isso é só aplicar os fundamentos básicos a programação

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

se voce transformar fração em decimal, o código que passei acima, serve perfeitamente para fazer isso

dica: transforme fração em decimal, faça a ordenação , e converta novamente o decimal ( ordenado ) em fração

OBS: fazendos uns testes aqui ...

procedure TForm1.Button1Click(Sender: TObject);
var
  lista : TStringList; i : integer;
begin
  lista := TStringList.Create;
  lista.Add('0,25');            //   1/4
  lista.Add('1,50');            //   3/2
  lista.Add('0,40');            //   2/5
  lista.Add('0,1666666');   //   1/6
  lista.Sort; //neste ponto a lista fica ordenada

  for i := 0 to lista.Count-1 do
    ShowMessage(lista[i]);

  lista.Free;
end;

a ordenação ficará correta se usar os valores em decimais

1/6

1/4

2/5

3/2

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...