static void Skaitymas(string duom, Figura[] figuros, Apskritimas[] apskritimai, out int n, out int na) { using (StreamReader reader = new StreamReader(duom)) { string eilute; string[] skaidymas; string name; int iterator1 = 0; int iterator2 = 0; while ((eilute = reader.ReadLine()) != null) { skaidymas = eilute.Split(' '); name = skaidymas[0]; if (skaidymas.Count() > 4) { figuros[iterator1] = new Figura(name); for (int i = 1; i < skaidymas.Length; i = i + 2) { Taskas k = new Taskas(double.Parse(skaidymas[i]), double.Parse(skaidymas[i + 1])); figuros[iterator1].PridetiKampu(k); } iterator1++; } else { apskritimai[iterator2] = new Apskritimas(name, double.Parse(skaidymas[1]), double.Parse(skaidymas[2]), double.Parse(skaidymas[3])); iterator2++; } } n = iterator1; na = iterator2; } }
static void Main(string[] args) { Console.OutputEncoding = Encoding.UTF8; const int maxduom = 500; const string duom = "...\\...\\DuomU2.txt"; const string rez = "...\\...\\rez.txt"; if (File.Exists(rez)) { File.Delete(rez); } const string meniu = "|-------------------------------------------------------------------------------------|\r\n" + "| Meniu | Taškai | Veiksmas |\r\n" + "|-------------------------------------------------------------------------------------|\r\n" + "| KokiuIrKiek | 4 | Rasti kokių ir kiek yra figūrų. |\r\n" + "|-------------------------------------------------------------------------------------|\r\n" + "| MaxPerimetras | 8 | Rasti didžiausią perimetrą turinčios |\r\n" + "| | | figūros vardą ir perimetrą. |\r\n" + "|-------------------------------------------------------------------------------------|\r\n" + "| MaxPlotas | 8 | Rasti didžiausią plotą turinčios figūros |\r\n" + "| | | vardą ir plotą. |\r\n" + "|-------------------------------------------------------------------------------------|\r\n" + "| KiekStacTrikampiu | 10 | Rasti stačiųjų trikampių, įbrėžtų į |\r\n" + "| | | apskritimus, kiekį (Tikslumas: 0.000001). |\r\n" + "|-------------------------------------------------------------------------------------|\r\n" + "| KiekKvadratu | 10 | Rasti kvadratų, apibrėžtų apie apskritimus, |\r\n" + "| | | kiekį (Tikslumas: 0.000001). |\r\n" + "|-------------------------------------------------------------------------------------|\r\n" + "| InfoFiguruGrupe | 12 | Pateikti informaciją apie pageidaujamą |\r\n" + "| | | figūrų grupę atskirose eilutėse tokia seka: |\r\n" + "| | | (nurodoma grupės kampų skaičius, |\r\n" + "| | | pvz.: 5; apskritimams - 0 ): |\r\n" + "| | | -> figūrų kiekis; |\r\n" + "| | | -> kiek yra lygiakraščių figūrų |\r\n" + "| | | (Tikslumas: 0.000001) |\r\n" + "| | | (apskritimams: figūrų kiekis); |\r\n" + "| | | -> bendras figūrų perimetras |\r\n" + "| | | (apskritimams: bendras apskritimų ilgis); |\r\n" + "| | | -> bendras figūrų plotas |\r\n" + "| | | (apskritimams: bendras apskritimų plotas). |\r\n" + "|-------------------------------------------------------------------------------------|"; int n, na; Figura[] figuros = new Figura[maxduom]; Apskritimas[] apskritimai = new Apskritimas[maxduom]; Dictionary <string, int> kiekirkokiu = new Dictionary <string, int>(); kiekirkokiu.Add("Trikampiu", 0); kiekirkokiu.Add("Keturkampiu", 0); kiekirkokiu.Add("Penkiakampiu", 0); kiekirkokiu.Add("Sesiakampiu", 0); kiekirkokiu.Add("Septynkampiu", 0); kiekirkokiu.Add("Astuonkampiu", 0); kiekirkokiu.Add("Devynkampiu", 0); kiekirkokiu.Add("Desimtkampiu", 0); kiekirkokiu.Add("Apskritimu", 0); Skaitymas(duom, figuros, apskritimai, out n, out na); Spausdinimas(rez, figuros, n, apskritimai, na, "Pradiniai duomenys: "); Console.WriteLine(meniu + "\n"); Isvesti(rez, meniu + "\n"); string x = "tuscias"; while (x != "0") { Console.Write("Iveskite savo pasirinkima, arba 0, jei norite nutraukti: "); Isvesti(rez, "Iveskite savo pasirinkima, arba 0, jei norite nutraukti: "); x = Console.ReadLine(); switch (x) { case "KokiuIrKiek": Console.WriteLine(); Isvesti(rez, ""); Console.WriteLine("KokiuIrKiek"); Isvesti(rez, "KokiuIrKiek"); KiekIrKokiu(figuros, n, apskritimai, na, kiekirkokiu); SpausdintiKiekIrKokiu(rez, kiekirkokiu); Console.WriteLine(); Isvesti(rez, ""); break; case "MaxPerimetras": Console.WriteLine(); Isvesti(rez, ""); Console.WriteLine("MaxPerimetras"); Isvesti(rez, "MaxPerimetras"); double maxF, maxA; maxF = DidziausiasPerimetrasFiguros(figuros, n); maxA = DidziausiasPerimetrasApskritimo(apskritimai, na); if (maxF == maxA) { SpausdintiDidziausioPerimetroFiguras(rez, maxF, figuros, apskritimai, n, na, "Didžiausio perimetro figūros: "); } else if (maxF > maxA) { SpausdintiDidziausioPerimetroFiguras(rez, maxF, figuros, apskritimai, n, na, "Didžiausio perimetro figūros: "); } else if (maxA > maxF) { SpausdintiDidziausioPerimetroFiguras(rez, maxA, figuros, apskritimai, n, na, "Didžiausio perimetro figūros: "); } Console.WriteLine(); Isvesti(rez, ""); break; case "MaxPlotas": Console.WriteLine(); Isvesti(rez, ""); Console.WriteLine("MaxPlotas"); Isvesti(rez, "MaxPlotas"); double maxFP, maxAP; maxFP = DidziausiasPlotasFiguros(figuros, n); maxAP = DidziausiasPlotasApskritimo(apskritimai, na); if (maxFP == maxAP) { SpausdintiDidziausioPlotoFiguras(rez, maxFP, figuros, apskritimai, n, na, "Didžiausio ploto figūros: "); } else if (maxFP > maxAP) { SpausdintiDidziausioPlotoFiguras(rez, maxFP, figuros, apskritimai, n, na, "Didžiausio ploto figūros: "); } else if (maxAP > maxFP) { SpausdintiDidziausioPlotoFiguras(rez, maxAP, figuros, apskritimai, n, na, "Didžiausio ploto figūros: "); } Console.WriteLine(); Isvesti(rez, ""); break; case "KiekStacTrikampiu": Console.WriteLine(); Isvesti(rez, ""); Console.WriteLine("KiekStacTrikampiu"); Isvesti(rez, "KiekStacTrikampiu"); int kiekis = 0; kiekis = KiekIbreztuStaciujuTrikampiu(figuros, n, apskritimai, na); if (kiekis > 0) { Console.WriteLine("Į apskritimus įbrėžtų stačiųjų trikampių kiekis yra: {0}", kiekis); string z = String.Format("Į apskritimus įbrėžtų stačiųjų trikampių kiekis yra: {0}", kiekis); Isvesti(rez, z); } else { Console.WriteLine("Į apskritimus įbrėžtų stačiųjų trikampių nėra"); Isvesti(rez, "Į apskritimus įbrėžtų stačiųjų trikampių nėra"); } Console.WriteLine(); Isvesti(rez, ""); break; case "KiekKvadratu": Console.WriteLine(); Isvesti(rez, ""); Console.WriteLine("KiekKvadratu"); Isvesti(rez, "KiekKvadratu"); int kiek = 0; kiek = KiekIbreztuStaciujuTrikampiu(figuros, n, apskritimai, na); if (kiek > 0) { Console.WriteLine("Apie apskritimus apibrėžtų kvadratų kiekis yra: {0}", kiek); string c = String.Format("Apie apskritimus apibrėžtų kvadratų kiekis yra: {0}", kiek); Isvesti(rez, c); } else { Console.WriteLine("Apie apskritimus apibrėžtų kvadratų nėra"); Isvesti(rez, "Apie apskritimus apibrėžtų kvadratų nėra"); } Console.WriteLine(); Isvesti(rez, ""); break; case "InfoFiguruGrupe": Console.WriteLine(); Isvesti(rez, ""); Console.WriteLine("InfoFiguruGrupe"); Isvesti(rez, "InfoFiguruGrupe"); Console.WriteLine("Įveskite savo pasirinkimą:"); Isvesti(rez, "Įveskite savo pasirinkimą:"); int kokiaFigura = int.Parse(Console.ReadLine()); Isvesti(rez, string.Format("{0}", kokiaFigura)); int figuruKiekis, lygiakrasciuFiguruKiekis; double bendrasFiguruPerimetras, bendrasFiguruPlotas; if (kokiaFigura == 0) { InformacijaApieApskritimus(kokiaFigura, apskritimai, na, out figuruKiekis, out bendrasFiguruPerimetras, out bendrasFiguruPlotas); if (figuruKiekis > 0) { string d = string.Format("Jūsų figūra turi 0 kampų \nTokių figūrų yra {0}; \nBendras jų plotas: {1,8:f}; \nBendras jų perimetras: {2,8:f}", figuruKiekis, bendrasFiguruPerimetras, bendrasFiguruPlotas); Console.WriteLine(d); Isvesti(rez, d); } else { Console.WriteLine("Tokiu figuru nera!"); Isvesti(rez, "Tokiu figuru nera!"); } } else if (kokiaFigura > 0 && kokiaFigura != 1 && kokiaFigura != 2) { InformacijaApieFiguras(kokiaFigura, figuros, n, out figuruKiekis, out lygiakrasciuFiguruKiekis, out bendrasFiguruPerimetras, out bendrasFiguruPlotas); if (figuruKiekis > 0) { string d = string.Format("Jūsų figūra turi {0} kampus (-ų) \nTokių figūrų yra {1}; \nBendras jų plotas: {2,8:f}; \nBendras jų perimetras: {3,8:f}", kokiaFigura, figuruKiekis, bendrasFiguruPerimetras, bendrasFiguruPlotas); Console.WriteLine(d); Isvesti(rez, d); } else { Console.WriteLine("Tokiu figuru nera!"); Isvesti(rez, "Tokiu figuru nera!"); } } else { Console.WriteLine("Netinkamas figuros pasirinkimas"); Isvesti(rez, "Netinkamas figuros pasirinkimas"); } Console.WriteLine(); Isvesti(rez, ""); break; default: if (x != "0") { Console.WriteLine(); Isvesti(rez, ""); Console.WriteLine(x); Isvesti(rez, x); Console.WriteLine("Netinkamas pasirinkimas"); Isvesti(rez, "Netinkamas pasirinkimas"); Console.WriteLine(); Isvesti(rez, ""); } break; } } Console.WriteLine(); Isvesti(rez, ""); Console.WriteLine("0"); Isvesti(rez, "0"); Console.WriteLine("Programa baigė darbą!"); Isvesti(rez, "Programa baigė darbą!"); Console.WriteLine(); Isvesti(rez, ""); }