Nacionalinės švietimo agentūros valstybinių informacinių technologijų brandos egzaminų sprendimai bei užduočių sąlygos patogiam egzamino pasiruošimui. Šis atvirojo kodo archyvas buvo manęs pačio sukurtas iššūkis besiruošiant 2022 m. informacinių technologijų egzaminui, todėl jei rasite kokią klaidą ar neefektyvią dalį, nesupykit ir praneškit man, sutaisysiu :)
Jei esate informacinių technologijų egzaminui ruošimosi stadijoje, prašau nesikliauti šio stiliaus programavimu. Rašydami tokiu stiliumi, yra didelė tikimybė, kad nespėsite padaryti per trumpą laiką jums skirtų užduočių, todėl laikykitės griežtai nurodymų ir spręskit tik taip kaip rašo užduoties sąlygos! Ši sprendinių „git“ saugykla yra skirta tik algoritmų mokymosi tikslais!
Užduotys buvo sprendžiamos pagal egzamino reikalavimų taisykles, todėl kartais kodas gali atrodyti nelabai optimizuotas. Kartais pasitaiko tokie reikalavimai, kurie padaro kodą labai neoptimizuotą. Pavyzdžiui, 2016 metų IT egzamine, pirmoje užduotyje, yra nurodytas reikalavimas nenaudoti masyvų ar struktūrų, todėl reikia skaityti failą 2 kartus, kas atrodo nelogiška iš architektūrinių principų.
-
Šio archyvo sprendimuose trūksta klaidų tikrinimo (angl. error checking). Kaikuriose vietose nėra elementarių if saugumo elementų. Taip yra padaryta dėl to nes visa salygos yra parašytos „hardcoded“ principu bei egzaminas to nereikalauja.
-
Kodėl nenaudojami std::sort, std::vector, std::string (išimtis - std::string naudojamas, kai dydis duomenų yra nežinomas, atviri heap elementai tam nenaudojami)? Kiek man žinoma šias C++ implementacijas nelabai mėgsta VBE egzaminuotojai. Teko girdėti istorijų, kad už tai yra mušami balai, kadangi tai yra prilaikoma kaip sukčiavimui. Dėl to nusprendžiau šių dalykų čia nenaudoti. Neklauskite kodėl mes rašome C kalbos stiliumi, C++ programavimo kalbos kompiliatoriams, tai yra švietimo sistemos didelė nusistovėjusi nesąmonė. (std::string kiek žinau galima naudoti, bet kartais iš failo rašant tiesiog neapsimoka šios implementacijos naudoti, nes mums reikia fiksuoto teksto)Atnaujinta NŠA informacija teigia, kad visos C++ implementacijos yra nuo šiol leidžiamos užduoties sprendimo kode. Tai reiškia, kad galima naudoti std::map, std::vector nesirūpinant apie numuštą taškų kiekį. Taip pat, nuo 2022 metų, į leidžiamų programavimo kalbų sąrašą įeina Python, kas gali palengvinti kaikuriems žmonėms išlaikyti egzaminą. (šalt. https://i.imgur.com/3ajPQE1.png)