static void skaitymas(string duom, Krepsininkas[] krepsininkai, out string pav, out int n) { using (StreamReader reader = new StreamReader(duom)) { string eilute; string[] skaidymas; pav = reader.ReadLine(); string vp; int amzius; double ugis; int iterator = 0; while ((eilute = reader.ReadLine()) != null) { skaidymas = eilute.Split(';'); vp = skaidymas[0]; amzius = int.Parse(skaidymas[1]); ugis = double.Parse(skaidymas[2]); krepsininkai[iterator] = new Krepsininkas(vp, amzius, ugis); iterator++; } n = iterator; } }
static void rastiJauniausius(Krepsininkas[] krepsininkai, int n, Krepsininkas[] filtras, ref int sk, int jauniausias) { for (int i = 0; i < n; i++) { if (krepsininkai[i].GautiAmziu() == jauniausias) { filtras[sk] = new Krepsininkas(krepsininkai[i].GautiVarda(), krepsininkai[i].GautiAmziu(), krepsininkai[i].GautiUgi()); sk++; } } }
static void ugisDidesnisUzVidurki(Krepsininkas[] krepsininkai, Krepsininkas[] auksciausi, int n, int ilgis, ref int kiekis, double bendrasUgioVidurkis) { for (int i = 0; i < n; i++) { if (krepsininkai[i].GautiUgi() > bendrasUgioVidurkis) { auksciausi[ilgis] = new Krepsininkas(krepsininkai[i].GautiVarda(), krepsininkai[i].GautiAmziu(), krepsininkai[i].GautiUgi()); ilgis++; } } kiekis = ilgis; }
static void Main(string[] args) { const int maxDuom = 500; const string duom1 = "...\\...\\duom1.txt"; const string duom2 = "...\\...\\duom2.txt"; const string rez = "...\\...\\rez.txt"; Krepsininkas[] pirma = new Krepsininkas[maxDuom]; Krepsininkas[] antra = new Krepsininkas[maxDuom]; Krepsininkas[] auksciausi = new Krepsininkas[maxDuom]; string pav1, pav2; int n1, n2; skaitymas(duom1, pirma, out pav1, out n1); skaitymas(duom2, antra, out pav2, out n2); if (File.Exists(rez)) { File.Delete(rez); } duomenuSpausdinimas(rez, pirma, n1, pav1); duomenuSpausdinimas(rez, antra, n2, pav2); double amziausVidurkis1, amziausVidurkis2, bendrasAmziausVidurkis; amziausVidurkis(pirma, n1, out amziausVidurkis1); amziausVidurkis(antra, n2, out amziausVidurkis2); bendrasAmziausVidurkis = (amziausVidurkis1 + amziausVidurkis2) / 2; bendrasAmziausVidurkis = Math.Round(bendrasAmziausVidurkis, 2); pridetiTeksto(rez, "Krepsininku amziaus vidurkis:"); spausdintiVidurkius(rez, pav1, amziausVidurkis1, "metu(-ai)"); spausdintiVidurkius(rez, pav2, amziausVidurkis2, "metu(-ai)"); pridetiTeksto(rez, ""); spausdintiVidurkius(rez, "Bendras", bendrasAmziausVidurkis, "metu(-ai)"); pridetiTeksto(rez, ""); double ugioVidurkis1, ugioVidurkis2, bendrasUgioVidurkis; ugioVidurkis1 = ugioVidurkis(pirma, n1); ugioVidurkis2 = ugioVidurkis(antra, n2); bendrasUgioVidurkis = (ugioVidurkis1 + ugioVidurkis2) / 2; bendrasUgioVidurkis = Math.Round(bendrasUgioVidurkis, 2); pridetiTeksto(rez, "Krepsininku ugio vidurkis:"); spausdintiVidurkius(rez, pav1, ugioVidurkis1, "m"); spausdintiVidurkius(rez, pav2, ugioVidurkis2, "m"); pridetiTeksto(rez, ""); spausdintiVidurkius(rez, "Bendras", bendrasUgioVidurkis, "m"); pridetiTeksto(rez, ""); double auksciausias1, auksciausias2; auksciausias1 = rastiAuksciausia(pirma, n1); auksciausias2 = rastiAuksciausia(antra, n2); pridetiTeksto(rez, "Auksciausias sportininkas mokosi:"); if (auksciausias1 == auksciausias2) { spausdintiAuksciausius(rez, pirma, n1, auksciausias1, pav1); spausdintiAuksciausius(rez, antra, n2, auksciausias2, pav2); } else if (auksciausias1 > auksciausias2) { spausdintiAuksciausius(rez, pirma, n1, auksciausias1, pav1); } else { spausdintiAuksciausius(rez, antra, n2, auksciausias2, pav2); } pridetiTeksto(rez, ""); int kiekis = 0; pridetiTeksto(rez, "Naujas rinkinys (krepsininkai, kuriu ugis didesnis uz vidurki):"); ugisDidesnisUzVidurki(pirma, auksciausi, n1, kiekis, ref kiekis, bendrasUgioVidurkis); ugisDidesnisUzVidurki(antra, auksciausi, n2, kiekis, ref kiekis, bendrasUgioVidurkis); spausdintiVisuAuksciausius(rez, auksciausi, kiekis); int jauniausias1, jauniausias2; jauniausias1 = jauniausioAmzius(pirma, n1); jauniausias2 = jauniausioAmzius(antra, n2); pridetiTeksto(rez, "Jauniausi krepsininkai:"); if (jauniausias1 == jauniausias2) { pridetiTeksto(rez, "Krepsininkai, kuriu amzius yra " + jauniausias1 + " m."); jauniausiMokykloje(rez, pirma, n1, pav1, jauniausias1); jauniausiMokykloje(rez, antra, n2, pav2, jauniausias2); } else if (jauniausias1 < jauniausias2) { pridetiTeksto(rez, "Krepsininkai, kuriu amzius yra " + jauniausias1 + " m."); jauniausiMokykloje(rez, pirma, n1, pav1, jauniausias1); } else if (jauniausias2 < jauniausias1) { pridetiTeksto(rez, "Krepsininkai, kuriu amzius yra " + jauniausias2 + " m."); jauniausiMokykloje(rez, antra, n2, pav2, jauniausias2); } Console.WriteLine("Programa baige darba!"); }
static void Main(string[] args) { Console.OutputEncoding = Encoding.UTF8; const int maxDuom = 500; const string duom1 = "...\\...\\duom3.txt"; const string duom2 = "...\\...\\duom4.txt"; const string rez = "...\\...\\rez.txt"; const string virsus = "|----------------------------------------------------------------|\r\n" + "| | | |\r\n" + "| Krepšininkas | Amžius | Ūgis |\r\n" + "| | | |\r\n" + "|----------------------------------------------------------------|"; Krepsininkas[] pirma = new Krepsininkas[maxDuom]; Krepsininkas[] antra = new Krepsininkas[maxDuom]; Krepsininkas[] auksciausi = new Krepsininkas[maxDuom]; Krepsininkas[] filtras = new Krepsininkas[maxDuom]; string pav1, pav2; int n1, n2; skaitymas(duom1, pirma, out pav1, out n1); skaitymas(duom2, antra, out pav2, out n2); if (File.Exists(rez)) { File.Delete(rez); } Spausdinimas(rez, pirma, n1, pav1, virsus); Spausdinimas(rez, antra, n2, pav2, virsus); //Darbas su amziumi double amziausVidurkis1, amziausVidurkis2, bendrasAmziausVidurkis; amziausVidurkis1 = amziausVidurkis(pirma, n1); amziausVidurkis2 = amziausVidurkis(antra, n2); bendrasAmziausVidurkis = (amziausVidurkis1 + amziausVidurkis2) / 2; pridetiTeksto(rez, "Krepsininku amziaus vidurkis:"); spausdintiVidurkius(rez, pav1, amziausVidurkis1, "metu(-ai)"); spausdintiVidurkius(rez, pav2, amziausVidurkis2, "metu(-ai)"); pridetiTeksto(rez, ""); spausdintiVidurkius(rez, "Bendras", bendrasAmziausVidurkis, "metu(-ai)"); pridetiTeksto(rez, ""); //Darbas su ugiais double ugioVidurkis1, ugioVidurkis2, bendrasUgioVidurkis; ugioVidurkis1 = ugioVidurkis(pirma, n1); ugioVidurkis2 = ugioVidurkis(antra, n2); bendrasUgioVidurkis = (ugioVidurkis1 + ugioVidurkis2) / 2; pridetiTeksto(rez, "Krepsininku ugio vidurkis:"); spausdintiVidurkius(rez, pav1, ugioVidurkis1, "m"); spausdintiVidurkius(rez, pav2, ugioVidurkis2, "m"); pridetiTeksto(rez, ""); spausdintiVidurkius(rez, "Bendras", bendrasUgioVidurkis, "m"); pridetiTeksto(rez, ""); //Auksciausio ieskojimas double auksciausias1, auksciausias2; auksciausias1 = rastiAuksciausia(pirma, n1); auksciausias2 = rastiAuksciausia(antra, n2); pridetiTeksto(rez, "Auksciausias sportininkas mokosi:"); if (auksciausias1 == auksciausias2) { spausdintiAuksciausius(rez, pirma, n1, auksciausias1, pav1); spausdintiAuksciausius(rez, antra, n2, auksciausias2, pav2); } else if (auksciausias1 > auksciausias2) { spausdintiAuksciausius(rez, pirma, n1, auksciausias1, pav1); } else { spausdintiAuksciausius(rez, antra, n2, auksciausias2, pav2); } pridetiTeksto(rez, ""); //Ugis didesnis uz vidurki int kiekis = 0; pridetiTeksto(rez, "Naujas rinkinys (krepsininkai, kuriu ugis didesnis uz vidurki):"); ugisDidesnisUzVidurki(pirma, auksciausi, n1, kiekis, ref kiekis, bendrasUgioVidurkis); ugisDidesnisUzVidurki(antra, auksciausi, n2, kiekis, ref kiekis, bendrasUgioVidurkis); Spausdinimas(rez, auksciausi, kiekis, "", virsus); //Jauniausi krepsininkai int jauniausias1, jauniausias2; jauniausias1 = jauniausioAmzius(pirma, n1); jauniausias2 = jauniausioAmzius(antra, n2); int sk = 0; pridetiTeksto(rez, "Jauniausi krepsininkai:"); if (jauniausias1 == jauniausias2) { pridetiTeksto(rez, "Krepsininkai, kuriu amzius yra " + jauniausias1 + " m."); rastiJauniausius(pirma, n1, filtras, ref sk, jauniausias1); Spausdinimas(rez, filtras, sk, pav1, virsus); sk = 0; rastiJauniausius(antra, n2, filtras, ref sk, jauniausias2); Spausdinimas(rez, filtras, sk, pav2, virsus); } else if (jauniausias1 < jauniausias2) { pridetiTeksto(rez, "Krepsininkai, kuriu amzius yra " + jauniausias1 + " m."); rastiJauniausius(pirma, n1, filtras, ref sk, jauniausias1); Spausdinimas(rez, filtras, sk, pav1, virsus); } else if (jauniausias2 < jauniausias1) { pridetiTeksto(rez, "Krepsininkai, kuriu amzius yra " + jauniausias2 + " m."); rastiJauniausius(antra, n2, filtras, ref sk, jauniausias2); Spausdinimas(rez, filtras, sk, pav2, virsus); } Console.WriteLine("Programa baige darba!"); }