Функции сложения матриц и умножения матриц на число - C#

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

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

Найти k – количество нечетных чисел ниже побочной диагонали матрицы T и m – количество нечетных чисел матрицы C.Если k>m, найти H=(m)*T+C, иначе найти F=k*(C+T)+T. Нужно решить задачу. Написать функции ввода, вывода матриц, умножение матрицы на число и сложение матриц. Я сделала сначала без функций и процедур. Все работала. Стала функциями делать.(пока сделала только для матрицы Н) И Матрица H пишет в конце все нули(( тест: T=1, 3, 3, 3,3,3,3,3,3 C= 1 1 1,2,1,2,2,1,1 Ответ: H= 1.5 , 2, 2.5, 3.5, 2.5, 3.5, 3.5, 2.5, 2.5 Помогите, пожалуйста, разобраться
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace ConsoleApplication1
  6. {
  7. class Program
  8. {
  9. static int Nechet(int n, float[,] CT)
  10. {
  11. int i=0, j=0;
  12. int km=0;
  13. for (i = 0; i < n; i++)
  14. {
  15. for (j = n-i; j < n; j++)
  16. {
  17. if (CT[i, j] % 2 != 0)
  18. {
  19. km=km+1;
  20. }
  21. }
  22. }
  23. return (km);
  24. }
  25. static void inmass(int a, out float[,] X)
  26. {
  27. int i=0, j=0;
  28. X = new float[a, a];
  29. for (i = 0; i < a; i++)
  30. {
  31. for (j = 0; j < a; j++)
  32. X[i, j] = Convert.ToInt32(Console.ReadLine());
  33. }
  34. }
  35. static void outmass(int a, float[,] X)
  36. {
  37. int i = 0, j = 0;
  38. for (i = 0; i < a; i++)
  39. {
  40. Console.WriteLine();
  41. for (j = 0; j < a; j++)
  42. { Console.Write("{0}\t", X[i, j]); }
  43. }
  44. Console.WriteLine();
  45. }
  46. static void umnoj(float km, int a, float[,] X)
  47. {
  48. int i = 0, j = 0;
  49. float[,] M = new float[10, 10];
  50. for (i = 0; i < a; i++)
  51. {
  52. for (j = 0; j < a; j++)
  53. {
  54. M[i, j] = km * X[i, j];
  55. }
  56. }
  57. }
  58. static void plus(int a, float[,]X, float[,] Y)
  59. {
  60. int i = 0, j = 0;
  61. float[,] M = new float[10, 10];
  62. for (i = 0; i < a; i++)
  63. {
  64. for (j = 0; j < a; j++)
  65. {
  66. M[i, j] = X[i, j] + Y[i, j];
  67. }
  68. }
  69. }
  70.  
  71. static void Main(string[] args)
  72. {
  73. int i=0;
  74. int j=0;
  75. int k;
  76. float m;
  77. int n;
  78. float[,] C = new float[10, 10];
  79. float[,] T = new float[10, 10];
  80. float[,] H = new float[10, 10];
  81. float[,] F = new float[10, 10];
  82. float[,] M = new float[10, 10];
  83. Console.WriteLine("Введите размерность матриц T и C");
  84. n = Convert.ToInt32(Console.ReadLine());
  85. if (n < 2 || n > 10)
  86. {
  87. Console.WriteLine("Размерность матрицы должна быть не больше 10 и не меньше 2");
  88. }
  89. else
  90. Console.WriteLine("Введите матрицу T");
  91. inmass(n, out T);
  92. outmass(n,T);
  93. Console.WriteLine("Введите матрицу С");
  94. inmass(n, out C);
  95. outmass(n, C);
  96. Console.WriteLine();
  97. Console.WriteLine();
  98. k= Nechet(n,T);
  99. m = Nechet(n, C);
  100. if (k > m)
  101. {
  102. Console.WriteLine("Матрица Н=");
  103. umnoj(m, n, T);
  104. plus(n, T, C);
  105. outmass(n,T);
  106. }
  107.  
  108. /*for (i = 0; i < n; i++)
  109. {
  110. for (j = 0; j < n; j++)
  111. { M[i, j] = T[i, j] * p; }
  112. }
  113. for (i = 0; i < n; i++)
  114. {
  115. for (j = 0; j < n; j++)
  116. {
  117. H[i, j] = M[i, j] + C[i, j];
  118. Console.Write("{0}\t", H[i, j]);
  119. }
  120. Console.WriteLine();
  121. }
  122. }*/
  123. else
  124. {
  125. Console.WriteLine("Матрица F=");
  126. for (i = 0; i < n; i++)
  127. {
  128. for (j = 0; j < n; j++)
  129. {
  130. F[i, j] = C[i, j] + T[i, j];
  131. }
  132. }
  133. for (i = 0; i < n; i++)
  134. {
  135. for (j = 0; j < n; j++)
  136. {
  137. M[i, j] = k * F[i, j];
  138. }
  139. }
  140. for (i = 0; i < n; i++)
  141. {
  142. for (j = 0; j < n; j++)
  143. {
  144. F[i, j] = M[i, j] + T[i, j];
  145. Console.Write("{0}\t", F[i, j]);
  146. }
  147. Console.WriteLine();
  148. }
  149. }
  150. Console.ReadKey();
  151. }
  152. }
  153. }

Решение задачи: «Функции сложения матриц и умножения матриц на число»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading;
  6. using System.Threading.Tasks;
  7.  
  8. namespace ConsoleApplication2
  9. {
  10.     class Program
  11.     {
  12.         static void inmass(int a, out float[,] X)
  13.         {
  14.             int i = 0, j = 0;
  15.             X = new float[a, a];
  16.             for (i = 0; i < a; i++)
  17.             {
  18.                 for (j = 0; j < a; j++)
  19.                 {  
  20.                     Console.WriteLine("X[" + i + "," + j + "] =");
  21.                     X[i, j] = Convert.ToInt32(Console.ReadLine());
  22.                 }
  23.             }
  24.         }
  25.  
  26.         static void outmass(int a, float[,] X)
  27.         {
  28.             int i = 0, j = 0;
  29.             for (i = 0; i < a; i++)
  30.             {
  31.                 Console.WriteLine();
  32.                 for (j = 0; j < a; j++)
  33.                 { Console.Write("{0}\t", X[i, j]); }
  34.             }
  35.             Console.WriteLine();
  36.         }
  37.  
  38.         static int Nechet(int n, float[,] CT)
  39.         {
  40.             int i = 0, j = 0;
  41.             int km = 0;
  42.             for (i = 0; i < n; i++)
  43.             {
  44.                 for (j = n - i; j < n; j++)
  45.                 {
  46.                     if (CT[i, j] % 2 != 0)
  47.                     {
  48.                         km = km + 1;
  49.                     }
  50.                 }
  51.             }
  52.             return (km);
  53.         }
  54.  
  55.         static float[,] umnojnumber(float chislo, int rozriad, float[,] Massiv)
  56.         {
  57.             int i = 0, j = 0;
  58.             float[,] M = new float[rozriad, rozriad];
  59.             for (i = 0; i < rozriad; i++)
  60.             {
  61.                 for (j = 0; j < rozriad; j++)
  62.                 {
  63.                     M[i, j] = chislo * Massiv[i, j];
  64.                 }
  65.             }
  66.  
  67.             return M;
  68.         }
  69.  
  70.         static float[,] plus(int rozriad, float[,] X, float[,] Y)
  71.         {
  72.             int i = 0, j = 0;
  73.             float[,] M = new float[rozriad, rozriad];
  74.             for (i = 0; i < rozriad; i++)
  75.             {
  76.                 for (j = 0; j < rozriad; j++)
  77.                 {
  78.                     M[i, j] = X[i, j] + Y[i, j];
  79.                 }
  80.             }
  81.  
  82.             return M;
  83.         }
  84.  
  85.         static void Main(string[] args)
  86.         {
  87.             int i = 0;
  88.             int j = 0;
  89.             int k;
  90.             float m;
  91.             int n;
  92.            
  93.             Console.WriteLine("Введите размерность матриц T и C");
  94.             n = Convert.ToInt32(Console.ReadLine());
  95.             float[,] C = new float[n, n];
  96.             float[,] T = new float[n, n];
  97.             float[,] H = new float[n, n];
  98.             float[,] F = new float[n, n];
  99.             float[,] M = new float[n, n];
  100.             if (n < 2 || n > 10)
  101.             {
  102.                 Console.WriteLine("Размерность матрицы должна быть не больше 10 и не меньше 2");
  103.             }
  104.             else
  105.                 Console.WriteLine("Введите матрицу T");
  106.             inmass(n, out T);
  107.             outmass(n, T);
  108.            
  109.            
  110.             Console.WriteLine("Введите матрицу С");
  111.             inmass(n, out C);
  112.             outmass(n, C);
  113.  
  114.             Console.WriteLine();
  115.             Console.WriteLine();
  116.  
  117.             k = Nechet(n, T);
  118.             m = Nechet(n, C);
  119.             if (k > m)
  120.             {
  121.                 Console.WriteLine("Матрица Н=");
  122.  
  123.                 T = umnojnumber(m, n, T);
  124.                 H = plus(n, T, C);
  125.                 outmass(n, H);
  126.  
  127.                 Thread.Sleep(2000);
  128.  
  129.             }
  130.             else if (m > k)
  131.             {
  132.                 Console.WriteLine("Матрица F=");
  133.                 M = plus(n, T, C);
  134.                 M = umnojnumber(k, n, M);
  135.                 F = plus(n, T, M);
  136.                 outmass(n, F);
  137.  
  138.                 Thread.Sleep(2000);
  139.             }
  140.             else
  141.             {
  142.                 Console.WriteLine("k равняется m");
  143.                 Thread.Sleep(2000);
  144.             }
  145.  
  146.         }
  147.  
  148.     }
  149. }

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


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

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

9   голосов , оценка 4 из 5

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

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

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