Исправления для задачи обработки двухмерного массива - C#

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

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

Я сделала работу, препод сказал что не так, объясни что делать( Использование подпрограмм в задаче на обработку двумерного массива. Реализовать представленные задачи в виде методов (функций и/или процедур). Предусмотреть удобное функциональное меню в программе. Даны действительные числа X,Y. Выполнить следующие преобразования: a) если оба числа отрицательны, то каждое число заменить его модулем; b) если отрицательное только одно из них, то оба значения увеличить на 0.5; c) если оба числа положительны и ни одно из них не принадлежит отрезку [0.5,2.0], то оба значения уменьшить в 10 раз; d) в остальных случаях числа оставить без изменения.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Lab8
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. Console.WriteLine("Действительные числа");
  13. double x, y;
  14. Console.WriteLine("Введите первое число:");
  15. Console.Write("x= ");// Вводим х
  16. x = Convert.ToDouble(Console.ReadLine());
  17. Console.WriteLine("Введите второе число");
  18. Console.Write("y= ");// Вводим у
  19. y = Convert.ToDouble(Console.ReadLine());
  20. if (x < 0 && y < 0) // Если x и y меньше нуля
  21. {
  22. x = Math.Abs(x);
  23. y = Math.Abs(y);
  24. Console.WriteLine("Ответ: х={0}; у={1}", x, y);
  25. }
  26. else if (x < 0 || y < 0)// Если отрицательно только одно из чисел
  27. {
  28. x = x + 0.5;
  29. y = y + 0.5;
  30. Console.WriteLine("Ответ: х={0}; у={1}", x, y);
  31. }
  32. else if ((x < 0.5 || x > 2.0) && (y < 0.5 || y > 2.0))//если оба числа неотрицательны и ни одно из них не принадлежит отрезку (0,5; 2,0)
  33. {
  34. x /= 10;
  35. y /= 10;
  36. }
  37. Console.WriteLine("Ответ: х={0}; у={1}", x, y);
  38. }
  39. }
  40. }

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

textual
Листинг программы
  1. static void Main()
  2. {
  3. string line;
  4. char[] delimiterChars = { ' ', ',', '\t' };
  5. int n; // количество строк матрицы
  6. int[,] matr; // исходная матрица
  7. int i, j; // индексы
  8. // ввод матрицы из файла
  9. using (StreamReader file = new StreamReader("dat.txt"))
  10. {
  11. // ввод размерности
  12. n = int.Parse(file.ReadLine());
  13. matr = new int[n, n]; // определение матрицы
  14. // чтение строки из файла и преобразование в числовые данные
  15. for (i = 0; (i < n) && ((line = file.ReadLine()) != null); i++)
  16. {
  17. string[] numbers = line.Split(delimiterChars);
  18. j = 0;
  19. foreach (string numString in numbers)
  20. {
  21. int x;
  22. bool canConvert = int.TryParse(numString, out x);
  23. if (canConvert == true)
  24. {
  25. matr[i, j] = x;
  26. j++;
  27. }
  28. }
  29. }
  30. }// ввод данных закончен
  31. // создание меню
  32. string choice = "0";
  33. while (choice != "4")
  34. {
  35. Console.WriteLine();
  36. Console.WriteLine("1. Печать матрицы");
  37. Console.WriteLine("2. Нахождение минимального элемента");
  38. Console.WriteLine("3. Замена побочной диагонали нулями");
  39. Console.WriteLine("4. Выход");
  40. Console.WriteLine(" ");
  41. Console.WriteLine(" Введите номер пункта меню ");
  42. choice = Console.ReadLine();
  43. switch (choice)
  44. {
  45. case "1":
  46. Console.WriteLine(" Печать матрицы");
  47. print_matrica(matr);
  48. Console.WriteLine();
  49. break;
  50. case "2":
  51. Console.Write("Мин. элемент = {0}",min_element(matr));
  52. Console.WriteLine();
  53. break;
  54. case "3":
  55. Console.WriteLine(" Произведена замена.");
  56. zamena(ref matr);
  57. Console.WriteLine();
  58. break;
  59. case "4":
  60. Console.WriteLine(" До свидания!");
  61. break;
  62. default:
  63. Console.WriteLine(" Введите 1, 2, 3 или 4");
  64. Console.WriteLine();
  65. break;
  66. }
  67. }
  68. Console.ReadLine();
  69. }// k Main
  70. // метод нахождения минимального элемента матрицы
  71. static int min_element(int[,] a)
  72. {
  73. int min_elt=a[0,0];
  74. for (int i = 0; i < a.GetLength(0); i++)
  75. {
  76. for(int j=0; j< a.GetLength(1); j++)
  77. {
  78. if (a[i, j] < min_elt)
  79. min_elt = a[i, j];
  80. }
  81. }
  82. return min_elt;
  83. }
  84. // метод замены побочной диагонали нулями
  85. static void zamena(ref int[,] a)
  86. {
  87. int n= a.GetLength(1);
  88. for (int i = 0; i < a.GetLength(0); i++)
  89. {
  90. a[i, n i 1] = 0;
  91. }
  92. }
  93. // метод печати матрицы
  94. static void print_matrica(int[,] a)
  95. {
  96. for (int i = 0; i < a.GetLength(0); i++)
  97. {
  98. for (int j = 0; j < a.GetLength(1); j++)
  99. {
  100. Console.Write("{0} \t", a[i, j]);
  101. }
  102. Console.WriteLine();
  103. }
  104. }

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


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

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

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

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

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

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