2d_uzd.txt
using System;

class Program
{
static void Main()
{
// Ievada vārdu un uzvārdu
Console.Write("Ievadi vārdu: ");
string vards = Console.ReadLine();
Console.Write("Ievadi uzvārdu: ");
string uzvards = Console.ReadLine();

// Formatē katru otro burtu lielo
string formatetsVards = FormatetTekstu(vards);
string formatetsUzvards = FormatetTekstu(uzvards);

// Aprēķina vērtību robežas
int minValue = vards.Length;
int maxValue = vards.Length + uzvards.Length;
int kolonuSkaits = formatetsVards.Length + 4;
int rinduSkaits = formatetsUzvards.Length + 4;

Random rand = new Random();

// Izveido 2D masīvu
int[,] masivs = new int[rinduSkaits - 4, kolonuSkaits - 4];
for (int i = 0; i < rinduSkaits - 4; i++)
{
for (int j = 0; j < kolonuSkaits - 4; j++)
{
masivs[i, j] = rand.Next(minValue, maxValue + 1);
}
}

// Izvada tabulas galveni
Console.WriteLine("+" + new string('-', 8 * kolonuSkaits - 1) + "+");
Console.WriteLine("| {0,5} | {1}", "X", FormatetRindu(formatetsVards));
Console.WriteLine("+" + new string('-', 8 * kolonuSkaits - 1) + "+");

// Izvada pārējās rindas
for (int i = 0; i < rinduSkaits - 4; i++)
{
Console.WriteLine("| {0,5} | {1}", formatetsUzvards[formatetsUzvards.Length - 1 - i], FormatetRindu(masivs, i));
Console.WriteLine("+" + new string('-', 8 * kolonuSkaits - 1) + "+");
}

// Izvada pēdējās rindas ar sum, min, max
string[] labels = { "sum", "min", "max" };
for (int r = 0; r < 3; r++)
{
Console.WriteLine("| {0,5} | {1}", labels[r], FormatetRindu(masivs, rinduSkaits - 4 + r));
Console.WriteLine("+" + new string('-', 8 * kolonuSkaits - 1) + "+");
}
}

static string FormatetTekstu(string teksts)
{
char[] simboli = teksts.ToCharArray();
for (int i = 0; i < simboli.Length; i += 2)
{
simboli[i] = char.ToUpper(simboli[i]);
}
return new string(simboli);
}

static string FormatetRindu(int[,] masivs, int rinda)
{
string rindaTeksts = "";
int kolonuSkaits = masivs.GetLength(1);
int sum = 0, min = int.MaxValue, max = int.MinValue;

if (rinda < masivs.GetLength(0))
{
for (int j = 0; j < kolonuSkaits; j++)
{
rindaTeksts += string.Format("{0,5} | ", masivs[rinda, j]);
sum += masivs[rinda, j];
min = Math.Min(min, masivs[rinda, j]);
max = Math.Max(max, masivs[rinda, j]);
}
}
else
{
for (int j = 0; j < kolonuSkaits; j++)
{
int result = 0;
if (rinda == masivs.GetLength(0)) // sum
{
for (int i = 0; i < masivs.GetLength(0); i++)
result += masivs[i, j];
}
else if (rinda == masivs.GetLength(0) + 1) // min
{
result = masivs[0, j];
for (int i = 1; i < masivs.GetLength(0); i++)
if (masivs[i, j] < result) result = masivs[i, j];
}
else // max
{
result = masivs[0, j];
for (int i = 1; i < masivs.GetLength(0); i++)
if (masivs[i, j] > result) result = masivs[i, j];
}
rindaTeksts += string.Format("{0,5} | ", result);
}
rindaTeksts += "*\t|*\t|*\t|";
return rindaTeksts;
}

rindaTeksts += string.Format("{0,5} | {1,5} | {2,5} | ", sum, min, max);
return rindaTeksts;
}

static string FormatetRindu(string teksts)
{
string rindaTeksts = "";
foreach (char c in teksts)
{
rindaTeksts += string.Format("{0,5} | ", c);
}
rindaTeksts += "sum\t|min\t|max\t| ";
return rindaTeksts;
}
}
