1. Лучший говнокод

    В номинации:
    За время:
  2. Pascal / Говнокод #12375

    +90

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    program Project1;
    Var
      i,j : Integer;
    begin
        i := 300001; j := 300002;
        asm
         MOV EAX, I;
         XCHG EAX,j
         MOV I, EAX;
        end;
        Write(i,' ',j); Readln;
    end.

    Ещё один кулхацкерный метод перестановки значений двух чисел местами.

    Govnocoder#0xFF, 30 Декабря 2012

    Комментарии (27)
  3. Java / Говнокод #11523

    +90

    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
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    public enum TimeUnit {
       NANOSECONDS {
            public long toNanos(long d)   { return d; }
            public long toMicros(long d)  { return d/(C1/C0); }
            public long toMillis(long d)  { return d/(C2/C0); }
            public long toSeconds(long d) { return d/(C3/C0); }
            public long toMinutes(long d) { return d/(C4/C0); }
            public long toHours(long d)   { return d/(C5/C0); }
            public long toDays(long d)    { return d/(C6/C0); }
            public long convert(long d, TimeUnit u) { return u.toNanos(d); }
            int excessNanos(long d, long m) { return (int)(d - (m*C2)); }
        }
    ....
        public long convert(long sourceDuration, TimeUnit sourceUnit) {
            throw new AbstractMethodError();
        }
    
     
        public long toNanos(long duration) {
            throw new AbstractMethodError();
        }
    
      
        public long toMicros(long duration) {
            throw new AbstractMethodError();
        }
    
        public long toMillis(long duration) {
            throw new AbstractMethodError();
        }
    
     
        public long toSeconds(long duration) {
            throw new AbstractMethodError();
        }
    
      
        public long toMinutes(long duration) {
            throw new AbstractMethodError();
        }
    
      
        public long toHours(long duration) {
            throw new AbstractMethodError();
        }
    
     
        public long toDays(long duration) {
            throw new AbstractMethodError();
        }
    
      
        abstract int excessNanos(long d, long m);
    }

    Но зачем?

    3.14159265, 02 Августа 2012

    Комментарии (61)
  4. Pascal / Говнокод #10822

    +90

    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
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    function Vincenty(Lat1, Lon1, Lat2, Lon2: Extended): Extended;
    const  // Параметры эллипсоида:
    a = 6378245.0;
    f = 1 / 298.3;
    b = (1 - f) * a;
    EPS = 0.5E-30;
    var
    APARAM, BPARAM, CPARAM, OMEGA, TanU1, TanU2,
    Lambda, LambdaPrev, SinL, CosL, USQR, U1, U2,
    SinU1, CosU1, SinU2, CosU2, SinSQSigma, CosSigma,
    TanSigma, Sigma, SinAlpha, Cos2SigmaM, DSigma : Extended;
    begin
    lon1 := lon1 * (PI / 180); 
    lat1 := lat1 * (PI / 180);
    lon2 := lon2 * (PI / 180); 
    lat2 := lat2 * (PI / 180); //Пересчет значений координат в радианы
    
    TanU1 := (1 - f) * Tan(lat1); 
    TanU2 := (1 - f) * Tan(lat2);
    U1 := ArcTan(TanU1);  
    U2 := ArcTan(TanU2);
    SinCos(U1, SinU1, CosU1); 
    SinCos(U2, SinU2, CosU2);
    OMEGA := lon2 - lon1; 
    lambda := OMEGA;
    
    repeat //Начало цикла итерации
    
    LambdaPrev:= lambda;
    SinCos(lambda, SinL, CosL);
    SinSQSigma := (CosU2 * SinL * CosU2 * SinL) +
      (CosU1 * SinU2 - SinU1 * CosU2 * CosL) *
      (CosU1 * SinU2 - SinU1 * CosU2 * CosL);
    
    CosSigma := SinU1 * SinU2 + CosU1 * CosU2 * CosL;
    TanSigma:= Sqrt(SinSQSigma) / CosSigma;
    
    if TanSigma > 0  then Sigma := ArcTan(TanSigma)
      else Sigma := ArcTan(TanSigma) + Pi;
    
    if SinSQSigma = 0  then SinAlpha := 0
       else SinAlpha := CosU1 * CosU2 * SinL / Sqrt(SinSQSigma);
    
    if (Cos(ArcSin(SinAlpha)) * Cos(ArcSin(SinAlpha))) = 0  then Cos2SigmaM := 0
      else Cos2SigmaM:= CosSigma - (2 * SinU1 * SinU2 / (Cos(ArcSin(SinAlpha)) * Cos(ArcSin(SinAlpha))));
    
    CPARAM:= (f / 16) * Cos(ArcSin(SinAlpha)) * Cos(ArcSin(SinAlpha)) *
      (4 + f * (4 - 3 * Cos(ArcSin(SinAlpha)) * Cos(ArcSin(SinAlpha))));
    
    lambda := OMEGA + (1 - CPARAM) * f * SinAlpha * (ArcCos(CosSigma) +
      CPARAM * Sin(ArcCos(CosSigma)) * (Cos2SigmaM + CPARAM * CosSigma *
      (-1 + 2 * Cos2SigmaM * Cos2SigmaM)));
    
    until Abs(lambda - LambdaPrev) < EPS; // Конец цикла итерации
    
    USQR:= Cos(ArcSin(SinAlpha)) * Cos(ArcSin(SinAlpha)) *(a * a - b * b) / (b * b);
    APARAM := 1 + (USQR / 16384) * (4096 + USQR * (-768 + USQR * (320 - 175 * USQR)));
    
    BPARAM := (USQR / 1024) * (256 + USQR * (-128 + USQR * (74 - 47 * USQR)));
    DSigma := BPARAM * SQRT(SinSQSigma) * (Cos2SigmaM + BPARAM / 4 *
    (CosSigma * (-1 + 2 * Cos2SigmaM * Cos2SigmaM) - BPARAM / 6 * Cos2SigmaM *
    (-3 + 4 * SinSQSigma) * (-3 + 4 * Cos2SigmaM * Cos2SigmaM)));
    
    Result := b * APARAM * (Sigma - DSigma);
    end; 
    
    { ©Drkb::04255 }

    Алгоритм расчёта километража между двумя точками на земной поверхности методом Винсенти, найден в drkb3.0. Там же весь этот ГК уместился в одной строчке:

    distance=sqrt(pow((lon1 - lon2)*111*COS(lat2/57.295781), 2) + pow((lat1) - lat)*111, 2));

    , чудноо... :)

    Alegun, 09 Июня 2012

    Комментарии (17)
  5. PHP / Говнокод #10510

    +90

    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
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    <?PHP
     
    class MVC {
     
    public function Model ($text) {
     
    $text = '<i>' . $text . '</i>';
    return $text;
     
    }
     
    public function View ($text) {
     
    $text = $Child::MakeTextBold($text);
    echo $text;
     
    }
     
    public function Controller () {
     
    $text = 'Some text';
    $new_text = self::Model($text);
    self::View($new_text);
     
    }
     
    }
     
    class NewClass extends MVC {
     
    public function MakeTextBold ($text) {
     
    $text = '<strong>' . $text . '</strong>';
    return $text;
     
    }
     
    }
     
    ?>

    С форума php.su. Там еще есть идеи автора про некий "плагинатор" который включает в себя Котролер "News", Модель "News" и внимание ... News View!!!
    Автор еще хвастается, что пишет CMS, администратор которой будет в праве выбрать чем кэшировать шаблоны, на выбор такие пункты как : Memcache, Xcache, JSON, files... ))
    Массы лулзов ))

    sKaa, 31 Мая 2012

    Комментарии (40)
  6. C# / Говнокод #10355

    +90

    1. 1
    public string Материал_Clean { get; set; }

    :[

    nolka4, 24 Мая 2012

    Комментарии (2)
  7. PHP / Говнокод #10167

    +90

    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
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    if(!empty($_POST))
    {
    	include("dbconnect.php");
    
    	$shown_name=$_POST['shown_name'];
    	$username=$_POST['username'];
    	$header=$_POST['header'];
    	$text=$_POST['text'];
    
    	$date_array=getdate(time());
    
    	$date=$date_array['hours'].":".$date_array['minutes'].":".$date_array['seconds']." ".$date_array['weekday']." ".$date_array['mday']." ".$date_array['month']." ".$date_array['year'];
    
    
    	$filename=$date_array['hours']."-".$date_array['minutes']."-".$date_array['seconds']."-".$date_array['mday'].$date_array['month']."-".$date_array['year']."-".$username.".php";
    
    	$path="posts/".$filename;
    
    	$addpost="INSERT INTO posts(author, header, text, date, path) VALUES ('$shown_name', '$header', '$text', '$date', '$path')";
    	$add=$db->prepare($addpost);
    	$add->execute();
    
    
    
    
    	$file=fopen($path, 'w');
    	$content="<?php \$shown_name=\"".$shown_name."\"; \$header=\"".$header."\"; \$text=\"".$text."\";  include(\"template.html\"); ?>";
    
    	$write=fwrite($file, $content);
    
    	fclose($file);
    
    
    	header('Location: index.php');
    	$db=null;
    }

    Добавление поста в блог. Радует каждая строчка.

    nucleartux, 02 Мая 2012

    Комментарии (5)
  8. PHP / Говнокод #10161

    +90

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $obj_type = $blog->getType();
    $obj_id = $blog->getIdentity();
    $obj_task ="add";
    
    if ($obj_type && $obj_id && $obj_task == 'add') {
    ...
    }

    $obj_task - та так... на всякий случай...

    lantian, 01 Мая 2012

    Комментарии (8)
  9. Куча / Говнокод #10067

    +90

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    * {
      display: block;
      padding: 0;
      margin: 0;
    }

    напомнил www.govnokod.ru/10060

    я понял, что перестарался с таким reset.css, когда мне броузер с готовностью отобразил и title, и скрипты.

    я и не думал, что браузер обращает на них внимание.

    Lure Of Chaos, 28 Апреля 2012

    Комментарии (29)
  10. PHP / Говнокод #10054

    +90

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if ($value != 0) { // Если значение не равно нулю
    $this->koeff = $value * 0.01; // Коэффициенту этого экземляра класса присвоить одну сотую от цены
    $count++; // Счетчик увеличиваем на единицу
    } else { // Иначе
    $this->koeff=0; // Устанавливаем коэффициент этого экземпляра класса равным нулю
    // Счетчик не увиличиваем
    } // Конец условия

    Код боевой не мой, комментарии авторские.

    Tairesh, 26 Апреля 2012

    Комментарии (10)
  11. Java / Говнокод #8643

    +90

    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
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    static String Colorize(String str) {
    		str = str.replace("{BLACK}", "&0");
    		str = str.replace("{DARKBLUE}", "&1");
    		str = str.replace("{DARKGREEN}", "&2");
    		str = str.replace("{DARKTEAL}", "&3");
    		str = str.replace("{DARKRED}", "&4");
    		str = str.replace("{PURPLE}", "&5");
    		str = str.replace("{GOLD}", "&6");
    		str = str.replace("{GRAY}", "&7");
    		str = str.replace("{DARKGRAY}", "&8");
    		str = str.replace("{BLUE}", "&9");
    		str = str.replace("{BRIGHTGREEN}", "&a");
    		str = str.replace("{TEAL}", "&b");
    		str = str.replace("{RED}", "&c");
    		str = str.replace("{PINK}", "&d");
    		str = str.replace("{YELLOW}", "&e");
    		str = str.replace("{WHITE}", "&f");
    
    		str = str.replace("{0}", "&0");
    		str = str.replace("{1}", "&1");
    		str = str.replace("{2}", "&2");
    		str = str.replace("{3}", "&3");
    		str = str.replace("{4}", "&4");
    		str = str.replace("{5}", "&5");
    		str = str.replace("{6}", "&6");
    		str = str.replace("{7}", "&7");
    		str = str.replace("{8}", "&8");
    		str = str.replace("{9}", "&9");
    		str = str.replace("{A}", "&a");
    		str = str.replace("{B}", "&b");
    		str = str.replace("{C}", "&c");
    		str = str.replace("{D}", "&d");
    		str = str.replace("{E}", "&e");
    		str = str.replace("{F}", "&f");
    
    		str = str.replace("&", "\u00a7");
    		return str;
    	}

    Crazy_penguin, 25 Ноября 2011

    Комментарии (29)