Няшная / Говнокод #21253 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
/*	p11
Язык Turbo C
Основы программирования
Теория. Задачи   */

/*	p11 (15k), p13 (22k), p16, p18, p19 (23k)
p21 (24k), p53 (25k), p54, p55   */

#include <conio.h>
#include <math.h>
#include <stdio.h>

j ();		/*   Решение - любое число.   */
k ();		/*   Решений нет.   */
l (float);		/*   Один корень.   */
m (float, float);	/*   Два корня.   */
n (int, int);	/*   n = a ^ b.   */
o (float, float, float);	/*   Три корня.   */
p (float, float, float, float);	/*   Четыре корня.   */


main ()
{
   int a, b, c, d;
   int g, h;
   float s, t;

   printf ("Введите четыре целых числа: ");
   scanf ("%i%i%i%i", &a, &b, &c, &d);

   printf ("p13 - 2. ");
   if (a == 0)
      if (b == 0)
	 if (c == 0) j (); else k ();
      else
	 l ((float) -c / b);
   else
   {
      g = b * b - 4 * a * c;
      if (g < 0)  k ();  else
	 if (g == 0)
	    l (-b / 2. / a);
	 else
	    m ((-b + sqrt (g)) / 2 / a, (-b - sqrt (g)) / 2 / a);
   }

   printf ("p21 - 6. ");
   if (a == 0)
      if (b == 0)
	 if (c == 0) j (); else k ();
      else
      {
	 s = (float) -c / b;
	 if (s < 0)  k ();  else if (s == 0)  l (0);  else m (sqrt (s), -sqrt (s));
      }
   else
   {
      g = b * b - 4 * a * c;
      if (g < 0)  k ();  else
	 if (g == 0)
	 {
	    s = -b / 2. / a;
	    if (s < 0)  k ();  else if (s == 0)  l (0);  else m (sqrt (s), -sqrt (s));
	 }
	 else
	 {
	    s = (-b + sqrt (g)) / 2 / a;
	    t = (-b - sqrt (g)) / 2 / a;
	    if (s < 0)
	       if (t < 0)  k ();  else if (t == 0)  l (0);  else m (-sqrt (t), sqrt (t));
	    else
	       if (s == 0)
		  if (t < 0)  l (0);  else o (-sqrt (t), 0, sqrt (t));
	       else
		  if (t < 0)
		     m (-sqrt (s), sqrt (s));
		  else
		     if (t == 0)
			o (-sqrt (s), 0, sqrt (s));
		     else
			p (-sqrt (s), -sqrt (t), sqrt (t), sqrt (s));
	 }
   }

   getch ();
   printf ("\n");
}


j () {printf ("Решение - любое число.\n");}
k () {printf ("Решений нет.\n");}
l (float a) {printf ("x = %.4g.\n", a);}
m (float a, float b) {printf ("x1 = %.4g, x2 = %.4g.\n", a, b);}
o (float a, float b, float c) {printf ("x1 = %.4g, x2 = %.4g, x3 = %.4g.\n", a, b, c);}
p (float a, float b, float c, float d) {printf ("x1 = %.4g, x2 = %.4g, x3 = %.4g, x4 = %.4g.\n", a, b, c, d);}

Решить биквадратное уравнение.

Запостил: abc abc, (Updated )

