using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Text.RegularExpressions; namespace ConsoleApp1 { public class Adat { public int helyezes; public int sportolok_szama; public string sportag; public string versenyszam; public int olimpiaiPont = 0; public Adat(int hely, int szam, string sport, string vszam) { helyezes = hely; sportolok_szama = szam; sportag = sport; versenyszam = vszam; } } class Program { static void TobbPont_Kiir(int uszas, int torna) { if (uszas > torna) { Console.WriteLine("Úszás sportágban szereztek több érmet."); } else if (uszas < torna) { Console.WriteLine("Torna sportágban szereztek több érmet."); } else { Console.WriteLine("Egyenlő volt az érmek száma."); } } static void Main(string[] args) { FileStream fs = new FileStream("helsinki.txt", FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs); List adatok = new List(); string sor = sr.ReadLine(); while (sor != null) { string[] xd = sor.Split(' '); Adat asd = new Adat(Convert.ToInt32(xd[0]), Convert.ToInt32(xd[1]), xd[2], xd[3]); adatok.Add(asd); sor = sr.ReadLine(); } sr.Close(); fs.Close(); int pontszerzok = 0; int arany = 0; int ezust = 0; int bronz = 0; int pontok = 0; int uszas = 0; int torna = 0; foreach (var item in adatok) { switch (item.helyezes) { case 1: arany++; pontok += 7; item.olimpiaiPont = 7; if (item.sportag == "uszas") { uszas++; } if (item.sportag == "torna") { torna++; } goto pont; case 2: ezust++; pontok += 5; item.olimpiaiPont = 5; if (item.sportag == "uszas") { uszas++; } if (item.sportag == "torna") { torna++; } goto pont; case 3: bronz++; pontok += 4; item.olimpiaiPont = 4; if (item.sportag == "uszas") { uszas++; } if (item.sportag == "torna") { torna++; } goto pont; case int n when n > 3 && n < 7 && n != 0: switch (n) { case 4: pontok += 3; item.olimpiaiPont = 3; break; case 5: pontok += 2; item.olimpiaiPont = 2; break; case 6: pontok += 1; item.olimpiaiPont = 1; break; default: break; } goto pont; pont: pontszerzok++; break; default: break; } } Console.WriteLine("3.feladat:"); Console.WriteLine($"Pontszerző helyezések száma: {pontszerzok}"); Console.WriteLine("4.feladat:"); Console.WriteLine($"Arany: {arany}"); Console.WriteLine($"Ezüst: {ezust}"); Console.WriteLine($"Bronz: {bronz}"); Console.WriteLine($"Összesen: {arany + ezust + bronz}"); Console.WriteLine("5.feladat:"); Console.WriteLine($"Olimpiai pontok száma: {pontok}"); Console.WriteLine("6.feladat:"); TobbPont_Kiir(uszas, torna); FileStream fileStream = new FileStream("helsinki2.txt", FileMode.Create, FileAccess.Write); StreamWriter streamWriter = new StreamWriter(fileStream, Encoding.Unicode); foreach (var item in adatok) { string reg = @"kajak.kenu"; Regex re = new Regex(reg); if (item.sportag == "kajakkenu" || re.IsMatch(item.sportag)) { streamWriter.WriteLine($"{item.helyezes} {item.sportolok_szama} {item.olimpiaiPont} kajak-kenu {item.versenyszam}"); } else { streamWriter.WriteLine($"{item.helyezes} {item.sportolok_szama} {item.olimpiaiPont} {item.sportag} {item.versenyszam}"); } } streamWriter.Close(); fileStream.Close(); int legtobb = 0; int hely = 0; for (int i = 0; i < adatok.Count; i++) { if (adatok[i].sportolok_szama > legtobb) { legtobb = adatok[i].sportolok_szama; hely = i; } } Console.WriteLine("8.feladat:"); Console.WriteLine($"Helyezés: {adatok[hely].helyezes}"); Console.WriteLine($"Sportág: {adatok[hely].sportag}"); Console.WriteLine($"Versenyszám: {adatok[hely].versenyszam}"); Console.WriteLine($"Sportolók száma: {adatok[hely].sportolok_szama}"); } } }