// Metodas, kuris nuskaito tekstus. static void SudarytiZodziuSarasa(string kn, char[] skyrikliai, ZodziuKonteineris k) { string[] eilutes = File.ReadAllLines(kn, Encoding.UTF8); foreach (string eilute in eilutes) { string[] zodziai = eilute.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries); foreach (string zodis in zodziai) { Zodis zdz = new Zodis(zodis.ToLower(), 0, zodis.Length); k.PridetiZodi(zdz); } } }
// Metodas, kuris spausdina į konsolę. static void SpausdinimasEkrane(ZodziuKonteineris k, int zodziuSkaicius, string zodis, int eilute, string zodis1, int eilute1) { Console.WriteLine("Žodžiai ir jų kiekis:"); Console.WriteLine(""); for (int i = 0; i < zodziuSkaicius; i++) { Console.WriteLine("{0}{1}", i + 1, k.GautiZodi(i).ToString() + "\n"); } Console.WriteLine(""); Console.WriteLine("Trumpiausias pirmo teksto sakinys: " + zodis + "\n" + " Eilutė:" + eilute + "\n" + " Eilutės ilgis:" + zodis.Length); Console.WriteLine(""); Console.WriteLine("Trumpiausias antro teksto sakinys: " + zodis1 + "\n" + " Eilutė:" + eilute1 + "\n" + " Eilutės ilgis:" + zodis1.Length); }
// 1 uzduoties zodziu rikiavimas static ZodziuKonteineris Rikiavimas(ZodziuKonteineris rikiojamas) { for (int i = 0; i < rikiojamas.ZodziuSkaicius; i++) { for (int j = 0; j < rikiojamas.ZodziuSkaicius - 1; j++) { if (rikiojamas.GautiZodi(j).Ilgis < rikiojamas.GautiZodi(j + 1).Ilgis) { rikiojamas.Swap(j, j + 1); } } } return(rikiojamas); }
// Metodas, kuris spausdina i faila. static void SpausdinimasFaile(string rodikliai, ZodziuKonteineris k, int zodziuSkaicius, string zodis, int eilute, string zodis1, int eilute1) { using (StreamWriter writer = new StreamWriter(rodikliai)) { writer.WriteLine("Žodžiai ir jų kiekis."); for (int i = 0; i < zodziuSkaicius; i++) { writer.WriteLine(i + 1 + ". " + k.GautiZodi(i).ToString() + "\n"); } writer.WriteLine(""); writer.WriteLine("Trumpiausias pirmo teksto sakinys: " + zodis + "\n" + " Eilutė:" + eilute + "\n" + " Eilutės ilgis:" + zodis.Length); writer.WriteLine(""); writer.WriteLine("Trumpiausias antro teksto sakinys: " + zodis1 + "\n" + " Eilutė:" + eilute1 + "\n" + " Eilutės ilgis:" + zodis1.Length); } }
public static char[] skyrikliai = { ' ', '.', ',', '!', '?', ':', ';', '(', ')', '\t', '\r', '\n' }; // Skyrikliai. public static void Main(string[] args) { // Trinami failai, kad nesikartotų tekstas. if (File.Exists(manoKnyga) && File.Exists(rodikliai)) { File.Delete(manoKnyga); File.Delete(rodikliai); } //Sukuriami objektai. ZodziuKonteineris k1 = new ZodziuKonteineris(1000); //Nuskaitomas knyga1.txt failas. SudarytiZodziuSarasa(knyga1, skyrikliai, k1); ZodziuKonteineris k2 = new ZodziuKonteineris(1000); //Nuskaitomas knyga2.txt failas. SudarytiZodziuSarasa(knyga2, skyrikliai, k2); ZodziuKonteineris k = new ZodziuKonteineris(1000); IlgiausiZodziai(k1, k2, k); string zodis; string zodis1; int eilute; int eilute1; //Metodas su knyga1 ir knyga2 tekstais. SpausdinaFaileTeksta(manoKnyga, knyga1, knyga2, skyrikliai); //Metodai su sakiniais. Trumpiausias(knyga1, out zodis, out eilute); Trumpiausias(knyga2, out zodis1, out eilute1); //Metodas, kuris spausdina į ekraną. SpausdinimasEkrane(k, k.ZodziuSkaicius, zodis, eilute, zodis1, eilute1); //Metodas, kuris spausdina į failą. SpausdinimasFaile(rodikliai, k, k.ZodziuSkaicius, zodis, eilute, zodis1, eilute1); Console.ReadKey(); }
// 1 uzduotis static ZodziuKonteineris IlgiausiZodziai(ZodziuKonteineris knyga1zodziai, ZodziuKonteineris knyga2zodziai, ZodziuKonteineris k) { bool jauYra = false; ZodziuKonteineris temp = new ZodziuKonteineris(30); for (int i = 0; i < knyga1zodziai.ZodziuSkaicius; i++) { jauYra = false; for (int j = 0; j < knyga2zodziai.ZodziuSkaicius; j++) { if (knyga1zodziai.GautiZodi(i).ZodzioPavadinimas.ToLower() == knyga2zodziai.GautiZodi(j).ZodzioPavadinimas.ToLower()) { jauYra = true; break; } } if (jauYra == false) { int pasikartojaIndexas = temp.PasikartojancioIndexas(knyga1zodziai.GautiZodi(i)); if (pasikartojaIndexas < 0) { temp.PridetiZodi(knyga1zodziai.GautiZodi(i)); continue; } temp.GautiZodi(pasikartojaIndexas).Pasikartojimai += 1; } } temp = Rikiavimas(temp); for (int i = 0; i <= temp.ZodziuSkaicius; i++) { if (i >= 10) { break; } k.PridetiZodi(temp.GautiZodi(i)); } return(k); }