Исправления для задачи обработки двухмерного массива - C#
Формулировка задачи:
Я сделала работу, препод сказал что не так, объясни что делать(
Использование подпрограмм в задаче на обработку двумерного массива.
Реализовать представленные задачи в виде методов (функций и/или процедур). Предусмотреть удобное функциональное меню в программе.
Даны действительные числа X,Y. Выполнить следующие преобразования:
a) если оба числа отрицательны, то каждое число заменить его модулем;
b) если отрицательное только одно из них, то оба значения увеличить на 0.5;
c) если оба числа положительны и ни одно из них не принадлежит отрезку [0.5,2.0], то оба значения уменьшить в 10 раз;
d) в остальных случаях числа оставить без изменения.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Lab8 { class Program { static void Main(string[] args) { Console.WriteLine("Действительные числа"); double x, y; Console.WriteLine("Введите первое число:"); Console.Write("x= ");// Вводим х x = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Введите второе число"); Console.Write("y= ");// Вводим у y = Convert.ToDouble(Console.ReadLine()); if (x < 0 && y < 0) // Если x и y меньше нуля { x = Math.Abs(x); y = Math.Abs(y); Console.WriteLine("Ответ: х={0}; у={1}", x, y); } else if (x < 0 || y < 0)// Если отрицательно только одно из чисел { x = x + 0.5; y = y + 0.5; Console.WriteLine("Ответ: х={0}; у={1}", x, y); } else if ((x < 0.5 || x > 2.0) && (y < 0.5 || y > 2.0))//если оба числа неотрицательны и ни одно из них не принадлежит отрезку (0,5; 2,0) { x /= 10; y /= 10; } Console.WriteLine("Ответ: х={0}; у={1}", x, y); } } }
Решение задачи: «Исправления для задачи обработки двухмерного массива»
textual
Листинг программы
static void Main() { string line; char[] delimiterChars = { ' ', ',', '\t' }; int n; // количество строк матрицы int[,] matr; // исходная матрица int i, j; // индексы // ввод матрицы из файла using (StreamReader file = new StreamReader("dat.txt")) { // ввод размерности n = int.Parse(file.ReadLine()); matr = new int[n, n]; // определение матрицы // чтение строки из файла и преобразование в числовые данные for (i = 0; (i < n) && ((line = file.ReadLine()) != null); i++) { string[] numbers = line.Split(delimiterChars); j = 0; foreach (string numString in numbers) { int x; bool canConvert = int.TryParse(numString, out x); if (canConvert == true) { matr[i, j] = x; j++; } } } }// ввод данных закончен // создание меню string choice = "0"; while (choice != "4") { Console.WriteLine(); Console.WriteLine("1. Печать матрицы"); Console.WriteLine("2. Нахождение минимального элемента"); Console.WriteLine("3. Замена побочной диагонали нулями"); Console.WriteLine("4. Выход"); Console.WriteLine(" "); Console.WriteLine(" Введите номер пункта меню "); choice = Console.ReadLine(); switch (choice) { case "1": Console.WriteLine(" Печать матрицы"); print_matrica(matr); Console.WriteLine(); break; case "2": Console.Write("Мин. элемент = {0}",min_element(matr)); Console.WriteLine(); break; case "3": Console.WriteLine(" Произведена замена."); zamena(ref matr); Console.WriteLine(); break; case "4": Console.WriteLine(" До свидания!"); break; default: Console.WriteLine(" Введите 1, 2, 3 или 4"); Console.WriteLine(); break; } } Console.ReadLine(); }// k Main // метод нахождения минимального элемента матрицы static int min_element(int[,] a) { int min_elt=a[0,0]; for (int i = 0; i < a.GetLength(0); i++) { for(int j=0; j< a.GetLength(1); j++) { if (a[i, j] < min_elt) min_elt = a[i, j]; } } return min_elt; } // метод замены побочной диагонали нулями static void zamena(ref int[,] a) { int n= a.GetLength(1); for (int i = 0; i < a.GetLength(0); i++) { a[i, n – i – 1] = 0; } } // метод печати матрицы static void print_matrica(int[,] a) { for (int i = 0; i < a.GetLength(0); i++) { for (int j = 0; j < a.GetLength(1); j++) { Console.Write("{0} \t", a[i, j]); } Console.WriteLine(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д