예제 #1
0
 /// <summary>
 /// Spausdina į failą pertvarkytą tekstą
 /// </summary>
 /// <param name="failas">Failas, į kurį spausdinamas pertvarkytas tekstas</param>
 /// <param name="Knygos1ZodziaiSuSkyrikliais">Pirmo failo žodžiai su skyrikliais</param>
 /// <param name="Knygos2ZodziaiSuSkyrikliais">Antro failo žodžiai su skyrikliais</param>
 void PertvarkytoTekstoSpausdinimasFaile(string failas, ZodziuKonteineris Knygos1ZodziaiSuSkyrikliais, ZodziuKonteineris Knygos2ZodziaiSuSkyrikliais)
 {
     using (StreamWriter writer = new StreamWriter(failas, false, Encoding.UTF8))
     {
         if (TekstoPertvarkymas(Knygos1ZodziaiSuSkyrikliais, Knygos2ZodziaiSuSkyrikliais).Length == 0)
         {
             writer.WriteLine("Duomenų failuose nėra");
         }
         else
         {
             writer.WriteLine(TekstoPertvarkymas(Knygos1ZodziaiSuSkyrikliais, Knygos2ZodziaiSuSkyrikliais));
         }
     }
 }
예제 #2
0
        /// <summary>
        /// Spausdina atliktas 1 ir 2 užduotis į ekraną
        /// </summary>
        /// <param name="IlgiausiuZodziuKonteneris">Ilgiausi 10 žodžių</param>
        /// <param name="trumpiausiasSakinys1">Pirmo duomenų failo trumpiausias sakinys</param>
        /// <param name="trumpiausioSakinioVieta1">Pirmo duomenų failo trumpiausio sakinio vieta</param>
        /// <param name="trumpiausiasSakinys2">Antro duomenų failo trumpiausias sakinys</param>
        /// <param name="trumpiausioSakinioVieta2">Antro duomenų failo trumpiausio sakinio vieta</param>
        /// <param name="zodziuSkaicius1">Pirmo duomenų failo trumpiausio sakinio žodžių skaičius</param>
        /// <param name="zodziuSkaicius2">Antro duomenų failo trumpiausio sakinio žodžių skaičius</param>
        void SpausdinimasEkrane(ZodziuKonteineris IlgiausiuZodziuKonteneris, string trumpiausiasSakinys1, int trumpiausioSakinioVieta1, string trumpiausiasSakinys2, int trumpiausioSakinioVieta2, int zodziuSkaicius1, int zodziuSkaicius2)
        {
            Console.WriteLine("Žodžiai, jų pasikartojimų skaičius ir ilgis:");
            Console.WriteLine("");
            for (int i = 0; i < IlgiausiuZodziuKonteneris.ZodziuSkaicius; i++)
            {
                Console.WriteLine("{0}{1}", i + 1, IlgiausiuZodziuKonteneris.GautiZodi(i).ToString() + "\n");
            }

            Console.WriteLine("");
            Console.WriteLine("Trumpiausias pirmo duomenų failo sakinys: " + "\n" + '"' + trumpiausiasSakinys1 + '"' + "\n" + "\n" + "Sakinios pradžios eilutės Nr.: " + trumpiausioSakinioVieta1 + "\n" + "Sakinio ilgis simboliais: " + trumpiausiasSakinys1.Length + "\n" + "Sakinio žodžių skaičius: " + zodziuSkaicius1);
            Console.WriteLine("");
            Console.WriteLine("Trumpiausias antro duomenų failo sakinys: " + "\n" + '"' + trumpiausiasSakinys2 + '"' + "\n" + "\n" + "Sakinios pradžios eilutės Nr.: " + trumpiausioSakinioVieta2 + "\n" + "Sakinio ilgis simboliais: " + trumpiausiasSakinys2.Length + "\n" + "Sakinio žodžių skaičius: " + zodziuSkaicius2);
        }
예제 #3
0
 /// <summary>
 /// Surikiuoja 10 ilgiausių žodžių mažėjimo tvarka
 /// </summary>
 /// <param name="Rikiuojamas">Rikiuojamas konteineris</param>
 /// <returns>Surikiuotą žodžių konteinerį</returns>
 static ZodziuKonteineris Rikiavimas(ZodziuKonteineris Rikiuojamas)
 {
     for (int i = 0; i < Rikiuojamas.ZodziuSkaicius; i++)
     {
         for (int j = 0; j < Rikiuojamas.ZodziuSkaicius - 1; j++)
         {
             if (Rikiuojamas.GautiZodi(j).Ilgis < Rikiuojamas.GautiZodi(j + 1).Ilgis)
             {
                 Rikiuojamas.Swap(j, j + 1);
             }
         }
     }
     return(Rikiuojamas);
 }
예제 #4
0
        /// <summary>
        /// Apdoroja duomenis
        /// </summary>
        /// <param name="failas">Duomenų failo pavadinimas</param>
        /// <param name="skyrikliai">Visi skyrikliai</param>
        /// <param name="ZodziaiSuSkyrikliais">Žodžiai su skyrikliais</param>
        /// <param name="ZodziaiBeSkyrikliu">Žodžiai be skyriklių</param>
        void Apdorojimas(string failas, char[] skyrikliai, ref ZodziuKonteineris ZodziaiSuSkyrikliais, ref ZodziuKonteineris ZodziaiBeSkyrikliu)
        {
            int eilute = 0;

            string[] lines = File.ReadAllLines(failas, Encoding.UTF8);
            foreach (string line in lines)
            {
                eilute++;
                if (line.Length > 0)
                {
                    ZodziuApdorojimas(line, skyrikliai, ref ZodziaiSuSkyrikliais, ref ZodziaiBeSkyrikliu, eilute);
                }
            }
        }
예제 #5
0
 static ZodziuKonteineris rikiavimas(ZodziuKonteineris rikiojamas)
 {
     for (int i = 0; i < rikiojamas.Kiekis; i++)
     {
         for (int j = 0; j < rikiojamas.Kiekis - 1; j++)
         {
             if (rikiojamas.PaimtiZodi(j).Ilgis < rikiojamas.PaimtiZodi(j + 1).Ilgis)
             {
                 rikiojamas.Swap(j, j + 1);
             }
         }
     }
     return(rikiojamas);
 }
예제 #6
0
        /// <summary>
        /// Spausdinama atlikta 1 ir 2 užduotys į nurodytą duomenų failą
        /// </summary>
        /// <param name="rodikliai">Failo pavadinimas į kurį spausdinama</param>
        /// <param name="IlgiausiuZodziuKonteneris">Ilgiausi 10 žodžių</param>
        /// <param name="trumpiausiasSakinys1">Pirmo duomenų failo trumpiausias sakinys</param>
        /// <param name="trumpiausioSakinioVieta1">Pirmo duomenų failo trumpiausio sakinio vieta</param>
        /// <param name="trumpiausiasSakinys2">Antro duomenų failo trumpiausias sakinys</param>
        /// <param name="trumpiausioSakinioVieta2">Antro duomenų failo trumpiausio sakinio vieta</param>
        /// <param name="zodziuSkaicius1">Pirmo duomenų failo trumpiausio sakinio žodžių skaičius</param>
        /// <param name="zodziuSkaicius2">Antro duomenų failo trumpiausio sakinio žodžių skaičius</param>
        void SpausdinimasFaile(string rodikliai, ZodziuKonteineris IlgiausiuZodziuKonteneris, string trumpiausiasSakinys1, int trumpiausioSakinioVieta1, string trumpiausiasSakinys2, int trumpiausioSakinioVieta2, int zodziuSkaicius1, int zodziuSkaicius2)
        {
            using (StreamWriter writer = new StreamWriter(rodikliai))
            {
                writer.WriteLine("Žodžiai, jų pasikartojimų skaičius ir ilgis:");
                for (int i = 0; i < IlgiausiuZodziuKonteneris.ZodziuSkaicius; i++)
                {
                    writer.WriteLine(i + 1 + ". " + IlgiausiuZodziuKonteneris.GautiZodi(i).ToString() + "\n");
                }

                writer.WriteLine("");
                writer.WriteLine("Trumpiausias pirmo duomenų failo sakinys: " + "\n" + '"' + trumpiausiasSakinys1 + '"' + "\n" + "\n" + "Sakinios pradžios eilutės Nr.: " + trumpiausioSakinioVieta1 + "\n" + "Sakinio ilgis simboliais: " + trumpiausiasSakinys1.Length + "\n" + "Sakinio žodžių skaičius: " + zodziuSkaicius1);
                writer.WriteLine("");
                writer.WriteLine("Trumpiausias antro duomenų failo sakinys: " + "\n" + '"' + trumpiausiasSakinys2 + '"' + "\n" + "\n" + "Sakinios pradžios eilutės Nr.: " + trumpiausioSakinioVieta2 + "\n" + "Sakinio ilgis simboliais: " + trumpiausiasSakinys2.Length + "\n" + "Sakinio žodžių skaičius: " + zodziuSkaicius2);
            }
        }
예제 #7
0
 /// <summary>
 /// Apdoroja žodžius
 /// </summary>
 /// <param name="line">Eilutė</param>
 /// <param name="skyrikliai">Visi skyrikliai</param>
 /// <param name="ZodziaiSuSKyrikliais">Žodžiai su skyrikliais</param>
 /// <param name="ZodziaiBeSkyrikliu">Žodžiai be skyriklių</param>
 /// <param name="eilute">Eilutės numeris</param>
 void ZodziuApdorojimas(string line, char[] skyrikliai, ref ZodziuKonteineris ZodziaiSuSKyrikliais, ref ZodziuKonteineris ZodziaiBeSkyrikliu, int eilute)
 {
     string[] dalys = line.Split(' ');
     foreach (string dalis in dalys)
     {
         if (dalis.Length > 0)
         {
             Zodis Zodziukas = new Zodis(dalis.ToLower(), 0, dalis.Length, eilute);
             ZodziaiSuSKyrikliais.PridetiZodi(Zodziukas);
         }
     }
     string[] zodziai = line.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);
     foreach (string zodis in zodziai)
     {
         Zodis zdz = new Zodis(zodis.ToLower(), 0, zodis.Length, eilute);
         ZodziaiBeSkyrikliu.PridetiZodi(zdz);
     }
 }
예제 #8
0
        static void Main(string[] args)
        {
            char[]            seperators      = { ' ', '.', ',', '!', '?', ':', ';', '(', ')', '\t' };
            char[]            seperators2     = { '.', '!', '?', ';' };
            ZodziuKonteineris allWords        = new ZodziuKonteineris(100);
            ZodziuKonteineris knyga1Zodziai   = new ZodziuKonteineris(100);
            ZodziuKonteineris knyga2Zodziai   = new ZodziuKonteineris(100);
            ZodziuKonteineris ilgiausiZodziai = new ZodziuKonteineris(10);

            knyga1Zodziai   = Nuskaitymas("Knyga1.txt", seperators, knyga1Zodziai);
            knyga2Zodziai   = Nuskaitymas("Knyga2.txt", seperators, knyga2Zodziai);
            ilgiausiZodziai = IlgiausiZodziai(knyga1Zodziai, knyga2Zodziai);
            for (int i = 0; i < ilgiausiZodziai.Kiekis; i++)
            {
                Console.WriteLine(ilgiausiZodziai.PaimtiZodi(i).ToString() + "\n");
            }
            TrumpiausiasSakinys("Knyga1.txt", seperators2);
            Console.ReadKey();
        }
예제 #9
0
        static ZodziuKonteineris Nuskaitymas(string file, char[] seperators, ZodziuKonteineris wordContainer)
        {
            int lineNum = 0;

            string[] lines = File.ReadAllLines(file, Encoding.UTF8);
            foreach (string line in lines)
            {
                string[] values = line.Split(seperators);
                for (int i = 0; i < values.Length; i++)
                {
                    if (values[i] != null && values[i] != "")
                    {
                        Zodis temp = new Zodis(values[i], 0, lineNum, values[i].Length);
                        wordContainer.PridetiZodi(temp);
                    }
                }
                lineNum++;
            }
            return(wordContainer);
        }
예제 #10
0
        //yra faile1 nera faile2 amx 10 tokiu
        static ZodziuKonteineris IlgiausiZodziai(ZodziuKonteineris knyga1zodziai, ZodziuKonteineris knyga2zodziai)
        {
            bool jauYra                       = false;
            ZodziuKonteineris temp            = new ZodziuKonteineris(30);
            ZodziuKonteineris pasikartojantis = new ZodziuKonteineris(10);

            for (int i = 0; i < knyga1zodziai.Kiekis; i++)
            {
                jauYra = false;
                for (int j = 0; j < knyga2zodziai.Kiekis; j++)
                {
                    if (knyga1zodziai.PaimtiZodi(i).Pavadinimas.ToLower() == knyga2zodziai.PaimtiZodi(j).Pavadinimas.ToLower())
                    {
                        jauYra = true;
                        break;
                    }
                }
                if (jauYra == false)
                {
                    int pasikartojaIndexas = temp.PasikartojancioIndexas(knyga1zodziai.PaimtiZodi(i));
                    if (pasikartojaIndexas < 0)
                    {
                        temp.PridetiZodi(knyga1zodziai.PaimtiZodi(i));
                        continue;
                    }
                    temp.PaimtiZodi(pasikartojaIndexas).Pasikartojimai += 1;
                }
            }
            temp = rikiavimas(temp);
            for (int i = 0; i <= temp.Kiekis; i++)
            {
                if (i >= 10)
                {
                    break;
                }
                pasikartojantis.PridetiZodi(temp.PaimtiZodi(i));
            }

            return(pasikartojantis);
        }
예제 #11
0
        /// <summary>
        /// Suranda 10 ilgiausių žodžių ir juos sudeda į konteinerį
        /// </summary>
        /// <param name="Knygos1ZodziaiBeSkyrikliu">Pirmo duomenų failo žodžiai be skiriklų</param>
        /// <param name="Knygos2ZodziaiBeSkyrikliu">Antro duomenų failo žodžiai be skiriklų</param>
        /// <param name="IlgiausiuZodziuKonteneris">10 ilgiausių žodžių</param>
        /// <returns></returns>
        ZodziuKonteineris IlgiausiZodziai(ZodziuKonteineris Knygos1ZodziaiBeSkyrikliu, ZodziuKonteineris Knygos2ZodziaiBeSkyrikliu, ZodziuKonteineris IlgiausiuZodziuKonteneris)
        {
            bool jauYra            = false;
            ZodziuKonteineris temp = new ZodziuKonteineris(30);

            for (int i = 0; i < Knygos1ZodziaiBeSkyrikliu.ZodziuSkaicius; i++)
            {
                jauYra = false;
                for (int j = 0; j < Knygos2ZodziaiBeSkyrikliu.ZodziuSkaicius; j++)
                {
                    if (Knygos1ZodziaiBeSkyrikliu.GautiZodi(i).ZodzioPavadinimas.ToLower() == Knygos2ZodziaiBeSkyrikliu.GautiZodi(j).ZodzioPavadinimas.ToLower())
                    {
                        jauYra = true;
                        break;
                    }
                }
                if (jauYra == false)
                {
                    int pasikartojaIndexas = temp.PasikartojancioIndexas(Knygos1ZodziaiBeSkyrikliu.GautiZodi(i));
                    if (pasikartojaIndexas < 0)
                    {
                        temp.PridetiZodi(Knygos1ZodziaiBeSkyrikliu.GautiZodi(i));
                        continue;
                    }
                    temp.GautiZodi(pasikartojaIndexas).Pasikartojimai += 1;
                }
            }
            temp = Rikiavimas(temp);
            for (int i = 0; i <= temp.ZodziuSkaicius; i++)
            {
                if (i >= 10)
                {
                    break;
                }
                IlgiausiuZodziuKonteneris.PridetiZodi(temp.GautiZodi(i));
            }
            return(IlgiausiuZodziuKonteneris);
        }
예제 #12
0
        /// <summary>
        /// Metodas, kuris tikrina du tekstus ir juos jungia į vieną
        /// </summary>
        /// <param name="Knygos1ZodziaiSuSkyrikliais">Pirmo failo žodžiai su skyrikliais</param>
        /// <param name="Knygos2ZodziaiSuSkyrikliais">Antro failo žodžiai su skyrikliais</param>
        /// <returns>Sudarytą bendrą tekstą</returns>
        StringBuilder TekstoPertvarkymas(ZodziuKonteineris Knygos1ZodziaiSuSkyrikliais, ZodziuKonteineris Knygos2ZodziaiSuSkyrikliais)
        {
            StringBuilder VisasTekstas       = new StringBuilder();
            int           k                  = 0;
            int           AntroZodzioPradzia = 0;

            for (int i = 0; i < Knygos1ZodziaiSuSkyrikliais.ZodziuSkaicius; i++)
            {
                string PirmasZodis = Regex.Replace(Knygos1ZodziaiSuSkyrikliais.GautiZodi(i).ZodzioPavadinimas, "[.,;()\"]", String.Empty);
                string AntrasZodis = Regex.Replace(Knygos2ZodziaiSuSkyrikliais.GautiZodi(AntroZodzioPradzia).ZodzioPavadinimas, "[.,;()\"]", String.Empty);
                if (PirmasZodis != AntrasZodis)
                {
                    VisasTekstas.Append(Knygos1ZodziaiSuSkyrikliais.GautiZodi(i).ZodzioPavadinimas);
                    VisasTekstas.Append(" ");
                }
                else
                {
                    if (i + 1 < Knygos1ZodziaiSuSkyrikliais.ZodziuSkaicius)
                    {
                        PirmasZodis = Regex.Replace(Knygos1ZodziaiSuSkyrikliais.GautiZodi(i + 1).ZodzioPavadinimas, "[.,;()\"]", String.Empty);
                    }
                    else
                    {
                        break;
                    }
                    for (int g = AntroZodzioPradzia; g < Knygos2ZodziaiSuSkyrikliais.ZodziuSkaicius; g++)
                    {
                        AntrasZodis = Regex.Replace(Knygos2ZodziaiSuSkyrikliais.GautiZodi(g).ZodzioPavadinimas, "[.,;()\"]", String.Empty);
                        if (PirmasZodis != AntrasZodis)
                        {
                            VisasTekstas.Append(Knygos2ZodziaiSuSkyrikliais.GautiZodi(g).ZodzioPavadinimas);
                            VisasTekstas.Append(" ");
                            if (g == Knygos2ZodziaiSuSkyrikliais.ZodziuSkaicius - 1)
                            {
                                AntroZodzioPradzia = Knygos2ZodziaiSuSkyrikliais.ZodziuSkaicius - 1;
                            }
                        }
                        else
                        {
                            if (g + 1 < Knygos2ZodziaiSuSkyrikliais.ZodziuSkaicius - 1)
                            {
                                AntroZodzioPradzia = g + 1;
                            }
                            else
                            {
                                AntroZodzioPradzia = Knygos2ZodziaiSuSkyrikliais.ZodziuSkaicius;
                            }
                            break;
                        }
                    }
                }
            }

            if (AntroZodzioPradzia < Knygos2ZodziaiSuSkyrikliais.ZodziuSkaicius - 1)
            {
                for (int i = AntroZodzioPradzia; i < Knygos2ZodziaiSuSkyrikliais.ZodziuSkaicius; i++)
                {
                    VisasTekstas.Append(Knygos2ZodziaiSuSkyrikliais.GautiZodi(i).ZodzioPavadinimas);
                    VisasTekstas.Append(" ");
                }
            }
            return(VisasTekstas);
        }
예제 #13
0
        public static char[] skyrikliai2 = { '.', '!', '?', ';' };                                            //Sakinio pabaigos 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);
            }

            Console.OutputEncoding = Encoding.UTF8; //Konsolėje rašomos lietuviškos raidės
            Program p = new Program();              //Sukuriamas Program klasės objektas

            //Sukuriami objektai, kuriuose talpinami žodžiai su skyrikliais
            ZodziuKonteineris Knygos1ZodziaiSuSkyrikliais = new ZodziuKonteineris(VisuZodziuDydis);
            ZodziuKonteineris Knygos2ZodziaiSuSkyrikliais = new ZodziuKonteineris(VisuZodziuDydis);

            //Sukuriami obejktai, kuriuose talpinami žodžiai be skyriklių
            ZodziuKonteineris Knygos1ZodziaiBeSkyrikliu = new ZodziuKonteineris(VisuZodziuDydis);
            ZodziuKonteineris Knygos2ZodziaiBeSkyrikliu = new ZodziuKonteineris(VisuZodziuDydis);

            //Apdoroja failus, ir sudeda žodžius į atitinkamus konteinerius
            p.Apdorojimas(Knyga1, skyrikliai, ref Knygos1ZodziaiSuSkyrikliais, ref Knygos1ZodziaiBeSkyrikliu);
            p.Apdorojimas(Knyga2, skyrikliai, ref Knygos2ZodziaiSuSkyrikliais, ref Knygos2ZodziaiBeSkyrikliu);

            //Žodžių konteineris, talpinantis ilgiausius žodžius
            ZodziuKonteineris IlgiausiuZodziuKonteneris = new ZodziuKonteineris(VisuZodziuDydis);

            p.IlgiausiZodziai(Knygos1ZodziaiBeSkyrikliu, Knygos2ZodziaiBeSkyrikliu, IlgiausiuZodziuKonteneris);

            string trumpiausiasSakinys1     = "";
            string trumpiausiasSakinys2     = "";
            int    trumpiausioSakinioVieta1 = 0;
            int    trumpiausioSakinioVieta2 = 0;
            int    zodziuSkaicius1          = 0;
            int    zodziuSkaicius2          = 0;

            //Metodai, kurie randa trumpiausio sakinio vietą.
            trumpiausioSakinioVieta1 = p.TrumpiausioSakinioVieta(Knyga1, skyrikliai2, skyrikliai, trumpiausiasSakinys1, zodziuSkaicius1);
            trumpiausioSakinioVieta2 = p.TrumpiausioSakinioVieta(Knyga2, skyrikliai2, skyrikliai, trumpiausiasSakinys2, zodziuSkaicius2);

            //Metodai, kurie randa trumpiausia sakinį, ir jo žodžių skaičių.
            p.TrumpiausiasSakinys(Knyga1, skyrikliai2, skyrikliai, out trumpiausiasSakinys1, out zodziuSkaicius1);
            p.TrumpiausiasSakinys(Knyga2, skyrikliai2, skyrikliai, out trumpiausiasSakinys2, out zodziuSkaicius2);

            //Metodas, kuris spausdina į ekraną atliktas 1 ir 2 užduotis.
            p.SpausdinimasEkrane(IlgiausiuZodziuKonteneris, trumpiausiasSakinys1, trumpiausioSakinioVieta1, trumpiausiasSakinys2, trumpiausioSakinioVieta2, zodziuSkaicius1, zodziuSkaicius2);
            //Metodas, kuris spausdina į failą atliktas 1 ir 2 užduotis.
            p.SpausdinimasFaile(Rodikliai, IlgiausiuZodziuKonteneris, trumpiausiasSakinys1, trumpiausioSakinioVieta1, trumpiausiasSakinys2, trumpiausioSakinioVieta2, zodziuSkaicius1, zodziuSkaicius2);

            StringBuilder Tekstas = new StringBuilder();                                              //Bendro teksto objektas

            Tekstas = p.TekstoPertvarkymas(Knygos1ZodziaiSuSkyrikliais, Knygos2ZodziaiSuSkyrikliais); //Sudaro vieną tekstą

            //Patikrina ar tekstas yra, jeigu taip, tada jį atspausdina
            if (Tekstas.Length == 0)
            {
                Console.WriteLine("Duomenų failuose nėra");
                p.PertvarkytoTekstoSpausdinimasFaile(ManoKnyga, Knygos1ZodziaiSuSkyrikliais, Knygos2ZodziaiSuSkyrikliais);
            }
            else
            {
                p.PertvarkytoTekstoSpausdinimasFaile(ManoKnyga, Knygos1ZodziaiSuSkyrikliais, Knygos2ZodziaiSuSkyrikliais);
            }

            Console.ReadKey();
        }