Torna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól.

Hasonló dokumentumok
A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például: 3. feladat:)!

hiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

Kalapácsvetés 2016 szöveges

Mentsd el code file-t kektura.cs néven, illetve kiterjesztéssel! Másold be a kektura.csv állományt a Projects munkamappa megfelelő almappájába!

1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt:

INFORMATIKAI ALAPISMERETEK

Tájékoztató. Használható segédeszköz: -

PROGRAMOZÁS ALAPFELADATOK

INFORMATIKAI ALAPISMERETEK

BME MOGI Gépészeti informatika 13.

INFORMATIKAI ALAPISMERETEK

C# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán

Bánsághi Anna 2014 Bánsághi Anna 1 of 35

Tájékoztató. Használható segédeszköz: -

INFORMATIKAI ALAPISMERETEK

Tájékoztató. Használható segédeszköz: -

MestInt gyakorlat visszalépéses keresés

Fordított és szkript nyelvek összehasonlító elemzése. Sergyán Szabolcs

INFORMATIKAI ALAPISMERETEK

Programozás I. Szöveges fájlok kezelése Felsorolástípus Objektumtömb Gyakorló feladatok

BME MOGI Gépészeti informatika 4.

Fájlkezelés. Szöveges fájlok kezelése

Tájékoztató. Használható segédeszköz: -

INFORMATIKAI ALAPISMERETEK

OOP: Java 8.Gy: Gyakorlás

Informatika terméktervezőknek

BME MOGI Gépészeti informatika 5.

Szoftvertervezés és -fejlesztés I.

Java Programozás 1. Gy: Java alapok. Ismétlés ++

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

OOP: Java 8.Gy: Abstract osztályok, interfészek

BME MOGI Gépészeti informatika 1.

Tájékoztató. Használható segédeszköz: -

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

INFORMATIKAI ALAPISMERETEK

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

A C# PROGRAMOZÁSI NYELV

OOP: Java 1.Gy: Java alapok

Maximum kiválasztás tömbben

117. AA Megoldó Alfréd AA 117.

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs

Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák

Szoftvertechnolo gia gyakorlat

Objektumorientált programozás C# nyelven

OOP: Java 4.Gy: Java osztályok

C# feladatok gyűjteménye

Az emelt szintű. informatika érettségi. programozási feladatainak. megoldása Java nyelven. NetBeans IDE 8.1 környezetben

1. Jelölje meg az összes igaz állítást a következők közül!

Java programozási nyelv 6. rész Java a gyakorlatban

A 35/2016. (VIII. 31.) NFM rendelet szakmai és vizsgakövetelménye alapján.

Java és web programozás

A C# programozási nyelv alapjai

Java Programozás 6. Gy: Java alapok. Adatkezelő 2.rész

ÁGAZATI SZAKMAI ÉRETTSÉGI VIZSGA TÁVKÖZLÉS ISMERETEK EMELT SZINTŰ GYAKORLATI VIZSGA MINTAFELADATOK

Bánsághi Anna

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Szöveges fájl kezelése (a Caesar-kód feltörése) A kód feltörésének statisztikai háttere

Java gyakorlat feladatai e s megolda sai ( )

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

INFORMATIKAI ALAPISMERETEK

Programozás alapjai. 5. előadás

4. Gy: JAVA osztályok

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Tájékoztató. Használható segédeszköz: -

GenerikusOsztály<objektumtípus> objektum = new GenerikusOsztály<objektumtípus>();

Bevezetés a programozásba. 11. Előadás: Esettanulmány

EAF II Feladat dokumentáció IV. feladat 4. házi feladathoz

C# feladatgyűjtemény

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

3. Gyakorlat Ismerkedés a Java nyelvvel

Java Programozás 11. Ea: MVC modell

Java és web programozás

Objektumorientált Programozás VI.

1. Alapok. Programozás II

BME MOGI Gépészeti informatika 18. Grafika, fájlkezelés gyakorló óra. 1. feladat Készítsen alkalmazást az = +

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

Algoritmusok és adatszerkezetek II.

OOP: Java 6.Gy: Java osztályok. Definíció, static, túlterhelés

Objektumorientált programozás C# nyelven

Adatszerkezetek és algoritmusok

Objektumorientált programozás C# nyelven III.

Készítette: Nagy Tibor István

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Nagy HF ke szı te si u tmutato

A lista adatszerkezet A lista elemek egymásutániságát jelenti. Fajtái: statikus, dinamikus lista.

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Objektum Orientált Programozás VII.

Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII,

STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1

Szoftvertechnológia alapjai Java előadások

Bevezetés a programozásba I.

Átírás:

Torna A pekingi olimpián tornából hat versenyszámban mérettetik meg magukat a versenyzők. Ennek a versenynek az eredményeit kell feldolgoznia ebben a feladatban. A megoldás során vegye figyelembe a következőket: A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például: 3. feladat:)! Az egyes feladatokban a kiírásokat a minta szerint készítse el! A program megírásakor a fájlban lévő adatok helyes szerkezetét nem kell ellenőriznie, feltételezheti, hogy a rendelkezésre álló adatok a leírtaknak megfelelnek. A megoldását úgy készítse el, hogy az azonos szerkezetű, de tetszőleges input adatok mellett is helyes eredményt adjon! A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól. Például: 178;YANG Wei;CHN;Ázsia;15,400;15,425;16,225;16,550;15,350;14,925 A sorokban lévő adatok rendre a következők: A versenyző rajtszáma. Például: 178 A versenyző neve Például: YANG Wei A versenyző országának kódja Például: CHN A versenyző országának földrésze Például: Ázsia A szerenként elért eredmények az alábbi sorrendben: o Talaj, például: 15,400 o Lólengés, például: 15,425 o Gyűrű, például: 16,225 o Nyújtó, például: 16,550 o Korlát, például: 15,350 o Ugrás, például: 14,925 Készítsen programot a következő feladatok megoldására, amelynek a forráskódját torna2008 néven mentse el! A feladatokban lévő kiírásokat a minta szerint végezze el! 1. Olvassa be a szöveges állományban lévő adatokat és tárolja el úgy, hogy a további feladatok megoldására alkalmasak legyenek! 2. Határozza meg és írja ki a képernyőre, hogy hány versenyző indult el összesen a versenyen! 3. Határozza meg és írja ki a képernyőre, hogy korláton melyik versenyző nyerte az aranyérmet! Feltételezheti, hogy nem alakult ki holtverseny! 4. Kérje be egy versenyző rajtszámát, majd írja ki a képernyőre az adott versenyző gyűrűn elért eredményét. Ha olyan rajtszámot adott meg a felhasználó amilyen számmal nem indult versenyző, akkor írja ki, hogy Nincs ilyen versenyző!. 5. Határozza meg és írja ki a képernyőre a minta szerint azoknak a versenyzőknek a neveit, akik nem értek el legalább 14.5 pontot lólengésben és így nem jutott be a szer döntőjébe! Feltételezheti, hogy legalább egy ilyen versenyző volt!

6. feladat: Határozza meg és írja a képernyőre abc sorrendben rendezve a minta szerin azokat a földrészeket, amelyekből indult versenyző! 7. Határozza meg és írja ki a képernyőre, hogy az egyes országokból hány versenyző indult! 8. Hozzon létre francia.txt néven szövegfájlt, amelybe gyűjtse ki az összes francia (országkódja: FRA ) versenyző rajtszámát, nevét és a versenyen elért összpontszámát! Minden versenyző külön sorban szerepeljen, az adatok pontosvesszővel legyenek elválasztva! Minta: Megoldás: using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;

namespace torna2008 class Program //adatszerkezet létrehozása struct adatsor public int rajtszam; public string versenyzo; public string orszagkod; public string foldresz; public double talaj; public double lolenges; public double gyuru; public double nyujto; public double korlat; public double ugras; static adatsor[] adatok = new adatsor[100];//maximum 100 adatot tartalmazhat az adatok static void Main(string[] args) string[] fajlbol = File.ReadAllLines("torna.csv");//adatok beolvasása fájlból /*A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. * Az adatokat pontosvessző választja el egymástól. Például: * 178;YANG Wei;CHN;Ázsia;15,400;15,425;16,225;16,550;15,350;14,925 * */ int tindex = 0;//sorok száma a fájlban //adatok tárolása a struktúrában for (int i = 1; i < fajlbol.count(); i++)//a ciklus 1-től indul, mertaz első sor a mezőneveket tartalmazza string[] egysordarabolva = fajlbol[i].split(';'); adatok[tindex].rajtszam =Convert.ToInt32(egysordarabolva[0]); adatok[tindex].versenyzo = egysordarabolva[1]; adatok[tindex].orszagkod = egysordarabolva[2]; adatok[tindex].foldresz = egysordarabolva[3]; adatok[tindex].talaj = Convert.ToDouble(egysordarabolva[4]); adatok[tindex].lolenges = Convert.ToDouble(egysordarabolva[5]); adatok[tindex].gyuru = Convert.ToDouble(egysordarabolva[6]); adatok[tindex].nyujto = Convert.ToDouble(egysordarabolva[7]); adatok[tindex].korlat = Convert.ToDouble(egysordarabolva[8]); adatok[tindex].ugras = Convert.ToDouble(egysordarabolva[9]); tindex++; //2. feladat //Határozza meg és írja ki a képernyőre, //hogy hány versenyző indult el összesen a versenyen! Console.WriteLine("2. feladat:\nösszesen 0 versenyző indult a versenyen",tindex); //3. feladat //Határozza meg és írja ki a képernyőre, hogy korláton melyik versenyző nyerte az aranyérmet! //Feltételezheti, hogy nem alakult ki holtverseny! double korlatmax = adatok[0].korlat;//feltételezem, hogy az első adat a legnagyobb

