Класс Полином и операции над ним - C#

Узнай цену своей работы

Формулировка задачи:

Проблема в том, что программа считает неправильно при сложении полиномов ,умножении, вычитании. где ошибка? Само задание: 1.Необходимо создать класс Полином (от одной переменной) в котором задается степень многочлена и массив коэффициентов, вводимых из консоли. 2.Создать для этого класса методы для вычисления значения полинома для заданного аргумента, операции сложения, вычитания и умножения многочлена с получением нового объекта-многочлена, вывод на экран описания многочлена.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace ConsoleApplication3
  7. {
  8. class Mnogochlen
  9. {
  10. int[] koef; //массив коэф-ов
  11. int step; //значение степени полинома
  12. public Mnogochlen(int[] k, int s)
  13. {
  14. koef = k;
  15. step = s;
  16. }
  17. //сложение полиномов
  18. public static Mnogochlen operator +(Mnogochlen A, Mnogochlen B)
  19. {
  20. int D1 = A.step;
  21. int[] M1 = new int[D1 + 1];
  22. Mnogochlen C = new Mnogochlen(M1, D1);
  23. for (int i = 0; i < A.step + 1; i++)
  24. {
  25. C.koef[i] = A.koef[i] + B.koef[i];
  26. }
  27. return C;
  28. }
  29.  
  30. //вычитание полиномов
  31. public static Mnogochlen operator -(Mnogochlen A, Mnogochlen B)
  32. {
  33. int D1 = A.step;
  34. int[] M1 = new int[D1 + 1];
  35. Mnogochlen C = new Mnogochlen(M1, D1);
  36. for (int i = 0; i < A.step + 1; i++)
  37. {
  38. C.koef[i] = A.koef[i] - B.koef[i];
  39. }
  40. return C;
  41. }
  42.  
  43. //умножение полиномов
  44. public static Mnogochlen operator *(Mnogochlen A, Mnogochlen B)
  45. {
  46. int D1 = A.step;
  47. int[] M1 = new int[D1 + 1];
  48. Mnogochlen C = new Mnogochlen(M1, D1);
  49. for (int i = 0; i < A.step + 1; i++)
  50. {
  51. C.koef[i] = A.koef[i] * B.koef[i];
  52. }
  53. return C;
  54. }
  55.  
  56. //вывод полинома
  57. public void show()
  58. {
  59. for (int i = 0; i < step; i++)
  60. {
  61. Console.Write("+" + koef[i] + "x^" + (step - i));
  62. }
  63. //return 0;
  64. }
  65. }
  66.  
  67. class Program
  68. {
  69. static void Main(string[] args)
  70. {
  71. //ввод первого многочлена
  72. int step;
  73. int[] koef;
  74. Console.WriteLine("Введите степень первого многочлена:");
  75. step = Convert.ToInt32(Console.ReadLine());
  76. int Val = 0;
  77. int[] Matrix1 = { 1, 2, 3, 4 };
  78. Console.WriteLine("Введите размер первого массива");
  79. koef = new int[Int32.Parse(Console.ReadLine())];
  80. Console.WriteLine("Введите матрицу коэффициентов первого многочлена:");
  81. for (int i = 0; i < koef.Length; i++)
  82. {
  83. koef[i] = Int32.Parse(Console.ReadLine());
  84. }
  85. Mnogochlen A = new Mnogochlen(koef, step);
  86.  
  87. //ввод первого многочлена
  88. int step2;
  89. int[] koef2;
  90. Console.WriteLine("Введите степень второго многочлена:");
  91. step2 = Convert.ToInt32(Console.ReadLine());
  92. int[] Matrix2 = { 1, 2, 3, 4 };
  93. Console.WriteLine("Введите размер второго массива");
  94. koef2 = new int[Int32.Parse(Console.ReadLine())];
  95. Console.WriteLine("Введите матрицу коэффициентов второго многочлена:");
  96. for (int i = 0; i < koef2.Length; i++)
  97. {
  98. koef2[i] = Int32.Parse(Console.ReadLine());
  99. }
  100. Mnogochlen B = new Mnogochlen(koef2, step2);
  101.  
  102. //вывод многочленов
  103. Console.Write("A= ");
  104. A.show();
  105. Console.WriteLine("\n");
  106. Console.Write("B= ");
  107. B.show();
  108.  
  109. //вывод операций
  110. A = new Mnogochlen(Matrix1, step);
  111. B = new Mnogochlen(Matrix2, step2);
  112. Mnogochlen C = A + B;
  113. Mnogochlen D = A - B;
  114. Mnogochlen E = A * B;
  115. Console.Write("A+B= ");
  116. C.show();
  117. Console.Write("A-B= ");
  118. D.show();
  119. Console.Write("A*B= ");
  120. E.show();
  121. Console.ReadLine();
  122. }
  123. }
  124. }

Решение задачи: «Класс Полином и операции над ним»

textual
Листинг программы
  1. public static Mnogochlen operator +(Mnogochlen A, Mnogochlen B)
  2.         {
  3.             int D1 = A.step;
  4.             int[] M1 = new int[D1 + 1];
  5.             Mnogochlen C = new Mnogochlen(M1, D1);
  6.             for (int i = 0; i < A.step + 1; i++)
  7.             {
  8.                 C.koef[i] = A.koef[i] + B.koef[i];
  9.             }
  10.             return C;
  11.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы