Прописать функции - 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);
        }
    }
}

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


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

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

12   голосов , оценка 3.75 из 5
Похожие ответы