Advertisement
melnikovmaxim

KLENINA_backpack

Dec 16th, 2019
506
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.07 KB | None | 0 0
  1. //link https://yadi.sk/d/SkEzT7vCQOaCAg
  2. program rukzak;
  3.  
  4. var
  5.    nazv: array [1..100] of string; //Название
  6.    ves: array [1..100] of integer;//Вес
  7.    cena: array [1..100] of integer;//Цена
  8.    n, n1, i, n2, n3, n4, n5, i1: integer;
  9.    s: string;
  10.  
  11. begin
  12.    writeln('Программа - рюкзак');
  13.    writeln();
  14.    writeln('В программе вычисляет какие предметы положим в рюкзак, чтобы общая ценность всех предметов в рюкзаке была максимальной из всех возможных вариантов');
  15.    writeln();
  16.    writeln('Введите место рюкзака');
  17.    readln(n3);
  18.    writeln('Введите количество предметов');
  19.    readln(n);
  20.    n1 := n;
  21.    for i := 1 to n do
  22.       begin
  23.          write('Введите название предмета ');
  24.          readln(nazv[i]);
  25.          write('Введите сколько места занимает предмет  ');
  26.          readln(ves[i]);
  27.          write('Введите стоимость предмета ');
  28.          readln(cena[i]);
  29.       end;
  30.    for i := 1 to n - 1 do
  31.    begin
  32.       for n2 := i + 1 to n do
  33.          begin
  34.             if (cena[i] / ves[i]) < (cena[n2] / ves[n2]) then
  35.                begin
  36.                   s := nazv[i];
  37.                   nazv[i] := nazv[n2];
  38.                   nazv[n2] := s;
  39.                   n4 := ves[i];
  40.                   ves[i] := ves[n2];
  41.                   ves[n2] := n4;
  42.                   n4 := cena[i];
  43.                   cena[i] := cena[n2];
  44.                   cena[n2] := n4;
  45.                end;
  46.          end;
  47.    end;
  48.    writeln;  
  49.    i := 0;
  50.    writeln('В рюкзак положили такие предметы:');
  51.    while ((n5 < n3) and (i<=n))  do
  52.       begin
  53.          i := i + 1;
  54.          n5 := n5 + ves[i];
  55.          if n5 <= n3 then
  56.             begin
  57.                writeln(nazv[i]);
  58.                i1 := i1 + 1;
  59.             end;
  60.       end;
  61.    if i1 = 0 then
  62.        writeln('Ничего');
  63. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement