- 1
http://james-iry.blogspot.ru/2009/05/brief-incomplete-and-mostly-wrong.html
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+128
http://james-iry.blogspot.ru/2009/05/brief-incomplete-and-mostly-wrong.html
просто оставлю здесь это.
−99
--Поиск минимальной выпуклой оболочки
import Data.List; import Data.Ord
--общие функции и типы
data Point = P{x::Float,y::Float}
deriving (Show,Eq)
getRotate a b c = baX * cbY - baY * cbX
where baX = x b - x a; baY = y b - y a;
cbX = x c - x b; cbY = y c - y b;
sortFunc a b c
|k < 0 = LT
|k == 0 = compare (long a c) (long a b)
|k > 0 = GT
where k = getRotate a b c
long a b = (x b - x a)*(x b - x a) + (y b - y a)*(y b - y a)
getLeftPoint = minimumBy (comparing x)
--Джарвис
getMBOJarvis l = mboJ fp l fp
where fp = getLeftPoint l
mboJ current list fp
|getRotate current next fp > 0 = []
|True = current : mboJ next listWOC fp
where listWOC = filter ((/=)current) list;
next = minimumBy (sortFunc current) listWOC;
--Грехем
getMBOGragam = tail.throwGraham.sortGraham
sortGraham list = fp:sortBy (sortFunc fp) list
where fp = getLeftPoint list
throwGraham (f:s:t) = mboG (s:f:[]) t
mboG fs@(f:s:st) sn@(h:t)
|sortFunc s f h == GT = mboG (s:st) sn
|True = mboG(h:fs) t
mboG fs@(f:st) sn@(h:t) = mboG(h:fs) t
mboG l [] = l
--тесты
testList1 = [P 0 (-1), P (-1) 0, P 0 1,P 1 0,P (-0.5) (-0.5),P 0.5 (-0.5),P (-0.5) 0.5,P 0.5 0.5,P 0 0]
testList2 = [P 0 0, P 1 0, P 0 1,P 2 0,P 1 1,P 0 2,P 2 1,P 1 2,P 2 2]
testJ1 = mapM_ print $ getMBOJarvis testList1
testG1 = mapM_ print $ getMBOGragam testList1
testJ2 = mapM_ print $ getMBOJarvis testList2
testG2 = mapM_ print $ getMBOGragam testList2
Haskell
[сарказм]
Как я могу идти против моды - не заливать этих французских лаб и не выпивать чаю?
Выкладываю, что бы порадовать своего кота Барсика. Барсик, покойся с миром.
А спонсор этого говна - компания "Потролль препода". "Потролль препода" - пиши лабы на хаскелле
[/сарказм]
+138
typedef enum { SUCCESS = 0, NOTNUMBER = 1, BOUNDS = 2, EOFREACHED = 3 } rdstat_t;
int flush_line(FILE *stream) {
int ch;
do {
ch = fgetc(stream);
} while (ch != EOF && ch != '\n');
return ch;
}
/* enough to contain (1 + length of ASCII string of SIZE_MAX
decimal representation) characters */
#define SIZE_T_BUF_SIZE 100
/* reads until newline or EOF, writes (size_t *out) if success */
rdstat_t read_size_t(FILE *stream, size_t *out) {
char str_SIZE_MAX[SIZE_T_BUF_SIZE];
snprintf(str_SIZE_MAX, SIZE_T_BUF_SIZE, "%zu", SIZE_MAX);
char buf[SIZE_T_BUF_SIZE];
if (!fgets(buf, SIZE_T_BUF_SIZE, stream))
return EOFREACHED;
if (buf[strlen(buf) - 1] != '\n') {
flush_line(stream);
return NOTNUMBER;
}
buf[strlen(buf) - 1] = 0;
char *ch;
for (ch = buf; *ch; ++ch)
if (!isdigit(*ch))
return NOTNUMBER;
if (strlen(buf) == strlen(str_SIZE_MAX) && strcmp(buf, str_SIZE_MAX) > 0)
return BOUNDS;
sscanf(buf, "%zu", out);
return SUCCESS;
}
Наваял функцию для чтения size_t из файла с защитой от дурака (писал код будучи больным, чесслово).
Ничего умнее печати SIZE_MAX в строчку и лексикографического сравнения для проверки границ введенного числа не придумал %)
+161
function array_search_my($string,$array){
foreach($array as $el){
if($el==$string) return true;
}
return false;
}
in_array - не круто.
+144
Zaebali v komenty govno pisat !
vot tak!
+147
<?
// Код от блондинки
$moya_peremennaya = 0;
for ($moya_drugaya_peremennaya = 0; $moya_drugaya_peremennaya < 100; $moya_drugaya_peremennaya += $moya_drugaya_peremennaya) {
$moya_peremennaya = $moya_drugaya_peremennaya;
// У меня не работало $moya_peremennaya = 100
}
?>
Код одной блондинки
+79
private short findHeaderLength() {
return (short)(
1+
3+
4+
2+
2+
2+
1+
1+
4+
4+
4+
1+
1+
2+
(32*fieldArray.length)+
1
);
}
DBFHeader
−96
Если ДеревоXML.Строки[0].Строки[0].ЗначениеXMLЭлементаДанных = "0" Тогда
СтатусДоставки="0";
ИначеЕсли ДеревоXML.Строки[0].Строки[0].ЗначениеXMLЭлементаДанных = "1" Тогда
СтатусДоставки="1";
ИначеЕсли ДеревоXML.Строки[0].Строки[0].ЗначениеXMLЭлементаДанных = "2" Тогда
СтатусДоставки="2";
ИначеЕсли ДеревоXML.Строки[0].Строки[0].ЗначениеXMLЭлементаДанных = "3" Тогда
ДопЗначение=ДеревоXML.Строки[0].Строки[1].ЗначениеXMLЭлементаДанных;
СтатусДоставки="3"+ДопЗначение;
ИначеЕсли ДеревоXML.Строки[0].Строки[0].ЗначениеXMLЭлементаДанных = "4" Тогда
СтатусДоставки="4";
КонецЕсли;
+59
LPVOID lpInfo = NULL;;
UINT unInfoLen = 0;
DWORD dwLangCode = 0;
if (!GetTranslationId(lpInfo, unInfoLen, GetUserDefaultLangID(), dwLangCode, FALSE))
{
if (!GetTranslationId(lpInfo, unInfoLen, GetUserDefaultLangID(), dwLangCode, TRUE))
{
if (!GetTranslationId(lpInfo, unInfoLen, MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), dwLangCode, TRUE))
{
if (!GetTranslationId(lpInfo, unInfoLen, MAKELANGID(LANG_ENGLISH, SUBLANG_NEUTRAL), dwLangCode, TRUE))
// use the first one we can get
dwLangCode = *((DWORD*)lpInfo);
}
}
}
докомментировались, ебанатики...
−113
escape_cats = [cat_id for cat_id, values in cats.iteritems() if any([values[1] == supercat or cat_id == supercat for supercat in escape_supercats])]
Избегание котов.