Давайте делиться разными смешными/абсурдными фрагментами, обнаруженными в коде (своем|коллег|однокурсников и т.д.)
Вот например
Задача: есть квадратная матрица, все элементы главной диагонали нужно заполнить нулями
Реализация одного из моих однокурсников:
for i:=1 to n do
for j:=1 to n do
if i=j then matrix[i,j]:=0;
28 августа 2008 в 12:03
жжоте
28 августа 2008 в 6:04
Андрей Куликов, не понял вопроса. Как ваш вопрос по русски будет звучать?
27 августа 2008 в 22:03
Это типа чтобы убрать очередной нолик в цикле и отрапортовать о крутых оптимизациях, ускоривших лаги на порядок? ))
23 августа 2008 в 23:03
function Lag(x,y)
{
for(var i=0; i<x; i++)
{
for(var n=0;n<y;n++)
{
Lag(i,n)
}
}
}
Lag(1000,1000)
21 августа 2008 в 1:02
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 – границы входа
21 августа 2008 в 0:01
самое что интересное последние 2 условия могут выполниться
19 августа 2008 в 17:00
тоже с БОРа:
string iff(bool f)
{
switch(f)
{
case 0:
return "false";
break;
case 1:
return "true";
break;
case 2:
return "Хуясе О_о";
break;
default:
return "Ненене, Дэвид Блэйн, ненене!!";
}
}
19 августа 2008 в 14:05
из баша, для многих баян, но мне кажется стоить добавить ибо в тему
if(x==1)
if(x==1)
if(x==1)
if(x==1)
if(x==1)
if(x==1)
if(x==1)
x=2;
семь раз проверь, один раз присвой!
18 августа 2008 в 22:01
while(a != 1){
a = 1;
}
При мне этот цикл пробегал 4 раза.
Flash IDE.
Полдня убил, пока нашел глюк с присваиванием.
Вылечилось перезагрузкой компа.
30 июня 2008 в 14:02
Да. Тем более двоеточие в конце ставят.
3 июня 2008 в 5:01
Это не код, а бред.
2 июня 2008 в 22:02
есть еще хороший код— format:c;
30 мая 2008 в 23:00
Седня накопал в Java исодниках очередную порцию индокода. Как все же некоторые люди любят усложнять себе жизнь в логических условиях:
new Boolean(status > 0 ? true : false);
Весь монстр заменяется просто на status > 0
Или из той же оперы:
if (smallExpression) {
return true;
} else {
return false;
}
=)
30 мая 2008 в 21:01
If strI = Nothing Then
strI = "Nothing"
End If
Сам придумал)))
29 мая 2008 в 17:05
от нашёл: face="Verdana, Arial, Helvetica,:)
29 мая 2008 в 16:01
Про простые числа – круть. На олимпиадах черти такие штуки вытворяют – закачаешься!
29 мая 2008 в 15:02
у меня знакомый решал задачу вывода простого числа по его номеру. номер мог быть <=15000
ну, понятно, традиционный способ не укладывался в отведенные 2 секунды(дело было на олимпиаде)
так он написал отдельную прогу которая выводила в файл первые 15000 простых чисел а дальше копипастом эти числа засунул в константы в программе.
только теперь его программа не прокатила из-за ограничения на длину кода. поэтому он каждое число сначала переводил в 64ричную систему счисления, а потом в программе обратно в десятичную, вот так))
29 мая 2008 в 0:03
Ну почти DSL:
Yes = false;
dialogChoice();
if (!Yes) return;
loadShow();
29 мая 2008 в 0:02
Хит-парад продолжает явный строительный блок для HTML:
function NumName(attr,mass,begin)
{
return (begin ? "<" :"</") +mass[attr].Name+">";
}
29 мая 2008 в 0:02
Задачка на массивы:
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;
}
28 мая 2008 в 23:05
А вот тоже, просто и со вкусом:
function F2(n)
{
var res = n + ' ';
for (; res.length < 3; ){
res = '0' + res;
}
return res.substring(0, 2);
}
28 мая 2008 в 23:04
Порадовало:
function zamO(str1, str2) {
return str1.substring(0, str1.length – 1) + str2;
}
28 мая 2008 в 23:04
Небольшая понятная функция:
function ActionB2u(){
Yes=false;
dlg.dispose();
return true;
}
17 мая 2008 в 20:03
На республике по программерству чувак решал задачу массивом констант (всего случаев 10^9). В код сделал где-то до 8000000… Главный прикол в том, что массив констант делался ПРИСВАИВАНИЕМ!
Зато хоть уложился в отведенные 30 секунд для компиляции)
17 мая 2008 в 20:00
Баля…
for(int i=0; i<n; i++)
A[i][i]=0;
Вот как быстрее…
17 мая 2008 в 17:04
Простите, что отвечаю вместо автора, но
1) Единичная матрица – это квадратная матрица, у которой элементы главной диагонали равны единице, а все остальные – нулю. Приведенный выше код делает элементы главной диагонали равными нулю, а остальные не изменяет. Согласитесь, не совсем одно и то же
2) А кто сказал, что индусский код всегда неправилен?
17 мая 2008 в 16:03
Аффтор- в чем смысл кода и что там неправильного??
17 мая 2008 в 13:00
Дмитрий Scandalous Щёголев, ты случайно не индус?
17 мая 2008 в 12:03
to ДмитрийЩёголев
Единичной матрицы?????????????
17 мая 2008 в 11:03
Нормальный алгоритм щаполнения единичной матрицы, можешь предложить чтото другое???
17 мая 2008 в 2:03
[quote]for i:=1 to n do
for j:=1 to n do
if i=j then matrix[i,j]:=0;[/quote]
можете смеятся, но нас в универе так учили писать
16 мая 2008 в 18:00
Интересний выход с цыкла
for(int i = 0; i < max; i++) {
if( /*умова выхода*/)
i = max;
else {
/*вполне нормальный код*/
}
}
14 мая 2008 в 20:04
Светлана с БОРа старый прикол из той же серии, что и проверка по количеству букв в символьном представлении булевой переменной. ))
14 мая 2008 в 14:05
)))))))))))))))))))))))))))жжесть
14 мая 2008 в 11:04
Где-то видела индусский код, вычисляющий завтрашнюю дату через sleep(60*60*24)
14 мая 2008 в 10:02
я сам очень часто пишу что то вроде:
BUPfileName:=str+'~'+'.txt'; )
13 мая 2008 в 21:05
#define if(exp) if((random(10)>5))
аааа – жесть)
13 мая 2008 в 8:01
Из серии добавь другу в код=)
#define if(exp) if((random(10)>5))
или
#define true (random(10)<5)
12 мая 2008 в 0:01
2 Михаил m0zzzG Шаханов согласен
12 мая 2008 в 0:00
время от времени я таким пользуюсь, только в сокращенной форме:
a^=b^=a^=b;
12 мая 2008 в 0:00
2 Евгений hram Храмов: И что тут смешного или абсурдного? Вполне хорошая задача на сообразительность =)
11 мая 2008 в 22:03
#23. Это своп без временной переменной;)
11 мая 2008 в 22:01
int A = 5;
int B = 7;
A ^= B;
B ^= A;
A ^= B;
в итоге А = 7, B = 5.
8 мая 2008 в 19:02
инверсная логика…
7 мая 2008 в 23:05
Нестареющая классика
#define TRUE FALSE
7 мая 2008 в 23:04
Очень часто встречаю
bool isPNull = (p == NULL) ? true : false;
5 мая 2008 в 22:03
Вот одногрупница выдала недавно)) 3 курс
if ((c == '')||(c == '\t'))
if (c == '')
s = s + '';
else
s = s + '\t';
5 мая 2008 в 16:03
Я сам в свое время от нечего делать писал
Function max (a, b:integer):integer;
begin
max:=a+(b-a)*ord(b>a);
end;
4 мая 2008 в 21:01
Жека, может быть. Но согласись нэйминг довольно не однозначный и на первый взгляд вполне веселит.
Еще вспомнил – копался как то давно в исходниках сервера Red5, дабы найти причину нашего бага. И обнаружил 2 метода: getPreviousTagи getPeriousTag которые по коментам оба должны возвращать предыдущий "тэг" но делал этот только тот, который назван неправильно. ) Второй возвращал какую то чушь. Копипаст – зло. )
4 мая 2008 в 20:02
вот ещё на 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;
}
}
4 мая 2008 в 15:05
Может, это означает "захватить ресурс", а не "получить его значение"?
4 мая 2008 в 15:04
С бора помоему:
void getResource();
4 мая 2008 в 15:03
одна моя знакомая писала программу когда я заглянул в код я чуть живот не надорвал(хорошо что она это еще преподавателю не показывала)=)
void Matrix::proebr(float x0,float y0,float z0,TForm *form)
{
//вполне вразумительный код
//не знаю что она хотел сказать названием этой функции
}
4 мая 2008 в 15:03
Не помню где мне встретился метод BeginSerach(). Долго ржал =)
4 мая 2008 в 9:05
Последнее напомнило: сам код не помню, но там для проверки делимости числа на 5, 2 и ещё что то, число переводилось в строку и проверялись последние символы)
3 мая 2008 в 15:00
Ещё один способ )))
class A
{
private boolean m_bool;
public boolean getBoolean()
{
if (m_bool.toString().length() == 4)
return true;
else
return false;
}
};
3 мая 2008 в 13:02
баян.
3 мая 2008 в 13:01
))
3 мая 2008 в 13:01
про getBool() – это отжиг
3 мая 2008 в 2:04
Возможно боян, но всё же не удержусь:
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 и пытался утверждать что из-за этого всё пофиксилось =)
2 мая 2008 в 23:00
Никак, я это заметил ещё до реализации класса
2 мая 2008 в 22:02
Ух ты, а как этим на самом деле пользовались?
2 мая 2008 в 10:02
char read(int addr);
char write(int addr);
Я даже придумал, как этим пользоваться
void write2(char x,int addr){
while(write(addr)!=x);
}
2 мая 2008 в 6:05
thedailywtf.com
Одно из моего любимого там:
enum Bool {
TRUE,
FALSE,
FILE_NOT_FOUND
}