1. Си / Говнокод #21253

    −49

    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
    /*	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, 23 Сентября 2016

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

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

            будет варнинг, а не еррор: http://s14.postimg.org/9g99u270x/image.png
            Ответить
        • В K&R int был по умолчанию, да)
          А еще там не было указателя на войд, надо было указатель наchar делать (ну всяко он указывает на байт).
          В 1977м году, как сейчас помню!
          Ответить
    • а что, правда деток учат на турбо си в 2016м году? Дедушка борланд умер, а дело живет?
      Надеюсь, программировать про PIC, KeyboardController, Timers и CGA тоже учат?

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

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

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

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

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

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