Работа с простейшими массивами: 1)сортировка; 2)определение суммы и сортировка - C#
Формулировка задачи:
1)Класс описывает одномерный массив, состоящий из n целых элементов со значениями в диапазоне от (0 до 100).
Методы класса должны: менять местами значения элементов массива по принципу a[1]↔a[3], a[4]↔a[6] и т.д.; отменять действие первого метода; Свойство должно получать количество четных элементов.
2)Класс описывает квадратную матрицу размерности MxM, состоящую из целых элементов со значениями в диапазоне от (-7 до 7).
Методы класса должны:определять сумму элементов побочной диагонали; менять местами столбцы с произвольными номерами (номера столбцов передаются в метод как параметры).
Свойство должно получать количество всех отрицательных элементов массива.
Вывод на экран массива, вывод результатов выполнения методов и значения, возвращаемого свойством выполнять в методе Main.
Решение задачи: «Работа с простейшими массивами: 1)сортировка; 2)определение суммы и сортировка»
textual
Листинг программы
using System;
namespace Vladisis
{
public class Task2
{
int[,] a;
public int NegAmount { get { return this.negCounter(); } }
public Task2(int length)
{
Random rand = new Random();
a=new int[length,length];
for (int i = 0; i < length; i++)
{
for (int j = 0; j < length; j++)
{
a[i, j] = rand.Next(-7, 8);
}
}
}
public void Print()
{
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j < a.GetLength(1); j++)
{
Console.Write(a[i, j]+" ");
}
Console.WriteLine();
}
}
public int RightDiagSum()
{
int ans = 0;
int i, j;
for (i = 0, j=a.GetLength(0)-1 ; i < a.GetLength(0); i++, j--)
{
ans += a[i, j];
}
return ans;
}
public void SwapColumns(int c1, int c2)
{
int temp;
for (int i = 0; i < a.GetLength(0); i++)
{
temp = a[i, c1];
a[i, c1] = a[i, c2];
a[i, c2] = temp;
}
}
private int negCounter()
{
int ans = 0;
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j < a.GetLength(1); j++)
{
if (a[i, j] < 0) ans++;
}
}
return ans;
}
}
class Program
{
static void Main(string[] args)
{
Task2 t2 = new Task2(3);
t2.Print();
Console.WriteLine(t2.RightDiagSum());
Console.WriteLine();
t2.SwapColumns(0, 2);
t2.Print();
Console.WriteLine();
Console.WriteLine(t2.NegAmount);
Console.ReadLine();
}
}
}