- 1
- 2
- 3
Официальный тред для каклосрача #2
http://govnokod.ru/15804 - не открывается
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
Официальный тред для каклосрача #2
http://govnokod.ru/15804 - не открывается
срать тут ↓
+2
https://youtu.be/CDqG6eGWo0I
Давайте вспомним свой 94.
+56
#include <iostream>
#include <thread>
#include <list>
#include <functional>
#include <chrono>
using namespace std;
void outputToSomeContainer(int val, list<int>& result){
result.push_back(val);
}
class async{
list<thread> a;
public:
async(){}
async(async&& a): a(move(a.a))
{}
void addTask(function<void()>&&f){
a.emplace_back(move(f));
}
void wait(){
for(auto&& i: a)
i.join();
}
};
async async_O_n_Sort(const list<char>& unsorted, function<void(int)> outputToContainer){
async a;
for(int i: unsorted)//O(n)
a.addTask([i, outputToContainer](){this_thread::sleep_for(chrono::milliseconds(5+i*10));outputToContainer(i);});
return a;
}
int main() {
list<char> unsorted {1, 0, 6, 3, 4};
list<int> sorted;
auto a = async_O_n_Sort(unsorted, bind(outputToSomeContainer, placeholders::_1, ref(sorted)));
cout<<"А мы веселые пельменья, мы похоже на варенья"<<endl;
a.wait();
for(int i: sorted)
cout<<i<<endl;
return 0;
}
Тред:
http://www.gamedev.ru/flame/forum/?id=196521
http://coliru.stacked-crooked.com/a/c317bee4dbe183ab
+162
function wait($time)
{
$tmp_time = time();
$i = $tmp_time;
$time = $tmp_time + $time;
while ($i < $time)
{
If (time() != $i) { $i++; }
}
}
Автор сего творения явно не подозревал о существовании функции sleep
+152
function locate($info) {
$name = sprintf("%s_%02d_%02d.jpg", $info['prefix'], $info['vol'], $info['page']);
if (file_exists($name))
return $name;
$name = sprintf("%s_%02d_%03d.jpg", $info['prefix'], $info['vol'], $info['page']);
if (file_exists($name))
return $name;
$name = sprintf("%s%d_%03d.jpg", $info['prefix'], $info['vol'], $info['page']);
if (file_exists($name))
return $name;
$name = sprintf("%s%d_%03d-%03d.jpg", $info['prefix'], $info['vol'], $info['page'], $info['page']+1);
if (file_exists($name))
return $name;
$name = sprintf("%s%d_%03dcover.jpg", $info['prefix'], $info['vol'], $info['page']);
if (file_exists($name))
return $name;
return false;
}
Онлайн читалка манги. Эта функция ищет картинку по номеру тома/страницы.
Как считаете, я сильно наговнокодила? ^_^
+142
// main.cpp
#include <stdio.h>
#include <stdlib.h>
//...
#include "tcp.h"
//...
#include "tcp.c"
//...
int main(int argc, char ** argv)
{
//...
receive_tcp_message(sock, &tcp_msg);
switch(tcp_msg.type)
{
#include "cases.h"
default:
break;
}
//...
}
Имелась небольшая утилита, написанная матёрым сишником. Имелся еще меньший шаблонный проект для таких утилит, написанный на плюсах с простым makefile. Таким вот нехитрым способом этот сишник влил первое во второе. Он не пользуется makefile, т.к. обычно пишет шелл-скрипт, собирающий весь проект. А еще он знает кучу анекдотов и историй, выпить не дурак и вообще отличный дядька.
+38
#include <iostream>
using namespace std;
class Program
{
public:
friend int main()
{
return 0;
}
};
Мой знакомый говорит, что его компилятор поддерживает Java\C#-нотацию точки входа таким образом. И ещё он говорит, что так должно компилироваться по стандарту.
+110
unit HRTimer;
interface
uses Windows;
type
// --------------------- Класс - высокоточный таймер -------------------------
THRTimer = class(TObject)
constructor Create;
function StartTimer: Boolean; // Обнуление таймера
function ReadTimer: Double; // Чтение значения таймера в миллисекундах
private
StartTime: Double;
ClockRate: Double;
public
Exists: Boolean; // Флаг успешного создания таймера
end;
var
Timer: THRTimer; // Глобальая переменная. Создаётся при запуске программы
{ Фукнция высокоточной задержки.
Delphi:
Синтаксис: function HRDelay(const Milliseconds: Double): Double;
Milliseconds: Double - задержка в миллисекундах (может быть дробной)
Результат функции - фактически произошедшая задержка с погрешностью.
Пример вызова функции: X:= HRDelay(100.0); или HRDelay(100.0);
C++Builder:
Синтаксис: double HRDelay(const double Milliseconds);
Double Milliseconds - задержка в миллисекундах (может быть дробной)
Результат функции - фактически произошедшая задержка с погрешностью.
Пример вызова функции: double X = HRDelay(100.0); или HRDelay(100.0);}
function HRDelay(const Milliseconds: Double): Double;
implementation
function HRDelay(const Milliseconds: Double): Double;
begin
Timer.StartTimer();
repeat
Result:= Timer.ReadTimer();
until Result >= Milliseconds;
end;
{ THRTimer }
constructor THRTimer.Create;
var
QW: LARGE_INTEGER;
begin
inherited Create;
Exists := QueryPerformanceFrequency(Int64(QW));
ClockRate := QW.QuadPart;
end;
function THRTimer.StartTimer: Boolean;
var
QW: LARGE_INTEGER;
begin
Result := QueryPerformanceCounter(Int64(QW));
StartTime := QW.QuadPart;
end;
function THRTimer.ReadTimer: Double;
var
ET: LARGE_INTEGER;
begin
QueryPerformanceCounter(Int64(ET));
Result := 1000.0 * (ET.QuadPart - StartTime) / ClockRate;
end;
initialization
Timer:= THRTimer.Create();
finalization
Timer.Free();
end.
классический шайзберг посреди майских роз (ну почти розы)
+78
public Miner(String s) {
super(s);
MenuBar mb = new MenuBar();
setMenuBar(mb);
Menu mFile = new Menu("Файл");
Menu mHelp = new Menu("Справка");
mb.add(mFile);
mb.setHelpMenu(mHelp);
MenuItem create = new MenuItem("Новая игра",new MenuShortcut(KeyEvent.VK_N));
Menu mColor = new Menu("Цвет");
MenuItem mGreen = new MenuItem("Зелёный");
MenuItem mRed = new MenuItem("Красный");
MenuItem mBlue = new MenuItem("Синий");
MenuItem mGray = new MenuItem("Серый");
mColor.add(mGreen);
mColor.add(mRed);
mColor.add(mBlue);
mColor.addSeparator();
mColor.add(mGray);
Menu mHard = new Menu("Сложность");
MenuItem mDummy = new MenuItem("Новичок");
MenuItem mUser = new MenuItem("Среднячок");
MenuItem mHaker = new MenuItem("Проффи");
mHard.add(mDummy);
mHard.add(mUser);
mHard.add(mHaker);
MenuItem mSound = new MenuItem("Звук");
mSound.setEnabled(false);
MenuItem exit = new MenuItem("Выход",new MenuShortcut(KeyEvent.VK_X));
mFile.add(create);
mFile.add(mColor);
mFile.add(mHard);
mFile.add(mSound);
mFile.addSeparator();
mFile.add(exit);
Scribble scr = new Scribble(this,480,480);
mGreen.addActionListener(scr);
mRed.addActionListener(scr);
mBlue.addActionListener(scr);
mGray.addActionListener(scr);
add(scr);
Difficult diff = new Difficult(this,480,480);
mDummy.addActionListener(diff);
mUser.addActionListener(diff);
mHaker.addActionListener(diff);
add(diff);
create.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
status = 0;
repaint();
RandomArray();
}
});
exit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
MenuItem mInfo = new MenuItem("О программе",new MenuShortcut(KeyEvent.VK_H));
mHelp.add(mInfo);
mInfo.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new AboutProgram("О программе");
}
});
setBounds(0,0,480,480); // setSize(480,480);
setVisible(true);
setLayout(null);
addMouseListener(this);
addWindowListener(new WinClose());
}
Всё, что можно и что нельзя я запихнул в конструктор
0
#!/usr/bin/guile -s
!#
(define (square x)
(* x x))
(define (square_sum x y)
(+ (square x) (square y)))
(define (tmax x y z)
(cond ((and (>= x y) (>= x z)) x)
((and (>= y x) (>= y z)) y)
(else z)))
(define (tms x y z)
((cond ((= (tmax x y z) x)
(if (> y z)
(square_sum x y)
(square_sum x z)))
((= (tmax x y z) y)
(if (> x z)
(square_sum x y)
(square_sum y z)))
((= (tmax x y z) z)
(if (> x y)
(square_sum x z)
(square_sum y z)))
(else 0))))
(display "Ans: ")
(display (tms 6 5 4))
(newline)
Почему не работает?