Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.23 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7. using System.Text.RegularExpressions;
  8.  
  9. namespace Lab4
  10. {
  11.     class Program
  12.     {  
  13.         List<Zodziai> ZodziaiISarasa (string failas, char[] skyrikliai)
  14.         {
  15.             List<Zodziai> zodziuSarasas = new List<Zodziai>();
  16.             string[] eilutes = File.ReadAllLines(failas, Encoding.GetEncoding(1257));
  17.             foreach(string eilute in eilutes)
  18.             {
  19.                 string[] dalys = eilute.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);
  20.                 foreach(var zodis in dalys)
  21.                 {
  22.                     Zodziai zodelis = new Zodziai(zodis, 0);
  23.                     zodziuSarasas.Add(zodelis);
  24.                 }
  25.                zodziuSarasas = zodziuSarasas.OrderByDescending(x => x.Zodis.Length).ToList();
  26.             }
  27.             return zodziuSarasas;
  28.         }
  29.         List<Zodziai> ZodziaiSuBalsem(List<Zodziai> zodziuSarasas, char[] skyrikliai, char[] balses)
  30.         {
  31.             List<Zodziai> zodziaiSuBalsem = new List<Zodziai>();
  32.             for(int i = 0; i < zodziuSarasas.Count; i++)
  33.             {
  34.                 string zodis = zodziuSarasas[i].Zodis;
  35.                 if(!zodziaiSuBalsem.Contains(zodziuSarasas[i]))
  36.                 {
  37.                     char pirmaRaide = zodis[0];
  38.                     char paskutineRaide = zodis[zodis.Length - 1];
  39.                  if (balses.Contains(pirmaRaide) && balses.Contains(paskutineRaide))
  40.                     {
  41.                         Zodziai zodelis = new Zodziai(zodis, 0);
  42.                         zodziaiSuBalsem.Add(zodelis);
  43.                     }
  44.                 }
  45.                
  46.             }
  47.             return zodziaiSuBalsem;
  48.         }
  49.        
  50.         List<Zodziai> IlgiausiZodziai(List<Zodziai> zodziuSarasas,  char[] skyrikliai)
  51.         {
  52.             List<Zodziai> IlgiausiuSarasas = new List<Zodziai>();
  53.             for(int i = 0; i < 10; i++)
  54.             {
  55.                 string zodis = zodziuSarasas[i].Zodis;
  56.                 if(!IlgiausiuSarasas.Contains(zodziuSarasas[i]))
  57.                 {
  58.                     Zodziai zodelis = new Zodziai(zodis, 0);
  59.                     IlgiausiuSarasas.Add(zodelis);
  60.                 }
  61.             }
  62.            
  63.             return IlgiausiuSarasas;
  64.         }
  65.         void Pasikartoja(List<Zodziai> sarasas, string failas, char[] skyrikliai)
  66.         {
  67.             string[] eilutes = File.ReadAllLines(failas, Encoding.GetEncoding(1257));
  68.             foreach (string eilute in eilutes)
  69.             {
  70.                 string[] dalys = eilute.Split(skyrikliai, StringSplitOptions.RemoveEmptyEntries);
  71.                 for (int i = 0; i < sarasas.Count; i++)
  72.                 {
  73.                     var zodis = sarasas[i];
  74.                     for (int j = 0; j < dalys.Length; j++)
  75.                     {
  76.                         string dalis = dalys[j];
  77.                         if(zodis.Zodis == dalis)
  78.                         {
  79.                             zodis.Pasikartoja++;
  80.                         }
  81.                     }
  82.                 }
  83.              
  84.             }
  85.         }
  86.         void Rikiavimas(List<Zodziai> sarasas)
  87.         {
  88.             Zodziai laikinas;
  89.             for (int i = 0; i < sarasas.Count; i++)
  90.             {
  91.                 for (int j = 0; j < sarasas.Count; j++)
  92.                 {
  93.                     if(sarasas[i].Pasikartoja > sarasas[j].Pasikartoja)
  94.                     {
  95.                         laikinas = sarasas[i];
  96.                         sarasas[i] = sarasas[j];
  97.                         sarasas[j] = laikinas;
  98.                     }
  99.                     if (sarasas[i].Pasikartoja == sarasas[j].Pasikartoja)
  100.                     {
  101.                         if (sarasas[i].Zodis.CompareTo(sarasas[j].Zodis) < 0)
  102.                         {
  103.                             laikinas = sarasas[i];
  104.                             sarasas[i] = sarasas[j];
  105.                             sarasas[j] = laikinas;
  106.                         }
  107.                     }
  108.                 }
  109.             }
  110.         }
  111.         void SpausdintiRodiklius(List<Zodziai> sarasas)
  112.         {  
  113.             foreach(var zodis in sarasas)
  114.             {
  115.                 string eilute = String.Format("{0} Pasikartoja: {1}", zodis.Zodis, zodis.Pasikartoja);
  116.                 File.AppendAllText(@"Rodikliai.txt", eilute + Environment.NewLine);
  117.             }
  118.         }
  119.         void Lygiavimas(string tekstas)
  120.         {
  121.             int n = 0;
  122.             string[] eilutes = Regex.Split(tekstas, "\r\n|\r|\n");
  123.  
  124.             foreach (var eilute in eilutes)
  125.             {
  126.                 string[] zodziai = eilute.Split(' ');
  127.  
  128.                 for (int i = 0; i < zodziai.Count(); i++)
  129.                 {
  130.                     for (int a = zodziai[i].Length; a < IlgiausiasZodis(tekstas, i); a++)
  131.                     {
  132.                         zodziai[i] += " ";
  133.                     }
  134.  
  135.                     if (zodziai[i].Length != IlgiausiasZodis(tekstas, i))
  136.                         zodziai[i] += " ";
  137.                 }
  138.  
  139.                 eilutes[n++] = string.Join(" ", zodziai);
  140.                 File.WriteAllLines(@"ManoKnyga.txt", eilutes);
  141.             }
  142.         }
  143.  
  144.         static int IlgiausiasZodis(string tekstas, int p)
  145.         {
  146.             int ilgis = 0;
  147.  
  148.             string[] eilutes = Regex.Split(tekstas, "\r\n|\r|\n");
  149.  
  150.             foreach (var eilute in eilutes)
  151.             {
  152.                 string[] zodziai = eilute.Split(' ');
  153.  
  154.                 if (zodziai.Count() > p && zodziai[p].Count() > ilgis)
  155.                     ilgis = zodziai[p].Count();
  156.             }
  157.  
  158.             return ilgis;
  159.         }
  160.  
  161.         static void Main(string[] args)
  162.         {
  163.             Program p = new Program();
  164.             string tekstas = File.ReadAllText(@"Knyga.txt", Encoding.GetEncoding(1257));
  165.             char[] skyrikliai = { ' ', '.', ',', '!', '?', ':', ';', '(', ')', '\t' };
  166.             char[] balses = { 'a', 'ą', 'e', 'ę', 'ė', 'i', 'į', 'y', 'o', 'u', 'ū', 'ų', 'A', 'Ą', 'E', 'Ę', 'Ė', 'I', 'Į', 'Y', 'O', 'U', 'Ū', 'Ų' };
  167.             List<Zodziai> zodziuSarasas = p.ZodziaiISarasa(@"Knyga.txt", skyrikliai);
  168.             List<Zodziai> zodziaiSuBalsem = p.ZodziaiSuBalsem(zodziuSarasas, skyrikliai, balses);
  169.             List<Zodziai> ilgiausiZodziai = p.IlgiausiZodziai(zodziuSarasas,  skyrikliai);
  170.             p.Pasikartoja(ilgiausiZodziai, @"Knyga.txt", skyrikliai);
  171.             p.Pasikartoja(zodziaiSuBalsem, @"Knyga.tXt", skyrikliai);
  172.             p.Rikiavimas(zodziaiSuBalsem);
  173.             if(File.Exists(@"Rodikliai.txt"))
  174.             {
  175.                 File.Delete(@"Rodikliai.txt");
  176.             }
  177.             string zodziaiSuBalsemTekstas = String.Format("Zodziai kurie prasideda ir baigias balse: ");
  178.             File.AppendAllText(@"Rodikliai.txt", zodziaiSuBalsemTekstas + Environment.NewLine);
  179.             p.SpausdintiRodiklius(zodziaiSuBalsem);
  180.             string ilgiausiZodziaiTekstas = String.Format("Ilgiausi zodziai: ");
  181.             File.AppendAllText(@"Rodikliai.txt", ilgiausiZodziaiTekstas + Environment.NewLine);
  182.             p.SpausdintiRodiklius(ilgiausiZodziai);
  183.             p.Lygiavimas(tekstas);
  184.         }
  185.     }
  186. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement