- 1
Бесконечный оффтоп имени Гологуба #10
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
Бесконечный оффтоп имени Гологуба #10
#1: https://govnokod.ru/28992 https://govnokod.xyz/_28992
#2: https://govnokod.ru/29053 https://govnokod.xyz/_29053
#3: https://govnokod.ru/29075 https://govnokod.xyz/_29075
#4: https://govnokod.ru/29110 https://govnokod.xyz/_29110
#5: https://govnokod.ru/29127 https://govnokod.xyz/_29127
#6: https://govnokod.ru/29140 https://govnokod.xyz/_29140
#7: https://govnokod.ru/29170 https://govnokod.xyz/_29170
#8: https://govnokod.ru/29192 https://govnokod.xyz/_29192
#9: https://govnokod.ru/29227 https://govnokod.xyz/_29227
0
🐷🐷🐷
Рант-тред, иди!
Вахтер, багровей!
+3
AnsiString Cut_the_path(AnsiString ExeName)
{
AnsiString Path = ExeName;
char *cp = Path.c_str(); int last = Path.Length()-1;
int i=last;
for(; i>=0; i--)
{
if( *(cp+i) == '\\' )
break;
Path.Delete(Path.Length(),1);
}
return Path;
}
−2
; %ch - x1, %cl - y1, %dh - x2, %dl - y2 ;
drawline:
push %a
push %b
push %c
push %d
push %e
mov %al %dh
sub %al %ch
call @abs
mov %ah %al ; ah - dX ;
mov %al %dl
sub %al %cl
call @abs
neg %al ; al - -dY ;
mov %bh FFh ; bh - signX;
mov %bl FFh ; bl - signY ;
cmp %ch %dh
jgz @.S1
neg %bh
.S1:
cmp %cl %dl
jgz @.S2
neg %bl
.S2:
mov %el %ah
add %el %al ; el - error ;
push %d
call @drawpixel
pop %d
.loop:
cmp %ch %dh
jnz @.L1
cmp %cl %dl
jnz @.L1
jmp @.loop_end
.L1:
push %c
call @drawpixel
pop %c
mov %eh %el
cmp %eh %al
jng @.L2
add %el %al
add %ch %bh
.L2:
cmp %eh %ah
jgz @.loop
add %el %ah
add %cl %bl
jmp @.loop
.loop_end:
pop %e
pop %d
pop %c
pop %b
pop %a
ret
https://pastebin.com/k8697fae
алгоритм брезенхема.
результат: https://imgur.com/a/c1twuNt
забавно что посреди тестов программа выдала красивые такие кривые на весь экран. с.м. имгур, приложил.
−1
Если у меня есть приватный метод, то зачем мне его объявлять в .h-файле?
Хочу только в .cpp написать вспомогательный метод и только там его использовать.
А вынужден копипастить сигнатуру ещё и в .h.
−103
Остались ли среди созидателей Ынтерпрайзного гуано не познавшие вкус хуйца своего шефа?
Cолгите ещё один раз. Обманите себя, сказав что Ваш рот девственен.
+138
persjempre <[email protected]>,Akka Knebekaize <[email protected]>
Значит слушай внимательно, тупица, что я тебе скажу.
Никакой ты не крутой пацан, ты сосунок, который нарывается на ссору с
органами. В предыдущем письме ты четко сдал себя со всеми потрохами,
указав двух свидетелей твоего беспредела. 30 лет работы в прокуратуре
меня кое-чему научили. Я не поленился найти этого паренька,
администратора того форума программистов и пообщаться с ним. Виталий
оказался примилейшим человеком, и показал мне вашу с ним перепалку.
Да, я много гопоты повидал, и ты пожалуй один из немногих уникалов,
который повеселил и меня и наш отдел по защите персональной
информации. С тебя ржали все мои бойцы, сказали что давно такого
детского сада не видели. Это же надо - упорно месить грязь под разными
именами с разных каналов! Вот молодец. Мало того, что засветился как
свеча в темной комнате, мне даже не потребуется делать усиленных
телодвижений для вычисления твоего адреса места проживания, так еще и
упорно плодишь кучу доказательств своей неправоты. Слышал такую
пословицу: "Язык до Киева доведет"? Не? Поясняю - твоя клевета и
оскорбления обязательно будут доведены до криминала, если будешь
продолжать с таким же упорством кричать в публичных местах интернета,
демонстрируя свою храбрость и безнаказанность. Как человек с
многолетним опытом, наблюдавший не один десяток таких дел скажу -
найдет твоя коса на каменюку, обязательно.
Значит слушай теперь, малыш, внимательно. Зовут меня Вениамин
Валентинович, и работаю я прокурором. Прикинь, прокуроры тоже умеют
пользоваться интернетом, и соблюдать нетикет (хотя вряд ли ты о нем
слышал, твои понятия морали судя по твоему языку на нуле). Я
предупредил Виталия, что если он или кто-то из них пострадает от
твоего грязного рта, пусть они мне напишут, предоставив твои слова. Я
постараюсь помочь честным людям наказать обидчика. Я дам ход
"плавному" делу. Поверь мне выписать ордер мне ничего не стоит, и
любая организация, занимающаяся связью с радостью мне поможет,
предоставив журнал связи абонентов. А учитывая твой многоликий янус,
следы которого остались как оказалось не только на том сайте, пробить
по совпадениям твой адрес прописки легче простого.
Если ты еще не в курсе, или попросту в школе не учился поясняю:
"Преступления в сфере информационных технологий включают как
распространение вредоносных вирусов, взлом паролей, кражу номеров
кредитных карточек и других банковских реквизитов (фишинг), так и
распространение противоправной информации (клеветы, материалов
порнографического характера, материалов, возбуждающих межнациональную
и межрелигиозную вражду и т.п.) через Интернет, коммунальные
объекты[1]."
К твоему вниманию перечитывать до полного просветления слова "Клевета"
и "межнациональная вражда". Сюда же относится и оскорбления по половым
признакам, а они в твоих постах есть. Будь уверен при необходимости
особое внимание суд уделит именно им, как показаниям зачинщика
преступления, т.е. основной первопричины.
Учитывая твои угрозы мы так уж и быть сошлемся на статью 273 УК. А
так же ст. 130. И все они будут направленны прежде всего на тебя как
на инициатора, и главного организатора беспредела.
Советую тебе сразу искать крутого адвоката, если нет желания забиться
в угол и перестать терроризировать интернет. Я обязательно попрошу еще
своих бойцов проверить тебя на сайте xaker.ru, где вполне можно
прихватить за взломы.
В общем мой тебе добрый совет, не ломай свою жизнь, я уверен что ты
еще молодой, и схлопотать срок, пусть даже условный не желаешь. Даже
административные наказания не пройдут тебе даром, если ты
несовершеннолетний то для твоих родителей.
Кончай баловаться с огнем! Я тебя предупредил - еще раз выскажешься
неадекватно в мою сторону, или Виталий (или любой другой) пожалуется
на тебя, будешь иметь дело с правоохранительными органами, это я тебе
обещаю.
<[email protected]>
Ваш унылый троллинг все больше напоминает попытки запихнуть штепсель от холодильника в USB разъем. Я на такое не ведусь.
Вот какой он, суровый дядя прокурор с Программерсфорума)
Реально же эта писанина принадлежит одной пизде-мордераторше с programmersforum.ru (Ice Valery)
+128
(defun primes-under (limit &optional (filter-depth (truncate (log limit))))
(labels ((%purge (prefix table depth)
(iter
(for (key value) :in-hashtable table)
(for mul := (* key prefix))
(while (< mul limit))
(when (> depth 0) (%purge mul table (1- depth)))
(remhash mul table))))
(let ((primes (iter
(with p := (make-hash-table))
(for i :from 2 :below limit)
(setf (gethash i p) t)
(finally (return p)))))
(iter
(for (key value) :in-hashtable primes)
(%purge key primes filter-depth)
(finally
(return
(iter
(for (key value) :in-hashtable primes)
(reducing key :by #'+))))))))
Вопрос к знатокам: почему так работает? (у меня чисто случайно получилось)
Для тех, кому влом разбираться:
Задача выше - код из Прожект Ойлер. Нужно найти сумму всех простых чисел меньше 2000000 (двух миллионов).
Методом подбора было установлено, что если из всех чисел меньше N последовательно удалять их произведения N_0 * N_1 * ... * N_m, где m = floor(log(N)), то, по крайней мере на сколько меня хватило посчитать, не-простых чисел не остается.
Вопрос, как связан log(N), и можно ли вообще надеятся на то, что это правило - универсально (например, что степени двойки никогда не будут меньше N).
+157
function timeToString(year, month, day, hour, minute, sec, msec) {
var date = new Date(year, month, day, hour, minute, sec, msec);
var now = new Date();
var msec = now.getTime() - date.getTime(); // Миллисекунды
var sec = Math.round(msec / 1000);
var years = Math.floor(sec / (86400 * 365));
var days = Math.floor((sec - years * 86400 * 365) / 86400);
var hours = Math.floor((sec - years * 86400 * 365 - days * 86400) / 3600);
var minutes = Math.floor((sec - years * 86400 * 365 - days * 86400 - hours * 3600) / 60);
var seconds = sec - years * 86400 * 365 - days * 86400 - hours * 3600 - minutes * 60;
// Проверяем, были ли високосные года?
var i;
for(i = date.getFullYear(); i <= now.getFullYear(); i++) {
if(i % 4 === 0) {
if(i === now.getFullYear()) {
if(now.getMonth > 2) {
days++;
}
elseif(now.getMonth === 2) {
if(now.getDay === 28) {
days++;
}
}
}
else
{
days++;
}
}
var yearName;
var yearOst = years % 10;
if(years === 1 || (yearOst === 1 && years > 20))
{
yearName = 'год'
}
else if((years === 2 || years === 3 || years === 4) || ((yearOst === 2 || yearOst === 3 || yearOst === 4) && years > 20))
{
yearName = 'года';
}
else
{
yearName = 'лет';
}
var hourName;
var hourOst = hours % 10;
if(hours === 1 || (hourOst === 1 && hours > 20))
{
hourName = 'час'
}
else if((hours === 2 || hours === 3 || hours === 4) || ((hourOst === 2 || hourOst === 3 || hourOst === 4) && hours > 20))
{
hourName = 'часа';
}
else
{
hourName = 'часов';
}
var dayName;
var dayOst = days % 10;
if(days === 1 || (dayOst === 1 && days > 20))
{
dayName = 'день'
}
else if((days === 2 || days === 3 || days === 4) || ((dayOst === 2 || dayOst === 3 || dayOst === 4) && days > 20))
{
dayName = 'дня';
}
else
{
dayName = 'дней';
}
var minuteName;
var minuteOst = minutes % 10;
if(minutes === 1 || (minuteOst === 1 && minutes > 20))
{
minuteName = 'минута'
}
else if((minutes === 2 || minutes === 3 || minutes === 4) || ((minuteOst === 2 || minuteOst === 3 || minuteOst === 4) && minutes > 20))
{
minuteName = 'минуты';
}
else
{
minuteName = 'минут';
}
var secondName;
var secondOst = seconds % 10;
if(seconds === 1 || (secondOst === 1 && seconds > 20))
{
secondName = 'секунда'
}
else if((seconds === 2 || seconds === 3 || seconds === 4) || ((secondOst === 2 || secondOst === 3 || secondOst === 4) && seconds > 20))
{
secondName = 'секунды';
}
else {
secondName = 'секунд';
}
document.getElementById("time").innerHTML = years + " " + yearName + ", " + days + " " + dayName + ", " + hours + " " + hourName + ", " + minutes + " " + minuteName + ", " + seconds + " " + secondName;
}
Функция для подсчета того, сколько времени прошло с указанной даты.
JavaScript начал изучать вчера. Чувствую, что уже можно заканчивать.
Пришлось код урезать, чтобы вместиться в 100 строк. Более-менее читаемый тут: http://dumpz.org/573381/
+18
#include <iostream>
int main() {
// Инициализируй меня... полностью.
void (*(&(*omg[])())[1]) (void (*)(void (*(*[])())())) = { [] () ->
void (*(&)[1]) (void (*)(void (*(*[])())())) { static void (*f[])
(void (*)(void (*(*[])())())) = { [] (void (*f)(void (*(*[])())())) {
static void (*(*ff[])())() = { [] () -> void (*)() { return [] () {
std::cout << "Test OK" << std::endl; }; } }; f(ff); } }; return f; } };
// Вызывай, вызывай меня... полностью.
omg[0]()[0]([] (void (*(*f[])())()) { f[0]()(); });
return 0;
}
http://ideone.com/gvg1B7
Говнокоду http://govnokod.ru/12066 посвящается.
Инициализация массива указателей на функции, возвращающих ссылку на массив указателей на функции принимающие указатель на функцию, принимающую массив указателей на функции, возвращающих указатель на функцию ничего не принимающую и ничего не возвращающую.
С++ это простой и наглядный язык.