В побочную диагональ матрицы вывести элементы каждого столбца с минимальными кодами - C#
Формулировка задачи:
Горю на лабе. Вот условие. Помогите кто чем может. Для кого-то несколько минут, а для меня завал(
Дана символьная матpица А(5,5). В побочную диагонали вывести элементы каждого столбца с минимальными кодами. Тpанспониpовать полученную матpицу и повтоpить указанные действия еще pаз. Из алфавитных символов составить 2 стpоки и выполнить их сpавнение.
В исходной матрице заменить все символы на их коды по таблице ASCII и в дальнейшем рассматривать матрицу как числовую.
Решение задачи: «В побочную диагональ матрицы вывести элементы каждого столбца с минимальными кодами»
textual
Листинг программы
using System; using System.Collections.Generic; namespace ConsoleApplication3 { enum Mode:byte { Codes, Numbers } sealed class MyArray { private readonly char[,] _arr; private int[,] _tmpArr; public MyArray(int x) { _arr=new char[x,x]; _tmpArr=new int[x,x]; FillArray(); PrintArray(_arr,"Начальный массив:",Mode.Codes); PrintArray(_tmpArr,"Числовые значения:",Mode.Numbers); TakeminElements(); PrintArray(_tmpArr, "Перестановка минимальных элементов:", Mode.Numbers); Transp(); PrintArray(_tmpArr, "Транспонирование:", Mode.Numbers); PrintArray(_tmpArr, "Транспонирование:", Mode.Codes); } private void FillArray() { int tmp; var rnd = new Random(); for (int i = 0; i < _arr.GetLength(0); i++) { for (int y = 0; y < _arr.GetLength(1); y++) { tmp = rnd.Next(100, 200); _arr[i, y] = Convert.ToChar(tmp); _tmpArr[i, y] = tmp; } } } private void TakeminElements() { var minElem=new int[_arr.GetLength(1)]; int tmp=int.MaxValue; for (int i = 0; i < _tmpArr.GetLength(0); i++) { for (int y = _tmpArr.GetLength(1)-1; y >=0; y--) { if (_tmpArr[y, i] < tmp) { tmp = _tmpArr[y, i]; minElem[i] = tmp; } } tmp = int.MaxValue; } for (int i=_tmpArr.GetLength(0),y=0;i>0;i--,y++) { _tmpArr[i - 1, y] =minElem[y]; } } private void PrintArray(char[,]myArr,string text,Mode mode) { SetConsoleColor(); Console.WriteLine(text); ClearConsoleColor(); for (int i = 0; i < myArr.GetLength(0); i++) { for (int y = 0; y < myArr.GetLength(1); y++) { if (mode == Mode.Codes) { Console.Write((char)myArr[i, y] + " "); } else { Console.Write(myArr[i, y] + " "); } } Console.WriteLine("\n"); } Console.WriteLine(); } private void PrintArray(int[,] myArr, string text, Mode mode) { SetConsoleColor(); Console.WriteLine(text); ClearConsoleColor(); for (int i = 0; i < myArr.GetLength(0); i++) { for (int y = 0; y < myArr.GetLength(1); y++) { if (mode == Mode.Codes) { Console.Write((char)myArr[i, y] + " "); } else { Console.Write(myArr[i, y] + " "); } } Console.WriteLine("\n"); } Console.WriteLine(); } private void SetConsoleColor() { Console.ForegroundColor = ConsoleColor.DarkCyan; } private void ClearConsoleColor() { Console.ForegroundColor = ConsoleColor.Gray; } private void Transp() { int tmp; for (int i = 0; i < _tmpArr.GetLength(0); i++) { for (int j = 0; j <i; j++) { tmp = _tmpArr[i,j]; _tmpArr[i,j] = _tmpArr[j,i]; _tmpArr[j,i] = tmp; } } } } static class Program { static void Main(string[] args) { var a = new MyArray(5); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д