1. Java / Говнокод #16010

    +78

    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
    public static String[] Filtr( String[] mas )
    		{
    			for(int i=0;i<mas.length;i++)
    			{
    				if ("А".equals(mas[i])){
    					mas[i] = "а";
    				}
    				if ("Б".equals(mas[i])){
    					mas[i] = "б";
    				}
    				if ("В".equals(mas[i])){
    					mas[i] = "в";
    				}
    				if ("Г".equals(mas[i])){
    					mas[i] = "г";
    				}
    				if ("Д".equals(mas[i])){
    					mas[i] = "д";
    				}
    				if ("Е".equals(mas[i])){
    					mas[i] = "е";
    				}
    				if ("Ё".equals(mas[i])){
    
    
                                    .....//и т.д.
    
    
    	                        if ("Э".equals(mas[i])){
    					mas[i] = "э";
    				}
    				if ("Ю".equals(mas[i])){
    					mas[i] = "ю";
    				}
    				if ("Я".equals(mas[i])){
    					mas[i] = "я";
    				}
    				if ("Й".equals(mas[i])){
    					mas[i] = "й";
    				}
    			}
                            for(int i=0;i<mas.length;i++)
    				{
    				
    					if(
    						(mas[i].equals("а") == false) && 
    						(mas[i].equals("б") == false) && 
    						(mas[i].equals("в") == false) && 
    						(mas[i].equals("г") == false) && 
    						(mas[i].equals("д") == false) && 
    						(mas[i].equals("е") == false) && 
    						(mas[i].equals("ё") == false) && 
    						(mas[i].equals("ж") == false) && 
    						(mas[i].equals("з") == false) &&
    						(mas[i].equals("и") == false) && 
    						(mas[i].equals("к") == false) && 
    						(mas[i].equals("л") == false) && 
    						(mas[i].equals("м") == false) && 
    						(mas[i].equals("н") == false) && 
    						(mas[i].equals("о") == false) && 
    						(mas[i].equals("п") == false) && 
    						(mas[i].equals("р") == false) && 
    						(mas[i].equals("с") == false) && 
    						(mas[i].equals("т") == false) && 
    						(mas[i].equals("у") == false) && 
    						(mas[i].equals("ф") == false) && 
    						(mas[i].equals("х") == false) && 
    						(mas[i].equals("ц") == false) && 
    						(mas[i].equals("ч") == false) && 
    						(mas[i].equals("ш") == false) && 
    						(mas[i].equals("щ") == false) && 
    						(mas[i].equals("э") == false) && 
    						(mas[i].equals("ю") == false) && 
    						(mas[i].equals("я") == false) && 
    						(mas[i].equals("ъ") == false) && 
    						(mas[i].equals("ь") == false) && 
    						(mas[i].equals("ы") == false) && 
    						(mas[i].equals("й") == false) &&
    						(mas[i].equals(" ") == false))
    					{
    						mas = Del(mas, i);
    						i--;
    					}	;
    			for(int k=0;(k+1)<mas.length;k++)
    					{
    						if(mas[k].equals(" ") && mas[k+1].equals(" "))
    						{
    							mas = Del(mas, k);
    							k--;
    						}
    					}
    			}
    			return mas;	
    		}

    lispocoder, 18 Мая 2014

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

    +134

    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
    // Как вы думаете какой вариант кода более правильный?
    using System;
    using System.Linq;
    public class Program {
        public static int Puzzle(string s) {
            return s.Where(x=>x=='a').Count();
        }
    }
    // Или вот этот?
    using System;
    using System.Linq;
    public class Program {
        public static int Puzzle(string s) {
            return s.Count(x=>x=='a');
        }
    }
    //С точки зрения Майкрософт 1-ый вариант лучше

    Майкрософт запустила игру головоломку, каждая из головоломок решается определнным кодом. После - элегантность решения оценивается, весьма неоднозначным способом.
    Подробнее - https://www.codehunt.com/ и статейка на хабре http://habrahabr.ru/post/223173/ . Данная особенность замечена не мной, задачи 2.06 и 2.07

    Zuzik, 18 Мая 2014

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

    +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
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    public void Check()
    {
    	try
    	{
    		this.Function = "check";
    		this.Params = HttpUtility.UrlEncode((this.Params), Encoding.GetEncoding(1251));
    
    		if ((this.Function.Length > 0) &&
    			(this.PaymExtId.Length > 0) &&
    			(this.PaymSubjTp.ToString().Length > 0) &&
    			(this.Amount.ToString().Length > 0) &&
    			(this.Params.Length > 0) &&
    			(this.TermType.Length > 0) &&
    			(this.TermId.Length > 0) &&
    			(this.FeeSum.ToString().Length > 0))
    		{
    			this.Request = string.Format("function={0}&PaymExtId={1}&PaymSubjTp={2}&Amount={3}&Params={4}&TermType={5}&TermID={6}&FeeSum={7}",
    										 this.Function, this.PaymExtId, this.PaymSubjTp.ToString(), this.Amount.ToString(), this.Params, this.TermType, this.TermId, this.FeeSum.ToString());
    			SendRequest();
    		}
    		else
    		{
    			GetError("-1");
    		}                
    	}
    	catch
    	{
    		GetError("-9");
    	}
    }

    Оттуда же. Тип полей PaymSubjTp, Amount, FeeSum - int, всех остальных - string.
    Amount.ToString().Length > 0 и т.п. всегда true, а вот ноль или отрицательное значение спокойно пропустят.
    Интересно, разработчики хоть знают, что функции умеют принимать и возвращать данные? :)

    yamamoto, 18 Мая 2014

    Комментарии (0)
  4. JavaScript / Говнокод #16006

    +158

    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
    if (document.form.Perimetr_Ud_ispolzuemyy_razmer.value==1 && document.form.varianty_ustanovki_peremychek.value==1 && document.form.shag_profilya.value==1)
         { 
         P=Math.ceil(((document.form.dlinna_komnaty.value*2)+(document.form.shirina_komnaty.value*2))*1.05);
    	 Obrezki=Math.ceil(S*1.44*0.10/3);
         document.form.Perimetr_Ud_naimenovanie.value='Профиль UD-27 (3-х метровый) ';
         document.form.Perimetr_Ud_kolichestvo.value=Math.ceil(P/3+Obrezki);
         document.form.varianty_ustanovki_peremychek_t.value='Соединитель одноуровневый (Краб)';
    	 document.form.varianty_ustanovki_peremychek_p.value=Math.ceil(S*0);
         }
      else if (document.form.Perimetr_Ud_ispolzuemyy_razmer.value==1 && document.form.varianty_ustanovki_peremychek.value==1 && document.form.shag_profilya.value==2)
         { 
         P=Math.ceil(((document.form.dlinna_komnaty.value*2)+(document.form.shirina_komnaty.value*2))*1.05);
    	 Obrezki=Math.ceil(S*1.44*0.10/3);
         document.form.Perimetr_Ud_naimenovanie.value='Профиль UD-27 (3-х метровый) ';
         document.form.Perimetr_Ud_kolichestvo.value=Math.ceil(P/3+Obrezki);
         document.form.varianty_ustanovki_peremychek_t.value='Соединитель одноуровневый (Краб)';
    	 document.form.varianty_ustanovki_peremychek_p.value=Math.ceil(S*0);
    	    }
      else if (document.form.Perimetr_Ud_ispolzuemyy_razmer.value==1 && document.form.varianty_ustanovki_peremychek.value==2 && document.form.shag_profilya.value==1)
      {
              P=Math.ceil(((document.form.dlinna_komnaty.value*2)+(document.form.shirina_komnaty.value*2))*1.05);
         document.form.Perimetr_Ud_naimenovanie.value='Профиль UD-27 (3-х метровый) ';
         document.form.Perimetr_Ud_kolichestvo.value=Math.ceil(P/3);
    	 document.form.varianty_ustanovki_peremychek_t.value='Соединитель одноуровневый (Краб)';
    	document.form.varianty_ustanovki_peremychek_p.value=Math.ceil(S*1.01);
    	    }
      else if (document.form.Perimetr_Ud_ispolzuemyy_razmer.value==1 && document.form.varianty_ustanovki_peremychek.value==2 && document.form.shag_profilya.value==2)
      {
              P=Math.ceil(((document.form.dlinna_komnaty.value*2)+(document.form.shirina_komnaty.value*2))*1.05);
         document.form.Perimetr_Ud_naimenovanie.value='Профиль UD-27 (3-х метровый) ';
         document.form.Perimetr_Ud_kolichestvo.value=Math.ceil(P/3);
    	 document.form.varianty_ustanovki_peremychek_t.value='Соединитель одноуровневый (Краб)';
    	document.form.varianty_ustanovki_peremychek_p.value=Math.ceil(S*0.8);
    	    }
      else if (document.form.Perimetr_Ud_ispolzuemyy_razmer.value==1 && document.form.varianty_ustanovki_peremychek.value==3 && document.form.shag_profilya.value==1)
      {
              P=Math.ceil(((document.form.dlinna_komnaty.value*2)+(document.form.shirina_komnaty.value*2))*1.05);
         document.form.Perimetr_Ud_naimenovanie.value='Профиль UD-27 (3-х метровый) ';
         document.form.Perimetr_Ud_kolichestvo.value=Math.ceil(P/3);
         document.form.varianty_ustanovki_peremychek_t.value='Соединитель одноуровневый (Краб)';
    	 document.form.varianty_ustanovki_peremychek_p.value=Math.ceil(S*0);
    	    }
      else if (document.form.Perimetr_Ud_ispolzuemyy_razmer.value==2 && document.form.varianty_ustanovki_peremychek.value==1 && document.form.shag_profilya.value==1)
      {
              P=Math.ceil(((document.form.dlinna_komnaty.value*2)+(document.form.shirina_komnaty.value*2))*1.05);
    	 Obrezki=Math.ceil(S*1.44*0.10/4);
    		  document.form.Perimetr_Ud_naimenovanie.value='Профиль UD-27 (4-х метровый) ';
              document.form.Perimetr_Ud_kolichestvo.value=Math.ceil(P/4+Obrezki); 
    	 document.form.varianty_ustanovki_peremychek_t.value='Соединитель одноуровневый (Краб)';
    	document.form.varianty_ustanovki_peremychek_p.value=Math.ceil(S*0);
    	    }
      else if (document.form.Perimetr_Ud_ispolzuemyy_razmer.value==2 && document.form.varianty_ustanovki_peremychek.value==2 && document.form.shag_profilya.value==1)
      {
              P=Math.ceil(((document.form.dlinna_komnaty.value*2)+(document.form.shirina_komnaty.value*2))*1.05);
    		  document.form.Perimetr_Ud_naimenovanie.value='Профиль UD-27 (4-х метровый) ';
              document.form.Perimetr_Ud_kolichestvo.value=Math.ceil(P/4); 
    	 document.form.varianty_ustanovki_peremychek_t.value='Соединитель одноуровневый (Краб)';
    	document.form.varianty_ustanovki_peremychek_p.value=Math.ceil(S*1.01);
    	    }
      else if (document.form.Perimetr_Ud_ispolzuemyy_razmer.value==2 && document.form.varianty_ustanovki_peremychek.value==2 && document.form.shag_profilya.value==2)
      {
              P=Math.ceil(((document.form.dlinna_komnaty.value*2)+(document.form.shirina_komnaty.value*2))*1.05);
    		  document.form.Perimetr_Ud_naimenovanie.value='Профиль UD-27 (4-х метровый) ';
              document.form.Perimetr_Ud_kolichestvo.value=Math.ceil(P/4); 
    	 document.form.varianty_ustanovki_peremychek_t.value='Соединитель одноуровневый (Краб)';
    	document.form.varianty_ustanovki_peremychek_p.value=Math.ceil(S*0.8);
    	    }
      else {
              P=Math.ceil(((document.form.dlinna_komnaty.value*2)+(document.form.shirina_komnaty.value*2))*1.05);
    		  document.form.Perimetr_Ud_naimenovanie.value='Профиль UD-27 (4-х метровый) ';
              document.form.Perimetr_Ud_kolichestvo.value=Math.ceil(P/4); 
    	 document.form.varianty_ustanovki_peremychek_t.value='Соединитель одноуровневый (Краб)';
    	document.form.varianty_ustanovki_peremychek_p.value=Math.ceil(S*0);
    	    };

    Про переменные явно автор не слышал...

    cyber_ua, 17 Мая 2014

    Комментарии (12)
  5. C# / Говнокод #16005

    +135

    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
    private void SendRequest()
    {
    	try
    	{
    		HttpWebRequest HTTPRequest;
    
    		try
    		{                    
    			HTTPRequest = (HttpWebRequest)WebRequest.Create(this.Host + this.Request);
    			HTTPRequest.ClientCertificates.Add(this.certificate);                    
    		}
    		catch
    		{
    			throw new Exception("-2");
    		}
    
    		try
    		{
    			HttpWebResponse response = (HttpWebResponse)HTTPRequest.GetResponse();
    			Stream stream = response.GetResponseStream();
    			TextReader xml = new StreamReader(stream, Encoding.GetEncoding(1251));
    
    			this.Response = xml.ReadToEnd();
    			stream.Close();
    			response.Close();
    		}
    		catch
    		{
    			throw new Exception("-3");
    		}
    
    		GetError("0");
    	}
    	catch (Exception ex)
    	{
    		GetError(ex.Message);
    		this.Response = "ОШИБКА!";
    	}
    }

    Оттуда же. Круговорот исключений в природе.

    yamamoto, 17 Мая 2014

    Комментарии (106)
  6. C# / Говнокод #16004

    +133

    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
    public void ExtIdGen()
    {
    	try
    	{
    		Random rnd = new Random();
    		string uin = "";
    		for (int i = 0; i < 20; i++)
    		{
    			uin += rnd.Next(10).ToString();
    		}
    
    		this.ExtId = uin;
    
    		GetError("0");
    	}
    	catch
    	{
    		GetError("-6");
    	}
    }
    
    private void GetError(string error_code)
    {
                switch (error_code)
                {
                    case "0":
                        this.LastErrorCode = 0;
                        this.LastErrorDescription = "Нет ошибок";
                        break;
    		// -1 .. -5
                    case "-6":
                        this.LastErrorCode = -6;
                        this.LastErrorDescription = "Ошибка при получении идентификатора запроса";
                        break;
                }
    }

    LastErrorCode, LastErrorDescription, ExtId - public поля.
    Там весь класс написан в таком стиле, с вызовами GetError, принимающими номер ошибки в виде строки, молчаливым catch-ем всех исключений и т.п.

    yamamoto, 17 Мая 2014

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

    +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
    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
    public function catalog_add() {
            
            if (Route::is_post()) {
                $this->L->view = false;
                $errors = array();
    
                $Company = new Model_Companies();
                $Company->fillFromArray($_POST['companies']);
    
                if (!$Company['cats_id']) {
                    $errors[] = 'Не выбрана категория';
                }
                if (!preg_match('/^\d{2}\.\d{2}\.\d{4}$/', $Company['startdate'])) {
                    $errors[] = 'Неверный формат начала периода размещения';
                }
                if (!preg_match('/^\d{2}\.\d{2}\.\d{4}$/', $Company['enddate'])) {
                    $errors[] = 'Неверный формат конца периода размещения';
                }
                if (!preg_match('/^\d{2}\.\d{2}\.\d{4}$/', $Company['position_start'])) {
                    $errors[] = 'Неверный формат начала действия приоритетной позиции';
                }
                if (!preg_match('/^\d{2}\.\d{2}\.\d{4}$/', $Company['position_end'])) {
                    $errors[] = 'Неверный формат конца действия приоритетной позиции';
                }
    
                //проверка на существования графика работы
                $noSchedule = true;
                foreach ($_POST['schedule'] as $key => $value) {
                    if (isset($value['work'])) {
                        $noSchedule = false;
                        break;
                    }
                }
    
                if ($noSchedule) {
                    $errors[] = 'Не указано ни одного рабочего дня';
                } else {
                    //проверка рабочего времени
                    foreach ($_POST['schedule'] as $key => $value) {
                        if (isset($value['work'])) {
                            if (!preg_match('/^(2[0-3]|[01][0-9]):[0-5][0-9]$/', $value['start']) || !preg_match('/^(2[0-3]|[01][0-9]):[0-5][0-9]$/', $value['end'])) {
                                $errors[] = 'Неверный формат времени работы в ' . strtolower(Model_Schedule::$days[$key]);
                            } else {
                                //проверка грамотности, конец больше начала
                                if (strtotime($value['start']) > strtotime($value['end'])) {
                                    $errors[] = 'Конец работы должен быть позже времени начала в ' . strtolower(Model_Schedule::$days[$key]);
                                } else {
                                    //провека обеда
                                    if (isset($value['lunch'])) {
                                        if (!preg_match('/^(2[0-3]|[01][0-9]):[0-5][0-9]$/', $value['lunch_start']) || !preg_match('/^(2[0-3]|[01][0-9]):[0-5][0-9]$/', $value['lunch_end'])) {
                                            $errors[] = 'Неверный формат времени обеда в ' . strtolower(Model_Schedule::$days[$key]);
                                        } else {
                                            //проверка грамотности границ обеда
                                            if (strtotime($value['lunch_start']) > strtotime($value['lunch_end'])) {
                                                $errors[] = 'Конец обеденного перерыва должен быть позже времени начала в ' . strtolower(Model_Schedule::$days[$key]);
                                            } else {
                                                //проверка что обед вмещается в рабочее время
                                                if ($value['lunch_start'] < $value['start'] || $value['lunch_end'] > $value['end']) {
                                                    $errors[] = 'Обед выходит за рамки указанного рабочего времени в ' . strtolower(Model_Schedule::$days[$key]);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
    
                //todo: сделать проверку на занятость приоритетной позиции в выбраной категории в указанный период
    
                if (!count($errors)) {
                    //если нет ошибок то пишем
                    $Company->save();
    
                    foreach ($_POST['schedule'] as $key => $value) {
                        if (isset($value['work'])) {
                            $Schedule = new Model_Schedule();
                            $Schedule->fillFromArray($value);
                            $Schedule['day'] = $key;
                            $Schedule['companies_id'] = $Company['id'];
                            $Schedule->save();
                        }
                    }
                }
    
                echo json_encode($errors);
            }
        }

    проверки, такие проверки

    Serious_Andy, 17 Мая 2014

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

    +134

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    private byte Summ(byte a, byte b, byte p)
            {
    
                return Or(Or(Or(And(p, Not(a)), And(p, Not(b))), Or(And(b, Not(a)), And(b, Not(a))))Or(And(a, Not(b)),And(a, Not(p))), ()) ;//тут я и сломался 
             
            }

    Shadowy1, 17 Мая 2014

    Комментарии (6)
  9. C# / Говнокод #16001

    +123

    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
    namespace Рунге_Кутты_1._4
    {
        public partial class Form1 : Form
        {
            double x0 = 1, y0 = 2, z0 = 4, t0 = 0, T = 1, h = 0.001, Eps = 0.000001, fx, fy, fz, xx, yy, zz, Ex, Ey, Ez, Eps1;
            double[] x = new double[4]; double[] y = new double[4]; double[] z = new double[4];
            double[] Kx = new double[4]; double[] Ky = new double[4]; double[] Kz = new double[4];
            bool a;
            public void Calculates()
            {
                System.IO.File.Delete(@"C:\Results\results.dat");
                x[0] = x0; y[0] = y0; z[0] = z0;
                while (t0 <= T)
                {
                    for (int i = 0; i <= 3; i++)
                    {
                        fx = -y[i] - z[i];
                        fy = x[i] + 0.2 * y[i];
                        fz = 0.2 + (x[i] - 5.7) * z[i];
                        Kx[i] = h * fx;
                        Ky[i] = h * fy;
                        Kz[i] = h * fz;
                        x[1] = x[0] + 0.5 * Kx[0];
                        x[2] = x[0] + 0.5 * Kx[1];
                        x[3] = x[0] + Kx[2];
                        y[1] = y[0] + 0.5 * Ky[0];
                        y[2] = y[0] + 0.5 * Ky[1];
                        y[3] = y[0] + Ky[2];
                        z[1] = z[0] + 0.5 * Kz[0];
                        z[2] = z[0] + 0.5 * Kz[1];
                        z[3] = z[0] + Kz[2];
                    }
                    Ex = Math.Abs(2 * (Kx[0] - Kx[1] - Kx[2] + Kx[3]) / 3);
                    Ey = Math.Abs(2 * (Ky[0] - Ky[1] - Ky[2] + Ky[3]) / 3);
                    Ez = Math.Abs(2 * (Kz[0] - Kz[1] - Kz[2] + Kz[3]) / 3);
                    Eps1 = Eps / 8;
                    a = Check();
                    if (a == false)
                    {
                        xx = x[0] + (Kx[0] + 2 * Kx[1] + 2 * Kx[2] + Kx[3]) / 6;
                        yy = y[0] + (Ky[0] + 2 * Ky[1] + 2 * Ky[2] + Ky[3]) / 6;
                        zz = z[0] + (Kz[0] + 2 * Kz[1] + 2 * Kz[2] + Kz[3]) / 6;
                        x[0] = xx;
                        y[0] = yy;
                        z[0] = zz;
                        t0 += h;
                        string f1 = Convert.ToString(xx);
                        string f2 = Convert.ToString(yy);
                        string f3 = Convert.ToString(zz);
                        string[] f = new string[] { f1, f2, f3 };
                        string path = @"C:\Results\results.dat";
                        string appendtext = xx + " " + yy + " " + zz + Environment.NewLine;
                        System.IO.File.AppendAllText(path, appendtext);
                    }
                }
            }
            public bool Check()
            {
                bool a;
                if (Ex > Eps | Ey > Eps | Ez > Eps)
                {
                    a = true;
                    h /= 2;
                    Calculates();
                }
                else a = false;
                return a;
            }
            public Form1()
            {
                InitializeComponent();
                Calculates();
                DrawGraph();
            }
            public void DrawGraph()
            {
                    GraphPane pane = zedGraph.GraphPane;
                    pane.CurveList.Clear();
                    PointPairList list = new PointPairList();
                    for (t0 = 0; t0 <= T; t0 += h)
                    {
                        list.Add(t0, x[0]);
                    }
                    LineItem MyCurve = pane.AddCurve("x(t)", list, Color.Blue, SymbolType.None);
                    zedGraph.AxisChange();
                    zedGraph.Invalidate();
            }
        }
    }

    пытаюсь вывести решения в виде графика. выводится только последнее решение из цикла

    mr07th, 16 Мая 2014

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

    +78

    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
    public static SomeHandler getInstance(int... initValue){
               if (initValue == null || initValue.length == 0) {
                   initValue = new int[1];
                   initValue[0] = 1;
               }
               if (initValue != null && initValue.length != 1) {
                   throw new IllegalArgumentException("You should pass exactly one value");
               }
               if (instance == null){
                   instance = new SomeHandler();
               }
               return instance;
    }

    shitking, 16 Мая 2014

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