- 1
- 2
for(Reset($result),$message=0;$message<count($result);Next($result),$message++)
echo "<PRE>Message ",Key($result),", Unique ID - \"",$result[Key($result)],"\"</PRE>\n";
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+166
for(Reset($result),$message=0;$message<count($result);Next($result),$message++)
echo "<PRE>Message ",Key($result),", Unique ID - \"",$result[Key($result)],"\"</PRE>\n";
Замена foreach в индусском коде.
+157
function get_file_info($glob, $freq = 0)
{
static $cache = array();
if (isset($cache[$glob])) {
return $cache[$glob];
} else {
$ret = new stdClass;
$g = glob($glob);
$test = trim(`ls $glob`);
$g = split( "\n", $test );
if (!is_array($g)) {
return $ret;
}
$g = array_reverse($g);
$ret->files = array();
$now = time();
$first = true;
foreach($g as $filename) {
$f = new stdClass;
$f->name = $filename;
$f->size = @filesize($f->name);
$f->size_str = sprintf("%.1f",$f->size/1024/1024);
if (preg_match("((\\d{12}))", $f->name, $m)) {
$t = strtotime($m[1]);
$f->time = $t;
$f->time_str = str_replace(" ", " ", date("M d, Y H:i T", $f->time));
if ($freq) {
$to = $t + $freq - $now;
if ($to < 0) {
if ($to > -600) {
$res = '<em>any moment now.</em>';
} else {
$res = '<em>please consult /dev/urandom</em>';
}
} else {
$h = floor($to/3600);
$m = floor(($to - $h * 3600) / 60);
if ($h) {
$res = $h . ' hour'.($h==1?'':'s').' and ' . $m . ' minute'.($m==1?'':'s');
} else {
$res = $m . ' minute'.($m==1?'':'s');
}
}
$f->next = $res;
}
}
$ret->files[] = $f;
}
return $ret;
}
}
Говнокод на сайте php.net :)
Исходник: http://snaps.php.net/?source
P.S. это еще цветочки, после обеда будет зачетный с http://www.php.net/source.php?url=/index.php
+121
int finda(string[] strl, string a)
{
int ii=0;
foreach(var i in strl)
{
if(a==i)
return ii;
ii++;//Тут нужно оптимизировать!!!
};
}
+145
ДЕТСКОЕ ПОРНО МАЛЬЧИКИ ДЕВОЧКИ ЦЕЛКИ КЛУБНИЧКИ МАЛЕНЬКИЕ СИСЬКИ УПРУГИЕ ПОПКИ
+99
Procedure MakeChain(x: real; var a: array of word); (* Процедура раскладывает вещественное число в цепную дробь *)
var
i: byte;
begin
i:=0;
Repeat
a[i]:=Int(x); x:=1/(x-a[i]); i:=i+1
Until (abs(1/x) < epsilon) or (Int(x) = 0) (* NB! *)
end;
Procedure MakeFrac(a: array of word; var AN, BN: word); (* Процедура собирает обыкновенную дробь из цепной дроби *)
var
i: byte; AP, BP: word; temp: word;
begin
AN:=1; AP:=0; BN:=a[1]; BP:=1; i:=2;
Repeat
temp:=AN; AN:=AN*a[i]+AP; AP:=temp;
temp:=BN; BN:=BN*a[i]+BP; BP:=temp;
i:=i+1
Until a[i] = 0 (* NB! *)
end;
Function PowerInt(x: real; p: longint): real; (* возведение числа в целую степень *)
var
R: real;
begin
R:=1; if p<0 then x:=1/x; p:=abs(p);
Repeat
if p and 1 = 1 then R:=R*x;
p:=p shr 1;
if p<>0 then x:=sqr(x)
Until p=0;
PowerInt:=R
end;
Function Power(x: real; p: real): real;
var
y: real;
z: array[0..16000 div sizeof(word)] of word;
a, b: word;
begin
y:=PowerInt(x, Trunc(p)) * exp(Frac(p) * ln(abs(x)));
if x<0 then
begin
MakeChain(Frac(p), z);
MakeFrac(z, a, b);
if Odd(b) then
begin
if Odd(a) then y:=-y (* если числитель и знаменатель показателя степени нечётные, меняем знак результата *)
end
else
begin
(* NB! В случае чётного знаменателя показателя степени результат комплексный. Забьём на это *)
end
end;
Power:=y
end;
Инновационный алгоритм, написанный мной лет 12 тому назад, позволяющий возводить отрицательные числа в дробную степень.
Жанру сайта вполне соответствует, то есть не без говнокода.
+80
/**
* произвольные группы районов
*/
public enum DistrictGroup {
/*...*/
public int getOrdinal() {
for (int i = 0; i < values().length; i++) {
if (this == values()[i]) {
return i;
}
}
throw new Error("no ordinal found"); // never can be
}
}
Вот так пишут выпускники ВМК МГУ.
+114
protected void Page_Load(object sender, EventArgs e)
{
String a = Convert.ToString(max);
RangeValidator1.MinimumValue = "0";
RangeValidator1.MaximumValue = "3333";
int ind=Convert.ToInt16(DropDownList1.SelectedIndex);
if ((curind < 0)||(ind<0))
{
WareHouse WH = new WareHouse();
string[] list = WH.RefreshList(curProd);
int i = 0;
int len = list.Length;
DropDownList1.Items.Clear();
while (i < len)
{
if (curProd != list)
{
DropDownList1.Items.Add(list);
}
i++;
}
}
}
Чувак прислал резюме и пример проекта ASP.NET. А в нем это. Особо забавляет строка 7 и цикл while
+168
function test_file_for_smells( $filename )
{
global $MAX_FUNCTION_LINE_COUNT, $MAX_INDENTATION_LEVEL;
$function_line_count = 0;
$found_continued_line = 0;
$line_number = 0;
$fp = fopen( $filename, "r" );
if( ! $fp )
return;
while( ! feof( $fp ) )
{
$line = chop( fgets( $fp, 4096 ) );
$line_number++;
while( substr( $line, 0, 9 ) == "function " &&
substr( $line, strlen($line) - 1, 1 ) != ')' )
{
$line = $line . chop( fgets( $fp, 4096 ) )
$found_continued_line++;
}
if( substr( $line, 0, 9 ) == "function " )
{
$function_line_count = 1;
$function_name = substr( $line, 9, strpos($line, '(') - 9 );
}
if( $function_line_count > 0 )
{
if( $line == "\t}" )
{
$function_line_count = $function_line_count - 3;
if( $function_line_count > $MAX_FUNCTION_LINE_COUNT )
print_warning( $filename, $line, $line_number, "$function_name() too long ($function_line_count lines)" );
$function_line_count = 0;
}
else
$function_line_count++;
$result = test_line_for_indentation( $line, $MAX_INDENTATION_LEVEL );
if( ! $result )
print_warning( $filename, $line, $line_number, "Too much nesting." );
$result = test_line_for_function_definition( $line, $MAX_NUM_PARAMETERS );
if( ! $result )
print_warning( $filename, $line, $line_number, "Too many parameters." );
if( $found_continued_line > 0 )
{
$line_number += $found_continued_line;
$found_continued_line = 0;
}
}
}
}
Детектор говнокода!!!!
+145
<?php
die 'Превьюшки пока что не обрабатываются.';
Либо я уже спятил и что-то делаю не так, либо php.
die ('Превьюшки пока что не обрабатываются.'); работает на ура, а данный пример выбивает мне Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING.
Ничего не понимаю.
+126
private int VedOrderBy(int N_VED)
{
switch (N_VED)
{
case 2:
return 3;
break;
case 3:
return 5;
break;
case 4:
return 1;
break;
case 5:
return 0;
break;
case 6:
return 4;
break;
case 7:
return 6;
break;
case 8:
return 2;
break;
}
return 10;
}