Заполнение 2d-массива из файла - C#

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

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

Нужно написать метод заполнения двухмерного массива (матрицы) из файла, при том, что неизвестно его кол-во строк/столбцов

Пож-та, поправьте меня или предложите, как лучше!
Листинг программы
  1. void readMtrx()
  2. {
  3. const int row=3, col=3; // НЕТ, нужно, чтобы заранее не была известна размерность
  4. string[] rX=null;
  5. string filePath;
  6. Console.Write("Путь файла: "); filePath = Console.ReadLine();
  7. rX=File.ReadAllLines(filePath);
  8. arrMtrx=new int[row,col];
  9. for (int i=0; i<row; i++)
  10. {
  11. string[] rX2=rX[i].Split(' ');
  12. for (int j=0; j<col; j++)
  13. {
  14. arrMtrx[i,j]=int.Parse(rX2[j]);
  15. }
  16. }
  17. Console.ReadLine();
  18. }
Матрица из теста:
1 0 2 3 6 12 4 8 9
Помимо ввода нужно будет совершать различные операции с матрицей, например:
Листинг программы
  1. //Ввод матрицы с клав-ы
  2. void inputMatrix(int[] args)
  3. {
  4. //Console.WriteLine("Введите размерность матрицы: ");
  5. Console.Write("Введите кол-во строк матрицы: ");
  6. m = Convert.ToInt32(Console.ReadLine()); //строки
  7. Console.Write("Введите кол-во столбцов матрицы: ");
  8. n = Convert.ToInt32(Console.ReadLine()); //столбцы
  9. Console.WriteLine(" З А П О Л Н Е Н И Е ");
  10. arrMtrx = new int[m, n];
  11. for (int i = 0; i < m; i++)
  12. for (int j = 0; j < n; j++)
  13. {
  14. Console.Write("arrMtrx[" + i + "," + j + "] = ");
  15. arrMtrx[i, j] = int.Parse(Console.ReadLine());
  16. }
  17. for (int i = 0; i < m; i++)
  18. {
  19. for (int j = 0; j < n; j++)
  20. Console.Write("{0:d} ", arrMtrx[i, j]);
  21. Console.WriteLine();
  22. }
  23. Console.ReadLine();
  24. }
  25. //Вывод матрицы
  26. void outMatrix(int[,] arrMtrx)
  27. {
  28. for (int i = 0; i < m; i++)
  29. {
  30. for (int j = 0; j < n; j++)
  31. Console.Write("{0:d} ", arrMtrx[i, j]);
  32. Console.WriteLine();
  33. }
  34. Console.WriteLine();
  35. }
  36. void dif() // Разность матриц
  37. {
  38. int dif = 0;
  39. Dif = new int[m, n];
  40. Console.WriteLine("Разность двух матриц:");
  41. for (int i = 0; i < m; i++)
  42. {
  43. for (int j = 0; j < n; j++)
  44. {
  45. Dif[i,j] = arrMtrx[i, j] - arrMtrx[i, j];
  46. //Console.Write("{0} ", dif);
  47. }
  48. }
  49. for (int i = 0; i < m; i++)
  50. {
  51. for (int j = 0; j < n; j++)
  52. Console.Write("{0:d} ", Dif[i, j]);
  53. Console.WriteLine();
  54. }
  55. Console.WriteLine();
  56. }
Как объявлены переменные в начале:
Листинг программы
  1. int[] intArray = null;
  2. int[,] arrMtrx = null;
  3. int[,] Sum = null, Dif = null;
  4. int[,] r2 = null;
  5. int m, n, inputChoiceLength;
  6. int inputChoice = 0;
  7. bool exit = true;

Решение задачи: «Заполнение 2d-массива из файла»

textual
Листинг программы
  1. do
  2. {
  3.    row++;
  4.    values.Add (reader.ReadLine ().Split (' '));
  5. } while (!reader.EndOfStream);

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


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

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

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

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

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

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