1. Pascal / Говнокод #7172

    +93

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    Label 1, 2;
    var
     M,n:integer;
     B:real;
    Begin
     Read(m,n);
     2:
     B:=m mod n;
     If b=0 then goto 1 else
    Begin
     M:=n; n:=b;
     Goto 2;
    End;
     1:
    Write(n);
    End.

    Кaк бэ прогрaммноe рeaлизaциё aлгоритмa Евклидa, нaхождeниe мaксимaльного дeлитeля двух чисeл, кaк-то тaк.

    Запостил: KATAJIU3ATOP, 06 Июля 2011

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

    • Заебали лабы, пойду нажрусь
      Ответить
    • >Кaк бэ прогрaммноe рeaлизaциё aлгоритмa Евклидa
      А можете представить нам аппаратную?
      Ответить
    • Напоминает фортран. Кстати, else лишний.
      Ответить
    • >Label 1, 2;
      дальше не читал.
      язык в котором нужно объявлять метки - уже плохо пахнет.
      тем более, что это не отбивает желания у gotoбыдла.
      Ответить
      • Чем опять метки не угодили?! Постоянно ноят метки плохо и неправославно а обосновать, кроме как плохочитаемостью кода никто не может. Да и я бы поспорил с читаемостью, потому что бывает так, чтобы обойтись без меток нужно построить два-три вложенных цикла, добавить пару-тройку флагов и сломать мозг на условиях выхода из циклов. Когда можно было бы обойтись одной меткой. Так то.
        Ответить
        • 2:
          B:=m mod n;
          If b=0 then goto 1 else
          Begin
          M:=n; n:=b;
          Goto 2;
          End;

          неужели выглядит лучше чем:

          while true do begin
          B:=m mod n;
          If b=0 then break;
          M:=n; n:=b;
          End;
          Ответить
        • >ноят
          ...
          >обойтись без меток нужно построить два-три вложенных цикла, добавить пару-тройку флагов и сломать мозг на условиях выхода из циклов. Когда можно было бы обойтись одной меткой.

          пример в студию.
          Ответить
          • Я засрал сток.
            Ответить
          • Вырезка из программы для распознавания штрих-кодов на изображении. Без goto, зато с двумя флагами, кучей брейков (сразу не понятно, куда нас выводящих из блоков), и мозголомными условиями выходов из циклов. А можно было бы воспользоваться одним goto, и уменьшить этот код до семи-восьми строк.
            Repeat  // основной цикл пробега по всему изображению
                StartFound := False;  // найдена маска начала "110100" - нет.
                RightCRC := False;  // контрольные суммыс совпадают - нет.
                Repeat // цикл поиска маски начала штрих-кода, пробег по Y-координате
                  For j := SelRegion.Left to SelRegion.Right do //пробег по строке
                    begin
                      If GetBWColor(j,i) then // начать искать только если черный цвет
                        begin
                          dx := 0; // толщина линии - 0.1
                          repeat // расширяем линии и ищем маску начала
                            If GetBWColor(j,i) and GetBWColor(j+Round(dx),i) and (not GetBWColor(j+Round(dx*2),i)) and
                              GetBWColor(j+Round(dx*3),i) and (not GetBWColor(j+Round(dx*4),i)) and (not GetBWColor(j+Round(dx*5),i)) then
                              begin // если точки совпали с маской
                                StartFound := True; // мы нашли начало штрих-кода
                                break; // выходим из цикла
                              end;
                            dx := dx + 0.01; // увеличиваем постепенно толщину линии
                          until dx > 5; // и если толщина больше 5 пикселей - выходим
                          If StartFound then break; // если была найдена маска - выходим
                        end;
                    end;
                  If StartFound then break; // если начало найдено - выходим
                  Inc(i,2); // иначе увеличиваем Y координату на 2
                Form1.ProgressBar1.Position := i;
                Application.ProcessMessages;
                Until (i > SelRegion.Bottom); //выхоим если достигли конца изображения
            Ответить
          • Да, и вот советую еще на хабре в комментариях почитать про goto: http://habrahabr.ru/blogs/code_review/125120/#habracut
            Ответить
    • предлагаю банить на 2 недели, за пост 1 лабы - ЗАДОЛБАЛИ уже нахрен!
      Ответить
      • Соглaсeн. Только в чём зaключaeтся бaн, a? Думaю, просто в отсутствии функции создaния постов. Комeнтировaть можно.
        Ответить
        • И пздц, пойдет новая мода поста ГК в комментах. В итоге каждый пост можно будет считать мульти-постом.
          Ответить
          • Если тaкоe будeт бaнить нaхуй чтоб нe комeнтировaл. Кaк бэ спeрвa прeдупрeждeниeм, a зaтeм БАНИТЬ НАХУЙ!
            Ответить
        • > Комeнтировaть можно.
          как раз, считаю, что банить нужно именно комментирование. Мол, запостил хуйню - не сри в комментах. А запостил что-нибудь годное - ну, тогда вроде бы уважаемый человек.

          Хотя это все попахивает кармадрочем.
          помните о случившемся с НоНейМом
          Ответить
      • не все лабы одинаково пахнут.
        Ответить
        • >не все лабы одинаково пахнут.
          Яркий пример:
          http://govnokod.ru/7097
          Ответить
          • в курсе.
            по "лабой" я понимаю очень убогий код, который делали скорее всего для сдачи лабы. На вскидку не могу предложить адекватный способ банов:(
            Ответить
            • множество "лаб", является пересечением множества "одноразового" кода (написать, исполнить, удалить) и множества "учебного кода" (хелловорды, примеры, школокод, самообучение), и потому, тем более, подмножеством "унылого говна" (ср. с "быдлокодом") поскольку, явственно, не может быть обременен всяческими защитами "от дурака" и взлома, а так же блистать оригинальностью (даже талантливый программист вряд ли станет тратить время на написание хорошего кода, который еще в силу сложности может быть и не оценен достойно)

              бл, прямо статья на лурк получилась
              Ответить
              • вот поэтому и не могу предложить критерий бана:(
                Ответить
    • помнится такое писал еще на zx-бейсике
      Ответить
    • показать все, что скрытоvanished
      Ответить

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