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

    +87

    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
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    program lab_16;
     {$APPTYPE CONSOLE}
     uses
      windows,
      SysUtils;
     {#1. Дана строка, содержащая русский текст.
     Если в тексте нет слов-палиндромов длиной более 1-й буквы,
     то вывести слова текста в    соответствии с убыванием количества согласных,
     в противном    случае пpодублиpовать в словах текста гласные буквы и вывести
      полученные слова в поpядке, обpатном к алфавитному.}
      const nmax=100;
      Alf = ['А'..'Я','а'..'я'];
      rulett3 = ['А', 'Е', 'Ё', 'И', 'О', 'У', 'Ы', 'Э', 'Ю', 'Я', 'а', 'е', 'ё', 'и', 'о', 'у', 'ы', 'э', 'ю', 'я'];
     type Mas_slov=array[1..nmax] of string;
    
     procedure vvod(var a : Mas_slov; var n : integer);
     var stroka,str:string;
         i : integer;
     begin
          reset(input,'input.txt');
          read(stroka);
          str:='';
          n:=0;
          stroka:=stroka+' ';
          for i:=1 to length(stroka) do
           if stroka[i] in Alf then str:=str+stroka[i]
           else if str<>'' then begin
                 inc(n);
                 a[n]:=str;
                 str:='';
           end;
     end;
    
     function kolsog(x:string):integer;    {фунция нахождения кол-ва согл букв}
     var k,j,z:integer;
      begin
        z:=0;
        for k:=1 to length(x) do
        if not (x[k] in rulett3) then inc(z);
        kolsog:=z;
      end;
    
     function palin(x:string):boolean;     {проверка на палиндром}
     var z,i:integer;
     begin
        palin:=false;
        z:=0;
        for i:=1 to length(x) do
        if x[i]=x[length(x)+1-i] then z:=z+1;
      if z=length(x) then palin:=true;
     end;
    
     function prov(a : Mas_slov; n : integer):boolean;
     var i,j:integer;
     begin
     prov:=false;
     for i:=1 to n do
     if (length(a[i])>1) and (palin(a[i])=true) then prov:=true;
     end;
    
     procedure sort(var a:mas_slov; n: integer);
     var i,j:integer;
          st:string;
     begin
      for i:=1 to n-1 do
     for j:=i+1 to n do
     if kolsog(a[i])< kolsog(a[j]) then
     begin   st:=a[i]; a[i]:=a[j]; a[j]:=st; end;
     end;
    
     function dubl(x:string):string;  {дублирование гласных букв}
     var q:integer;
     begin
     q:=1;
     while q<>length(x)+1 do  begin
     if (x[q] in rulett3) then begin Insert(x[q],x,q); inc(q,2)end else inc(q); end;
     dubl:=x;
     end;
    
     procedure dubl2(var a:mas_slov; n:integer);
     var i:integer;
     begin
     for i:=1 to n do
     a[i]:=dubl(a[i]);
     end;
    
     procedure sort2(var a:mas_slov; n: integer);
     var i,j:integer;
          st:string;
     begin
        for i:=1 to n-1 do
        for j:=i+1 to n do
        if a[i]<a[j] then
        begin st:=a[i]; a[i]:=a[j]; a[j]:=st; end;
     end;

    basic, 14 Июня 2010

    Комментарии (13)
  2. Pascal / Говнокод #3474

    +103

    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
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    program lab15;
     uses crt;
     const nmax=100;
     var z,i,j,k,n,m:integer;
         pr:boolean;
         stolb:boolean;
     sum:array[1..nmax] of integer;
     A:array[1..nmax,1..nmax] of integer;
    
     procedure swap(var a,b:integer);
     var c:integer;
     begin
     c:=0;
     c:=a;
     a:=b;
     b:=c;
     end;
    
     function prostoe(x:integer):boolean;
     var i:integer;
         p:boolean;
         begin
     x:=abs(x);
     p:=false;
     if x>1 then p:=true;
     for i:=2 to x-1 do
     if x mod i=0 then p:=false;
     prostoe:=p
     end;
    
    
     begin
     z:=0;
     stolb:=false;
     pr:=false;
       clrscr;
        write('n= ');
        readln(n);
        write('m= ');
        readln(m);
        for i:=1 to n do
          for j:=1 to m do
            read(A[i,j]);
        for i:=1 to n do
        sum[i]:=0;
        for i:=1 to n do
         for j:=1 to m do
           sum[i]:=sum[i]+abs(a[i,j]);
             for i:=1 to n do
              for j:=1 to m do
               if prostoe(a[i,j])=true then pr:=true;
    
             for i:=1 to m-1 do
             begin
               for j:=i+1 to m do
               begin
               z:=0;
                for k:=1 to n do
                 begin
                   if a[k,i]=a[k,j] then z:=z+1;
                   if z=n then stolb:=true;
                 end;
               end;
             end;
    
                if (pr=true) and (stolb=true) then
                begin
                   for i:=1 to n-1 do
                   for j:=i+1 to n  do
                     if sum[i]>sum[j] then begin
                     swap(sum[i],sum[j]);
                     for k:=1 to m do
                       swap(a[i,k],a[j,k]);
                     end;
                end;
    
      writeln('stolbec= ', stolb);
      writeln('prostoe= ', pr);
    
      for i:=1 to n do
      begin
      writeln;
      for j:=1 to m do
      write(a[i,j], ' ');
      end;
        readkey;
        end.

    basic, 14 Июня 2010

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

    +154

    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
    //TransFunc.h
    
    //Девиз
    #ifndef MyOwn
    #define MyOwn
    #define Blackjack J♠
    #define Hookers
    #endif
    
    class TransferFunction
    {
    private:
      //...
      class Polynom
      {
        Polynom(TransferFunction * Base);  //Ссылка на базовый класс обязательна!
        //...
      }
      Polynom *Numerator, *Denominator;
    
      //...
    
      class TransferProcess
      {
        TransferProcess(TransferFunction * Base); //Ну куда же я без него...
        DynamicArray<double> TransGraphic;  //Данные графика.
        //...
      }
      TransferProcess * TrancProc;
    
      //...
    
      class SystemOptimisator
      {
        SystemOptimisator(TransferFunction * Base); //Именно так и никак иначе.
        TransferFunction * TempFunction;  //Это я так, на всякий случай...
        Polynom *Backup_Numerator, *Backup_Denominator;
        DynamicArray<Polynom> CorrectingDevice;  //А чо? Работает ведь...
        //...
      }
      SystemOptimisator * Opt;
    
    //Тут ещё классы "Matrix", "Vector", "Report"  и многие другие.
    
    publuc:
      TransferFunction();
      ~TransferFunction();
      void Optimize();
    };

    Краткость - сестра таланта:-)
    Захотелось мне удивить преподавателя (в программировании он не особо подкован (впрочем, как и я :-) )) короткой и простой "программой". Оно работало, до определенного момента, когда я попытался вставить ещё один класс... Потом я, конечно, всё переписал, по-человечески структурировав и избавившись от DynamicArray, но эти грабли я запомнил на всю жизнь.

    maniac, 14 Июня 2010

    Комментарии (113)
  4. Си / Говнокод #3472

    +131

    1. 1
    2. 2
    3. 3
    int newclient(var v, newconn oldconn) {
            [...]
    }

    Ничего особенного, конечно. Просто порадовало "newconn oldconn".

    xaionaro, 14 Июня 2010

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    QString sq(int deep, QString table, QString field, bool fin = false){
         if(fin) return sq(deep, table, field)+ ";";
         if(!deep) return "select min(" + field + ") from " + table;
        return "select " + field + " from " + table + " where " + field + " in(" + sq(deep-1, table, field)  + ")";
    }

    Так изнутри клиентского кода двоичным поиском выясняется, какое у БД ограничение на количество вложенных подзапросов.

    kit, 14 Июня 2010

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    bool GenerateException(int Code)
    {
       assert(false);
       return false;            //WTF???       Нужно перерефакторить.
    };

    Ещё одно проектное решение...

    Говногость, 13 Июня 2010

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

    +165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    char *ptr1;
    char *ptr2;
    //...
    try {
        throw ptr2 - ptr1;
      }
      catch (int e) {
        std::cout << "exception addr dif" << e << std::endl;
      }

    Говногость, 13 Июня 2010

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

    +148

    1. 1
    2. 2
    3. 3
    if (browser.opera && browser.version < 10.50) {
              parent.innerHTML = parent.innerHTML;
            }

    http://vkontakte.ru/js/player.js?10 (c)

    Back, 13 Июня 2010

    Комментарии (3)
  9. C# / Говнокод #3467

    +115

    1. 1
    <%=Convert.ToDateTime(item.CreatedOnDate).ToString("D", new System.Globalization.CultureInfo(System.Globalization.CultureInfo.CurrentCulture.ToString()))%>

    Кусок кода, который отображает некую дату

    phoenixx, 13 Июня 2010

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

    +152

    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
    typedef signed int s32;
    
    //...
    
    void SomeStruct::SomeFunc(const char* ipImageName /*, ... */ )
    {
    	// ...
    
    	s32 imageNameSize = strlen(ipImageName) * sizeof(char) + 1;
    	this->mpImageName = new char[imageNameSize];
    	strcpy(this->mpImageName, ipImageName);
    	
    	// ...
    }

    А теперь представим, что вместо char будет wchar_t... ...автор - лид-программист...

    Kirinyale, 13 Июня 2010

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