Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luiz Phelipe Steinbach

Código no Pascal, Bubble Sort

Recommended Posts

Olá gente, tudo bem estou fazendo um programinha que um exercício pede, só que já tentei de várias formas e estou aprendendo ainda a sintaxe do Pascal, estou usando o Pascalzim, e neste código é pedido o seguinte:

 

Faça um algoritmo para realizar 12 leituras armazenando-as em um vetor, onde em cada leitura o usuário irá digitar o nome de um mês e o seu saldo atual. Após a leitura você deverá ordenar os saldos de forma decrescente (do maior saldo para o menor) e após a ordenação mostrar na tela o nome do mês e o seu saldo.

 

 

Já fiz o código e já testei, só que não deu muito certo, no exercício é pedido que, quando se ordena os saldos e tal, que também ordene os meses desses saldos, e estou trabalhando com REGISTRO, daria certo para mover 2 objetos ao mesmo tempo com está tag ?

nomeemes[i].saldo[nomeemes[i].nomeDoMes]

// ou

nomeemes.saldo[nomeemes[i].nomeDoMes]

Pois queria saber, como faço pra faze-los em ordem CRESCENTE e DECRESCENTE, abaixo meu Algoritmo:

Program Pzim ;

type TSaldo = record
  nomeDoMes: string;
  saldo: real;
end;

var
saldoemes: array [1..12] of TSaldo;
i, aux: integer;
temp: real;

Begin
  
  for i:=1 to 12 do
  begin
    write ('Digite o nome do mês:');
    read (saldoemes[i].nomeDoMes);
    write ('Digite o saldo deste mês:');
    read (saldoemes[i].saldo);
  end;
  
  
  i:= 0;
  for i:=1 to 12 do
  for aux:=1 to 11 do
  if (saldoemes[aux].saldo) > (saldoemes[aux+1].saldo) then
  temp:= saldoemes[aux].saldo;
  saldoemes[aux].saldo:= (saldoemes[aux-1].saldo);
  saldoemes[aux-1].saldo:= (temp);
  
 
  for i:=1 to 12 do
  begin
    writeln (saldoemes[aux].nomeDoMes);
    writeln (saldoemes[aux].saldo);
  end;
  
  
End.

Algo para corrigir ? Melhorar ? Algo que seja mais prático ? Solução haha ?

 

Obrigado desde já, por enquanto esta é a dúvida que tenho, e que não me sai da cabeça. Valeu :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.