Школоло / Говнокод #4816 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 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.

Geany отформатировал код :)

Запостил: bazhenovc bazhenovc, (Updated )

Комментарии (16) RSS

        • Замена внешнего and на then if позволяет сократить число скобочек в выражении, уменьшая шансы запутаться в нём.
          То есть then if - это по смыслу and низшего приоритета.
          Хотя в данном случае да, он излишен.
          Ответить
          • ну особенно при таком подстрочном форматировании читается еще хуже... and как бы охватывается параллельно, а then if последовательно... что еще больше напрягает
            Ответить
            • Форматирование не в тему, я потому и минусанул.
              При большом кол-ве скобок and уже не охватывается никак.
              Или, например, невозможно охватить параллельно выражение if (x > 0) and (y/x>1) . Так что от последовательного охвата никуда не деться.
              Ответить
              • ну не надо забывать о чувстве меры. А обычно, если параллельное выражение слишком сложное, то, возможно, стоит менять логику. Не всегда, конечно
                Ответить
                • Во, теперь видно. Зачем f целого типа, неясно. Зачем присвоение перед циклом - тоже. Есть же repeat until;
                  А ещё меня бесит, когда begin переносят, код становится мегажирным и уродливым!!!
                  А ещё стало видно (в той части, где делается обмен), что автор не знает структур.
                  И пузырьковая сортировка частично упорядоченного множества.
                  Ответить
                  • да, с f эквиеблистика знатная

                    > меня бесит, когда begin переносят
                    if not true then begin
                    { керниганопоклонство }
                    end
                    Ответить
  • А говно-то где? В форматировании? Тогда не смешно уже. Если в алгоритме, то из-за форматирования его не видно.
    То что минус.
    Ответить
  • Ну на то он и говнокод, не так ли?:)

    З.Ы. код вообще не мой
    Ответить
        • Ну лично я никак не различаю данный код от кучи других примеров кода, где отвратительное форматирование. А смотреть каждый раз на один и тот же "прикол" - быстро наскучивает.
          Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8