Cvičný zápočet PB071 Jak všichni víte, tak se semestr blíží ke konci a tak pomalu nastává čas zhodnotit, co jste se za tento semestr naučili. Zápočet je udělán přesně z tohoto důvodu. Vaším úkolem bude naprogramovat krátký program, kterým nám (i sobě) dokážete, že jste se doopravdy něco naučili a nebyl vám tento předmět k ničemu. K přečtení zadání máte 5 minut, potom dále 60 minut na vypracování. Zadání Představte si, že jste profesor na vysoké škole, který vyučuje několik předmětů a chcete zjistit, jak si vedou studenti po prvních několika zkouškách. Všechny záznamy máte v souboru students.csv. Umístění tohoto souboru dostane jako argument z příkazové řádky. Soubor má následující formát (všimněte si, že separátorem je středník/bodkočiarka): jméno; prijmeni; kod predmetu; ziskane známky Kde kód začíná je řetězec libovolných 5 znaků a získané známky jsou řetězec symbolů A - F, který obsahuje maximálně 3 znaky (jako klasické známky ve škole, tedy zejména může se objevit nejvýše 1 známka rozdílná od F a ta bude na posledním místě - tedy známka AB nebo ED není povolená). O počtu záznamů a ani délce jmen a příjmení nemáte žádné jistoty. Můžete předpokládat, že všechny řádky souboru budou konzistentní s tímto formátem. Bohužel (pro studenty) Vás včera naštval jeden žák, jehož jméno je "Petr"(asi tím, že se vám snažil podstrčit návrh na zápočtový příklad). Jelikož vyučujete dlouho, tak na takovéto výtržnosti nemáte náladu a rozhodli jste se, že všem žákům se jménem Petr zhoršíte známku tím, že jim přidáte jedno F. Pokud už ale mají známku FF%, kde % je libovolná známka, tak známku neměňte (mohli by si pak přijít stěžovat že nedali předmět). Přidávání známek F tedy funguje následovně. Student má známku FA, po přičtení F bude jeho známka FFA. Dále (na FFFA) mu ji nemůžeme zhoršit, protože by si už přišel stěžovat. Ale máte zde i svého oblíbeného studenta se jménem "Tom". Všem Tomášům tedy zlepšíte známku o jedno F (odmažete jim ho). V případě, že dotyčný Tom žádné F nemá nebo má jen jedno F bez jiné známky, tak nic nemažte (zas tak hodní na ně být nemůžete a dělalo by to bordel v databázi kdyby najednou byli studenti bez známky). Jak si můžete všimnout, tak tato jména odpovídají nám, vašim cvičícím - pokud by vaše preference cvičících byla opačná, můžete tato jména prohodit a nebo vůbec nedodržet. Známky ostatních žáků musí zůstat netknuty. Protože Vás ale nebaví číst písmenka, tak známku chcete převést na číslo tak, že uděláte součet znaků, kterým přiřadíme následující číselné hodnoty: A = 1, B = 2, ..., F = 6. Vezměme si například studenta se známkou FC, tak číselná známka je 6 + 3 = 9. Zák se známkou A má číselnou známku 1, se známkou FFE má číselnou známku 17 (2*6 + 5). Taktéž chcete u studentů vědět, zda neprošli, tedy zda jejich celková známka končí na F. Po zpracování všech studentů vypište seznam všech studentů na standardní výstup vzestupně dle hodnoty jejich známky. Výstup bude tohoto formátu (nyní jako separátor používáme čárku): kod predmetu, prijmeni, jméno, ziskane známky, známka jako cislo, (ne)prosel