static void Main(string[] args) { string[] fajlbol = File.ReadAllLines("kektura.csv"); adatsor[] adatok = new adatsor[100]; int vegpontmagassag = Convert.ToInt32(fajlbol[0]); Console.WriteLine(vegpontmagassag); int tindex = 0; //sorok száma a fájlban double szumhossz = 0; //túra teljes hossza int min = 0; //legrövidebb szakasz indexe int hianyosnevekdb = 0; //hiányos nevű végpontok száma int max = 0; //tengerszint feletti legnagyobb magasság for (int i = 1; i < fajlbol.Count(); i++) { string[] egysordarabolva = fajlbol[i].Split(';'); adatok[tindex].kezdopont = egysordarabolva[0]; adatok[tindex].vegpont = egysordarabolva[1]; adatok[tindex].turahossz = Convert.ToDouble(egysordarabolva[2]); adatok[tindex].emelkedes = Convert.ToInt32(egysordarabolva[3]); adatok[tindex].lejtes = Convert.ToInt32(egysordarabolva[4]); if (egysordarabolva[5] == "i") { adatok[tindex].pecset = true; } else { adatok[tindex].pecset = false; } //4.feladat szumhossz += adatok[tindex].turahossz; Console.WriteLine(szumhossz); //5. feladat if (adatok[min].turahossz > adatok[tindex].turahossz) { min = tindex; } //6. 7. feladat if (adatok[tindex].pecset && HianyosNev(adatok[tindex].vegpont)) { hianyosnevekdb++; } vegpontmagassag += adatok[tindex].emelkedes - adatok[tindex].lejtes; adatok[tindex].magassag = vegpontmagassag; if (adatok[max].magassag < adatok[tindex].magassag) { max = tindex; } tindex++; } //adatok kiíratása for (int i = 0; i < fajlbol.Count(); i++) { Console.Write(adatok[i].kezdopont); Console.Write(";"); Console.Write(adatok[i].vegpont); Console.Write(";"); Console.Write(adatok[i].turahossz); Console.Write(";"); Console.Write(adatok[i].emelkedes); Console.Write(";"); Console.Write(adatok[i].lejtes); Console.Write(";"); Console.WriteLine(adatok[i].pecset); Console.Write(";"); Console.WriteLine(adatok[i].magassag); } //3. feladat szakaszok száma Console.WriteLine("3. feladat: szakaszok száma: {0} db", tindex); //4. feladat a túra teljes hossza Console.WriteLine("4. feladat: A túra teljes hossza: {0} km", szumhossz); //5. feladat legrövidebb szakasz adatai Console.WriteLine("5. feladat: legrövidebb szakasz adatai:"); Console.WriteLine("\tKezdete: {0} ", adatok[min].kezdopont); Console.WriteLine("\tVége: {0}", adatok[min].vegpont); Console.WriteLine("\tTávolság: {0} km", adatok[min].turahossz); //Console.WriteLine("\tmin: {0}", min); //7. feladat a túra teljes hossza Console.WriteLine("7. feladat: Hiányos állomásnevek: "); if (hianyosnevekdb == 0) { Console.WriteLine("Nincs hiányos állomásnév!"); } else { foreach (var elem in adatok) { if (elem.pecset && HianyosNev(elem.vegpont)) { Console.WriteLine("\t{0}", elem.vegpont); } } } //8. feladat a túra legmagasabban fekvő végpontja Console.WriteLine("8. feladat: A túra legmagasabban fekvő végpontja:"); Console.WriteLine("\tA végpont neve: {0} ", adatok[max].vegpont); Console.WriteLine("\tA végpont tengerszint feletti magassága: {0}", adatok[max].magassag); //9. feladat kektura2.csv fájl elkészítése FileStream fnev = new FileStream("kektura2.csv", FileMode.Create); StreamWriter fajlbairo = new StreamWriter(fnev); fajlbairo.WriteLine(fajlbol[0]); for (int i = 0; i < tindex; i++) { fajlbairo.Write("{0};", adatok[i].kezdopont); if (adatok[i].pecset && HianyosNev(adatok[i].vegpont)) { fajlbairo.Write("{0} pecsetelohely;", adatok[i].vegpont); } else { fajlbairo.Write("{0};", adatok[i].vegpont); } fajlbairo.Write("{0};", adatok[i].turahossz); fajlbairo.Write("{0};", adatok[i].emelkedes); fajlbairo.Write("{0};", adatok[i].lejtes); fajlbairo.WriteLine(adatok[i].pecset?"i":"n"); } fajlbairo.Close(); fnev.Close(); Console.ReadKey(); }
static void Main(string[] args) { //vizsgáljuk Vas megyében az élve születések számát. //A forrásállományba (vas.txt) az itt született csecsemők személyi azonosítója (személyi száma) került //A személyi szám úgynevezett „beszélő szám”, azaz struktúrája van. //11 decimális számjegyből áll és M-ÉÉHHNN-SSSK alakú: //Az M számjegy alapvetően a nemre és a születési év első két jegyére utal: //Az ÉÉHHNN számjegyek a születési év utolsó két jegyét, a hónapot és a napot kódolják. //Az SSS az azonos napon születettek megkülönböztetésére való. //A K ellenőrzési célokat szolgál.A többi számjegyből kell képezni. //k11=(10*k1+9*k2+...+1*k10)mod 11 /*Minta: * 2. feladat: Adatok beolvasása, tárolása * 4. feladat: Ellenőrzés * Hibás a 3-000115-5882 személyi azonosító! * Hibás a 3-000227-3942 személyi azonosító! * Hibás a 2-990101-1394 személyi azonosító! * 5. feladat: Vas megyében a vizsgált évek alatt 9126 csecsemő született. * 6. feladat: Fiúk száma: 4543 * 7. feladat: Vizsgált időszak: 1998 - 2001 * 8. feladat: Szökőnapon született baba! * 9. feladat: Statisztika * 1998 - 2253 fő * 1999 - 2320 fő * 2000 - 2248 fő * 2001 - 2305 fő */ //Olvassa be a vas.txt állományban lévő adatokat string[] fajlbol = File.ReadAllLines("vas.txt"); adatsor[] adatok = new adatsor[20000]; //A fájlban legfeljebb 20 000 sor lehet int tindex = 0; //helyes adatok számláló int k11; int ellenorzoosszeg = 0; int ferfiakszama = 0; int minev = 0; int maxev = 0; int evszam = 0; int n; string Id, id; int[] k = new int[20000]; Console.WriteLine("2. feladat: Adatok beolvasása tárolása"); Console.WriteLine("4. feladat: ellőrzés"); for (int i = 0; i < fajlbol.Count(); i++) { string[] m = fajlbol[i].Split('-'); k11 = int.Parse(m[2].Substring(3, 1)); Id = fajlbol[i]; id = Id.Remove(1, 1).Remove(7, 1);//eltávolítom a - jelet ellenorzoosszeg = 0; for (n = 0; n < 10; n++) { ellenorzoosszeg += int.Parse(id.Substring(n, 1)) * (10 - n); } if (k11 == ellenorzoosszeg % 11)//ha helyes az adat akkor eltárolom az adatokat { adatok[tindex].nem = int.Parse(id.Substring(0, 1)); adatok[tindex].ev = int.Parse(id.Substring(1, 1)) * 10 + int.Parse(id.Substring(2, 1)); if (adatok[tindex].nem == 1 || adatok[tindex].nem == 3) { ferfiakszama++; //megszámolom a férfiak számát } adatok[tindex].ho = int.Parse(id.Substring(3, 1)) * 10 + int.Parse(id.Substring(4, 1)); adatok[tindex].nap = int.Parse(id.Substring(5, 1)) * 10 + int.Parse(id.Substring(6, 1)); // adatok[tindex].sorsz = int.Parse(id.Substring(7, 1)) * 100 + int.Parse(id.Substring(8, 1)) * 10+ int.Parse(id.Substring(9, 1)); // adatok[tindex].ell = k11; tindex++; } else //helytelen adatok esetén a hibás adatokat kiíratom { Console.Write("\n\tHibás a "); for (n = 0; n < id.Length; n++) { if (n == 1 || n == 7) { Console.Write("-{0}", id[n]); } else { Console.Write("{0}", id[n]); } } } } //5. Határozza meg és írja ki a képernyőre a minta szerint, //hogy Vas megyében hány csecsemő született a vizsgált időszakban! Console.WriteLine("\n5. feladat: Vas megyében a vizsgált évek alatt {0} csecsemő született", tindex); //6. Határozza meg és írja ki a képernyőre a minta szerint a fiú csecsemők számát! Console.WriteLine("6. feladat: Fiúk száma {0}", ferfiakszama); //7. Határozza meg és írja ki a minta szerint a .vizsgált időszak kezdő és befejező évét! //Feltételezheti, hogy az időszak legalább 2 évig tartott. minev = 3000; maxev = 1000; for (int i = 1; i < tindex; i++) { if (adatok[i].nem == 1 || adatok[i].nem == 2) { evszam = 1900 + adatok[i].ev; } else { evszam = 2000 + adatok[i].ev; } if (evszam < minev) { minev = evszam; } if (evszam > maxev) { maxev = evszam; } } Console.WriteLine("7. feladat: Vizsgált időszak {0} - {1}", minev, maxev); //8. Döntse el, hogy a szökőnapon (február 24-én) született-e csecsemő! //A keresést ne folytassa, ha a választ meg tudja adni! //Ebben a feladatban szökőévnek tekintheti az évet, ha az maradék nélkül osztható 4- gyel. bool voltszokonapos = false; int j = 0; while ((j < tindex) && !voltszokonapos) { if (adatok[j].ev % 4 == 0 && adatok[j].ho == 2 && adatok[j].nap == 24) { voltszokonapos = true; } j++; } if (voltszokonapos) { Console.WriteLine("8. feladat: Szökőnapon született baba"); } else { Console.WriteLine("8. feladat: Szökőnapon nem született baba"); } //9. Készítsen statisztikát évek szerint a született gyermekek számáról! //A megoldást úgy készítse el, hogy az inputállományba később más évek adatai is bekerülhessenek! int[] statisztika = new int[20000]; for (int i = 0; i < 3000; i++) { statisztika[i] = 0; } for (int i = 0; i < tindex; i++) { if (adatok[i].nem == 1 || adatok[i].nem == 2) { evszam = 1900 + adatok[i].ev; } else { evszam = 2000 + adatok[i].ev; } statisztika[evszam]++; } Console.WriteLine("9. feladat: Statisztika"); for (int i = minev; i <= maxev; i++) { Console.WriteLine("\t{0} - {1} fő", i, statisztika[i]); } Console.ReadKey(); }