1. PHP / Говнокод #9656

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if($this->unpriced){
                //...............  строк 30 кода
                if($this->unpriced){
                      //................ строк 10 кода
                }                
    }

    Вот такую забавную проверку нашол в старом коде. Видать, для уверенности, или скорее всего логика менялась.

    Edd, 12 Марта 2012

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

    −83

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    -(void)makeItemavAilableWithName:(NSString*) name{
        [[NSUserDefaults standardUserDefaults] setValue:@"YES" forKey:name];
    }
    
    -(BOOL)isItemAvaliableWithName:(NSString*) name{
        //item could be a chracter or a world
        return [[[NSUserDefaults standardUserDefaults] valueForKey:name]boolValue];
    }

    Вот так вот мы сохраняем булевые переменные в UserDefaults. Оригинальная орфография и пунктуация сохранены

    SevInf, 12 Марта 2012

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $uri = $_SERVER["REQUEST_URI"];
    
    // получаем урл и выбираем id
    preg_match('![?|&]p=(.*)$!',$uri,$r);
    @$_GET['p'] = $r[1];

    DarkThinker, 12 Марта 2012

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

    +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
    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
    #include <stdio.h>
    
    #define MAXLINE 1000 /* максимальная длина строки в потоке */
    
    int getline(char line[], int maxline);
    
    main()
    {
        int len; /* длина текущей строки */
        char line[MAXLINE]; /* текущая введённая строка */
    
        while((len = getline(line, MAXLINE)) != (-1))
            printf("%s", line);
            
        system("PAUSE");
        return 0;
    }
    
    /* getline: считывает строку в s, удаляет пробелы и знаки табуляции в конце строки, возвращает её длину. Удаляет полностью пустые строки */
    getline(char s[], int lim)
    {
                 int c, i;
                 
                 for(i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i)
                       s[i] = c;
                 if (c == EOF)
                    return (-1); /* конец ввода */
                 else if (c == '\n') {
                      while(s[i-1] == ' ' || s[i-1] == '\t') /* "удаление" пробелов и знаков табуляции в конце строки */
                         --i;
                      if (i > 0) { /* если строка непустая */
                         s[i] = '\n';
                         ++i;
                      }
                      s[i] = '\0';
                      return i;
                 }
    }

    Задача: убирать в конце каждой строки лишние пробелы и знаки табуляции, удалять полностью пустые строки.
    Решение: при считывании строки вида "abc_____\n" на выходе получаем массив символов "abc\n\0___" (пробелы в конце). Печатаем строки по мере поступления, профит.

    Говнокод или нормально?

    justanothernickname, 12 Марта 2012

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

    +961

    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
    private class LinkedAction
    {
        public Action<Action<bool>> Action { get; set; }
    
        public LinkedAction Next { get; set; }
    
        public void Execute()
        {
            Action(s =>
                {
                    if (s && Next != null) Next.Execute();
                });
        }
    }
    
    private static LinkedAction NewLinkedAction(LinkedAction link, Action<Action<bool>> action)
    {
        return new LinkedAction
        {
            Action = action,
            Next = link
        };
    }
    
    var action = GetCopytoTestActions(parameter)
        .Reverse()
        .Aggregate<Action<Action<bool>>, LinkedAction>(null, NewLinkedAction);
    action.Execute();

    abatishchev, 12 Марта 2012

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

    −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
    Если  ЗначениеЗаполнено(ВыслугаЛет) Тогда 
    			Запрос.УстановитьПараметр("ВыслугаЛет",     ВыслугаЛет);
    		КонецЕсли;
    		
    		Если не ЗначениеЗаполнено(ВыслугаЛет) Тогда 
    			Запрос.Текст = СтрЗаменить(Запрос.Текст,"И ПНУ.ВидРасчета <> &ВыслугаЛет","");
    			Запрос.Текст = СтрЗаменить(Запрос.Текст,"И ТабельныйЛист.ВидРасчета <> &ВыслугаЛет","");
    			Запрос.Текст = СтрЗаменить(Запрос.Текст,"И Прекращения.ВидРасчета <> &ВыслугаЛет","");
    		КонецЕсли;
    		
    		Запрос.УстановитьПараметр("Организация",    Организация);
    		Запрос.УстановитьПараметр("ПодразделениеОрганизации",  ПодразделениеОрганизации);
    		
    		Если ПодразделениеОрганизации.Пустая() Тогда
    			Запрос.Текст = СтрЗаменить(Запрос.Текст,"И Подразделение В ИЕРАРХИИ(&ПодразделениеОрганизации)","");
    			Запрос.Текст = СтрЗаменить(Запрос.Текст,"И Прекращения.ПодразделениеОрганизации = &ПодразделениеОрганизации","");
    			Запрос.Текст = СтрЗаменить(Запрос.Текст,"И ТабельныйЛист.Подразделение В ИЕРАРХИИ(&ПодразделениеОрганизации)","");
    		КонецЕсли;
    		
    		Если НЕ ЗначениеЗаполнено(ВыслугаЛет) Тогда 
    			Запрос.Текст = СтрЗаменить(Запрос.Текст,"ГДЕ
    			|	ТабельныйЛист.ВидРасчета <> &ВыслугаЛет
    			|	И","Где ");
    		КонецЕсли;

    Jivchic, 12 Марта 2012

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

    −142

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Если РучнойВводОтработанногоВремени И СТЧ.ОтработаноДней = 0 И СТЧ.ОтработаноЧасов = 0 Тогда 
    	Если СТЧ.ОтработаноДней = 0 И СТЧ.ОтработаноЧасов = 0 Тогда 
    			СТЧ.ОтработаноДней  = НачислениеИзРегистрыРасчета.ОтработаноДней;
    			СТЧ.ОтработаноЧасов = НачислениеИзРегистрыРасчета.ОтработаноЧасов;
    	КонецЕсли;	
    КонецЕсли;

    Бонд, Джеймс Бонд.

    Если СТЧ.ОтработаноДней = 0 И СТЧ.ОтработаноЧасов = 0 Тогда
    Если СТЧ.ОтработаноДней = 0 И СТЧ.ОтработаноЧасов = 0 Тогда

    Jivchic, 12 Марта 2012

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

    +106

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    private void ReferenceButton_Click(object sender, EventArgs e)
            {
                this.ContentBox.Controls.Remove(this.BooksPanel);
                this.ContentBox.Controls.Remove(this.LogoPanel);
                this.ContentBox.Controls.Remove(this.SearchPanel);
                this.ContentBox.Controls.Add(this.FAQPanel);
            }

    Удаляем старые контролы таким образом)
    Почти в 100% случаев найдется умник, который назовет любой код - говном.

    Govnisti_Diavol, 11 Марта 2012

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

    +988

    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
    #include <iostream>
    #include <windows.h>
    using namespace std;
    
    unsigned long calculateTime( int, int );
    void turnOff();
    
    int main()
    {
        // вводим кол-во часов и минут, которые надо ждать
        int hours, minutes;
        cin >> hours >> minutes;
        
        // ждем нужное время
        unsigned long timer = calculateTime( hours, minutes );
        Sleep( timer );
        
        
        turnOff();          // выключаем компьютер
        return 0;
    }
    
    // подсчет кол-во миллисекунд в указанном времени
    unsigned long calculateTime( int hours, int minutes )
    {
        unsigned long timer = 0;
        
        timer += hours * 3600000;
        timer += minutes * 60000;
        
        return timer;
    }
    
    // выключение компьютера
    void turnOff()
    {
        WinExec( "shutdown -s -t 0", SW_HIDE );
    }

    Я сделал. Что-то вроде автовыключалки для компьютера.
    Разъясните, пожалуйста, где автор неправ и почему.

    vortexx1, 11 Марта 2012

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

    +962

    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
    using System;
    
    class Program
    {
        static void Main(params String[] args)
        {
            Console.WriteLine(ost_ot_dilen(int.Parse(args[1].ToString()), int.Parse(args[2].ToString())));
            Console.Read();
        }
    
        public static int ost_ot_dilen(int a, int b)
        {
            int c = tseloch_dilen(a, b);
            int d = (b * c);
            int e = a - d;
            return e;
        }
    
        public static int tseloch_dilen(int a, int b)
        {
            double c = a / b;
            double d = Math.Floor(c);
            return int.Parse(d.ToString());
        }
    }

    Полный букет радостей (не к прошедшим ли праздикам?)
    Тут тебе и "a % b" - не, не слышал, и то же самое про целочисленное деление (обратите внимание на названия функций дИления)
    И куча бессмысленных переменных, которые можно переприсвоить, и применение ToString() к строкам, и парамс-памс-памс... наслаждайтесь.

    P.S. Его уже отчислили...

    vistefan, 11 Марта 2012

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