1. C++ / Говнокод #3485

    +148

    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
    int main()
    {
    	int chisl,znam,cel;
    	Fraction fA,fB,fC;
    	cout<<"Vvedite fA v vide dvux 4isel\n";cin>>fA.chisl>>fA.znam;
    	cout<<"Vvedite fB v vide dvux 4isel\n";cin>>fB.chisl>>fB.znam;
    	cout<<"Vvedite celoe chislo\n";cin>>cel;
    	if ((fA.znam!=0)&&(fB.znam!=0)&&(cel!=0))
    	{
    	fC=fA+fB;
    	fC.getFraction(chisl,znam);
    	if((znam!=1)&&(chisl!=0))
    		cout<<"Summa: "<< chisl << "/" << znam <<'\n';
    	else
    		cout<<"Summa: "<< chisl <<'\n';
    	fC=fA-fB;
    	fC.getFraction(chisl,znam);
    	if ((znam!=1)&&(chisl!=0))
    		cout<<"Raznost: "<< chisl << "/" << znam <<'\n';
    	else 
    		cout<<"Raznost: "<< chisl <<'\n';
    	fC=fA*fB;
    	fC.getFraction(chisl,znam);
    	if ((znam!=1)&&(chisl!=0))
    		cout<<"Proizvedenie: "<< chisl << "/" << znam <<'\n';
    	else 
    		cout<<"Proizvedenie: "<< chisl <<'\n';
    	fC=fA/fB;
    	fC.getFraction(chisl,znam);
    	if((znam!=1)&&(chisl!=0)&&(znam!=0))
    		cout<<"Chastnoe: "<< chisl << "/" << znam <<'\n';
    	else if(znam==0) 
    		cout<<"Chastnogo drobei ne sushestvuet\n";
    	else
    		cout<<"Chastnoe: 0\n";
    	fC=fA+cel;
    	fC.getFraction(chisl,znam);
    	if((znam!=1)&&(chisl!=0))
    		cout<<"Summa 1 drobi i celogo 4isla: "<< chisl << "/" << znam <<'\n';
    	else
    		cout<<"Summa 1 drobi i celogo 4isla: "<< chisl <<'\n';
    	fC=fA-cel;
    	fC.getFraction(chisl,znam);
    	if((znam!=1)&&(chisl!=0))
    		cout<<"Raznost 1 drobi i celogo 4isla: "<< chisl << "/" << znam <<'\n';
    	else
    		cout<<"Raznost 1 drobi i celogo 4isla: "<< chisl <<'\n';
    	fC=fA*cel;
    	fC.getFraction(chisl,znam);
    	if((znam!=1)&&(chisl!=0))
    		cout<<"Proizvedenie 1 drobi i celogo 4isla: "<< chisl << "/" << znam <<'\n';
    	else 
    		cout<<"Proizvedenie 1 drobi i celogo 4isla: "<< chisl <<'\n';
    	fC=fA/cel;
    	fC.getFraction(chisl,znam);
    	if ((znam!=1)&&(chisl!=0))
    		cout<<"Chastnoe 1 drobi i celogo 4isla: "<< chisl << "/" << znam <<'\n';
    	else
    		cout<<"Chastnoe 1 drobi i celogo 4isla: 0\n";
    	fC=fB+cel;
    	fC.getFraction(chisl,znam);
    	if((znam!=1)&&(chisl!=0))
    		cout<<"Summa 2 drobi i celogo 4isla: "<< chisl << "/" << znam <<'\n';
    	else
    		cout<<"Summa 2 drobi i celogo 4isla: "<< chisl <<'\n';
    	fC=fB-cel;
    	fC.getFraction(chisl,znam);
    	if((znam!=1)&&(chisl!=0))
    		cout<<"Raznost 2 drobi i celogo 4isla: "<< chisl << "/" << znam <<'\n';
    	else
    		cout<<"Raznost 2 drobi i celogo 4isla: "<< chisl <<'\n';
    	fC=fB*cel;
    	fC.getFraction(chisl,znam);
    	if((znam!=1)&&(chisl!=0))
    		cout<<"Proizvedenie 2 drobi i celogo 4isla: "<< chisl << "/" << znam <<'\n';
    	else 
    		cout<<"Proizvedenie 2 drobi i celogo 4isla: "<< chisl <<'\n';
    	fC=fB/cel;
    	fC.getFraction(chisl,znam);
    	if ((znam!=1)&&(chisl!=0))
    		cout<<"Chastnoe 2 drobi i celogo 4isla: "<< chisl << "/" << znam <<'\n';
    	else
    		cout<<"Chastnoe 1 drobi i celogo 4isla: 0\n";
    	fC=~fA;
    	fC.getFraction(chisl,znam);
    	if((znam!=1)&&(chisl!=0))
    		cout<<"Sokrashennaya drob ravna: "<< chisl << "/" << znam <<'\n';
    	else 
    		cout<<"Sokrashennaya drob ravna: "<< chisl <<'\n';
    	}
    	else 
    		cout<<"Znamenatel drobi ili celoe chislo raven nulu, poetomu drobi net"<<'\n';
    	return 0;
    }

    Задача. Определить класс натуральная дробь, объекты которого числитель и знаменатель. Надо перегрузить операторы сложения, вычитания, умножения, делания и сокращения дробей, а так же сложения, вычитания, умножения и деления дроби и целого числа. То есть калькулятор дробей фактически. Написал, как-то жестоко получилось. Добавлю сразу, чтобы не было лишних разговоров. Это не задание в универе, сессия закончилась, каникулы, это для интереса, смотрю то, что мы еще не проходили. Кажется условий слишком много, короче ведь можно сделать?

    Запостил: ForEveR, 15 Июня 2010

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

    • Ах да. Чуть не забыл. Здесь только main. Функции писать смысла особо нет
      Ответить
    • Тю. Еще пара условий недобавлена. В частном. Если числитель равен 1, то выводится только целая часть
      Ответить
    • Быдлотранслит - в топку. Или по-английски латиницей, или по-русски кириллицей.
      Ответить
      • Скажи это сотовым операторам.
        Ответить
        • Мобильники - от лукавого!
          Ответить
        • так это было не 10 лет назад? когда заккупали англоцентричный англосаксонский софт и потому кириддица не пахала. неужели щас остались деревенские операторы, где до сих пор латинице1?
          Ответить
          • Проверь баланс что ли.
            Ответить
          • Ты долбоёб малолетний, латиницей до сих пор пишут, потому что латиниских букв больше влезает, чем кирилических. Скорее всего там UTF-8, но ты в своем дет-саду такого не проходил, ага.
            Ответить
            • Он многолетний, если чё.
              Ответить
            • > Ты долбоёб малолетний, латиницей до сих пор пишут, потому что латиниских букв больше влезает, чем кирилических

              телефоном не пользуюсь, могу ошибаться, не спорю
              Ответить
              • ты такой жуткий ниасилятор? или просто php нищеброд?
                Ответить
                • мне никто не звонит...
                  Ответить
                  • ну это логично... кому ты нужен... в свой палате №5...
                    Ответить
                    • №6, вообще-то.
                      Ответить
                      • нет. в интенсивную перевели, как буйного....
                        Ответить
                      • у того геста мама говнокодер, "палата номер пять" - закономерная бага
                        Ответить
                        • у кого-то мать -- немытая пробирка...
                          Ответить
                          • ничего личного, просто ты гест
                            Ответить
                            • Это ты ко всем гостям так относишься? Меня(гуеста) нужно уважать!
                              Ответить
                            • ничего личного, просто ты похапэшник
                              Ответить
                            • cock? Твоё место возле параши!
                              Ответить
    • Как удалить?) Русское полностью скину, а то так читать неудобно

      Просьба удалить этот код администрацию.
      Ответить
    • ты ебнулся удалять?! оставь, годный ГК)
      Ответить
    • А я че-то не понял, а где здесь собственно класс дроби?
      Ответить
      • если бы этот класс был, то было бы еще унылее, я гарантирую это
        Ответить
      • В программе. Сюда по сути влезает только 100 строк => класс никак бы не вместился. А у меня были вопросы ТОЛЬКО по мейну
        Ответить
        • Классно, а ниче, что у тебя строка if ((znam!=1)&&(chisl!=0)) встречается N-е количество раз, сдается мне, что все говно как раз в классе сосредоточено.
          Ответить
          • Ну да. Можно было в классе устроить проверку на знаменатель и числитель
            Ответить
          • А теперь кстати подумай, зачем эта строка встречается. Чтобы не выводить например 2/2, а вывести 2. Или чтобы не выводить 0/1, а выводить просто 0.
            Ответить

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