1. C# / Говнокод #19026

    +2

    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
    #include <fstream>
    #include <iostream>
    #include <windows.h>
    
    using namespace std;
    void main()
    	ifstream in("D:\\MetATetratronicLessonsABberation\\LibraryAbsoluteBallistikAcoustic_1\\Right.txt");//Даётся файл, содержащий единицы и нули, 1 - человек есть, 0 - человека нет
    	in >> s1;
    	cout << "Содержимое файла Right.txt: " << endl << s1 << endl;
    	int CountRDoor = 0;
    			CountRDoor++;
    	}
    	cout << "Кол-во человек, прошедших через правую дверь = " << CountRDoor << endl;
    	cout << "________________________________________________________________________________"; //< Для более лёгкой навигации
      //printf("%c", 7);
    	cout << endl;
    	char s2[4096];
    	ifstream in2("D:\\MetATetratronicLessonsABberation\\LibraryAbsoluteBallistikAcoustic_1\\Left.txt");
    	in2 >> s2;
    	in2.close();
    	cout << "Содержимое файла Left.txt: " << endl << s2 << endl;
    	int CountLDoor = 0;
    	int j = 1;
    	while (j != 4095)
    	{
    		if (s2[j] < s2[j + 1])
    			CountLDoor++;
    		j++;
    	}
    	cout << "Кол-во человек, прошедших через левую дверь = " << CountLDoor << endl;
    	cout << "________________________________________________________________________________";
    	//printf("%c", 7);
    	cout << endl;
    	char s3[4096];
    	ifstream in3("D:\\MetATetratronicLessonsABberation\\LibraryAbsoluteBallistikAcoustic_1\\Found.txt");
    	in3 >> s3;
    	in3.close();
    	cout << "Содержимое файла Found.txt: " << endl << s3 << endl;
    	int CountFound = 0;
    	int k = 1;
    	while (k != 4095)
    	{
    		if (s3[k] > s3[k + 1])
    			CountFound++;
    		k++;
    	}
    	cout << "Общее кол-во человек = " << CountFound << endl << "\a";
    	cout << "________________________________________________________________________________";
    	system("pause");
    }

    Универ, 1-й курс. Необходимо было написать программу, на вход которой даётся 2 файла, содержащих 1 и 0, и 1 файл, содержащий диапазон чисел от 1 до 9, показывающих кол-во человек в кадре абстрактной камеры одновременно. Местоположение каждого файла строго определено. И да, не пытайтесь вдуматься, что обозначают названия папок в путях, так как смысла там никакого нет)

    Z1VR, 14 Ноября 2015

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

    +5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    <?php
    
    // ...
    
    if (isset($cache[$domain_id]) && isset($cache[$domain_id]) && !empty($cache[$domain_id])) {
        return $cache[$domain_id];
     }
    
    // ... 
    ?>

    Код для самых неуверенных и параноиков, кто сомневается в работе PHP. Ну или если вы неправильно разгоните свой процессор, и он начнет выдавать неправильные результаты операций.

    Расшифровка следующая:
    (если есть такой) и (если такой точно есть прям) и (он как бы есть на самом деле)

    jazinbazin, 13 Ноября 2015

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

    +6

    1. 1
    2. 2
    3. 3
    4. 4
    $uri = isset($endpoint['path']) ? $endpoint['path'] : null;
            if (!isset ($uri)) {
                $uri = "/";
            }

    вместо $uri = isset($endpoint['path']) ? $endpoint['path'] : '/';

    snayps, 13 Ноября 2015

    Комментарии (39)
  4. PHP / Говнокод #19022

    +4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    private function urlEncoder($val)
        {
            return str_replace('%7E', '~', rawurlencode($val));
        }  
      
        private function getParametersAsString(array $data)
        {
            $params = [];
            foreach ($data as $key => $val)
                $params[] = $key .'='. $this->urlEncoder($val);
            return implode('&', $params);
        }

    методы urlEncoder и getParametersAsString кривая замена стандартным функциям urlencode и http_build_query

    snayps, 13 Ноября 2015

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

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    foreach($this->styles as $media=>$style){
    	foreach($this->styles as $path){
    		$output .= '<link type="text/css" href="'.$path.'" rel="stylesheet" media="'.$media.'" />'."\n";
    	}
    }

    лолшто?

    gorky, 13 Ноября 2015

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

    +2

    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
    class/View.php
    
    <?php
    
    class View {
    
    ...
    
      public function compile() {
        $view_src = file_get_contents(VIEW_SRC_PATH . $this->full_name . EXT);
        // echo
        $view_src = preg_replace("/\{\{(\w+)\}\}/", "<?php echo \$$1; ?>", $view_src);
        $view_src = preg_replace("/\{\{(\w+)\|(\w+)\}\}/", "<?php echo \$$1['$2']; ?>", $view_src);
        $view_src = preg_replace("/\{\{(\w+)\.(\w+)\}\}/", "<?php echo \$$1->$2; ?>", $view_src);
        // foreach
        $view_src = preg_replace("/<!--each\s+(\w+)\s+in\s+(\w+)-->/", "<?php foreach(\$$2 as \$$1): ?>", $view_src);
        $view_src = preg_replace("/<!--each\s+(\w+)\s+in\s+(\w+)\|(\w+)-->/", "<?php foreach(\$$2['$3'] as \$$1): ?>", $view_src);
        $view_src = preg_replace("/<!--each\s+(\w+)\s+in\s+(\w+)\.(\w+)-->/", "<?php foreach(\$$2->$3 as \$$1): ?>", $view_src);
        $view_src = preg_replace("/<!--each\s+(\w+)\s+(\w+)\s+in\s+(\w+)\.(\w+)-->/", "<?php foreach(\$$3->$4 as \$$1 => \$$2): ?>", $view_src);
        $view_src = preg_replace("/<!--each\s+(\w+)\s+(\w+)\s+in\s+(\w+)-->/", "<?php foreach(\$$3 as \$$1 => \$$2): ?>", $view_src);
        $view_src = preg_replace("/<!--each-->/", "<?php endforeach; ?>", $view_src);
        // switch
        $view_src = preg_replace("/<!--select\s+(\w+)\.(\w+)-->\s*<!--when\s+(.+)-->/", "<?php switch(\$$1->$2): case $3: ?>", $view_src);
        $view_src = preg_replace("/<!--when\s+(.+)-->/", "<?php break; ?><?php case $1: ?>", $view_src);
        $view_src = preg_replace("/<!--otherwise-->/", "<?php break; ?><?php default: ?>", $view_src);
        $view_src = preg_replace("/<!--select-->/", "<?php endswitch; ?>", $view_src);
        if (!file_exists(VIEW_PATH . $this->path)) mkdir(VIEW_PATH . $this->path, 0777, true);
        $fp = fopen(VIEW_PATH . $this->full_name . EXT, 'w');
        fwrite($fp, $view_src);
        fclose($fp);
      }
    
    ...
    
    ?>
    
    view-src/ShadeType.php
    
    {{type.name}}
    <!--each k d in type.diameters-->
    <h1>{{k}}</h1>
      <!--each s in d-->
      <div>
        {{s.bottom}} × {{s.top}} × {{s.height}}
        <div>
          <!--select s.mode-->
          <!--when 'u'-->(на ушках)
          <!--when 'p'-->(только подвес)
          <!--otherwise--> 
          <!--select-->
        </div>
      </div>
      <!--each-->
    <!--each-->
    
    view/ShadeType.php
    
    <?php echo $type->name; ?>
    <?php foreach($type->diameters as $k => $d): ?>
    <h1><?php echo $k; ?></h1>
      <?php foreach($d as $s): ?>
      <div>
        <?php echo $s->bottom; ?> × <?php echo $s->top; ?> × <?php echo $s->height; ?>
        <div>
          <?php switch($s->mode): case 'u': ?>(на ушках)
          <?php break; ?><?php case 'p': ?>(только подвес)
          <?php break; ?><?php default: ?> 
          <?php endswitch; ?>
        </div>
      </div>
      <?php endforeach; ?>
    <?php endforeach; ?>

    На хостинге PHP 5.2, а старые версии фреймворков не хочется. Решил запилить свой.

    kgm-rj, 13 Ноября 2015

    Комментарии (149)
  7. PHP / Говнокод #19018

    +13

    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
    <?php
      $lines = file('quest.txt');
      if($_POST['Quest'] == "") {
        echo "<HTML>";
        echo "<HEAD>";
        echo "<TITLE>Тестер</TITLE>";
        echo "<script language=JavaScript type=text/javascript>";
        echo "<!-- " . "\n";
        echo "var differ = 90*60;";
        echo "function timer() {";
        echo "var hours, minutes, seconds;";
        echo "differ = differ - 1;";
        echo "document.forms['vopros'].TimeLeft.value=differ;";
        echo "hours = Math.floor(differ/(60*60));";
        echo "hours = (hours >= 60) ? hours%60 : hours;";
        echo "hours = (hours < 10) ? \"0\" + hours : hours;";
        echo "minutes = Math.floor(differ/(60));";
        echo "minutes = (minutes >= 60) ? minutes%60 : minutes;";
        echo "minutes = (minutes < 10) ? \"0\" + minutes : minutes;";
        echo "seconds = differ;";
        echo "seconds = (seconds >= 60) ? seconds%60 : seconds;";
        echo "seconds = (seconds < 10) ? \"0\" + seconds : seconds;";
        echo "var strDate =  hours + \":\" + minutes + \":\" + seconds;";
        echo "document.forms['timerForm'].timerBox.value=strDate;";
        echo "if (differ<=0) {";
        echo "  document.forms['vopros'].Quest.value=100;";
        echo "  vopros.submit();";
    ... (и так далее)

    Отличный кодец из дипломной работы студента!

    RigFox, 13 Ноября 2015

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

    +6

    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
    #include "stdafx.h"
    #include "hackery.h"
    #include <cstdint>
    #include <windows.h>
    
    
    /*XXX*/
    unsigned char udiv128Data[] =
    {
      0x48, 0x89, 0xD0, // mov rax,rdx
      0x48, 0x89, 0xCA, // mov rdx,rcx
      0x49, 0xF7, 0xF0, // div r8
      0x49, 0x89, 0x11, // mov [r9],rdx
      0xC3              // ret
    };
    
    /*XXX*/
    unsigned char sdiv128Data[] =
    {
      0x48, 0x89, 0xD0, // mov rax,rdx
      0x48, 0x89, 0xCA, // mov rdx,rcx
      0x49, 0xF7, 0xF8, // idiv r8
      0x49, 0x89, 0x11, // mov [r9],rdx
      0xC3              // ret
    };
    
    unsigned __int64(__fastcall *udiv128)(unsigned __int64 numhi, unsigned __int64 numlo, unsigned __int64 den, unsigned __int64* rem);
    
    __int64(__fastcall *sdiv128)(__int64 numhi, __int64 numlo, __int64 den, __int64* rem);
    
    namespace {
    struct Q {
      Q() {
        /*XXX*/
        udiv128 = reinterpret_cast<unsigned __int64(__fastcall *)(unsigned __int64, unsigned __int64, unsigned __int64, unsigned __int64*)>(&udiv128Data[0]);
        /*XXX*/
        sdiv128 = reinterpret_cast<__int64(__fastcall *)(__int64, __int64, __int64, __int64*)>(&sdiv128Data[0]);
        /*XXX*/
        DWORD dummy;
        /*XXX*/
        VirtualProtect(udiv128Data, sizeof(udiv128Data), PAGE_EXECUTE_READWRITE, &dummy);
        /*XXX*/
        VirtualProtect(sdiv128Data, sizeof(sdiv128Data), PAGE_EXECUTE_READWRITE, &dummy);
      }
    } q;
    }

    Вот такая вот загогулина получилась по причине того что в 64-х битной Вижуал Студии нет встроенного асма, нет интринсика для простой асмовой команды, но мне вот надо именно полное деление 128-битного числа на 64-х битное именно с остатком и мне совершенно фиолетово на то что Майкрософт думает на тему вредности команды DIV и заменимости деления умножением на обратное. Да, и мне влом усложнять структуру проекта и линковать какие-то символы с внешнего асма.

    MinorThreat, 12 Ноября 2015

    Комментарии (96)
  9. JavaScript / Говнокод #19014

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $(window).on('load', function () {
            var date = new Date();
            day = date.getDate();
            day = (parseInt(day, 10) < 10) ? ('0' + day) : (day);
            $('[name = "PROPERTY[15][0]"]').val(day + '.' + (date.getMonth() + 1) + '.' + date.getFullYear() + ' ' + date.getHours() + ':' + (date.getMinutes() + 10) + ':00');
        });

    15:69 замечательное время!

    akanit, 12 Ноября 2015

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

    −92

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

    И так далее на 122 строки.

    HomoAlbus, 12 Ноября 2015

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