Прописать функции - C#
Формулировка задачи:
Само задание: Заданы две целые квадратные матрицы С и Т порядка n 2<=n<=10. Дополнительно заданы два целых числа L и M. Если L<M, то получить матрицу A=L*T+M*C и подсчитать количество положительных элементов в L-ом столбце матрицы T; иначе получить матрицу B=T*L^2+C*M^2 и подсчитать количество положительных элементов в M-ом столбце матрицы C.
Я написала основное, но возникли проблемы с созданием функций для создания новых матриц и подсчета суммы положительных элементов, поэтому прошу о помощи.
Вот мой код:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication32 { class Program { static int[,] EnterArray(int[,] arrN, int n) { Boolean nBool; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { do { Console.Write("Элемент ({0};{1}): ", i, j); nBool = Int32.TryParse(Console.ReadLine(), out arrN[i, j]); if (!nBool) { Console.WriteLine("Неправильный ввод данных!"); } } while (!nBool); } } return arrN; } static void WriteArray(int [,] arrN, int n) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { Console.Write(arrN[i, j] + " "); } Console.Write("\n"); } } static void Main(string[] args) { int n; Boolean nBool; do { Console.Write("Введите порядок массивов (от 2 до 10): "); nBool = Int32.TryParse(Console.ReadLine(), out n); if (!nBool || n < 2 || n > 10) { Console.WriteLine("Неправильный ввод данных!"); nBool = false; } } while (!nBool); int[,] arrT = new int[n, n]; Console.WriteLine("Введите элементы массива Т:"); arrT = EnterArray(arrT, n); int[,] arrC = new int[n, n]; Console.WriteLine("Введите элементы массива C:"); arrC = EnterArray(arrC, n); Console.WriteLine("Введите l"); float l = Convert.ToSingle(Console.ReadLine()); Console.WriteLine("Введите m"); float m = Convert.ToSingle(Console.ReadLine()); if (l < m) { int[,] arrA = new int[n, n]; arrA = ; //прописать функцию m больше Console.WriteLine("\nМатрица A:"); WriteArray(arrA, n); } else { int[,] arrB = new int[n, n]; arrB = ; //прописать функцию L больше Console.WriteLine("\nМатрица B:"); WriteArray(arrB, n); } Console.ReadKey(); } } }
Решение задачи: «Прописать функции»
textual
Листинг программы
using System; namespace ConsoleApplication17 { class Program { static int[,] EnterArray(int[,] arrN, int n) { Boolean nBool; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { do { Console.Write("Элемент ({0};{1}): ", i, j); nBool = Int32.TryParse(Console.ReadLine(), out arrN[i, j]); if (!nBool) { Console.WriteLine("Неправильный ввод данных!"); } } while (!nBool); } } return arrN; } static void WriteArray(int[,] arrN, int n) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { Console.Write(arrN[i, j] + " "); } Console.Write("\n"); } } static void Main(string[] args) { int n; Boolean nBool; do { Console.Write("Введите порядок массивов (от 2 до 10): "); nBool = Int32.TryParse(Console.ReadLine(), out n); if (!nBool || n < 2 || n > 10) { Console.WriteLine("Неправильный ввод данных!"); nBool = false; } } while (!nBool); int[,] arrT = new int[n, n]; Console.WriteLine("Введите элементы массива Т:"); arrT = EnterArray(arrT, n); int[,] arrC = new int[n, n]; Console.WriteLine("Введите элементы массива C:"); arrC = EnterArray(arrC, n); Console.WriteLine("Введите l"); //float l = Convert.ToSingle(Console.ReadLine()); int l = int.Parse(Console.ReadLine()); Console.WriteLine("Введите m"); //float m = Convert.ToSingle(Console.ReadLine()); //числа то целые int m = int.Parse(Console.ReadLine()); if (l < m) { int[,] arrA = new int[n, n]; arrA = GetArraySum0(arrC, arrT, l, m); //прописать функцию m больше Console.WriteLine("\nМатрица A:"); WriteArray(arrA, n); GetSumElements(arrA, m); } else { int[,] arrB = new int[n, n]; arrB = GetArraySum1(arrC, arrT, l, m); //прописать функцию L больше Console.WriteLine("\nМатрица B:"); WriteArray(arrB, n); GetSumElements(arrB, m); } Console.ReadKey(); } //A=L*T+M*C static int[,] GetArraySum0(int[,] ar0, int[,] ar1, int l, int m) { int[,] resultArray = new int[ar0.GetLength(0), ar0.GetLength(0)]; //матрицы одного размера for (int i = 0; i < ar0.GetLength(0); i++) { for (int j = 0; j < ar0.GetLength(1); j++) { resultArray[i, j] = ar1[i, j] * l + ar0[i, j] * m; } } return resultArray; } //B=T*L^2+C*M^2 static int[,] GetArraySum1(int[,] ar0, int[,] ar1, int l, int m) { int[,] resultArray = new int[ar0.GetLength(0), ar0.GetLength(0)]; //матрицы одного размера for (int i = 0; i < ar0.GetLength(0); i++) { for (int j = 0; j < ar0.GetLength(1); j++) { resultArray[i, j] = ar1[i, j] * (int)Math.Pow(l, 2) + ar0[i, j] * (int)Math.Pow(l, 2); } } return resultArray; } static void GetSumElements(int[,] ar, int m) { int result = 0; if(m < ar.GetLength(0)) { for (int i = 0; i < ar.GetLength(0); i++) { if (ar[i, m] > 0) result += ar[i, m]; } } Console.WriteLine("Сумма положительных элементов столбца {0} равна {1}", m, result); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д