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

    +118

    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
    Функция ext служит для формирования расширения файла с ЭС. Еe алгоритм основан на логике работы программы АРМ КБР. 
    В зависимости от порядкового номера файла ЭС вырабатывается расширение к этому файлу в диапазоне от «001» до «zzz». В листинге приведены построчные комментарии.
    
    Листинг 14-Функция ext
    function ext(num integer): string;
    var
    i : integer;
    s1. s2. s3 : char: //условно разделим расширение на три части - гри символа; 
    // расширение представляет собой конкатенацию s1+s2-s3 
    begin
    s1:='0'; s2:='0'; s3:='0'; изначально 000
    for i := 0 to num-1 do begin //счетчик от 0 до порядкового номера файла
     if(s3 in ['0'..'8']) then s3:=char(ord(s3)+1) //увеличиваем s3
     else if(s3='9') then s3:='a' // если s3 достигло 9 то заменяем символом 'а'
     else if(s3 in ['a'..'y']) then s3:=char(ord(s3)+1) // если s3 символ - берем следующий
     else begin //если s3 достигло значения "/'
      s3:='0'; //обнуляем s3
      if(s2 in ['0'..'8']) then s2:=char(ord(s2)+1) //увеличиваем s2
      else if(s2='9') then s2:='a' // если s2 достигло 9 то заменяем символом 'a'
      else if (s2 in ['a'..'y']) ihen s2:=char(ord(s2) + 1) //если s2 символ - берем следующий
      else begin // если s2 достигло значения z 
       s2:='0'; // обнуляем s2
       if (s1 in ['0'..'B']) then s1:=char(ord(s1)+1) //увеличиваем s1 else if (s1 ='9') then s1:='a' //если s1 достигло 9 то заменяем символом 'а'
       else if(s1 in ['a'..'y']) then s1:=char(ord(s1)+1) //если s2 символ - берем следующий
      end;
     end;
    end;
    result:=s1+s2+s3; //возвращаем конкатенацию сформированных частей расширения
    end;

    Пару дней назад моему начальнику принесли на рецензию магистерскую диссертацию специалиста по информационным технологиям. Ржали всем отделом! Магистерская листов так на 170. Я предлагаю Вашему вниманию одну функцию будущего специалиста-программиста :-)
    Кстати, разрабатывает он информационную систему для электронного документооборота внутри банка (по его словам даже уже внедрил), при этом большая часть кода на Паскале и также есть модуль для вывода различных диаграмм (в количестве 2х штук) на Дельфи.
    К слову, традиционно магистры в нашем университете претендуют на оценку "отлично".

    g00d, 14 Апреля 2011

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

    +173

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    echo("
    <div id='navigation'>
    	<center>
    		<ul>
    			<li><a href='http://URL' id='homelink' onmouseover=" . '"Enlarge(' ."'#homelink')" . '"'. " onmouseout='" . 'Normalize("#homelink")' . "'>Домой</a></li>
    			<li><a href='#' id='aboutlink' onmouseover=" . '"Enlarge(' ."'#aboutlink')" . '"'. " onmouseout='" . 'Normalize("#aboutlink")' . "'>О нас</a></li>
    			<li><a href='http://URL' id='bdlink' onmouseover=" . '"Enlarge(' ."'#bdlink')" . '"'. " onmouseout='" . 'Normalize("#bdlink")' . "'>База знаний</a></li>
    			<li><a href='#' id='chatlink' onmouseover=" . '"Enlarge(' ."'#chatlink')" . '"'. " onmouseout='" . 'Normalize("#chatlink")' . "'>Общение</a></li>");

    Вот так вот справляемся с двумя видами кавычек.

    RaZeR, 14 Апреля 2011

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $f = true;
    
    $arOrder = CSaleOrder::GetByID($id_order);
    $f = $f && ($arOrder ? true : false);
    
    if ($f)	$f = $f && CSaleOrder::StatusOrder($id_order,$status);
    if ($f)	$f = $f && CSaleOrder::DeliverOrder($id_order,"Y");
    if ($f)	$f = $f && CSaleOrder::PayOrder($id_order, "Y", true, true);

    elw00d, 14 Апреля 2011

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

    +117

    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
    WorksheetRow row = new WorksheetRow();
    row.Cells.Add("");
    
    // ispublished
    row.Cells.Add(point.IsPublished ? "+" : "");
    
    // id superregion
    row.Cells.Add(point.Town.Region.SuperRegion.Id.ToString());
    
    // name superregion
    if (cleanupTags)
    	row.Cells.Add(CleanXMLTags(point.Town.Region.SuperRegion.Name));
    else row.Cells.Add(point.Town.Region.SuperRegion.Name);
    
    // id rregion
    row.Cells.Add(point.Town.Region.Id.ToString());
    
    // name region
    if (cleanupTags)
    	row.Cells.Add(CleanXMLTags(point.Town.Region.DefaultText.Name));
    else row.Cells.Add(point.Town.Region.DefaultText.Name);
    
    ...
    
    StringBuilder subwayIDs = new StringBuilder("");
    StringBuilder subwayNames = new StringBuilder("");
    foreach (Subway subway in point.Subways)
    {
    	subwayIDs.Append(subway.Id).Append(", ");
    	subwayNames.Append(subway.DisplayName).Append(", ");
    }
    string sIDs = subwayIDs.ToString();
    if (sIDs.Length > 0) sIDs = sIDs.Substring(0, sIDs.Length - 2);
    
    string sNames = subwayNames.ToString();
    if (sNames.Length > 0) sNames = sNames.Substring(0, sNames.Length - 2);

    Это 10% от метода. Там все в том же духе.

    ShurikEv, 14 Апреля 2011

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

    +146

    1. 1
    <br style="font-size: 19.5px; line-height: 28.5px;" />

    "Шоколадная" верстка

    SunnyMagadan, 14 Апреля 2011

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

    +139

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    For i:=1 to 70 do
    Begin
             a[i]:=random(9);
             if a[i] div 2 = 0 then
                  a[i]:=a[i]
             else begin
                   a[i]:=0;
                   i:=i-1;
              end;
    end;

    Одноклассница поразила.
    Задача - заполнить массив из 70 элементов чётными числами [1..8]
    Над блонидинками конечно неприлично шутить, но...
    Чем был хуже простой a[i]:=random(5)*2;

    Falcon, 14 Апреля 2011

    Комментарии (23)
  7. Си / Говнокод #6349

    +147

    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
    void
    syslog(int pri, const char *fmt, ...)
    {
    	va_list ap;
    
    	va_start(ap, fmt);
    	vsyslog(pri, fmt, ap);
    	va_end(ap);
    }
    ......................................
    void
    vsyslog(int pri, const char *fmt, va_list ap)
    {
    	vsyslog_r(pri, &sdata, fmt, ap);
    }
    ....................................
    void
    vsyslog_r(int pri, struct syslog_data *data, const char *fmt, va_list ap)
    {
    	int cnt;
    	char ch, *p, *t;
    	time_t now;
    	int fd, saved_errno, error;
    #define	TBUF_LEN	2048
    #define	FMT_LEN		1024
    	char *stdp = NULL, tbuf[TBUF_LEN], fmt_cpy[FMT_LEN];
    	int tbuf_left, fmt_left, prlen;
    
    #define	INTERNALLOG	LOG_ERR|LOG_CONS|LOG_PERROR|LOG_PID
    	/* Check for invalid bits. */
    	if (pri & ~(LOG_PRIMASK|LOG_FACMASK)) {
    		if (data == &sdata) {
    			syslog(INTERNALLOG,
    			    "syslog: unknown facility/priority: %x", pri);
    		} else {
    			syslog_r(INTERNALLOG, data,
    			    "syslog_r: unknown facility/priority: %x", pri);
    		}
    		pri &= LOG_PRIMASK|LOG_FACMASK;
    	}
    .......................
    }
    ......................

    Из исходников Bioninc - Android libc.
    В реализации сислога, в случае ошибки, вызывается syslog

    elenbert, 14 Апреля 2011

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

    +161

    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
    //main.cpp
    #include "head.h"
    int main()
    {
    //fcii.cpp
    #include "head.h"
    void odin (vector<Zapis> &mas)
    {
    Zapis buf;
    cout<<"Введите номер УДК: ";
    cin>>buf.id;
    cout<<"Введите фамилию и инициалы автора: ";
    cin>>buf.fio;
    cout<<"Введите название книги: ";
    cin>>buf.nazv;
    cout<<"Введите год издания: ";
    cin>>buf.god;
    cout<<"Введите количество экземпляров: ";
    cin>>buf.kol;
    mas.resize(mas.size()+1,buf);
    vivod (mas);
    }
    void dva (vector<Zapis> &mas)
    {
    char udk[4];
    cout<<"Введите УДК книги, которую необходимо удалить: ";
    cin>>udk;
    int flag=1;
    int k=0;
    for (vector<Zapis>::iterator i=mas.begin();i!=mas.end();i++)
    {
    flag=1;
    if (strlen(udk)==strlen(mas[k].id))
    for (int j=0;udk[j]!=0;j++)
    if (udk[j]!=mas[k].id[j])
    flag=0;
    if (flag==1)
    {
    mas.erase(i);
    flag=-1;
    break;
    }
    k++;
    }
    
    if (flag!=-1)
    {
    cout<<endl<<"Книги с данным УДК не существует"<<endl;
    }
    else vivod(mas);
    }
    void tri(vector<Zapis> &mas)
    {
    vector<int> mas_buf(mas.size());
    for (int i=0;i<mas.size();i++)
    mas_buf[i]=mas[i].god;
    sort(mas_buf.begin(),mas_buf.end()) ;
    for (int i=0;i<mas.size();i++)
    mas[i].god=mas_buf[i];
    vivod(mas);
    }
    int zapros (vector<Zapis> &mas)
    {
    int otvet;
    cout<<endl<<"Если вы хотите добавить данные о книгах - нажмите 1;"<<endl;
    cout<<"Если вы хотите удалить данные о списываемых книгах - нажмите 2;"<<endl;
    cout<<"Если вы хотите упорядочить книги по годам издания - нажмите 3;"<<endl;
    cout<<"Если вы хотите завершить работу программы - нажмите 0."<<endl;
    cin>>otvet;
    
    switch (otvet)
    {
    case 0: {return 0;}
    case 1: {
    odin(mas);
    zapros(mas);break;
    }

    Взято отсюда: http://programmersforum.ru/forumdisplay.php?f=14

    elenbert, 14 Апреля 2011

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

    +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
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    Ckey::Ckey(const String& name, const String& suffix1, const String& suffix2, const String& suffix3)
    {
    	ASSERT(name.Size(), "Key with emty name are invalid!");
    
    	if (!name.Size())
    	{
    		return;
    	}
    	PushBack(name);
    
    	if (!suffix1.Size())
    	{
    		return;
    	}
    	PushBack(suffix1);
    
    	if (!suffix2.Size())
    	{
    		return;
    	}
    	PushBack(suffix2);
    
    	if (!suffix3.Size())
    	{
    		return;
    	}
    	PushBack(suffix3);
    }

    Ну просто замечательный конструктор класса.
    Собственно сам класс унаследован (public-ом, причем) от местной реализации класса vector, отсюда загадочные методы PushBack.
    А String - это не менее замечательная, местная, реализация строк.

    elenbert, 14 Апреля 2011

    Комментарии (10)
  10. JavaScript / Говнокод #6346

    +158

    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
    function ShowContent(divId, ajaxIndex, url) {
                if (AjaxObjects[ajaxIndex].response != "ok") 
                {
                    alert("Неверный пароль");
                    /*
                    document.getElementById(divId).innerHTML = AjaxObjects[ajaxIndex].response;
                    if (enableCache) {
                        jsCache[url] = AjaxObjects[ajaxIndex].response;
                    }*/
                    AjaxObjects[ajaxIndex] = false;
                }
                else
                    window.location.href= "Default.aspx";
            }

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

    BlackMonolit, 14 Апреля 2011

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