1. Си / Говнокод #3456

    +139

    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
    int main() {
      unsigned long oct;
      int m,n,i,j;	
      int max=0;
      
      scanf("%d",&oct);
      for(i=0;i<=32/3;i++) {
        m=0;
        for(j=0;j<=2;j++) {
          n=oct & 1;
          if(n==1)
            m=m | power(2,j);
          oct=oct >> 1;  
        } 
      if(m>max)
        max=m;                   
      }
      printf("%d",max);  
      return 0;
    }
    
    int power(int x, int a) {
      int i;
      int t=x;
      if(a==0)
        t=1;
      else {  
      for(i=1;i<a;i++)
        t*=x; 
      }
      return t;  
    }

    Определение максимальной цифры в восьмеричной записи числа.
    Особенно радует вызов функции возведения в степень для двойки, да и сама функция тоже.

    movaxbx, 11 Июня 2010

    Комментарии (45)
  2. Python / Говнокод #3455

    −164

    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
    def _elementWidth(self,v,s):                                                                                        
        t = type(v)                                                                                                     
        if t in _SeqTypes:                                                                                              
            w = 0                                                                                                       
            for e in v:                                                                                                 
                ew = self._elementWidth(self,v)                                                                         
                if ew is None: return None                                                                              
                    w = max(w,ew)                                                                                           
                    return w                                                                                                    
                elif isinstance(v,Flowable) and v._fixedWidth:                                                                  
                    return v.width                                                                                              
                else:                                                                                                           
                    if t is not StringType: v = v is None and '' or str(v)                                                      
                        v = string.split(v, "\n")                                                                                   
                        return max(map(lambda a, b=s.fontname, c=s.fontsize,d=pdfmetrics.stringWidth: d(a,b,c), v))

    Нашел в коде библиотеки Reportlab. Особенно нравится строчка №13.

    Chaka_bum, 11 Июня 2010

    Комментарии (15)
  3. Си / Говнокод #3454

    +141

    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
    #include <stdio.h>
    
    int main() {
    	unsigned d,t,k;
    	scanf("%d",&d);
    	t=d;
    	for(k=0;t!=0;k++) //определяем кол-во значащих битов
    		t>>=1;
    	//обнуляем старший значащий бит
    	d<<=sizeof(d)*8-k+1; 
    	d>>=sizeof(d)*8-k+1; 
    	return 0;
    }

    Вот такое вот обнуление старшего бита

    movaxbx, 11 Июня 2010

    Комментарии (64)
  4. bash / Говнокод #3453

    −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
    #! /bin/sh
    
    # качаем страницу и ищем ссылку на закачку
    dllink=`curl -# $1|pcregrep -o 'http.+file.qip.ru/get[^"]+'`
    
    # качаем вторую страницу и ищем линк на файл и очищаем имя файла от мусора
    
    dlhtml=`curl -# "$dllink"`
    dlfilelink=`echo $dlhtml|pcregrep -o "http\:\/\/dc\d{1,10}.file.qip.ru\/download[^']+"`
    dlfilename1=`echo $dlhtml|pcregrep -o "http\:\/\/dc\d{1,10}.file.qip.ru\/download[^?]+"`
    dlfilename=`basename $dlfilename1`
    
    wget "$dlfilelink" -O "$dlfilename"

    Качалка файлов с file.qip.ru

    Radjah, 11 Июня 2010

    Комментарии (0)
  5. Куча / Говнокод #3452

    +144

    1. 1
    //Неплохо было бы добавить возможность удалять свои говнокоды...

    Tanger, 10 Июня 2010

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

    +111

    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
    try
                {
                    Int16 y = 0, m = 0, d = 0, hh = 0, mm = 0, ss = 0, ms = 0, zn = 0;
                    if (Value.IndexOf("T") > 0)
                    {
                        Int16.TryParse(Value.Substring(0, 4), out y);
                        Int16.TryParse(Value.Substring(4, 2), out m);
                        Int16.TryParse(Value.Substring(6, 2), out d);
                        Int16.TryParse(Value.Substring(9, 2), out hh);
                        Int16.TryParse(Value.Substring(11, 2), out mm);
                        Int16.TryParse(Value.Substring(13, 2), out ss);
                        Int16.TryParse(Value.Substring(16, 2), out ms);
                        Int16.TryParse(Value.Substring(18, 3), out zn);
                        dt = new DateTime(y, m, d, hh, mm, ss, ms, DateTimeKind.Utc);
                    }
                    if (Value.IndexOf("T") == 0)
                    {
                        Int16.TryParse(Value.Substring(0, 2), out hh);
                        Int16.TryParse(Value.Substring(2, 2), out mm);
                        Int16.TryParse(Value.Substring(4, 2), out ss);
                        Int16.TryParse(Value.Substring(7, 2), out ms);
                        dt = dt.AddHours(hh).AddMinutes(mm).AddSeconds(ss).AddMilliseconds(ms);
                    }
    
                    dt.AddHours(-zn);
    
                catch (Exception ex)
                {
                    Console.Write(this.Value + "\r\n" + ex.ToString());
                }
    
              return dt;

    Разбор модифицированного iso 8601 формата даты и времени (без "-").
    не учитавается наличие/отсуствие даты или времени, длинная тайм зона, то что если нет T то это не время а дата. Естественно все обернуто в try/catch что бы никто не догадался.

    Так сказать особой утонченности придает строка dt.AddHours(-zn);
    (сколько уйдет у кого секунд что бы понять что с ней не так?)

    eval_2009, 10 Июня 2010

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

    +112

    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
    procedure TForm1.btn_enterClick(Sender: TObject);
    begin
      //blalbla
      if someInput.text='0' then
      begin
        //blabla
      end;
      if someInput.text='0.0' then
      begin
        //blabla
      end;
      if someInput.text='0.00' then
      begin
        //blabla
      end;
      //blalbla
    end;

    Мне когда-то одногруппник показал такой код.
    - А если там будет '0.0000'? - спросил я
    - Этот случай я не прорабатывал, люди так вводить не будут

    J0hnny, 10 Июня 2010

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

    +143

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <?php
    echo "
    <b>
    Ахуеть
    </b>
    ";
    ?>

    mistmax, 10 Июня 2010

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

    +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
    procedure TForm1.registration;
    var
    reg:TRegistry;
    i,lbc:integer;
    aentsys,alawarkey:boolean;
    const
    dw:DWORD =1800000;
    begin
      reg:=TRegistry.Create;
      reg.RootKey:=HKEY_CURRENT_USER;
      aentsys:= reg.KeyExists('software\Aent Sys');
    
      alawarkey:=reg.KeyExists('software\Alawar');
      //aentsys
         if aentsys = true  then
       begin
      reg.OpenKey('software\Aent Sys\pr',true);
      reg.GetKeyNames(ListBox1.Items);
      reg.CloseKey;
      lbc:=listbox1.Items.Count;
      sProgressBar1.Max:=lbc*10;
      i:=0;
      while not (i=lbc) do
      begin
       reg.RootKey:=HKEY_CURRENT_USER;
      reg.OpenKey('software\Aent Sys\pr',true);
      reg.OpenKey(ListBox1.Items.Strings[i],true);
      reg.GetKeyNames(ListBox2.Items);
      reg.OpenKey(ListBox2.Items.Strings[0],true);
      reg.WriteInteger('Program',dw);
      sProgressBar1.Position:= sProgressBar1.Position+10;
      i:=i+1;
      listbox2.Clear;
      reg.CloseKey;
      end;
      end;
      i:=0;
      listbox2.Clear;
      listbox1.clear;
      lbc:=0;
      //alawar key
       if alawarkey = true  then
       begin
      reg.OpenKey('software\Alawar\play',true);
      reg.GetKeyNames(ListBox1.Items);
      reg.CloseKey;
      lbc:=listbox1.Items.Count;
      sProgressBar1.Max:=lbc*10;
      i:=0;
      while not (i=lbc) do
      begin
       reg.RootKey:=HKEY_CURRENT_USER;
      reg.OpenKey('software\Alawar\play',true);
      reg.OpenKey(ListBox1.Items.Strings[i]+'\trial',true);
      reg.GetKeyNames(ListBox2.Items);
      reg.OpenKey(ListBox2.Items.Strings[0],true);
      reg.WriteInteger('Program',dw);
      sProgressBar1.Position:= sProgressBar1.Position+10;
      i:=i+1;
      listbox2.Clear;
      reg.CloseKey;
      end;
      end;
    
    end;

    Заново даёт триццать минут для игры от компании Alawar))) аццкое гавно

    mistmax, 10 Июня 2010

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

    +83

    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
    function td1(text: string):string;
    const cifr: string =
    '1234567890';
    english: string =
    'NOPQRSTUVWXYZnopqrstuvwxyz'+
    'ABCDEFGHIJKLMabcdefghijklm';
    var
    count, i, a, b, h, ss:integer;
    special:string;
    errform:TForm;
    begin
    try
    application.ProcessMessages;
    special:='';
      count:=length(text);
      if count < 210 then
      begin
      errform:=CreateMessageDialog('Неверный тип кода.',mtError,[mbOK]);
      errform.ShowModal;
      exit;
      end;
      for a:=1 to count do begin
      for i:=1 to count do begin
      for h:=1 to length(english) do begin
      for b:=1 to length(cifr) do begin
      application.ProcessMessages;
      if cifr[b]=text[a] then
          begin
      ss:=ss+(count+length(cifr))+12;
      end;
      if cifr[i]=text[a] then
        begin
      ss:=ss+14;
      end;
      if cifr[a]=text[b] then
      begin
      ss:=ss+(count+length(english))+b+a;
      end;
      //***********************
      if english[b]=text[a] then
      begin
      ss:=ss*7+(count+length(cifr))+a+b;
    
      end;
      if english[i]=text[a] then
      begin
      ss:=ss+(count*4+length(english)++length(cifr))+i+a-12;
      end;
      if english[a]=text[b] then
      begin
      ss:=ss+(count*7+length(english))+a+b+14;
    
      end;
      end;
      end;
      end;
       special:=special+inttostr(ss);
      end;
       result:=special;
       except
       end;
    end;

    При просмотре данного говнокода будьте осторожны пжл. Прсомтор может вызвать ФГМ (Фимоз Головного Мозга)

    mistmax, 10 Июня 2010

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