singlepost

Смешные/абсурдные куски кода << На главную или назад  

Давайте делиться разными смешными/абсурдными фрагментами, обнаруженными в коде (своем|коллег|однокурсников и т.д.)
Вот например
Задача: есть квадратная матрица, все элементы главной диагонали нужно заполнить нулями
Реализация одного из моих однокурсников:
for i:=1 to n do
for j:=1 to n do
if i=j then matrix[i,j]:=0;

64 ответов в теме “Смешные/абсурдные куски кода”

  1. 64
    Иванушка Дурачок ответил:

    жжоте

  2. 63
    Кирилл Быков ответил:

    Андрей Куликов, не понял вопроса. Как ваш вопрос по русски будет звучать?

  3. 62
    Андрей Куликов ответил:

    Это типа чтобы убрать очередной нолик в цикле и отрапортовать о крутых оптимизациях, ускоривших лаги на порядок? ))

  4. 61
    Алексей Поляков ответил:

    function Lag(x,y)
    {
    for(var i=0; i<x; i++)
    {
    for(var n=0;n<y;n++)
    {
    Lag(i,n)
    }
    }
    }
    Lag(1000,1000)

  5. 60
    Сергей Фадеев ответил:

    int sum(int a, int b, int l, int r)
    {
    for(int s=l;s<r;s++)
    if(s==a+b)
    return s;
    }
    // l и r – границы входа

  6. 59
    Александр Сапрыкин ответил:

    самое что интересное последние 2 условия могут выполниться

  7. 58
    Ваня Яни ответил:

    тоже с БОРа:
    string iff(bool f)
    {
    switch(f)
    {
    case 0:
    return "false";
    break;
    case 1:
    return "true";
    break;
    case 2:
    return "Хуясе О_о";
    break;
    default:
    return "Ненене, Дэвид Блэйн, ненене!!";
    }
    }

  8. 57
    Павел Иванов ответил:

    из баша, для многих баян, но мне кажется стоить добавить ибо в тему
    if(x==1)
    if(x==1)
    if(x==1)
    if(x==1)
    if(x==1)
    if(x==1)
    if(x==1)
    x=2;
    семь раз проверь, один раз присвой!

  9. 56
    Олег Торонов ответил:

    while(a != 1){
    a = 1;
    }
    При мне этот цикл пробегал 4 раза.
    Flash IDE.
    Полдня убил, пока нашел глюк с присваиванием.
    Вылечилось перезагрузкой компа.

  10. 55
    Кирилл Быков ответил:

    Да. Тем более двоеточие в конце ставят.

  11. 54
    Андрей Куликов ответил:

    Это не код, а бред.

  12. 53
    Серега Решетникъ ответил:

    есть еще хороший код— format:c;

  13. 52
    Андрей Куликов ответил:

    Седня накопал в Java исодниках очередную порцию индокода. Как все же некоторые люди любят усложнять себе жизнь в логических условиях:

    new Boolean(status > 0 ? true : false);
    Весь монстр заменяется просто на status > 0

    Или из той же оперы:
    if (smallExpression) {
    return true;
    } else {
    return false;
    }
    =)

  14. 51
    Юрий Тихомиров ответил:

    If strI = Nothing Then
    strI = "Nothing"
    End If

    Сам придумал)))

  15. 50
    Василий Иванов ответил:

    :) от нашёл: face="Verdana, Arial, Helvetica,:)

  16. 49
    Сергей Добрынин ответил:

    Про простые числа – круть. На олимпиадах черти такие штуки вытворяют – закачаешься!

  17. 48
    Паша Галашин ответил:

    у меня знакомый решал задачу вывода простого числа по его номеру. номер мог быть <=15000
    ну, понятно, традиционный способ не укладывался в отведенные 2 секунды(дело было на олимпиаде)
    так он написал отдельную прогу которая выводила в файл первые 15000 простых чисел а дальше копипастом эти числа засунул в константы в программе.
    только теперь его программа не прокатила из-за ограничения на длину кода. поэтому он каждое число сначала переводил в 64ричную систему счисления, а потом в программе обратно в десятичную, вот так))

  18. 47
    Дмитрий Гайдамович ответил:

    Ну почти DSL:
    Yes = false;
    dialogChoice();
    if (!Yes) return;
    loadShow();

  19. 46
    Дмитрий Гайдамович ответил:

    Хит-парад продолжает явный строительный блок для HTML:
    function NumName(attr,mass,begin)
    {
    return (begin ? "<" :"</") +mass[attr].Name+">";
    }

  20. 45
    Дмитрий Гайдамович ответил:

    Задачка на массивы:
    function RetrMonth(str){
    if(str.indexOf("янв") != -1) return 1;
    if(str.indexOf("фев") != -1) return 2;
    if(str.indexOf("мар") != -1) return 3;
    if(str.indexOf("апр") != -1) return 4;
    if(str.indexOf("май") != -1) return 5;
    if(str.indexOf("мая") != -1) return 5;
    if(str.indexOf("июн") != -1) return 6;
    if(str.indexOf("июл") != -1) return 7;
    if(str.indexOf("авг") != -1) return 8;
    if(str.indexOf("сен") != -1) return 9;
    if(str.indexOf("окт") != -1) return 10;
    if(str.indexOf("ноя") != -1) return 11;
    if(str.indexOf("дек") != -1) return 12;
    return 0;
    }

  21. 44
    Дмитрий Гайдамович ответил:

    А вот тоже, просто и со вкусом:
    function F2(n)
    {
    var res = n + ' ';
    for (; res.length < 3; ){
    res = '0' + res;
    }
    return res.substring(0, 2);
    }

  22. 43
    Дмитрий Гайдамович ответил:

    Порадовало:
    function zamO(str1, str2) {
    return str1.substring(0, str1.length – 1) + str2;
    }

  23. 42
    Дмитрий Гайдамович ответил:

    Небольшая понятная функция:
    function ActionB2u(){
    Yes=false;
    dlg.dispose();
    return true;
    }

  24. 41
    Максим Двойнишников ответил:

    На республике по программерству чувак решал задачу массивом констант (всего случаев 10^9). В код сделал где-то до 8000000… Главный прикол в том, что массив констант делался ПРИСВАИВАНИЕМ!
    Зато хоть уложился в отведенные 30 секунд для компиляции)

  25. 40
    Haru Focker ответил:

    Баля…

    for(int i=0; i<n; i++)
    A[i][i]=0;

    Вот как быстрее…

  26. 39
    Сергей Добрынин ответил:

    Простите, что отвечаю вместо автора, но
    1) Единичная матрица – это квадратная матрица, у которой элементы главной диагонали равны единице, а все остальные – нулю. Приведенный выше код делает элементы главной диагонали равными нулю, а остальные не изменяет. Согласитесь, не совсем одно и то же ;)
    2) А кто сказал, что индусский код всегда неправилен? ;)

  27. 38
    Дмитрий Щёголев ответил:

    Аффтор- в чем смысл кода и что там неправильного??

  28. 37
    Сергей Добрынин ответил:

    Дмитрий Scandalous Щёголев, ты случайно не индус? :)

  29. 36
    Богушевич Максим ответил:

    to ДмитрийЩёголев
    Единичной матрицы?????????????

  30. 35
    Дмитрий Щёголев ответил:

    Нормальный алгоритм щаполнения единичной матрицы, можешь предложить чтото другое???

  31. 34
    Павел Мурыгин ответил:

    [quote]for i:=1 to n do
    for j:=1 to n do
    if i=j then matrix[i,j]:=0;[/quote]
    можете смеятся, но нас в универе так учили писать

  32. 33
    Володя Квич ответил:

    Интересний выход с цыкла

    for(int i = 0; i < max; i++) {
    if( /*умова выхода*/)
    i = max;
    else {
    /*вполне нормальный код*/
    }
    }

  33. 32
    Андрей Куликов ответил:

    Светлана с БОРа старый прикол из той же серии, что и проверка по количеству букв в символьном представлении булевой переменной. ))

  34. 31
    Анзор Апшев ответил:

    )))))))))))))))))))))))))))жжесть

  35. 30
    Светлана Колупаева ответил:

    Где-то видела индусский код, вычисляющий завтрашнюю дату через sleep(60*60*24) :)

  36. 29
    Анзор Апшев ответил:

    я сам очень часто пишу что то вроде:
    BUPfileName:=str+'~'+'.txt'; :) )

  37. 28
    Евгений Гаврин ответил:

    #define if(exp) if((random(10)>5))

    аааа – жесть)

  38. 27
    Ogoun Er ответил:

    Из серии добавь другу в код=)

    #define if(exp) if((random(10)>5))

    или

    #define true (random(10)<5)

  39. 26
    Евгений Храмов ответил:

    2 Михаил m0zzzG Шаханов согласен

  40. 25
    Леонид Максимов ответил:

    время от времени я таким пользуюсь, только в сокращенной форме:
    a^=b^=a^=b;

  41. 24
    Михаил Шаханов ответил:

    2 Евгений hram Храмов: И что тут смешного или абсурдного? Вполне хорошая задача на сообразительность =)

  42. 23
    Дмитрий Щёголев ответил:

    #23. Это своп без временной переменной;)

  43. 22
    Евгений Храмов ответил:

    int A = 5;
    int B = 7;

    A ^= B;
    B ^= A;
    A ^= B;

    в итоге А = 7, B = 5.

  44. 21
    Алексей Игнатьев ответил:

    инверсная логика…

  45. 20
    Светлана Колупаева ответил:

    Нестареющая классика :)
    #define TRUE FALSE

  46. 19
    Михаил Шаханов ответил:

    Очень часто встречаю

    bool isPNull = (p == NULL) ? true : false;

  47. 18
    Стас Гончаров ответил:

    Вот одногрупница выдала недавно)) 3 курс

    if ((c == '')||(c == '\t'))
    if (c == '')
    s = s + '';
    else
    s = s + '\t';

  48. 17
    Сергей Добрынин ответил:

    Я сам в свое время от нечего делать писал
    Function max (a, b:integer):integer;
    begin
    max:=a+(b-a)*ord(b>a);
    end;
    :)

  49. 16
    Андрей Куликов ответил:

    Жека, может быть. Но согласись нэйминг довольно не однозначный и на первый взгляд вполне веселит.

    Еще вспомнил – копался как то давно в исходниках сервера Red5, дабы найти причину нашего бага. И обнаружил 2 метода: getPreviousTagи getPeriousTag которые по коментам оба должны возвращать предыдущий "тэг" но делал этот только тот, который назван неправильно. ) Второй возвращал какую то чушь. Копипаст – зло. )

  50. 15
    Микхаил Владимирович ответил:

    вот ещё на Java…
    boolean isNumber(String s) {
    if(s.Replace('0','').Replace('1','').Replace('2','').Replace('3','').Replace('4','').Replace('5','').Replace('6','').Replace('7','').Replace('8','').Replace('9','').length()== 0) {
    return true;
    } else {
    return false;
    }
    }

  51. 14
    Жека Кирпичев ответил:

    Может, это означает "захватить ресурс", а не "получить его значение"?

  52. 13
    Андрей Куликов ответил:

    С бора помоему:
    void getResource();

  53. 12
    Arthur Shcheglov ответил:

    одна моя знакомая писала программу когда я заглянул в код я чуть живот не надорвал(хорошо что она это еще преподавателю не показывала)=)

    void Matrix::proebr(float x0,float y0,float z0,TForm *form)
    {
    //вполне вразумительный код
    //не знаю что она хотел сказать названием этой функции
    }

  54. 11
    Михаил Шаханов ответил:

    Не помню где мне встретился метод BeginSerach(). Долго ржал =)

  55. 10
    Алексей Гридин ответил:

    Последнее напомнило: сам код не помню, но там для проверки делимости числа на 5, 2 и ещё что то, число переводилось в строку и проверялись последние символы)

  56. 9
    Максим Спиричев ответил:

    Ещё один способ )))

    class A
    {
    private boolean m_bool;
    public boolean getBoolean()
    {
    if (m_bool.toString().length() == 4)
    return true;
    else
    return false;
    }
    };

  57. 8
    Дмитрий Щёголев ответил:

    баян.

  58. 7
    Дмитрий Щёголев ответил:

    ))

  59. 6
    Владимир Unnamed ответил:

    про getBool() – это отжиг :)

  60. 5
    Михаил Шаханов ответил:

    Возможно боян, но всё же не удержусь:

    class A
    {
    bool m_bool;
    public:
    bool getBool()
    {
    if (m_bool == true) { return true; }
    else if (m_bool == false) { return false; }
    else if (m_bool != true && m_bool != false) { return (!true && !false);}
    }
    };

    Мне выдавали это как образец индусского кода — не знаю, правда или нет, но сам лично видел как чувак из индии отредактировал код под #if 0 и пытался утверждать что из-за этого всё пофиксилось =)

  61. 4
    Антон Белокрылов ответил:

    Никак, я это заметил ещё до реализации класса

  62. 3
    Жека Кирпичев ответил:

    Ух ты, а как этим на самом деле пользовались?

  63. 2
    Антон Белокрылов ответил:

    char read(int addr);
    char write(int addr);

    Я даже придумал, как этим пользоваться

    void write2(char x,int addr){
    while(write(addr)!=x);
    }

  64. 1
    Жека Кирпичев ответил:

    thedailywtf.com :)

    Одно из моего любимого там:

    enum Bool {
    TRUE,
    FALSE,
    FILE_NOT_FOUND
    }

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.