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.
Pergunta
humberto
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.