Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //link https://yadi.sk/d/SkEzT7vCQOaCAg
- program rukzak;
- var
- nazv: array [1..100] of string; //Название
- ves: array [1..100] of integer;//Вес
- cena: array [1..100] of integer;//Цена
- n, n1, i, n2, n3, n4, n5, i1: integer;
- s: string;
- begin
- writeln('Программа - рюкзак');
- writeln();
- writeln('В программе вычисляет какие предметы положим в рюкзак, чтобы общая ценность всех предметов в рюкзаке была максимальной из всех возможных вариантов');
- writeln();
- writeln('Введите место рюкзака');
- readln(n3);
- writeln('Введите количество предметов');
- readln(n);
- n1 := n;
- for i := 1 to n do
- begin
- write('Введите название предмета ');
- readln(nazv[i]);
- write('Введите сколько места занимает предмет ');
- readln(ves[i]);
- write('Введите стоимость предмета ');
- readln(cena[i]);
- end;
- for i := 1 to n - 1 do
- begin
- for n2 := i + 1 to n do
- begin
- if (cena[i] / ves[i]) < (cena[n2] / ves[n2]) then
- begin
- s := nazv[i];
- nazv[i] := nazv[n2];
- nazv[n2] := s;
- n4 := ves[i];
- ves[i] := ves[n2];
- ves[n2] := n4;
- n4 := cena[i];
- cena[i] := cena[n2];
- cena[n2] := n4;
- end;
- end;
- end;
- writeln;
- i := 0;
- writeln('В рюкзак положили такие предметы:');
- while ((n5 < n3) and (i<=n)) do
- begin
- i := i + 1;
- n5 := n5 + ves[i];
- if n5 <= n3 then
- begin
- writeln(nazv[i]);
- i1 := i1 + 1;
- end;
- end;
- if i1 = 0 then
- writeln('Ничего');
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement