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

    +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
    function CopyEx(s:string; index,count:integer):string;
    var
      len,ln:integer;
    begin
      ln:=0;
      if index <1 then index:=1;
      len:=length(s);
      ln:=len-count;
      dec(ln);
      dec(len,(index+ln));
      result:=copy(s,index,len);
    end;

    Stertor, 04 Мая 2015

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

    +144

    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
    <?php
    
    $startNumber = 0;
    
    function LittlePart($BigPart, $startNumber) {
      $i = -3;
      $number = $startNumber * M_PI + ($i - 1);
      do {
        $number += M_PI;
        echo $BigPart . ' + (' . $i . ') = ' . number_format($number, 2, ',', ' ') . PHP_EOL;
        $i++;
      } while ($i <= 3);
    }
    
    
    function MidPart($BigPart, $startNumber) {
      $i = -3;
      $number = $startNumber * M_PI + ($i - 1);
      do {
        $number += M_PI;
        LittlePart ($BigPart . ' + (' . $i . ')·π', $number);
        $i++;
      } while ($i <= 3);
    }
    
    
    function QuadradPart($BigPart, $startNumber) {
      $i = -3;
      $number = $startNumber * M_PI + ($i - 1);
      do {
        $number += M_PI;
        MidPart ($BigPart . ' + (' . $i . ')·π²', $number);
        $i++;
      } while ($i <= 3);
    }
    
    function CubePart($BigPart, $startNumber) {
      $i = -3;
      $number = $startNumber * M_PI + ($i - 1);
      do {
        $number += M_PI;
        QuadradPart ($BigPart . '(' . $i . ')·π³', $number);
        $i++;
      } while ($i <= 3);
    }
    
    
    CubePart('', 0);

    Система счисления по основанию π. Пока с целыми числами.

    http://ideone.com/EUYEKA

    inkanus-gray, 03 Мая 2015

    Комментарии (24)
  3. JavaScript / Говнокод #18109

    +142

    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
    function num_to_sxg($n) {
     $s = "";
     $m = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ_abcdefghijkmnopqrstuvwxyz";
     if ($n===undefined || $n===0) { return 0; }
     while ($n>0) {
       $d = $n % 60;
       $s = strcat($m[$d],$s);
       $n = ($n-$d)/60;
     }
     return $s;
    }
    
    function num_to_sxgf($n, $f) {
     $s = num_to_sxg($n);
     if ($f===undefined) { 
       $f=1; 
     }
     $f -= strlen($s);
     while ($f > 0) { 
       $s = strcat("0",$s); 
       --$f; 
     }
     return $s;
    }
    
    function sxg_to_num($s) {
     $n = 0;
     $j = strlen($s);
     for ($i=0;$i<$j;$i++) { // iterate from first to last char of $s
       $c = ord($s[$i]); //  put current ASCII of char into $c  
       if ($c>=48 && $c<=57) { $c=$c-48; }
       else if ($c>=65 && $c<=72) { $c-=55; }
       else if ($c==73 || $c==108) { $c=1; } // typo capital I, lowercase l to 1
       else if ($c>=74 && $c<=78) { $c-=56; }
       else if ($c==79) { $c=0; } // error correct typo capital O to 0
       else if ($c>=80 && $c<=90) { $c-=57; }
       else if ($c==95) { $c=34; } // underscore
       else if ($c>=97 && $c<=107) { $c-=62; }
       else if ($c>=109 && $c<=122) { $c-=63; }
       else { $c = 0; } // treat all other noise as 0
       $n = 60*$n + $c;
     }
     return $n;
    }

    Угадайте, какой это язык и что пил автор.

    http://ideone.com/87cVrr

    http://ideone.com/Z8j7ve

    solnze_dar, 02 Мая 2015

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

    +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
    // Exported Functions
    #ifdef __cplusplus
    extern "C" {
    #endif
    
        ...
    
    DLLEXPORT FPDF_DEST STDCALL FPDF_GetNamedDest(FPDF_DOCUMENT document, int index, void* buffer, long& buflen);
    
    
    #ifdef __cplusplus
    };
    #endif

    https://pdfium.googlesource.com/pdfium/+/master/fpdfsdk/include/fpdfview.h

    Intended to be C-compatible source.

    vasvas, 02 Мая 2015

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

    +148

    1. 1
    2. 2
    //G++ now allows typename in a template template parameter.
        template<template<typename> typename X> struct D; // xzibit.jpeg

    Пятый gcc вышел. Больше крестоблядства за те же деньги.
    https://gcc.gnu.org/gcc-5/changes.html

    3.14159265, 02 Мая 2015

    Комментарии (2)
  6. Java / Говнокод #18106

    +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
    MyNumber(String n) {
           try {
               for (int i = 0; i < n.length(); i++) {  
                    numbers[i] = charToInt(n.charAt(i));
               }
           } catch (InvalidArgumentException e) {
               e.printStackTrace();
           }
        }
    
        public int charToInt(char c) throws InvalidArgumentException{
            char[] digits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
    
            for (int i = 0; i < 10; i++) {
                if (digits[i] == c) return i;
            }
    
            throw new InvalidArgumentException(null);
        }

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

    Govnocoder#0xFF, 01 Мая 2015

    Комментарии (25)
  7. JavaScript / Говнокод #18105

    +144

    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
    class Select
      constructor: ->
        Select = this
    
    
    ###
    
    var Select;
    
    Select = (function() {
      function Select() {
        Select = this;
      }
    
      return Select;
    
    })();

    код на coffeescript. до сих пор годаю - зачем?

    frozfox, 01 Мая 2015

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

    −401

    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
    - (void) doSomething {
        <...>
        if (error.code != NSURLErrorNotConnectedToInternet && error.code != NSURLErrorCancelled && error.code != NSURLErrorTimedOut) {
            @synchronized (self.failedURLs) {
                
                {
                    // javascript-style...
                    char* xcEnv = getenv("XcodeColors");
                    BOOL useColors = (xcEnv && !strcmp(xcEnv, "YES"));
                    NSString *colorWrapper;
                    if (useColors)
                        colorWrapper = @"\033[fg0,153,0;%@\033[;";
                    else
                        colorWrapper = @"%@";
    
                    void (^colorLog)(NSString *format, ...) = ^(NSString *format, ...)
                    {
                        va_list args;
                        va_start(args, format);
                        NSLog(colorWrapper, [[NSString alloc] initWithFormat:format arguments:args]);
                        va_end(args);
                    };
                    
                    colorLog(@"SDWebImageManager download failed");
                    colorLog(@"\turl: %@", url.absoluteString);
                    colorLog(@"\terror: %@", [error description]);
                }
                
                
                [self.failedURLs addObject:url];
            }
        }
        <...>
    }

    Когда очень хочется извратиться

    krypt, 01 Мая 2015

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

    +141

    1. 1
    $time = htmlspecialchars(addslashes(time()));

    Паранойя...

    SToRm1k, 01 Мая 2015

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

    +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
    $citys = $this->modelsManager->executeQuery("SELECT * FROM city");
    		$filters = $this->modelsManager->executeQuery("SELECT * FROM carfilter");
    		
    		$partners = $this->modelsManager->executeQuery("SELECT id,city_id,email FROM Partner");
    		$to = array();
    		
    		foreach($partners as $partner){								//Пробегаем по всем партнёрам
    
    			$city_config = unserialize($partner->city_id); 			//берём конфиги по городам	
    
    				
    				if(in_array($city, $city_config)){					//если партнёр работает в этом городе
    	
    					foreach($filters as $filter){					//Проходимся по фильтрам
    						if($partner->id == $filter->partner){		//Находим фильтр, принадлежащий партнёру					
    							if ($filter->consern_id == 1 && $filter->model_id == 1){		//если конфиг все модели/марки то 
    								$to[] = array('email'=>$partner->email);					//сразу записываем в список рассылки
    							}else{
    								if($filter->consern_id == $this->request->getPost("consern", "int") && $filter->model_id == $this->request->getPost("model_id", "int")){    //иначе если данные из заявки соответствуют фильтру, то
    									$to[] = array('email'=>$partner->email);	//заносим его в список рассылок.	
    								}
    								
    							}
    														
    						}
    						
    					}
    					
    	
    				}
    	
    		}

    Реализация фильтра от новичка.
    Сначала у него вообще был запрос к БД в цикле по $filters, тем самым он генерировал за раз больше 5к запросов :\

    romaz, 01 Мая 2015

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