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

Pascal


humberto

Pergunta

iae galera.....tipo..eu tenho esse código aqui em pascal q roda.......O algoritmo pede o beneficio e o peso...daí calcula o desempenho q é igual a beneficio/peso ....

uso lista encadeada...

alguém sabe como ordenar do maior para o menor desempenho??

aqui vai o código:

PROGRAM Problema_1;
USES wincrt;

TYPE
    lista=^no;
    no = record
           peso: real;
           beneficio: real;
           desempenho: real;
           capacidade: real;
           prox: lista;
         end;

VAR  pprim,paux,pultimo: lista;
     npeso,nbeneficio,ndesempenho,ncapacidade: real;
     opcao: char;
    

{================ Cria e insere primeiro objeto===================}
PROCEDURE criar; 
begin
      new(paux);
      paux^.prox := nil;
      {paux^.peso := npeso;}
      pprim := paux;
end;

{================ Inserir nó no final da lista===================}
PROCEDURE inserir;
begin
     clrscr;
     writeln('Digite o beneficio');
     readln(nbeneficio);
     writeln('Digite o peso');
     readln(npeso);
     new(paux);
     paux^.peso := npeso;
     paux^.beneficio := nbeneficio;
     ndesempenho := nbeneficio/npeso;
     paux^.desempenho := ndesempenho;
     paux^.prox := nil;
     paux^.prox := pprim;
     pprim := paux;
end; 

{================ Imprimir nós da lista===================}
PROCEDURE imprimir;
begin
     paux := pprim;
     while(paux^.prox<>nil)do
     begin
          writeln('Peso: ', paux^.peso:6:2);
          writeln('Beneficio: ', paux^.beneficio:6:2);
          writeln('Desempenho: ', paux^.desempenho:6:2);
          writeln('-----------------');
          paux := paux^.prox;
     end;
         write(paux^.peso);
         writeln;
end;


{==================== CORPO PRINCIPAL ======================}
BEGIN
     criar;
     repeat
           clrscr;
           writeln('1- Inserir Objeto');
           writeln('2- Ordenar Objetos');
           writeln('"S" - sair');
           readln(opcao);
           case opcao of
                '1': inserir;
                '2': ordenar;
           end;
     until(opcao in ['s','S']);
     imprimir;

END.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

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,3k
×
×
  • Criar Novo...