Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.IO;
- using System.Text.RegularExpressions;
- namespace Lab4
- {
- class Program
- {
- List<Zodziai> ZodziaiISarasa (string failas, char[] skyrikliai)
- {
- List<Zodziai> zodziuSarasas = new List<Zodziai>();
- string[] eilutes = File.ReadAllLines(failas, Encoding.GetEncoding(1257));
- foreach(string eilute in eilutes)
- {
- string[] dalys = eilute.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);
- foreach(var zodis in dalys)
- {
- Zodziai zodelis = new Zodziai(zodis, 0);
- zodziuSarasas.Add(zodelis);
- }
- zodziuSarasas = zodziuSarasas.OrderByDescending(x => x.Zodis.Length).ToList();
- }
- return zodziuSarasas;
- }
- List<Zodziai> ZodziaiSuBalsem(List<Zodziai> zodziuSarasas, char[] skyrikliai, char[] balses)
- {
- List<Zodziai> zodziaiSuBalsem = new List<Zodziai>();
- for(int i = 0; i < zodziuSarasas.Count; i++)
- {
- string zodis = zodziuSarasas[i].Zodis;
- if(!zodziaiSuBalsem.Contains(zodziuSarasas[i]))
- {
- char pirmaRaide = zodis[0];
- char paskutineRaide = zodis[zodis.Length - 1];
- if (balses.Contains(pirmaRaide) && balses.Contains(paskutineRaide))
- {
- Zodziai zodelis = new Zodziai(zodis, 0);
- zodziaiSuBalsem.Add(zodelis);
- }
- }
- }
- return zodziaiSuBalsem;
- }
- List<Zodziai> IlgiausiZodziai(List<Zodziai> zodziuSarasas, char[] skyrikliai)
- {
- List<Zodziai> IlgiausiuSarasas = new List<Zodziai>();
- for(int i = 0; i < 10; i++)
- {
- string zodis = zodziuSarasas[i].Zodis;
- if(!IlgiausiuSarasas.Contains(zodziuSarasas[i]))
- {
- Zodziai zodelis = new Zodziai(zodis, 0);
- IlgiausiuSarasas.Add(zodelis);
- }
- }
- return IlgiausiuSarasas;
- }
- void Pasikartoja(List<Zodziai> sarasas, string failas, char[] skyrikliai)
- {
- string[] eilutes = File.ReadAllLines(failas, Encoding.GetEncoding(1257));
- foreach (string eilute in eilutes)
- {
- string[] dalys = eilute.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);
- for (int i = 0; i < sarasas.Count; i++)
- {
- var zodis = sarasas[i];
- for (int j = 0; j < dalys.Length; j++)
- {
- string dalis = dalys[j];
- if(zodis.Zodis == dalis)
- {
- zodis.Pasikartoja++;
- }
- }
- }
- }
- }
- void Rikiavimas(List<Zodziai> sarasas)
- {
- Zodziai laikinas;
- for (int i = 0; i < sarasas.Count; i++)
- {
- for (int j = 0; j < sarasas.Count; j++)
- {
- if(sarasas[i].Pasikartoja > sarasas[j].Pasikartoja)
- {
- laikinas = sarasas[i];
- sarasas[i] = sarasas[j];
- sarasas[j] = laikinas;
- }
- if (sarasas[i].Pasikartoja == sarasas[j].Pasikartoja)
- {
- if (sarasas[i].Zodis.CompareTo(sarasas[j].Zodis) < 0)
- {
- laikinas = sarasas[i];
- sarasas[i] = sarasas[j];
- sarasas[j] = laikinas;
- }
- }
- }
- }
- }
- void SpausdintiRodiklius(List<Zodziai> sarasas)
- {
- foreach(var zodis in sarasas)
- {
- string eilute = String.Format("{0} Pasikartoja: {1}", zodis.Zodis, zodis.Pasikartoja);
- File.AppendAllText(@"Rodikliai.txt", eilute + Environment.NewLine);
- }
- }
- void Lygiavimas(string tekstas)
- {
- int n = 0;
- string[] eilutes = Regex.Split(tekstas, "\r\n|\r|\n");
- foreach (var eilute in eilutes)
- {
- string[] zodziai = eilute.Split(' ');
- for (int i = 0; i < zodziai.Count(); i++)
- {
- for (int a = zodziai[i].Length; a < IlgiausiasZodis(tekstas, i); a++)
- {
- zodziai[i] += " ";
- }
- if (zodziai[i].Length != IlgiausiasZodis(tekstas, i))
- zodziai[i] += " ";
- }
- eilutes[n++] = string.Join(" ", zodziai);
- File.WriteAllLines(@"ManoKnyga.txt", eilutes);
- }
- }
- static int IlgiausiasZodis(string tekstas, int p)
- {
- int ilgis = 0;
- string[] eilutes = Regex.Split(tekstas, "\r\n|\r|\n");
- foreach (var eilute in eilutes)
- {
- string[] zodziai = eilute.Split(' ');
- if (zodziai.Count() > p && zodziai[p].Count() > ilgis)
- ilgis = zodziai[p].Count();
- }
- return ilgis;
- }
- static void Main(string[] args)
- {
- Program p = new Program();
- string tekstas = File.ReadAllText(@"Knyga.txt", Encoding.GetEncoding(1257));
- char[] skyrikliai = { ' ', '.', ',', '!', '?', ':', ';', '(', ')', '\t' };
- char[] balses = { 'a', 'ą', 'e', 'ę', 'ė', 'i', 'į', 'y', 'o', 'u', 'ū', 'ų', 'A', 'Ą', 'E', 'Ę', 'Ė', 'I', 'Į', 'Y', 'O', 'U', 'Ū', 'Ų' };
- List<Zodziai> zodziuSarasas = p.ZodziaiISarasa(@"Knyga.txt", skyrikliai);
- List<Zodziai> zodziaiSuBalsem = p.ZodziaiSuBalsem(zodziuSarasas, skyrikliai, balses);
- List<Zodziai> ilgiausiZodziai = p.IlgiausiZodziai(zodziuSarasas, skyrikliai);
- p.Pasikartoja(ilgiausiZodziai, @"Knyga.txt", skyrikliai);
- p.Pasikartoja(zodziaiSuBalsem, @"Knyga.tXt", skyrikliai);
- p.Rikiavimas(zodziaiSuBalsem);
- if(File.Exists(@"Rodikliai.txt"))
- {
- File.Delete(@"Rodikliai.txt");
- }
- string zodziaiSuBalsemTekstas = String.Format("Zodziai kurie prasideda ir baigias balse: ");
- File.AppendAllText(@"Rodikliai.txt", zodziaiSuBalsemTekstas + Environment.NewLine);
- p.SpausdintiRodiklius(zodziaiSuBalsem);
- string ilgiausiZodziaiTekstas = String.Format("Ilgiausi zodziai: ");
- File.AppendAllText(@"Rodikliai.txt", ilgiausiZodziaiTekstas + Environment.NewLine);
- p.SpausdintiRodiklius(ilgiausiZodziai);
- p.Lygiavimas(tekstas);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement