Страшна, вырубай: хэллоуинская подборка кода, от которого волосы встают дыбом
Код — это творчество. И иногда некоторые такое творят... В Хэллоуин одобрали для вас примеры эпичного кода, от которого не знаешь, смеяться или плакать.
isalpha()
? Не, не слышал.
bool IsBukva(char symbol)
{
switch(symbol)
{
case'a':return 1;break;
case'b':return 1;break;
case'c':return 1;break;
case'd':return 1;break;
case'e':return 1;break;
case'f':return 1;break;
case'g':return 1;break;
case'h':return 1;break;
case'i':return 1;break;
case'j':return 1;break;
case'k':return 1;break;
case'l':return 1;break;
case'm':return 1;break;
case'n':return 1;break;
case'o':return 1;break;
case'p':return 1;break;
case'q':return 1;break;
case'r':return 1;break;
case's':return 1;break;
case't':return 1;break;
case'u':return 1;break;
case'v':return 1;break;
case'w':return 1;break;
case'x':return 1;break;
case'y':return 1;break;
case'z':return 1;break;
case'A':return 1;break;
case'B':return 1;break;
case'C':return 1;break;
case'D':return 1;break;
case'E':return 1;break;
case'F':return 1;break;
case'G':return 1;break;
case'H':return 1;break;
case'I':return 1;break;
case'J':return 1;break;
case'K':return 1;break;
case'L':return 1;break;
case'M':return 1;break;
case'N':return 1;break;
case'O':return 1;break;
case'P':return 1;break;
case'Q':return 1;break;
case'R':return 1;break;
case'S':return 1;break;
case'T':return 1;break;
case'U':return 1;break;
case'V':return 1;break;
case'W':return 1;break;
case'X':return 1;break;
case'Y':return 1;break;
case'Z':return 1;break;
default:return 0;
}
}
Писать, почему этот код неок — всё равно, что объяснять смысл анекдота.
KeyFactory keyFactory = new KeyFactory();
KeyObj keyObj = keyFactory.getKeyObj(wParam);
keyObj.doStuff();
class VK_F11 extends KeyObj {
boolean val;
public void doStuff() {
val = !val;
}
}
class VK_F12 extends KeyObj {
boolean val;
public void doStuff() {
val = !val;
}
}
class KeyFactory {
public KeyObj getKeyObj(int param) {
switch(param) {
case VK_F11:
return new VK_F11();
case VK_F12:
return new VK_F12();
}
throw new KeyNotFoundException("Key " + param + " was not found!");
}
}
Переводим только самые актуальные языки: древнепрусский, нижнелужицкий, авестийский…
function translate_a_name_of_the_winter_to_the_foreign_language(language: String): String;
begin
if language = 'авестийский' Result := 'zimō'
else if language = 'белорусский' Result := 'зіма'
else if language = 'болгарский' Result := 'зима'
else if language = 'верхнелужицкий' Result := 'zyma'
else if language = 'греческий' Result := 'χειμώνας'
else if language = 'древнепрусский' Result := 'semo'
else if language = 'латинский' Result := 'hiems'
else if language = 'латышский' Result := 'ziema'
else if language = 'литовский' Result := 'žiema'
else if language = 'македонский' Result := 'зима'
else if language = 'нижнелужицкий' Result := 'zyma'
else if language = 'осетинский' Result := 'зымӕг'
else if language = 'польский' Result := 'zima'
else if language = 'русский' Result := 'зима'
else if language = 'санскрит' Result := 'hima'
else if language = 'сербский' Result := 'зима'
else if language = 'словацкий' Result := 'zima'
else if language = 'словенский' Result := 'zima'
else if language = 'талышский' Result := 'зымыстон'
else if language = 'таджикский' Result := 'зимистон'
else if language = 'украинский' Result := 'зима'
else if language = 'хорватский' Result := 'zima'
else if language = 'чешский' Result := 'zima'
end;
Как говорила Скарлетт О’Хара: «Я подумаю об этом завтра».
void get_tomorrow_date( struct timeval *date )
{
sleep( 86400 ); // 60 * 60 * 24
gettimeofday( date, 0 );
}
Когда препод задал написать рекурсивную функцию, но факториал и Фибоначчи уже забрали, а тебе досталась сумма.
int SUM(int A, int B)
{
if (0 == A) return B;
if (0 == B) return A;
return (1 + (SUM(A, B - 1) + SUM(A - 1, B)) / 2);
}
То пиши понятные названия переменных, то не пиши…
OnMouseMoveFunctionalTestVerticalSplitIndicatorExactlyOnTheLeftBorderOfTheFirstCellOnTheTheWeekViewAndGroupByResourceAndTwoResources
Все эти ванильные дефайны с эмоджи — ерунда по сравнению с этим:
#include
#define _0000 0
#define _0001 int
#define _0010 a
#define _0011 16
#define _0100 b
#define _0101 c
#define _0110 printf
#define _0111 "%d"
#define _1000 d
#define _1001 (
#define _1010 )
#define _1011 =
int main()
{
_0001 _1000 _1011 _0011;
_0001 _0010 _1011 _1000;
_0001 _0100 _1011 _1001--_1000 _1010+++_1001++_1000 _1010;
_0001 _0101 _1011 _0010>_0100?_0010:_0100>_0010?_0100:_0000;
_0110 _1001 _0111, _0101 _1010;
getchar();
}
А как вам рисование линий по пикселям с помощью функции которая предназначена для рисования линий?
QPainter painter(this);
int a1;
int a2;
int a3;
int a4;
//.......
int a999;
int a1000;
a1 = 1;
a2 = 1;
a3 = 1;
a4 = 1;
//.......
a999 = 1;
a1000 = 1;
while (a1 != 500)
{ painter.drawLine(a1, a1, a1, a1); a1 ++;
}
while (a2 != 500)
{ painter.drawLine(a2, a2, a2, a2); a2 ++;
}
while (a3 != 500)
{ painter.drawLine(a3, a3, a3, a3); a3 ++;
}
while (a4 != 500)
{ painter.drawLine(a4, a4, a4, a4); a1 ++;
}
//........
while (a999 != 500)
{ painter.drawLine(a999, a999, a999, a999); a999 ++; }
}
while (a1000 != 500)
{ painter.drawLine(a1000, a1000, a1000, a1000); a1000 ++; }
}
На сладкое. Просто попробуйте понять, что делают эти две строчки кода.
int i=8, a1, a2;
for (a1=a2=1; i>2; a1=(a2+=a1)-a1) i--;
Также рекомендуем
Приготовили увлекательный тест, полный интересных фактов из мира IT, связанных с историями пылкой любви.
Выясняем, насколько читатели Tproger — типичные программисты. Пройдите тест и узнайте, насколько вы типичный или нетипичный разработчик.
Попросили мидл и синьор-разработчиков поделиться любимым развлекательным контентом с другими разработчиками: поделиться подкастами, каналами, сайтами и шоу. Вот, что они посоветовали.
Проверьте свои знания истории Рунета, его технологий и культурных явлений, а мы угадаем ваш возраст.