- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
program bag; var numbers, weight, price : array[1..100] of byte;
fraction : array[1..100] of real; n, i, f, max, s, temp_i : byte;
temp_r : real; begin writeln('Input number of goods and maximal
weight: '); readln(n, max); writeln; randomize; for i := 1 to n do
begin numbers[i] := i; weight[i] := random(254) + 1; write(weight[i],
' '); price[i] := random(254) + 1; write(price[i], ' '); fraction[i]
:= price[i] / weight[i]; writeln(fraction[i]:0:2); end; f := 1;
while (f = 1) do begin f := 0; for i := 1 to n-1 do begin if (
fraction[i] < fraction[i + 1]) then begin if (price[i] < price[i + 1
]) then begin temp_r := fraction[i + 1]; fraction[i + 1] := fraction[
i]; fraction[i] := temp_r; temp_i := weight[i + 1]; weight[i + 1] :=
weight[i]; weight[i] := temp_i; temp_i := numbers[i + 1]; numbers[i +
1] := numbers[i]; numbers[i] := temp_i; f := 1; end; end; end; end;
s := 0; i := 1; while (s + weight[i] <= max) do begin writeln(numbers
[i]); s := s + weight[i]; inc(i); end; readln; end.
Анонимус 02.12.2010 22:29 # −2
да и код-то не очень
Lure Of Chaos 03.12.2010 01:11 # 0
TarasB 03.12.2010 12:04 # 0
Lure Of Chaos 03.12.2010 12:41 # 0
fraction[i] < fraction[i + 1]) then begin if (price[i] < price[i + 1
]) then.....
TarasB 03.12.2010 12:51 # 0
То есть then if - это по смыслу and низшего приоритета.
Хотя в данном случае да, он излишен.
Lure Of Chaos 03.12.2010 13:09 # 0
TarasB 03.12.2010 13:35 # 0
При большом кол-ве скобок and уже не охватывается никак.
Или, например, невозможно охватить параллельно выражение if (x > 0) and (y/x>1) . Так что от последовательного охвата никуда не деться.
Lure Of Chaos 03.12.2010 13:42 # 0
bugmenot 03.12.2010 15:50 # 0
http://pastebin.com/rtQCMEm4
TarasB 03.12.2010 17:16 # 0
А ещё меня бесит, когда begin переносят, код становится мегажирным и уродливым!!!
А ещё стало видно (в той части, где делается обмен), что автор не знает структур.
И пузырьковая сортировка частично упорядоченного множества.
bugmenot 03.12.2010 17:50 # 0
> меня бесит, когда begin переносят
TarasB 03.12.2010 12:05 # +2
То что минус.
bazhenovc 03.12.2010 18:16 # 0
З.Ы. код вообще не мой
bugmenot 03.12.2010 18:27 # 0
bazhenovc 03.12.2010 18:32 # 0
xaionaro 04.12.2010 08:45 # 0