Проверить, является ли заданный индексами элемент массива палиндромом - C#
Формулировка задачи:
Класс должен содержать закрытое поле двумерного динамического массива, конструктор без параметров и три конструктора с параметрами, свойства, индексаторы, методы (ввода, вывода, обработки массива).Обработку массива в соответствии с заданием осуществлять в одном методе, исходные данные и результаты работы метода передавать параметрами. В программе должны проверятся все элементы разработанного класса.
Тип массива-строковый, размерность NxM. Проверить, является ли заданный индексами элемент массива палиндромом. Палиндром принимает одно и то же значение при чтении его как справа налево, так и слева направо.
Решение задачи: «Проверить, является ли заданный индексами элемент массива палиндромом»
textual
Листинг программы
class Massiv
{
private int n;
private int m;
private string[,] massiv;
public Massiv()
{
massiv = Razmernostb();
}
public Massiv(int N, int M)
{
n = N;
m = M;
massiv = new string[n, m];
Console.WriteLine("Размерность массива: N=" + n + " M=" + m);
}
public Massiv(int N, int M, string[,] mas)
{
n = N;
m = M;
massiv = mas;
}
public Massiv(int k)
{
Random rand = new Random();
n = rand.Next(k);
m = rand.Next(k);
if (n == 0)
n++;
massiv = new string[n, m];
Console.WriteLine("Размерность массива установлена автоматически: N=" + n + " N=" + n);
}
public string[,] Razmernostb()
{
Console.WriteLine("Введите размерность массива N M");
Console.WriteLine("Введите N");
n = int.Parse(Console.ReadLine());
Console.WriteLine("Введите M");
m = int.Parse(Console.ReadLine());
massiv = new string[n, m];
Zapolnitb();
return massiv;
}
public string[,] Zapolnitb()
{
Console.WriteLine("Введите элементы массива");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
Console.Write("MAS[" + i + "][" + j + "]");
massiv[i, j] = Console.ReadLine();
}
}
return massiv;
}
public void Vivod()
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
Console.Write(massiv[i, j] + " ");
}
Console.WriteLine();
}
}
public void Logika()
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
int temp = Convert.ToInt32(massiv[i, j]);
int b = 0;
while (temp != 0)
{
b = b * 10 + temp % 10; //Переворачиваем число по цифрам
temp /= 10; //Отбрасываем последнюю цифру
}
if (Convert.ToInt32(massiv[i, j]) == b)
Console.WriteLine("Элемент массива [{0},{1}] Палиндром",i,j);
else
Console.WriteLine("Элемент массива [{0},{1}] Не палиндром", i,j);
}
}
}
}
class Program
{
static void Main()
{
Console.WriteLine("Конструктор без параметров");
Massiv ob = new Massiv();
ob.Vivod();
ob.Logika();
Console.WriteLine(new string('-', 50));
Console.WriteLine("Конструктор с параметрами. В качестве параметра размерность массива");
Massiv ob1 = new Massiv(2, 2);
ob1.Zapolnitb();
ob1.Vivod();
ob1.Logika();
Console.WriteLine(new string('-', 50));
Console.WriteLine("Конструктор с параметрами. В качестве параметра размерность массива и элементы массива");
string[,] mas = new string[,] { { "1234","2332","111" }, { "32332","323232", "323232" }, { "1122", "1331", "1488" } };
Massiv ob2 = new Massiv(3, 3, mas);
ob2.Vivod();
ob2.Logika();
Console.WriteLine(new string('-', 50));
Console.WriteLine("Конструктор с параметрами. В качестве параметра рандомная размерность массива");
Massiv ob3 = new Massiv(2);
ob3.Zapolnitb();
ob3.Vivod();
ob3.Logika();
Console.ReadKey();
}
}