Модифицировать код с использованием ООП - C#
Формулировка задачи:
Помогите преобразовать программный код в ООП или что-то вроде,плохо понял,надеюсь на вашу помощь
Буду Благодарен!
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { // Задаём цвет программы Console.ForegroundColor = ConsoleColor.DarkCyan; Console.BackgroundColor = ConsoleColor.Green; Console.Clear(); // Создаём переменные под размерность массива int n, m; // Выводим на консоль фразу в кавычках Console.WriteLine("Размерность массива n*m"); // Запрашиваем размерность матрицы Console.Write("n= "); // Считаем количество строк n = int.Parse(Console.ReadLine()); Console.Write("m= "); // Считаем количество столбцов m = int.Parse(Console.ReadLine()); // Создаем массив для хранения элементов матрицы int[,] mas = new int[n, m]; // Запрашиваем элементы с консоли Console.WriteLine("ВВЕДИТЕ ЭЛЕМЕНТЫ МАССИВА:"); for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) mas[i, j] = int.Parse(Console.ReadLine()); Console.WriteLine(); Console.Clear(); // Выводим на экран получившийся массив for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) Console.Write("{0,4}", mas[i, j]); Console.WriteLine(); } Console.WriteLine(); Console.WriteLine("Сумма по столбцам"); // Считаем суммы для каждого стобца // Первый цыкл - перебор по столбцам for (int j = 0; j < m; j++) { // Временная переменная, для каждого нового столбца она будет новая ( изначальная 0 ) int sum1 = 0; // Суммыруем текущий столбец for (int i = 0; i < n; i++) sum1 += mas[i, j]; // Выводим результат Console.Write("{0,4}", sum1); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Сумма по строкам"); // Переменная для хранения суммы всех элементов int sum3 = 0; // тут перебор аналогично столбцам for (int i = 0; i < n; i++) { int sum2 = 0; for (int j = 0; j < m; j++) sum2 += mas[i, j]; Console.WriteLine(sum2); sum3 += sum2; } //переменная для хранения суммы всех элементов int sum_glav = 0; // суммируем по главной диагонали for (int j = 0; j < n; j++) { sum_glav = mas[j, j] + sum_glav; } //выводим результат Console.WriteLine("Сумма элементов по главной диагонали = " + sum_glav); //переменная для хранения суммы всех элементов int sum_neglav = 0; // Суммируем по побочной диагонали for (int i = 0; i < n; i++) { sum_neglav = mas[i, n - i - 1] + sum_neglav; } //Выводим результат Console.WriteLine("Сумма элементов по побочной диагонали = " + sum_neglav); Console.WriteLine(); Console.WriteLine("Общая сумма элементов матрицы"); Console.WriteLine(sum3); Console.Write("\t\t\t"); // Выводим на консоль фразу в кавычках Console.WriteLine(" Для завершения работы с программой нажмите Enter"); Console.ReadLine(); } } }
Решение задачи: «Модифицировать код с использованием ООП»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class ArrayMethods { private int [,] mas; public ArrayMethods(int[,] array) { mas = array; } public void PrintArray() { for (int i = 0; i < mas.GetLength(0); i++) { for (int j = 0; j < mas.GetLength(1); j++) Console.Write("{0,4}", mas[i, j]); Console.WriteLine(); } } public void PrintColSum() { for (int j = 0; j < mas.GetLength(1); j++) { // Временная переменная, для каждого нового столбца она будет новая ( изначальная 0 ) int sum = 0; // Суммыруем текущий столбец for (int i = 0; i < mas.GetLength(0); i++) sum += mas[i, j]; // Выводим результат Console.Write("{0,4}", sum); } } public void PrintRowSum() { // тут перебор аналогично столбцам for (int i = 0; i < mas.GetLength(0); i++) { int sum2 = 0; for (int j = 0; j < mas.GetLength(1); j++) sum2 += mas[i, j]; Console.WriteLine(sum2); } } public int MainDiagonalSum() { //переменная для хранения суммы всех элементов int sum_glav = 0; // суммируем по главной диагонали for (int j = 0; j < mas.GetLength(0); j++) { sum_glav = mas[j, j] + sum_glav; } return sum_glav; } public int SecondaryDiagonalSum() { int sum_neglav = 0; // Суммируем по побочной диагонали for (int i = 0; i < mas.GetLength(0); i++) { sum_neglav = mas[i, mas.GetLength(0) - i - 1] + sum_neglav; } return sum_neglav; } public int GeneralSum() { int sum = 0; for (int j = 0; j < mas.GetLength(0); j++) { for (int i = 0; i < mas.GetLength(1); i++) sum += mas[j, i]; } return sum; } } static class Menu { public static void Start() { // Задаём цвет программы Console.ForegroundColor = ConsoleColor.DarkCyan; Console.BackgroundColor = ConsoleColor.Green; Console.Clear(); // Создаём переменные под размерность массива int n, m; // Выводим на консоль фразу в кавычках Console.WriteLine("Размерность массива n*m"); // Запрашиваем размерность матрицы Console.Write("n= "); // Считаем количество строк n = int.Parse(Console.ReadLine()); Console.Write("m= "); // Считаем количество столбцов m = int.Parse(Console.ReadLine()); // Создаем массив для хранения элементов матрицы int[,] mas = new int[n, m]; // Запрашиваем элементы с консоли Console.WriteLine("ВВЕДИТЕ ЭЛЕМЕНТЫ МАССИВА:"); for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) mas[i, j] = int.Parse(Console.ReadLine()); Console.WriteLine(); Console.Clear(); ArrayMethods arr = new ArrayMethods(mas); arr.PrintArray(); Console.WriteLine(); Console.WriteLine("Сумма по столбцам"); arr.PrintColSum(); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Сумма по строкам"); arr.PrintRowSum(); Console.WriteLine(); Console.WriteLine("Сумма элементов по главной диагонали = " + arr.MainDiagonalSum()); Console.WriteLine(); Console.WriteLine("Сумма элементов по побочной диагонали = " + arr.SecondaryDiagonalSum()); Console.WriteLine(); Console.WriteLine("Общая сумма элементов матрицы = " + arr.GeneralSum()); Console.Write("\t\t\t"); // Выводим на консоль фразу в кавычках Console.WriteLine(" Для завершения работы с программой нажмите Enter"); Console.ReadLine(); } } class Program { static void Main(string[] args) { Menu.Start(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д