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

Duvida Usando Matriz


Guest PedroDl

Pergunta

Guest PedroDl

aí pessoal eu tava olhando no forum e vi um post do Graymalkin que me deixou curioso...

ele esta explicando uma forma de se alterar a ordem de um "Grupo" de times de acordo com o Nºs de pts...

Exemplo:

Time1 -> 5 pts

Time2 -> 9 pts

Time3 -> 3 pts

Time4 -> 7 pts

eu gostaria saber se alguém poderia me ajudar a entender o codigo?

Post do Graymalkin

var v : array[0..3, 0..1] of string;

i, j : integer;

aux1, aux2 : string;

begin

v[0, 0] := '4';

v[0, 1] := 'Time1';

v[1, 0] := '2';

v[1, 1] := 'Time2';

v[2, 0] := '1';

v[2, 1] := 'Time3';

v[3, 0] := '3';

v[3, 1] := 'Time4';

for i:=0 to 3 do

for j:=0 to 3 do

if strtoint(v[i, 0])>strtoint(v[j, 0]) then

begin

aux1 := v[i, 0];

aux2 := v[i, 1];

v[i, 0] := v[j, 0];

v[i, 1] := v[j, 1];

v[j, 0] := aux1;

v[j, 1] := aux2;

end;

for i:=0 to 3 do

showmessage(inttostr(i+1) + 'º Lugar: ' + v[i, 1] + ' com ' + v[i, 0] + ' pontos!');

end;

a parte do codigo que eu estou com mais duvida seria essa:

for i:=0 to 3 do
for j:=0 to 3 do
if strtoint(v[i, 0])>strtoint(v[j, 0]) then
begin
aux1 := v[i, 0];
aux2 := v[i, 1];
v[i, 0] := v[j, 0];
v[i, 1] := v[j, 1];
v[j, 0] := aux1;
v[j, 1] := aux2;
end;

Agradeço desde já...

falou Abraços...

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Isso é uma ordenação do tipo bolha. Esse método de ordenação consiste em percorrer o vetor alterando a posição dos itens. Imagine as seguintes letras:

D C B A

Para colocá-las em ordem você pode utilizar a ordenação bolha. Nas iterações, você vai olhar se um elemento é menor que o outro e se for, vai trocá-los de posição. Então, na primeira iteração (loop) vai continuar a mesma coisa (isso porque D<D é falso). Na segunda também (D<C é falso), assim como na terceira e na quarta (D<B é falso e D<A também). Quando chegar a vez do C, logo o primeiro vai ser verdadeiro (C<D) então a ordem já passará para...

C D B A

... e nas seguintes a condição será falsa (lembrando que eles trocaram de posição, logo será D<C, D<B e D<A). Chegando na iteração externa, o B trocará com C. E assim prosseguindo a cada troca...

B D C A

B C D A

A C D B

A B D C

A B C D

... até por fim temos o vetor ordenado. Como você vê, este método de ordenação testa sucessivas vezes as mesmas condições (o que inviabiliza a utilização dele para vetores grandes), porém é o método mais simples de se fazer (você chega a ele sem gastar muitos neurônios, já que é uma ténica conhecida nossa).

Certo? ;) Qualquer coisa, 'stamos aí.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

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