Advertisement
winVIP

nila

Apr 8th, 2018
407
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ASP 9.22 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;
  7. using System.IO;
  8.  
  9. public partial class Forma1 : System.Web.UI.Page
  10. {
  11.     public const int SpalvuKiekis = 50;
  12.     protected void Page_Load(object sender, EventArgs e)
  13.     {
  14.  
  15.     }
  16.     protected void Button1_Click(object sender, EventArgs e)
  17.     {
  18.         string[] failai = Directory.GetFiles(Server.MapPath("App_Data"));
  19.         Sarasas taskai;
  20.         string[] spalvos;
  21.         Skaitymas(failai, out taskai, out spalvos);
  22.  
  23.         Sarasas[] didziausiTrikampiai;
  24.         double[] didziausiPerimetrai;
  25.         DidziausiTrikampiai(taskai, spalvos, out didziausiTrikampiai, out didziausiPerimetrai);
  26.  
  27.         Spausdinimas(taskai, spalvos, didziausiTrikampiai, didziausiPerimetrai);
  28.     }
  29.  
  30.     protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
  31.     {
  32.        
  33.     }
  34.  
  35.     protected void Skaitymas(string[] failai, out Sarasas taskai, out string[] spalvos)
  36.     {
  37.         taskai = new Sarasas();
  38.         spalvos = new string[SpalvuKiekis];
  39.  
  40.         foreach (string failas in failai)
  41.         {
  42.             if (failas.Contains("U5a.txt"))
  43.             {
  44.                 using (StreamReader skaitymas = new StreamReader(failas))
  45.                 {
  46.                     int n = int.Parse(skaitymas.ReadLine());
  47.                     for (int i = 0; i < n; i++)
  48.                     {
  49.                         string[] duomenys = skaitymas.ReadLine().Split(';');
  50.  
  51.                         string spalva = duomenys[0];
  52.                         int x = int.Parse(duomenys[1]);
  53.                         int y = int.Parse(duomenys[2]);
  54.  
  55.                         Taskas taskas = new Taskas(spalva, x, y);
  56.  
  57.                         taskai.DėtiDuomenisT(taskas);
  58.                     }
  59.                 }                
  60.             }
  61.             else
  62.             {
  63.                 string eilute = null;
  64.                 int k = 0;
  65.                 using (StreamReader skaitymas = new StreamReader(failas))
  66.                 {
  67.                     while ((eilute = skaitymas.ReadLine()) != null)
  68.                     {
  69.                         k++;
  70.                     }
  71.                 }
  72.                 spalvos = new string[k];
  73.  
  74.                 k = 0;
  75.                 using (StreamReader skaitymas = new StreamReader(failas))
  76.                 {
  77.                     while ((eilute = skaitymas.ReadLine()) != null)
  78.                     {
  79.                         spalvos[k++] = eilute;
  80.                     }
  81.                 }                    
  82.             }
  83.         }
  84.     }
  85.  
  86.     protected void DidziausiTrikampiai(Sarasas taskai, string[] spalvos, out Sarasas[] didziausiTrikampiai, out double[] didziausiPerimetrai)
  87.     {
  88.         int kiekis = 0;
  89.         didziausiPerimetrai = new double[spalvos.Length];
  90.         didziausiTrikampiai = new Sarasas[spalvos.Length];
  91.         foreach (string spalva in spalvos)
  92.         {
  93.             Taskas[] tinkamosSpalvos = new Taskas[taskai.taskuKiekis];
  94.             int kiekis2 = 0;
  95.             string[] dalys = spalva.Split(';');
  96.             for (taskai.Pradžia(); taskai.Yra(); taskai.Kitas())
  97.             {
  98.                 if(dalys[1].ToLower() == "taip" && taskai.ImtiDuomenis().Spalva.ToLower() == dalys[0].ToLower())
  99.                 {
  100.                     tinkamosSpalvos[kiekis2++] = taskai.ImtiDuomenis();
  101.                 }
  102.             }
  103.  
  104.             double didziausiasPerimetras = 0;
  105.             Sarasas didziausiasTrikampis = null;
  106.  
  107.             for(int i = 0; i < kiekis2; i++)
  108.             {
  109.                 for(int j = 0; j < kiekis2 && j != i; j++)
  110.                 {
  111.                     for(int k = 0; k < kiekis2 && k != i && k != j; k++)
  112.                     {
  113.                         double krastine1 = Math.Sqrt(Math.Pow(tinkamosSpalvos[i].X - tinkamosSpalvos[j].X, 2) + Math.Pow(tinkamosSpalvos[i].Y - tinkamosSpalvos[j].Y, 2));
  114.                         double krastine2 = Math.Sqrt(Math.Pow(tinkamosSpalvos[i].X - tinkamosSpalvos[k].X, 2) + Math.Pow(tinkamosSpalvos[i].Y - tinkamosSpalvos[k].Y, 2));
  115.                         double krastine3 = Math.Sqrt(Math.Pow(tinkamosSpalvos[j].X - tinkamosSpalvos[k].X, 2) + Math.Pow(tinkamosSpalvos[j].Y - tinkamosSpalvos[k].Y, 2));
  116.  
  117.                         ListBox1.Items.Add(string.Format("{0} {1} {2}", krastine1, krastine2, krastine3));
  118.                         ListBox1.Items.Add("");
  119.  
  120.                         if(krastine1 == krastine2)
  121.                         {
  122.                             if(krastine1 != krastine3)
  123.                             {
  124.                                 double Perimetras = krastine1 + krastine2 + krastine3;
  125.                                 if(Perimetras > didziausiasPerimetras)
  126.                                 {
  127.                                     didziausiasPerimetras = Perimetras;
  128.                                     didziausiasTrikampis = new Sarasas();
  129.                                     didziausiasTrikampis.DėtiDuomenisT(tinkamosSpalvos[i]);
  130.                                     didziausiasTrikampis.DėtiDuomenisT(tinkamosSpalvos[j]);
  131.                                     didziausiasTrikampis.DėtiDuomenisT(tinkamosSpalvos[k]);
  132.                                 }
  133.                                
  134.                             }
  135.                         }
  136.                         else if(krastine1 == krastine3)
  137.                         {
  138.                             if(krastine1 != krastine2)
  139.                             {
  140.                                 double Perimetras = krastine1 + krastine2 + krastine3;
  141.                                 if (Perimetras > didziausiasPerimetras)
  142.                                 {
  143.                                     didziausiasPerimetras = Perimetras;
  144.                                     didziausiasTrikampis = new Sarasas();
  145.                                     didziausiasTrikampis.DėtiDuomenisT(tinkamosSpalvos[i]);
  146.                                     didziausiasTrikampis.DėtiDuomenisT(tinkamosSpalvos[j]);
  147.                                     didziausiasTrikampis.DėtiDuomenisT(tinkamosSpalvos[k]);
  148.                                 }
  149.                             }
  150.                         }
  151.                         else if(krastine2 == krastine3)
  152.                         {
  153.                             if(krastine1 != krastine2)
  154.                             {
  155.                                 double Perimetras = krastine1 + krastine2 + krastine3;
  156.                                 if (Perimetras > didziausiasPerimetras)
  157.                                 {
  158.                                     didziausiasPerimetras = Perimetras;
  159.                                     didziausiasTrikampis = new Sarasas();
  160.                                     didziausiasTrikampis.DėtiDuomenisT(tinkamosSpalvos[i]);
  161.                                     didziausiasTrikampis.DėtiDuomenisT(tinkamosSpalvos[j]);
  162.                                     didziausiasTrikampis.DėtiDuomenisT(tinkamosSpalvos[k]);
  163.                                 }
  164.                             }
  165.                         }
  166.                     }
  167.                 }
  168.             }
  169.             didziausiPerimetrai[kiekis] = didziausiasPerimetras;
  170.             didziausiTrikampiai[kiekis++] = didziausiasTrikampis;
  171.         }
  172.     }
  173.  
  174.     protected void Spausdinimas(Sarasas taskai, string[] spalvos, Sarasas[] didziausiTrikampiai, double[] didziausiPerimetrai)
  175.     {
  176.         // Sąrašo peržiūra, panaudojant sąsajos metodus
  177.         ListBox1.Items.Add("Taskai:");
  178.         for (taskai.Pradžia(); taskai.Yra(); taskai.Kitas())
  179.         {
  180.             ListBox1.Items.Add(taskai.ImtiDuomenis().ToString());
  181.         }
  182.         ListBox1.Items.Add("");
  183.  
  184.         ListBox1.Items.Add("Spalvos:");
  185.         foreach (string spalva in spalvos)
  186.         {
  187.             ListBox1.Items.Add(spalva);
  188.         }
  189.         ListBox1.Items.Add("");
  190.  
  191.         for (int i = 0; i < spalvos.Length; i++)
  192.         {
  193.             string[] dalys = spalvos[i].Split(';');
  194.             if (dalys[1].ToLower() == "taip")
  195.             {
  196.                 if (didziausiPerimetrai[i] > 0)
  197.                 {
  198.                     didziausiTrikampiai[i].Pradžia();
  199.                     ListBox1.Items.Add(string.Format("Spalva:{0}", dalys[0]));
  200.                     ListBox1.Items.Add(string.Format("Taskas1 X:{0} Y:{1}", didziausiTrikampiai[i].ImtiDuomenis().X, didziausiTrikampiai[i].ImtiDuomenis().Y));
  201.                     didziausiTrikampiai[i].Kitas();
  202.                     ListBox1.Items.Add(string.Format("Taskas2 X:{0} Y:{1}", didziausiTrikampiai[i].ImtiDuomenis().X, didziausiTrikampiai[i].ImtiDuomenis().Y));
  203.                     didziausiTrikampiai[i].Kitas();
  204.                     ListBox1.Items.Add(string.Format("Taskas2 X:{0} Y:{1}", didziausiTrikampiai[i].ImtiDuomenis().X, didziausiTrikampiai[i].ImtiDuomenis().Y));
  205.                     ListBox1.Items.Add(string.Format("Perimetras:{0}", didziausiPerimetrai[i]));
  206.                 }
  207.                 else
  208.                 {
  209.                     ListBox1.Items.Add(string.Format("Spalva:{0} Nera trikampiu", dalys[0]));
  210.                 }
  211.             }
  212.             else
  213.             {
  214.                 ListBox1.Items.Add(string.Format("Spalva:{0} Negalima", dalys[0]));
  215.             }
  216.         }
  217.     }
  218. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement