// Pildija iLJA SiPOLS // ViDE: Visual Studio 2022 using System; class Program { static void TabulasLinija(int svitruSkaits, int reizes) { string linija = new string('-', svitruSkaits); for (int i = 0; i < reizes; i++) // atkārto līniju noteiktu reižu skaitu Console.Write(linija); Console.WriteLine(); } // funkcija, kas izdrukā vienu tabulas rindu ar datiem un papildus info static void TabulasRinda(int[] rindasDati, int max, int min, int sum) { Console.Write("| "); foreach (var datums in rindasDati) // izdrukā katru skaitli no rindas Console.Write($"{datums} | "); Console.WriteLine($"{max} | {min} | {sum} |"); // izdrukā papildus statistikas datus } // Funkcija, kas ģenerē nejaušus skaitļus tabulai, izmantojot Random static int[,] TabulasDati(int rindas, int kolonnas, int min, int max) { Random random = new Random(); // izveido nejaušo skaitļu ģeneratoru int[,] dati = new int[rindas, kolonnas]; // izveido divdimensiju masīvu for (int i = 0; i < rindas; i++) // iterē cauri rindām for (int j = 0; j < kolonnas; j++) // iterē cauri kolonnām dati[i, j] = random.Next(min, max + 1); // piešķir nejaušu skaitli no min līdz max return dati; } // funkcija, kas izdrukā tabulas galveni, izmantojot lietotāja vārdu static void TabulaGalva(string vards) { Console.Write("|"); foreach (char c in vards.ToUpper()) // pārvērš vārdu lielajiem burtiem un izdrukā katru burtu atsevišķi Console.Write($" {c} |"); Console.WriteLine(" MIN | MAX | SUM|"); // pievieno papildus statistikas kolonnu nosaukumus TabulasLinija(5, vards.Length + 3); // izdrukā horizontālu līniju zem galvenes } // Funkcija, kas izdrukā tabulu, sakārtojot skaitļus un, ja nepieciešams, apgriežot to secību static void Tabula(int[,] dati, bool reverseNumbers = false) { int rindas = dati.GetLength(0); // nosaka rindu skaitu no masiva int kolonnas = dati.GetLength(1); // nosaka kolonnu skaitu no masiva for (int i = 0; i < rindas; i++) // iterē cauri katrai rindai { int[] rindasDati = new int[kolonnas]; // izveido masīvu, lai saglabātu rindas datus int min = int.MaxValue, max = int.MinValue, sum = 0; // inicializē min, max un sum vērtības for (int j = 0; j < kolonnas; j++) { rindasDati[j] = dati[i, j]; // saglabā skaitli masīvā min = Math.Min(min, dati[i, j]); // atjauno minimālo vērtību max = Math.Max(max, dati[i, j]); // atjauno maksimālo vērtību sum += dati[i, j]; // saskaita summu } if (reverseNumbers) // Array.Reverse(rindasDati); Array.Sort(rindasDati); // sakārto skaitļus augošā secībā TabulasRinda(rindasDati, max, min, sum); // izdrukā rindu ar datiem un statistiku } } static void Main(string[] args) { string vards = "Ilja"; string uzvards = "Sipols"; int rindas1 = uzvards.Length; int kolonnas1 = vards.Length; int min = vards.Length; // minimālā vērtība ir vārda garums int max = vards.Length + uzvards.Length; // maksimālā vērtība ir vārda + uzvārda garums int[,] dati1 = TabulasDati(rindas1, kolonnas1, min, max); // generē pirmās tabulas datus TabulaGalva(vards); // izdrukā pirmās tabulas galveni Tabula(dati1); // izdrukā pirmo tabulu int rindas2 = vards.Length; // otrās tabulas rindas skaits atbilst vārda garumam int kolonnas2 = uzvards.Length; // otrās tabulas kolonnas skaits atbilst uzvārda garumam int[,] dati2 = TabulasDati(rindas2, kolonnas2, min, max); // generē otrās tabulas datus Console.WriteLine(); TabulaGalva(uzvards); // izdrukā otrās tabulas galveni Tabula(dati2, true); // izdrukā otro tabulu ar apgrieztiem skaitļiem Console.ReadKey(); } }