[![введите сюда описание изображения][1]][1]Есть 14 вариантов матрицы, для каждого варианта нужно придумать условия по которому матрица будет заполняться, смог первые 2 сделать, дальше никак не могу. Синюю область нужно заполнить, белая пустая. Условия для первых 2 : 1 : i>=j; 2 : i<=j; Код :
class Program
{
public delegate bool MatrixType(int i, int j);
static int Len;
Program()
{
Console.Write("Length : ");
Len = Int32.Parse(Console.ReadLine());// Creating a Length of all Arrays and Matrixes
}
//Base Matrix
static object[,] CreateMatrix()
{
object[,] arr = new object[Len, Len];
return arr;
}
static object[,] FillMatrix(object[,] Matrix)
{
Random random = new Random();
for (int i = 0; i < Len; i++)
{
for (int j = 0; j < Len; j++)
{
if (j > -i + Len)
{
Matrix[i, j] = (int)random.Next(1, 20);
}
}
}
return Matrix;
}
static void PrintMatrixArray(object[,] arr)
{
for(int i = 0; i < Len-1; i++ )
{
for(int j = 0; j < Len-1; j++)
{
Console.Write("{0,4}", arr[i, j]);
}
Console.WriteLine();
}
}
static void Main(string[] args)
{
Program pro = new Program();
Console.WriteLine();
// PrintArrays();
PrintMatrixArray(FillMatrix(CreateMatrix()));
}
Если вы посмотрите внимательно на рисунки, то увидите, что вся синяя зона всегда (за исключением 1 - 4 случаев) формируются пересечением двух прямых (диагоналей матрицы) и условием больше/меньше относительно прямой:
y = x
y = -x + len
x
- i
y
- j
Все что вам нужно, нарисовать эти две прямые на листочке и посмотреть при каких условиях больше/меньше области будут пересекаться
Зеленая линия - график j = i
Красная линия - график j = -i + len
Серая зона - j > i
Коричневая - j < i
Желтая - j < -i + len
Фиолетовая - j > -i + len
Тем самым вы получите 4 зоны, комбинируя которые вы сможете получить любую фигуру из вашего задания
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть приложение, в нем обрабатываются большие данные в цикле, если цикл идет достаточно долго то приложение зависает и не обновляется его...
Как в Windows forms можно отличить обычный запуск программы от запуска с правами администратора?
Я начинаю писать дипломную работу на тему "Стриминговый сервис"Сначала подумал, что было бы круто арендовать веб сервер, на котором буду хранить...
Таким образом должны быть размещены таким образом, гридами или флекс-боксами, ну или другим более удобным методом