Программа определения количества симметричных матриц - C#

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

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

Заданы две матрицы С(4, 4) и D(3, 3). Написать программу определения количества симметричных матриц. Матрица называется симметричной, если транспонированная матрица равна исходной. Для каждой симметричной матрицы вычислить сумму элементов, лежащих вне главной диагонали. ИМЕЕТСЯ СЛЕДУЮЩИЙ (ОШИБОЧНЫЙ) КОД:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Laba7
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. Int32[,] c = new Int32[4, 4];
  13. Int32[,] ct = new Int32[4, 4];
  14. Int32[,] d = new Int32[3, 3];
  15. Int32[,] dt = new Int32[3, 3];
  16. Int32 p1, p2;
  17. int ic, jc, id, jd;
  18. Console.WriteLine("Введите массив C");
  19. for (ic = 0; ic < 4; ic++)
  20. {
  21. for (jc = 0; jc < 4; jc++)
  22. c[ic, jc] = Convert.ToInt32(Console.ReadLine());
  23. }
  24. for (ic = 0; ic < 4; ic++)
  25. {
  26. for (jc = 0; jc < 4; jc++)
  27. {
  28. Console.Write("{0,5}", c);
  29. }
  30. Console.WriteLine();
  31. }
  32. // transp(c, 4, ct);
  33. if (c.Equals(ct))
  34. {
  35. Console.WriteLine("Массив С симметричный");
  36. p1 = c[1, 2] + c[1, 3] + c[1, 4] + c[2, 1] + c[2, 3] + c[2, 4] + c[3, 1] + c[3, 2] + c[3, 4] + c[4, 1] + c[4, 2] + c[4, 3];
  37. Console.WriteLine(p1);
  38. }
  39. else
  40. Console.WriteLine("Массив С не симметричный");
  41.  
  42. Console.WriteLine("Введите массив D");
  43. for (id = 0; id < 3; id++)
  44. {
  45. for (jd = 0; jd < 3; jd++)
  46. d[id, jd] =
  47. Convert.ToInt32(Console.ReadLine());
  48. }
  49. transp(d, 3, dt);
  50. if (d.Equals(dt))
  51. {
  52. Console.WriteLine("Массив D симметричный");
  53. p2 = d[1, 2] + d[1, 3] + d[2, 1] + d[2, 3] + d[3, 1] + d[3, 2];
  54. Console.WriteLine(p2);
  55. }
  56. else
  57. Console.WriteLine("Массив D не симметричный");
  58.  
  59. }
  60. static void transp(Int32[,] mtr, int p, Int32[,] mtrt)
  61. {
  62. int i; int j;
  63. for (i = 0; i < p; i++)
  64. {
  65. for (j = 0; j < p; j++)
  66. mtrt[j, i] = mtr[i, j];
  67. }
  68. }
  69. }
  70. }
ИЗВИНИТЕ,ЕСЛИ НЕПРАВИЛЬНО ОФОРМИЛ. ОЧЕНЬ НАДО. БУДУ БЛАГОДАРЕН

Решение задачи: «Программа определения количества симметричных матриц»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace ConsoleApplication1
  4. {
  5.     class Program
  6.     {
  7.         static void Main()
  8.         {
  9.             int i, j;
  10.             int[,] C = new int[4, 4];
  11.             int[,] D = new int[3, 3];
  12.             Console.WriteLine("Заполните матрцу C");
  13.             for (i = 0; i < 4; i++)
  14.             {
  15.                 for (j = 0; j < 4; j++)
  16.                 {
  17.                     Console.Write("Введите элемент [{0},{1}] ",i,j);
  18.                     C[i, j] = int.Parse(Console.ReadLine());
  19.                 }
  20.             }
  21.             Console.WriteLine("Заполните матрцу D");
  22.             for (i = 0; i < 3; i++)
  23.             {
  24.                 for (j = 0; j < 3; j++)
  25.                 {
  26.                     Console.Write("Введите элемент [{0},{1}] ", i, j);
  27.                     D[i, j] = int.Parse(Console.ReadLine());
  28.                 }
  29.             }
  30.             if (Semetr(C))
  31.             {
  32.                 int sum = 0;
  33.                 for (i = 0; i < 4; i++)
  34.                 {
  35.                     for (j = 0; j < 4; j++)
  36.                     {
  37.                         if (i != j)
  38.                         {
  39.                             sum += C[i, j];
  40.                         }
  41.                     }
  42.                 }
  43.                         Console.WriteLine("Сумма : {0} ",sum);
  44.                         Console.WriteLine("Матрица C : семетрична");
  45.             }
  46.             else
  47.                 Console.WriteLine("Матрица C : не семетрична");
  48.             if (Semetr(D))
  49.             {
  50.                 int sum = 0;
  51.                 for (i = 0; i < 3; i++)
  52.                 {
  53.                     for (j = 0; j < 3; j++)
  54.                     {
  55.                         if (i != j)
  56.                         {
  57.                             sum += D[i, j];
  58.                         }
  59.                     }
  60.                 }
  61.                 Console.WriteLine("Сумма : {0} ", sum);
  62.                 Console.WriteLine("Матрица D : семетрична");
  63.             }
  64.             else
  65.                 Console.WriteLine("Матрица D : не семетрична");
  66.             Console.ReadKey();
  67.         }
  68.         static bool Semetr(int[,] a)
  69.         {
  70.             bool symm = true;
  71.             for (int i = 0; i < a.GetLength(0); ++i)
  72.             {
  73.                 for (int j = 0; j < a.GetLength(1); ++j)
  74.                     if (a[i, j] != a[j, i])
  75.                     {
  76.                         symm = false;
  77.                         break;
  78.                     }
  79.                 if (!symm) break;
  80.             }
  81.             return symm;
  82.         }
  83.     }
  84.  
  85.  
  86. }

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


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

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

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

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

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

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