1. Perl / Говнокод #16634

    −109

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    #!/usr/bin/perl
    use strict;
    sub ternary_switch {
    	my ($def,%exp) = @_;
    	my $result = $def;
    	for my $key (keys %exp) {
    		$result = '(' . $key . ')?(' . $exp{$key} . '):(' . $result . ')';
    	}
    	return $result;
    }
    my $def = ' (int)sum/0 /*assert*/ '; 
    my %exp = ( 
    	'quant==2' => ' round((sum)*pow(10.0,prec-1)*5.0)/pow(10.0,prec-1)/5.0 ',
    	'quant==5' => ' round((sum)*pow(10.0,prec-1)*2.0)/pow(10.0,prec-1)/2.0 ',
    	'quant==1' => ' round((sum)*pow(10.0,prec))/pow(10.0,prec) ',
    );
    my $result = ternary_switch($def,%exp);
    print $result . "\n";
    
    #define ROUND_QUANT(sum,prec,quant) (quant==5)?( round((sum)*pow(10.0,prec-1)*2.0)/pow(10.0,prec-1)/2.0 ):\
        ((quant==2)?( round((sum)*pow(10.0,prec-1)*5.0)/pow(10.0,prec-1)/5.0 ):\
        ((quant==1)?( round((sum)*pow(10.0,prec))/pow(10.0,prec) ):\
        ( (int)sum/0 /*assert*/ )))

    Округление с дробной точностью.
    Если бы я не прочитал на говнокоде что тернарники можно вкладывать, мне бы никогда это не пришло в голову

    overloop, 02 Сентября 2014

    Комментарии (65)
  2. C# / Говнокод #16632

    +133

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    //You can assign Values to the ASPNET RadioButton like this way:
    protected void Page_Load(object sender, EventArgs e)
     {
             RadioButton1.Attributes.Add("value", "ASPNET");
    } 
    
    //Then you can access the value this way:
    protected void Button1_Click(object sender, EventArgs e)
     {
             Response.Write(RadioButton1.Attributes["value"].ToString());
    }

    сегодня для меня стало новостью, что у высокоуровневого контрола asp.net web form RadioButton, который по сути рендерится в <input type="radio">, нет атрибута value.
    http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.radiobutton(v= vs.110).aspx да, его нет.
    но сначала я подумал, что все же может это я кривой и не туда смотрю, а потом нахожу велосипед, который предлагает MVP http://forums.asp.net/t/1379187.aspx?Why+does+an+ASP+NET+RadioBu tton+control+not+have+a+property+to+prog ramatically+set+the+value+attribute+

    Lokich, 02 Сентября 2014

    Комментарии (2)
  3. C++ / Говнокод #16631

    +61

    1. 1
    int len = dynamic_cast<GatewayRec *>(*Iter)->PrefixMatch(aliases, matchedalias, priority);

    gnugk

    bormand, 02 Сентября 2014

    Комментарии (47)
  4. C# / Говнокод #16630

    +132

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    private const double A = -695.0;
    
            private const double B = 1136.0;
    
            private const double C = 172018;
    через 10 строк:
     topPanel.SplitterDistance = (int)
                                                Math.Round(
                                                    (-A*ApplicationDispatcher.Current.ApplicationContainer.Size.Width - C)/B,
                                                    MidpointRounding.AwayFromZero) - 5;
    
    и дальше внутри , где-то через 200 строк
    
     topPanel.SplitterDistance = (int)
                                                Math.Round(
                                                    (-A * ApplicationDispatcher.Current.ApplicationContainer.Size.Width - C) / B,
                                                    MidpointRounding.AwayFromZero) - 5;
    больше нигде не используется

    zxxc, 01 Сентября 2014

    Комментарии (6)
  5. ActionScript / Говнокод #16629

    −89

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    public function getName():String
    {
    	if (sourceUrl && sourceUrl != "")
    	{
    		var urlArray:Array = sourceUrl.split("/");
    		if (urlArray.length > 0)
    		{
    			var fileName:String;
    			fileName= urlArray[urlArray.length - 1] as String;
    			return fileName.substr(0,13);
    		}
    	}
    	return "";
    }

    Удача сопутствует смелым!
    (Никакого очевидного повода к тому, чтобы в имени файла было какое-то определенное количество символов нет, я не знаю почему 13).

    wvxvw, 01 Сентября 2014

    Комментарии (2)
  6. PHP / Говнокод #16628

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    foreach($PROP as $k1 => $val1)
    		{
    			if(is_array($val1))
    			{
    				foreach($val1 as $k2 => $val2)
    				{
    					$text_name = preg_replace("/([^a-z0-9])/is", "_", "PROP[".$k1."][".$k2."][VALUE][TEXT]");
    					if(array_key_exists($text_name, $_POST))
    					{
    						$type_name = preg_replace("/([^a-z0-9])/is", "_", "PROP[".$k1."][".$k2."][VALUE][TYPE]");
    						$PROP[$k1][$k2]["VALUE"] = array(
    							"TEXT" => $_POST[$text_name],
    							"TYPE" => $_POST[$type_name],
    						);
    					}
    				}
    			}
    		}
    
    		foreach($PROP as $k1 => $val1)
    		{
    			if(is_array($val1))
    			{
    				foreach($val1 as $k2 => $val2)
    				{
    					if(!is_array($val2))
    						$PROP[$k1][$k2] = array("VALUE" => $val2);
    				}
    			}
    		}

    bitrix

    как вам организация цикла(ов)

    memclutter, 01 Сентября 2014

    Комментарии (1)
  7. PHP / Говнокод #16627

    +158

    1. 1
    2. 2
    3. 3
    if( is_numeric((int)$_GET['id1']) && is_numeric((int)$_GET['id2']) && is_numeric((int)$_GET['id3']) ){
    
    }

    Капитан очевидность)

    sa-kirich, 01 Сентября 2014

    Комментарии (9)
  8. JavaScript / Говнокод #16626

    +124

    1. 1
    2. 2
    // poor man's semaphore
    while (self.fetching) {}

    http://backgridjs.com/ref/extensions/select2-cell.html

    someone, 01 Сентября 2014

    Комментарии (0)
  9. Си / Говнокод #16625

    +129

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    package main
    
    import "fmt"
    
    type буква string
    
    var (
    	наТрубе буква
    )
    
    func сидели(а, б буква) буква {
    	return а + б
    }
    
    func aпропало(буква буква) буква {
    	return буква[1:]
    }
    
    func бупало(буква буква) буква {
    	return буква[:1]
    }
    
    func main() {
    	наТрубе = сидели(буква("а"), буква("б"))
    	наТрубе = aпропало(наТрубе)
    	наТрубе = бупало(наТрубе)
    	fmt.Printf("на трубе %s\n", наТрубе)
    }

    ya-ukurok, 01 Сентября 2014

    Комментарии (63)
  10. Си / Говнокод #16624

    +134

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if ( cg_g2MarksAllModels == NULL )
    	{
    		cg_g2MarksAllModels = Cvar_Get( "cg_g2MarksAllModels", "0", 0 );
    	}
    
    	if (cg_g2MarksAllModels == NULL
    		|| !cg_g2MarksAllModels->integer )
    	{
    		firstModelOnly = qtrue;
    	}

    Cvar_Get возвращает ненулевой указатель в любом случае.

    gost, 31 Августа 2014

    Комментарии (7)