1. Лучший говнокод

    В номинации:
    За время:
  2. Куча / Говнокод #26883

    +2

    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
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    Definition uilv_add_trivial {N} te (t : list TE) (traces : Traces N)
                 i j (Ht : MInt_ trace_elems_don't_commute j true traces t)
                 s s' (Hls : LongStep s (te :: t) s')
                 (Htriv : trivial_add i j traces) :
        MInt_ trace_elems_don't_commute i true (push_te traces i te) (te :: t).
      Proof with autorewrite with vector; eauto with vector; try vec_forall_eq_contradiction.
        unfold push_te.
        unfold trivial_add in Htriv.
        destruct (Fin.eq_dec i j) as [Hij|Hij].
        (* [i=j], solving by constructor: *)
        { subst.
          unfold trivial_add.
          eapply mint_keep with (rest := traces[@j])...
        }
        remember traces[@j] as t2_.
        destruct t2_ as [|te2 t2]; subst.
        { inversion Ht as [vec Hvec|? ? ? ? ? Hj Hcont|? ? ? ? ? ? Hjj0 Hswitch Hj Hcont];
            subst.
          - eapply mint_keep with (prog := true)...
            eapply mint_nil...
          - rewrite Hj in Heqt2_.
            discriminate.
        }
        remember traces[@i] as t1_.
        destruct t1_ as [|te1 t1]; subst.
        (* [te] is the last element in i-th trace: *)
        { eapply mint_keep with (rest := []) (prog := false)...
          inversion Ht as [vec Hvec|? ? ? ? ? Hj Hcont|? ? ? ? ? ? Hjj0 Hswitch Hj Hcont];
            subst...
          rewrite Heqt1_ in *.
          eapply mint_switch...
          rewrite <-Heqt1_...
        }
        destruct Htriv as [|[Hij' Hcomm]]; [contradiction Hij|idtac].
        eapply mint_keep with (rest := te1 :: t1) (prog := false)...
        rewrite Heqt1_, Vec.replace_id.
        inversion Ht as [vec Hvec|? ? ? ? ? Hj Hcont|? ? ? ? ? ? Hjj0 Hswitch Hj Hcont]; subst...
        replace te0 with te2 in * by congruence.
        eapply mint_switch...
        rewrite <-Heqt1_...
      Defined.

    Кто сказал, что хуже C++ темплейтов ничего уже нет? Вы ничего не понимаете в метушне. Это говно разворачивается в 12000 строк, например.

    CHayT, 20 Августа 2020

    Комментарии (52)
  3. Swift / Говнокод #26534

    0

    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
    import Foundation
    
    @objc protocol SomethingDoable {
        func doSomething()
    }
    
    class Inner: SomethingDoable {
        @objc func doSomething() {
            print("Inner!")
        }
    }
    
    @objc class Outer: NSObject {
    
        let inner: SomethingDoable = Inner()
    
        override func forwardingTarget(for aSelector: Selector!) -> Any? {
            return inner
        }
    }
    
    let outer = Outer()
    outer.perform(#selector(SomethingDoable.doSomething))

    Удачного дебага!

    Desktop, 27 Марта 2020

    Комментарии (52)
  4. PHP / Говнокод #26087

    −3

    1. 1
    2. 2
    Официальный тред для обсуждения способов высера видеоизображения на телеящик.
    Один калмент -- один способ

    Официальный тред для обсуждения способов высера видеоизображения на телеящик.
    Один калмент -- один способ

    MAPTbIwKA, 11 Декабря 2019

    Комментарии (52)
  5. PHP / Говнокод #26056

    +1

    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
    <?php
    
    $img = imagecreatefromgif('http://web.archive.org/web/20070419044913im_/upyachka.ru/img/kot/16.gif');
    
    $w = imagesx($img);
    $h = imagesy($img);
    
    $symbols = array(' ', '▀', '▄', '█');
    
    for($y = 0; $y < floor($w/2); ++$y) {
        for($x = 0; $x < $w; ++$x) {
            $color1 = imagecolorat($img, $x, 2*$y);
            $color2 = imagecolorat($img, $x, 2*$y+1);
            $bit1 = intval(($color1 & 0xff) > 0x80);
            $bit2 = intval(($color2 & 0xff) > 0x80);
            echo $symbols[$bit1 + ($bit2 << 1)];
        }
        echo PHP_EOL;
    }

    XYPO3BO3, 28 Ноября 2019

    Комментарии (52)
  6. Python / Говнокод #26010

    +1

    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
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    x = 0; y = 0
     
    def gcd(a, b):
    #{
        global x, y
        if (a == 0):
        #{
            x = 0; y = 1;
            return b;
        #}
        d = gcd(b%a, a);
        t = x
        x = y - (b // a) * x;
        y = t;
        return d;
    #}
     
    #int main()
    #{
    #ios_base::sync_with_stdio(0); in.tie(0);
    #I n, p, w, d, dd, ww;
    #in >> n >> p >> w >> d;
    n, p, w, d = map(int, input().split())
    gc = gcd(d, w);
    dd = x; ww = y
    g = w * d // gc;
    if (p % gc):
        print(-1); exit(0)
    dd *= p // gc;
    ww *= p // gc;
    if (ww < 0):
    #{
        di = (-ww + g // w - 1) // (g // w);
        ww += g // w * di;
        dd -= g // d * di;
        if (dd < 0):
            print(-1); exit(0)
    #}
    elif (dd < 0):
    #{
        di = (-dd + g // d - 1) // (g // d);
        dd += g // d * di;
        ww -= g // w * di;
        if (dd < 0):
            print(-1); exit(0)
    #}
    if (ww < 0 or dd < 0):
        print(-1); exit(0)
    di = dd // (g // d);
    dd -= g // d * di;
    ww += g // w * di;
    if (ww + dd <= n):
        print(ww, dd, n - ww - dd)
    else:
        print(-1);
    #}

    Когда на соревновании по спортивному программированию пишешь код на C++ и внезапно понимаешь, что int64_t тебе недостаточно.

    fyodor95, 04 Ноября 2019

    Комментарии (52)
  7. Java / Говнокод #25998

    +1

    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
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    import java.util.Scanner;
    
    public class ComputeTax {
    
    public static void main(String[] args) {
    // Create a Scanner
    Scanner input = new Scanner(System.in);
    
    // Prompt the user to enter filing status
    System.out.print(
        "(0-single filer, 1-married jointly or qualifying widow(er)",
        + "\n2-married separately, 3-head of household)\n" +
        "Enter the filing status: ");
    int status = input.nextInt();
    
    // Prompt the user to enter taxable income
    System.out.print("Enter the taxable income: ");
    double income = input.nextDouble();
    
    // Compute tax
    double tax = 0;
    
    if (status == 0) {// Compute tax for single filers
        if (income <= 8350)
              tax = income * 0.10;
        else if (income <= 33950)
              tax = 8350 * 0.10 + (income - 8350) * 0.15;
        else if (income <= 82250)
              tax = 8350 * 0.10 + (33950 - 8350) * 0.15 +
             (income - 33950) * 0.25;
        else if (income <= 171550)
              tax = 8350 * 0.10 + (33950 - 8350) * 0.15 +
             (82250 - 33950) * 0.25 + (income - 82250) * 0.28;
        else if (income <= 372950)
              tax = 8350 * 0.10 + (33950 - 8350) * 0.15 +
              (82250 - 33950) * 0.25 + (171550 - 82250) * 0.28 +
              (income - 171550) * 0.33;
        else
              tax = 8350 * 0.10 + (33950 - 8350) * 0.15 +
             (82250 - 33950) * 0.25 + (171550 - 82250) * 0.28 +
             (372950 - 171550) * 0.33 + (income - 372950) * 0.35;
    }
    else if (status == 1) {
    // Left as exercise
    // Compute tax for married file jointly or qualifying widow(er)
    }
    else if (status == 2) {
    // Compute tax for married separately
    // Left as exercise
    }
    else if (status == 3) {
    // Compute tax for head of household
    // Left as exercise
    }
    else {
        System.out.println("Error: invalid status");
        System.exit(1);
    }
    // Display the result
    System.out.println("Tax is " + (int)(tax * 100) / 100.0);
    
    }

    Ksyrx, 26 Октября 2019

    Комментарии (52)
  8. C++ / Говнокод #25609

    0

    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
    namespace belugina
    {
        void Exchange (int i, int j, int *x){ 
    	int tmp;
    	tmp = x[i];
    	x[i] = x[j];
    	x[j] = tmp;
    }
    
    void sifting (int left, int right, int *x){
    	int q, p, h;
    	q=2*left+1;
    	p=q+1;
    	if (q <= right){
    		if (p <= right && x[p] > x[q])
    			q = p;
    		if (x[left] < x[q]){
    			 Exchange (left, q, x);
    			 sifting(q, right, x);
    			 }
    		 }
    }
        
    }

    Бред сумасшедшего. По утверждению автора алгоритм "Просеивание" элементов.

    dethless, 19 Мая 2019

    Комментарии (52)
  9. Куча / Говнокод #25519

    −99

    1. 1
    Прошу забанить всех на один год.

    админа - бессрочно.

    AHCKujlbHblu_netyx, 06 Апреля 2019

    Комментарии (52)
  10. PHP / Говнокод #25176

    +1

    1. 1
    Вот так пишут настоящие программисты внутри HTML. Ни грамма жалости... Ни слова унижения.

    ...
    <h6 class="card-subtitle">

    <?php switch($cur_user['school_type']):
    case 1: ?>
    <?php echo $lang['Public_school']; ?>
    <?php break; ?>
    <?php case 2: ?>
    <?php echo $lang['State_religious_school']; ?>
    <?php break; ?>
    <?php case 3: ?>
    <?php echo $lang['muslim']; ?>
    <?php break; ?>
    <?php case 4: ?>
    <?php echo $lang['orthodox']; ?>
    <?php break; ?>
    <?php endswitch; ?>

    </h6>
    ...

    gonext, 10 Декабря 2018

    Комментарии (52)
  11. Си / Говнокод #24870

    −1

    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
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    #include<stdio.h>
    #include<stdlib.h>	
    #include<string.h>		
    struct masterRecord{ int 		Number; char 		Name[20]; char 		Surname[20]; char 		addres[30]; char 		TelNumber[15]; double  	indebtedness; double    	credit_limit;  double  	cash_payments; };
    	typedef  struct  masterRecord Data;
    	int main(void){
    		int choice = 0;	
    		void masterWrite(FILE *ofPTR, Data   Client       )  ,transactionWrite(FILE *ofPTR, Data transfer     )   ,      blackRecord(FILE *ofPTR, FILE  *ofPTR_2 , FILE *blackrecord , Data	 client_data  ,   Data transfer )                    ;
    		FILE *Ptr, *Ptr_2 , *blackrecord   ;
    	  	Data	 client_data,  transfer  ;
    	printf("%s", "please enter action\n1 enter data client:\n2 enter data transaction:\n3 update base\n" );
    			while (		scanf("%d", &choice )  !=  -1   )  {
    				switch(  choice  )  {
    				case	1:
    					Ptr = fopen("record.dat", "r+" );
    						if(Ptr == NULL ){
    						puts("Not acess");	
    						}
    					else{
    							masterWrite(  Ptr , client_data);	
    							fclose(Ptr);
    							}
    					break;
    				case    2:
    					Ptr = fopen("transaction.dat", "r+" );
    						if(Ptr == NULL ){
    						puts("Not acess");	
    						}
    					else{
    						transactionWrite( Ptr, transfer     );
    						fclose(Ptr);
    					}
    					break;	
    				case    3:
    					Ptr = fopen( "record.dat", "r"  );
    					Ptr_2 = fopen("transaction.dat", "r" );
    					blackrecord = fopen("blackrecord.dat", "w" );	
    				if(	Ptr == NULL ||  	Ptr_2 == NULL ||  		blackRecord == NULL      ){
    						puts("exit");
    					}
    					else{
    					blackRecord( Ptr, Ptr_2 , blackrecord  , client_data  ,    transfer );
    					fclose(Ptr);
    					fclose(Ptr_2);	
    					fclose(blackrecord);
    					}
    					break;
    					default:
    					puts("error");
    					break ;
    				}
     	printf("%s", "please enter action\n1 enter data client:\n2 enter data transaction:\n3 update base\n" );
    		}
                return 0;	
    	}
    	void masterWrite(FILE *ofPTR , Data   Client       )  {
    		printf("%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n\n",  
    				"1 Number account: ",
    				"2 Client name: ",
    				"3 Surname: ",
    				"4 Addres client: ",
    				"5 Client Telnum: ",
    				"6 Client indebtedness: ",
    				"7 Client credit limit: ",
    				"8 Client cash payments: " );
    		while(  scanf("%d%s%s%s%s%lf%lf%lf", &Client.Number, Client.Name, Client.Surname, Client.addres, Client.TelNumber, &Client.indebtedness,	&Client.credit_limit ,	&Client.cash_payments    ) != -1     ){
    		fprintf( ofPTR, "%-12d%-11s%-11s%-16s%20s%12.2f%12.2f%12.2f\n", Client.Number, Client.Name, Client.Surname, Client.addres, Client.TelNumber, Client.indebtedness,	Client.credit_limit ,		 	Client.cash_payments    ) ;
    		printf("%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n\n",  
    				"1 Number account: ",
    				"2 Client name: ",
    				"3 Surname: ",
    				"4 Addres client: ",
    				"5 Client Telnum: ",
    				"6 Client indebtedness: ",
    				"7 Client credit limit: ",
    				"9 Client cash payments:"
    										);
    				} }
           void transactionWrite(FILE *ofPtr, Data transfer     ){
    		printf("%s\n%s\n",  
    			"1 Number account: ",
    			"2 Client cash payments: ");
    			while(scanf("%d %lf" , &transfer.Number  , &transfer.cash_payments )   != -1      ){
    				fprintf( ofPtr, "%-3d%-6.2f\n", transfer.Number, 		transfer.cash_payments    ) ;
    				printf("%s\n%s\n",  
    						"1 Number account:",
    						"2 Client cash payments: "
    												);
    			} }
       void blackRecord(FILE *ofPTR, FILE  *ofPTR_2 , FILE *blackrecord , Data	 client_data  ,   Data transfer ){
    	while(fscanf( 	ofPTR  , "%d%s%s%s%s%lf%lf%lf",  &client_data.Number ,  client_data.Name  , client_data.Surname   , client_data.addres, client_data.TelNumber, &client_data.indebtedness, &client_data.credit_limit, &client_data.cash_payments)   != -1 )  {
    			while (	fscanf(	ofPTR_2 , "%d %lf",  &transfer.Number , &transfer.cash_payments       ) 	  !=  -1 ){
    					if(     client_data.Number     ==   transfer.Number   &&  transfer.cash_payments != 0         ){
    						client_data.credit_limit += transfer.cash_payments;
    					} 
    				}
    			fprintf(blackrecord   ,"%-12d%-11s%-11s%-16s%20s%12.2f%12.2f%12.2f\n", client_data.Number, client_data.Name, client_data.Surname, client_data.addres, client_data.TelNumber, client_data.indebtedness,	client_data.credit_limit ,  client_data.cash_payments    ) ;
    			rewind(	ofPTR_2 );
    		} }

    В новом Сорокине мне больше всего понравились "Фиолетовые лебеди".

    tyrin, 07 Октября 2018

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