1. Куча / Говнокод #4265

    +143

    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
    uses graph, crt;
    var gd,gm,i:integer;
        x0,y0,x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,l,r:integer;
    procedure calculationx(r:integer);
    begin
      x1:=x0;
      x2:=x0+trunc(r*sin(36*pi/180));
      x3:=x0-trunc(r*cos(18*pi/180));
      x4:=x0+trunc(r*cos(18*pi/180));
      x5:=x0-trunc(r*sin(36*pi/180));
    end;
    procedure drow(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5:integer);
    begin
      line(x1,y1,x2,y2);
      line(x2,y2,x3,y3);
      line(x3,y3,x4,y4);
      line(x4,y4,x5,y5);
      line(x5,y5,x1,y1);
    end;
    procedure stars(r:integer); var y1,y2,y3,y4,y5:integer;
    begin
      calculationx(r);
      y1:=y0-r;
      y2:=y0+trunc(r*cos(36*pi/180));
      y3:=y0-trunc(r*sin(18*pi/180));
      y4:=y0-trunc(r*sin(18*pi/180));
      y5:=y0+trunc(r*cos(36*pi/180));
      drow(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5);
      r:=trunc(r*sin(18*pi/180)/sin(126*pi/180));
      calculationx(r);
      y1:=y0+r;
      y2:=y0-trunc(r*cos(36*pi/180));
      y3:=y0+trunc(r*sin(18*pi/180));
      y4:=y0+trunc(r*sin(18*pi/180));
      y5:=y0-trunc(r*cos(36*pi/180));
      drow(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5);
      if (r>0) then stars(trunc(r*sin(18*pi/180)/sin(126*pi/180)));
    end;
    begin
      read(l);
      initgraph(gd,gm,'');
      x0:=getmaxx div 2;
      y0:=getmaxy div 2;
      r:=trunc(l/cos(18*pi/180)/2);
      {circle(x0,y0,r);}
      stars(r);
      readkey;
    end.

    классический унылый быдлокод, или "за что я ненавижу паскаль"

    описание автора:

    Известно, что у правильной пятиконечной звезды вершины лежат в вершинах правильного пятиугольника. Так же пятиугольник образуется при пересечении ее сторон. Так что в пентаграмму можно вписать еще одну пентаграмму. Что, собственно, я и сделала.
    После несложных операций с рисунками мне удалось определить углы между стороной пентакла и отрезком, соединяющим вершину и центр, и между стороной правильного пятиугольника и высотой (медианой) к ней. Из углов удалось рассчитать нужные соотношения.
    Попробуйте самостоятельно посчитать их, прежде чем читать решение.
    Построение
    Программа нарисует звезду по длине ее стороны. Т.е. программе нужен расчет координат вершин и длины меньшей звезды от большей. Я использовала рекурсию для рисования звезды.

    http://clubs.ya.ru/4611686018427394475/replies.xml?item_no=1045&nocookiesupport =yes

    Lure Of Chaos, 16 Сентября 2010

    Комментарии (17)
  2. Си / Говнокод #4264

    +98

    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
    //
    // Замена блоков __try/__finally нашей реализацией. Примеры использования:
    // NTSTATUS SomeFunc() {
    //     X *p = NULL;
    //     NTSTATUS status = STATUS_SUCCESS;
    //     Try {
    //         p = new(NonPagedPool) X;
    //         if (!p) Leave(status = STATUS_INSUFFICIENT_RESOURCES);
    //
    //         status = SomeKernelFunc();
    //         LeaveNS(status = STATUS_UNSUCCESSFUL);
    //     } Finally {
    //         if (p) delete p;
    //     }
    //     return status;
    // }
    //
    #define Try if (1)
    #define Finally try_exit: NOTHING
    #define Leave(s) { s; goto try_exit; }
    #define LeaveNS(s) {if (!NT_SUCCESS(status)) Leave(s);}
    #define Run(s) {status = s; LeaveNS(;);}

    Суровые исключения для Win32 драйвера

    rat4, 16 Сентября 2010

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

    +168

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function format_number($param) {
        $array_number = explode('.', $param);
        if (!isset($array_number[1])) {
           echo $array_number[0].'.00';
        } else {
           echo $param;
        }
    }

    Я задал ПХПисту задачку, чтобы он выводил цифры в таблице с 2 знаками после запятой.

    pzhilla, 16 Сентября 2010

    Комментарии (21)
  4. C++ / Говнокод #4262

    +145

    1. 001
    2. 002
    3. 003
    4. 004
    5. 005
    6. 006
    7. 007
    8. 008
    9. 009
    10. 010
    11. 011
    12. 012
    13. 013
    14. 014
    15. 015
    16. 016
    17. 017
    18. 018
    19. 019
    20. 020
    21. 021
    22. 022
    23. 023
    24. 024
    25. 025
    26. 026
    27. 027
    28. 028
    29. 029
    30. 030
    31. 031
    32. 032
    33. 033
    34. 034
    35. 035
    36. 036
    37. 037
    38. 038
    39. 039
    40. 040
    41. 041
    42. 042
    43. 043
    44. 044
    45. 045
    46. 046
    47. 047
    48. 048
    49. 049
    50. 050
    51. 051
    52. 052
    53. 053
    54. 054
    55. 055
    56. 056
    57. 057
    58. 058
    59. 059
    60. 060
    61. 061
    62. 062
    63. 063
    64. 064
    65. 065
    66. 066
    67. 067
    68. 068
    69. 069
    70. 070
    71. 071
    72. 072
    73. 073
    74. 074
    75. 075
    76. 076
    77. 077
    78. 078
    79. 079
    80. 080
    81. 081
    82. 082
    83. 083
    84. 084
    85. 085
    86. 086
    87. 087
    88. 088
    89. 089
    90. 090
    91. 091
    92. 092
    93. 093
    94. 094
    95. 095
    96. 096
    97. 097
    98. 098
    99. 099
    100. 100
    #include "stdafx.h"
    #include <iostream>
    #include <conio.h>
    
    using namespace std;
    
    int Sum (int x, int y)
    {
    	cout << "Принято " << x << " и " << y << "\n";
    	return (x+y);
    }
    
    int Frac (int x, int y)
    {
    	cout << "Принято " << x << " и " << y << "\n";
    	return 0;
    }
    
    int Diff (int x, int y)
    {
    	cout << "Принято " << x << " и " << y << "\n";
    	return (x-y);
    }
    
    int Multiplic (int x, int y)
    {
    	cout << "Принято " << x << " и " << y << "\n";
    	return (x*y);
    }
    void Exiting ()
    {
    	cout << "\nДля выхода из приложения нажмите любую клавишу...";
    	_getch();
    }
    void Call ()
    {
    	cout << "\nВведите 2 числа через пробел и нажмите Enter: ";
    }
    
    
    int main()
    {
    	setlocale(LC_ALL,"RUS");
    	int a,b,c,k;
        cout << "Данный калькулятор может выполнять операции только над целыми числами.\n(c) 2010 - Конфиденциальность. All Rights Reserved.\n";
    	cout << "\nВыберите, что вы хотите сделать с числами: \n1-Сложить, 2-Вычесть, 3-Умножить, 4-Разделить \n"; cin >> k;
    	switch (k)
    	{
    	case 1: int Sum();       break;
    	case 2: int Diff();      break;
    	case 3: int Multiplic(); break;
    	case 4: int Frac();      break;
    	default: cout << "Вариант не выбран! \n"; return 1;
    	}
    	if (k==1){
    		Call();
    		cin >> a;
    	    cin >> b;
    		c=Sum(a,b);
    		cout << "\nРЕЗУЛЬТАТ: " << c;
    		cout << "\n";
    		Exiting ();
    		return 0;
    	}
    		if (k==2){
    		Call();
    		cin >> a;
    	    cin >> b;
    		c=Diff(a,b);
    		cout << "\nРЕЗУЛЬТАТ: " << c;
    		cout << "\n";
    		Exiting ();
    		return 0;
    	}
    			if (k==3){
    		Call();
    		cin >> a;
    	    cin >> b;
    		c=Multiplic(a,b);
    		cout << "\nРЕЗУЛЬТАТ: " << c;
    		cout << "\n";
    		Exiting ();
    		return 0;
    	}
    				if (k==4){
    		Call();
    		cin >> a;
    	    cin >> b;
    		if (b==0){
    			cout << "\nДеление на 0 невозможно!\n";
    			Exiting ();
    			return 0;
    		}
    		Frac(a,b);
    		cout << "\nРЕЗУЛЬТАТ: " << (float) a/b;
    		cout << "\n";
            Exiting ();
    		return 0;
    				}
    }

    я только учусь языку C++.
    и это один из первых моих кодов)
    это примитивный калькулятор
    возможно спецы вдоволь поржут с такого кода.. :))

    ma666ot, 16 Сентября 2010

    Комментарии (34)
  5. Java / Говнокод #4261

    +144

    1. 1
    2. 2
    // указываем какие label делать подчеркнутыми
    setMarked(new boolean[] {false, true, true, true, true, true, true, false, true, false, false, false, false, true, true, false});

    borka, 16 Сентября 2010

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

    +144

    1. 1
    2. 2
    int a;
    if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){if(a=0){}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}

    fatal error C1061: ограничение компилятора: недопустимая степень вложения блоков
    MSVS 2010; C++ win32 console

    Ivan0x32, 16 Сентября 2010

    Комментарии (24)
  7. C# / Говнокод #4259

    +125

    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
    class SystemErrorCodes
    {
        public const Int32 ERROR_ACCESS_DENIED = 5;
        public const Int32 ERROR_ADAP_HDW_ERR = 57;
        public const Int32 ERROR_ALREADY_ASSIGNED = 85;
    // ещё две сотни подобных строк
    
        public string ToString(Int32 ERR)
        {
            switch (ERR)
            {
    
                case 0: return "The operation completed successfully.";
                case 1: return "Incorrect function.";
                case 10: return "The environment is incorrect.";
    // и снова две сотни таких строк
    
                default: return "unknown.";
            }
        }
    }

    http://msdn.microsoft.com/en-us/library/ms681382(VS.85).aspx
    внизу страницы, заготовка класса для использования в C# системных кодов ошибок, получаемых в нативном коде вызовом GetLastError(), и их описаний :)
    И не лень было мартышке писать это?
    Всё гораздо проще: получение кода ошибки - Marshal.GetLastWin32Error()
    получение описания этого кода - new Win32Exception().Message

    koodeer, 16 Сентября 2010

    Комментарии (6)
  8. JavaScript / Говнокод #4258

    +169

    1. 1
    eval(handler.replace(/this/g,'document.getElementsByTagName("A")'));

    Вот такая вот альтернатива для Function.prototype.call

    eval, 16 Сентября 2010

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

    +165

    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
    <? 
    $price_id = $_GET['price_id']; 
    $price_id=(int)$price_id; 
    $output = array(); 
    $data = !empty($_COOKIE['products']) ? unserialize($_COOKIE['products']) : array();?> 
    <? if ($price_id):?> 
    <? $data[0]="0";?> 
    <? $key=array_search($price_id,$data);?> 
    <? if($key!== false):?> 
    <? unset($data[$key]); ?> 
    <? $data[0]="добавить в закладки";?> 
    <?else:?> 
    <? $data[]=$price_id; 
    $data[0]="удалить закладку";?> 
    <?endif;?> 
    <?endif;?> 
    <? 
    $b="texttext"; 
    setcookie('products', serialize($data), time() + 172800, "/", '', false, true); 
    //print $b; 
    //$output['total_products_count'] = $b; 
    echo json_encode($b);?>

    И человек ещё удивляется, почему же ЭТО не работает?

    UAS, 15 Сентября 2010

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $id = $fInt->filter($this->_getParam('id'));
            $sort = $fInt->filter($this->_getParam('sort'));
            $c_name = $this->mbtrim($fStr->filter($this->_getParam('c_name')));
            $c_shortname = $this->mbtrim($fStr->filter($this->_getParam('c_shortname')));
            $email = $this->mbtrim($fStr->filter($this->_getParam('email')));
            $d_firstname = $this->mbtrim($fStr->filter($this->_getParam('d_firstname')));
            $d_lastname = $this->mbtrim($fStr->filter($this->_getParam('d_lastname')));
    ...

    И так около 20 строк. Какие есть хорошие варианты фильтровать множество разнотипных данных?

    asfalanaft, 15 Сентября 2010

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