Комментарии (50) RSS

  • Кстати, в VS2013 по умолчанию ко-ко-консолечка всегда закрывается. Чтобы предотвратить это, придётся в настройках проекта открыть Linker(Компоновщик)/System(Система) и установить Subsystem(Подсистема) в значение Console, тогда по нажатию Ctrl+F5 после завершения программы будет вызвана pause.
    Ответить
    • > установить Subsystem(Подсистема) в значение Console
      Она без этого вообще открывается?
      Ответить
      • Открывается.
        Но закрывается при завершении программы.
        Ответить
          • У меня - DOS-приложение для процессора с плавающей запятой.
            Ответить
              • А VS2013 я упомянул, т.к. удивился, когда понял, что по умолчанию программисту показывают шиш, а не открытую консоль с результатами.
                Ответить
          • Вот это не помню. Помню, что проект был - консольное приложение C++.
            Ответить
    • Программы пишу на Turbo C 2.0 под MS-DOS 6.22 на Celeron 333 с HDD IDE 80 Gb и размеченным C: 0,1 Gb FAT16.
      Так что эта концовка - стандартная... чтобы окно результатов не закрывалось сразу... а то сразу переходит в IDE, не давая посмотреть, что там, и приходится всякий раз нажимать <Alt>+<F5>.
      Ответить
  • Согласно Уставу, функции должны быть именованы латинскими буквами по порядку и перечислены в секции предварительных объявлений с прикрепленными коментариями.
    Ответить
    • ...продолжу. Например, Borland C++ 3.1 требует предварительного объявления имён функций перед первым использованием...
      Комментарии - это чисто словарь. Чтобы не забыть. А забыл (в сотый раз) - прочитать.
      Ответить
    • Тип возвращаемого значения указывать запрещено. Дефолтного int хватит для всех.
      Ответить
      • "Turbo C 2.0" не требователен в этом плане. Он позволяет не возвращать никакого значения.
        А вот с "Turbo C 2.1" и "Borland C++ 3.1" такое уже не прокатит...
        А оно мне надо - возвращать какое-либо значение? Работает - и ладно.
        Ответить
      • В K&R int был по умолчанию, да)
        А еще там не было указателя на войд, надо было указатель наchar делать (ну всяко он указывает на байт).
        В 1977м году, как сейчас помню!
        Ответить
  • а что, правда деток учат на турбо си в 2016м году? Дедушка борланд умер, а дело живет?
    Надеюсь, программировать про PIC, KeyboardController, Timers и CGA тоже учат?

    Это так трогательно
    Ответить
    • А ведь всё это (кроме CGA, пожалуй) до сих пор так и не смогли выпилить... Разве что на UEFI-only планшетках.

      З.Ы. А ещё до сих пор жив gate A20.
      Ответить
      • Я не знаю, что это такое - "ворота А20". Видел как-то в BIOS'е, но так и не въехал.
        Ответить
        • В первом цпу было 20 ножек для адреса памяти, а адресовать мож было больше (16 сегмент и 16 сиещени). Потому последние биты тупо одбрасывались. В результате получался заворот адреса. Это позволяло адресовать начало и конец памяти не меняя адрес сегмента, экономя циклы. Вме на это завизялись.

          В итоге пришлрсь эмулировать даже когда ног стало 24. Гейт a20 то и делал.
          Ответить
              • Там же автокоррект, он бы такого говна не допустил.
                Ответить
                • Я, например, автокоррект отключаю, т.к. он не знает мой интернет-сленг и постоянно корректирует хуйню.
                  Ответить
                  • Только что проверил - он даже не знает словоформу "хуйню".
                    Ответить
                  • Да потому что петушары анскильные словари составляют. Как только таких петухов и куриц на работу в берут! Такой анскильности не место. Как отключить этот ужас в иос?
                    Ответить
                    • Что мешало взять швабодных шловарик из опен офиса, например? Он же не заставляет выложить потом весь код?
                      Ответить
                    • > Как отключить этот ужас в иос?
                      Питуизатор текста - не ужас. Не отключайте, царский говорок нам сладок и приятен.
                      Ответить
                  • Да хуй там - swiftkey даже литературных слов в падежах не знает.
                    Ответить
                  • когда я набираю "бароп" он корректирует в "барон", я заебался
                    Ответить
                • Не все андроидовские клавиатуры корректируют автоматически.

                  Мне почему-то попадались только те, которые ничего не корректируют, только изредка подсказывают продолжение слова.
                  Ответить
      • Киборд контроллер похоронили, узб везде, биос его доже не эмулирует.

        Гейта тож давно не видал
        Ответить
    • Да я просто 20 лет ничему не учился... Нет, вру. Я ни с чем так ловко не управляюсь, как с этим. Въелось в мозг и память.
      Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8