C# Parameter in 2d Array

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

      C# Parameter in 2d Array

      Hallo,
      ich hab ein kleines Problem bei c#
      Ich möchte die Daten eines Konstruktors in ein 2d-Feld übergeben ohne von Hand die Indizes hochzuzählen.

      Quellcode

      1. public CMatrix(double m11, double m12, double m13, double m21, double m22, double m23, double m31, double m32, double m33)
      2. {
      3. for (int i = 0; i < Matrix.GetLength(0); i++)
      4. {
      5. for (int j = 0; i < Matrix.GetLength(1); i++)
      6. {
      7. // Hier sollte die Deklaration stehen
      8. }
      9. }
      10. }
      Bin mir jetzt nicht ganz sicher was du meinst, aber 2D Array befüllen geht i.D.R so:

      Quellcode

      1. private static void test(int [] array1, int [] array2)
      2. {
      3. int[,] twoDArray = new int[array1.Length, array2.Length];
      4. for (int i = 0; i < array1.Length; i++)
      5. {
      6. for (int j = 0; j < array2.Length; j++)
      7. {
      8. twoDArray[i, j] = j;
      9. Console.WriteLine(j);
      10. }
      11. }
      12. }
      Alles anzeigen


      Nur so als kleinen Denkansatz, weiß nicht genau ob das das ist was du suchst ;)
      Das Leben ist scheiße, hat aber ne hamma Grafik^.^
      :D :D
      Die Lösung ist immer interessant ;)

      hangman schrieb:

      Wenn es bei der deutschen Sprache eine Syntax Prüfung gäbe, wären so einige Menschen stumm


      Bitte ;)

      Spoiler anzeigen

      Quellcode

      1. using System;
      2. using System.Collections.Generic;
      3. using System.Linq;
      4. using System.Text;
      5. using System.Threading.Tasks;
      6. namespace OperatorOverloadPraktikum3
      7. {
      8. class CMatrix
      9. {
      10. double[,] Matrix = new double[3, 3];
      11. public CMatrix(double[] da)
      12. {
      13. int index = 0;
      14. for (int i = 0; i < Matrix.GetLength(0); i++)
      15. {
      16. for (int j = 0; j < Matrix.GetLength(1); j++)
      17. {
      18. Matrix[i, j] = da[index];
      19. index++;
      20. }
      21. }
      22. }
      23. // Konstruktor der Einheitsmatrix
      24. public CMatrix()
      25. {
      26. for (int i = 0; i < Matrix.GetLength(0); i++)
      27. {
      28. for (int j = 0; j < Matrix.GetLength(1); j++)
      29. {
      30. if (i == j) // Trägt in der Diagonalen 1.0 ein, sonst 0.0
      31. Matrix[i, j] = 1.0;
      32. else
      33. Matrix[i, j] = 0.0;
      34. }
      35. }
      36. }
      37. public void GebeWerteAus()
      38. {
      39. int Spalten = 0;
      40. foreach (double item in Matrix)
      41. {
      42. Console.Write("{0, -10} ", item); // die -10 lässt 10 Zeichen frei
      43. Spalten++;
      44. if (Spalten > Matrix.GetLength(0)-1)
      45. {
      46. // Formatiert die Ausgabe der Zeilen
      47. Console.WriteLine("\n");
      48. Spalten = 0;
      49. }
      50. }
      51. }
      52. public static CMatrix operator +(CMatrix m1, CMatrix m2) // Addition zweier Matrizen
      53. {
      54. CMatrix m3 = new CMatrix();
      55. for (int i = 0; i < 3; i++)
      56. {
      57. for (int j = 0; j < 3; j++)
      58. {
      59. m3.Matrix[i, j] = m1.Matrix[i, j] + m2.Matrix[i, j];
      60. }
      61. }
      62. return m3;
      63. }
      64. public static CMatrix operator *(CMatrix m1, CMatrix m2) // Multiplikation zweier Matrizen
      65. {
      66. CMatrix m3 = new CMatrix();
      67. for (int k = 0; k < 3; k++)
      68. {
      69. for (int i = 0; i < 3; i++)
      70. {
      71. double summe = 0.0;
      72. for (int j = 0; j < 3; j++)
      73. {
      74. summe = summe + (m1.Matrix[i, j] * m2.Matrix[j, k]);
      75. }
      76. m3.Matrix[i,k] = summe;
      77. }
      78. }
      79. return m3;
      80. }
      81. public static CMatrix operator *(CMatrix m1, int Skalar) //Multiplikation mit Skalar
      82. {
      83. CMatrix m3 = new CMatrix();
      84. for (int i = 0; i < 3; i++)
      85. {
      86. for (int j = 0; j < 3; j++)
      87. {
      88. m3.Matrix[i, j] = m1.Matrix[i, j] * Skalar;
      89. }
      90. }
      91. return m3;
      92. }
      93. public static explicit operator double(CMatrix m1) // Saurus-Regel wird angewandt
      94. {
      95. return
      96. m1.Matrix[0, 0] * m1.Matrix[1, 1] * m1.Matrix[2, 2]
      97. + m1.Matrix[0, 1] * m1.Matrix[1, 2] * m1.Matrix[2, 0]
      98. + m1.Matrix[0, 2] * m1.Matrix[1, 0] * m1.Matrix[2, 1]
      99. - m1.Matrix[0, 2] * m1.Matrix[1, 1] * m1.Matrix[2, 0]
      100. - m1.Matrix[1, 2] * m1.Matrix[2, 1] * m1.Matrix[0, 0]
      101. - m1.Matrix[2, 2] * m1.Matrix[0, 1] * m1.Matrix[1, 0];
      102. }
      103. }
      104. class Program
      105. {
      106. static void Main(string[] args)
      107. {
      108. double[] da1 = new double[] { 2.3, -1.5, 6.3, -4.4, 9.2, 2.3, 6.2, -4.5, 7.6 };
      109. double[] da2 = new double[] { 7.3, 4.6, -3.2, -7.2, 5.4, 6.7, -2.6, 6.4, 1.8 };
      110. CMatrix m1 = new CMatrix(da1);
      111. CMatrix m2 = new CMatrix(da2);
      112. CMatrix m3;
      113. CMatrix m4;
      114. m3 = m1 + m2;
      115. m4 = m1 * m2; // Matrix x Matrix
      116. m3.GebeWerteAus();
      117. Console.WriteLine("**************************************************");
      118. m4.GebeWerteAus();
      119. Console.WriteLine((double)m1); // Determinante von m1
      120. m1 = m1 * 4; // Matrix mit Skalar
      121. }
      122. }
      123. }
      Alles anzeigen