korlatmax int korlatmaxindex = 0;//a legnagyobb adat sorszáma if (adatok[i].korlat > korlatmax)//ha az aktuális adat nagyobb mint a korlatmax = adatok[i].korlat; korlatmaxindex = i; Console.WriteLine("3. feladat:\nkorláton 0 szerezte meg az aranyérmet", adatok[korlatmaxindex].versenyzo); //4. feladat //Kérje be egy versenyző rajtszámát, majd írja ki a képernyőre az adott versenyző gyűrűn elért eredményét. //Ha olyan rajtszámot adott meg a felhasználó amilyen számmal nem indult versenyző, akkor írja ki, hogy Nincs ilyen versenyző!. Console.Write("Kérem a versenyző rajtszámát: "); int rajtsz =Convert.ToInt32(Console.ReadLine()); //keresés tétele int k = 0; bool van = false; while((k<tindex) && adatok[k].rajtszam!= rajtsz) k++; if (k < tindex) van = true; if (van) Console.WriteLine("4. feladat:\na 0 rajtszámú versenyző gyűrűn elért eredménye: 1 pont",rajtsz,adatok[k].gyuru); else Console.WriteLine("Nincs ilyen versenyző!"); //5. feladat //Határozza meg és írja ki a képernyőre a minta szerint azoknak a versenyzőknek a neveit, //akik nem értek el legalább 14.5 pontot lólengésben és így nem jutott be a szer döntőjébe! //Feltételezheti, hogy legalább egy ilyen versenyző volt! Console.WriteLine("5. feladat:\nlólengésben nem jutottak döntőbe: \n"); if (adatok[i].lolenges <14.5) Console.WriteLine("\t0", adatok[i].versenyzo); //6. feladat //Határozza meg és írja a képernyőre //abc sorrendben rendezve a minta szerin azokat a földrészeket, amelyekből indult versenyző! Console.WriteLine("6. feladat:\nföldrészek amelyekről versenyzők indultak: "); //adott egy sorozat, határozzuk meg hány különböző eleme van és gyűjtsük ki egy tömbbe int kulonbozoelemekszama = 0,j; string[] foldreszek = new string[100]; j = 0; while((j<=kulonbozoelemekszama)&& (adatok[i].foldresz!= foldreszek[j])) j++; if (j > kulonbozoelemekszama)

kulonbozoelemekszama++; foldreszek[kulonbozoelemekszama] = adatok[i].foldresz; for (int i = 0; i < kulonbozoelemekszama; i++) Console.Write("0 ",foldreszek[i]); //7. Határozza meg és írja ki a képernyőre, hogy az egyes országokból hány versenyző indult! Console.WriteLine("\n7. feladat:\n"); int orszagokszama = 0; string[] orszagok = new string[100]; int[] orszagszam = new int[100]; for (int i = 0; i < 100; i++) orszagszam[i] = 0;//tömb elemeinek nullázása //először az országokat kigyűjtöm egy tömbbe //kiválogatás tétele j = 1; while ((j <= orszagokszama) && (adatok[i].orszagkod!= orszagok[j])) j++; if (j > orszagokszama) orszagokszama++; orszagok[orszagokszama] = adatok[i].orszagkod; //megszámlálás tétele for ( k = 1; k<= orszagokszama; k++) if(orszagok[k] == adatok[i].orszagkod) orszagszam[k]++; for (int i = 1; i <= orszagokszama; i++) Console.WriteLine("0: 1 fő ", orszagok[i],orszagszam[i]); //8. feladat //Hozzon létre francia.txt néven szövegfájlt, amelybe gyűjtse ki az összes francia (országkódja: FRA ) //versenyző rajtszámát, nevét és a versenyen elért összpontszámát! //Minden versenyző külön sorban szerepeljen, az adatok pontosvesszővel legyenek elválasztva! FileStream fnev = new FileStream("francia.txt", FileMode.Create); StreamWriter fajlbairo = new StreamWriter(fnev); fajlbairo.writeline("rajtszám;név;összpontszám"); if (adatok[i].orszagkod == "FRA") fajlbairo.write("0;", adatok[i].rajtszam); fajlbairo.write("0;", adatok[i].versenyzo);

fajlbairo.write("0;", adatok[i].talaj + adatok[i].lolenges + adatok[i].gyuru + adatok[i].nyujto + adatok[i].korlat + adatok[i].ugras); fajlbairo.writeline("\n");//sortörés fajlbairo.close(); fnev.close(); Console.ReadKey();