Programavimo pamokėlės

pamokelesm

Mokymų ciklas „Programavimo pamokėlės" skirtos visiems, kurie nori išmokti programuoti.

IT galvosūkiai

itgalvosukiai

Konkurso tikslas – skatinti moksleivius domėtis IT sprendžiant įvairiausius galvosūkius.

Informikas

informikasm

Konkurso tikslas – supažindinti moksleivius su menu informacinėse technologijose ir mūsų talismanu.

Dr. J. P. Kazicko konkursai

kkonkursai

Žemaitijos, Aukštaitijos, Suvalkijos ir Dzūkijos regionuose vykdomas IT konkursas.

       

Užduotis

Antanas tvarkydamas senelių sodybos palėpę surado dokumentą su žmonių vardais ir asmens kodais. Senelio paklausė, kokių žmonių duomenys surašyti popieriaus lape. Senelis Antanui atsakė, kad tame lape surašyta giminės istorija. Antanas internete susirado informaciją, kaip formuojamas asmens kodas ir nusprendė iššifruoti dokumentą.

Lietuvos gyventojų registre kiekvienas gyventojas turi unikalų asmens kodą, kuris suformuotas pagal standartą Lietuvos RST 1185-91 „Asmens kodas. Sudėtis ir struktūra“, įsigaliojusį nuo 1991 m. gruodžio 1 d. Tai yra unikali vienuolikos dešimtainių skaitmenų seka, žyminti asmenį ir naudojama duomenims apie jį kaupti valstybės tvarkomose duomenų bazėse.

Asmens kodas susideda iš 11 skaitmenų, pvz.: 33309240064:

  • pirmasis rodo gimimo šimtmetį ir asmens lytį (1 – XIX a. gimęs vyras, 2 – XIX a. gimusi moteris, 3 – XX a. gimęs vyras, 4 – XX a. gimusi moteris, 5 – XXI a. gimęs vyras, 6 – XXI a. gimusi moteris);
  • tolesni šeši – asmens gimimo metų du paskutiniai skaitmenys, mėnuo (du skaitmenys), diena (du skaitmenys);
  • dar tolesni trys skaitmenys – tą dieną gimusių asmenų eilės numeris;
  • paskutinis – iš kitų skaitmenų išvedamas kontrolinis skaičius.

Pradinių duomenų failo gimine.txt pirmoje eilutėje įrašyta, kiek įrašų n (n < 100) yra Antano surastame dokumente. Tolesnėse n eilučių įrašytas vardas (vienas žodis) ir asmens kodas. Vienam asmeniui skirta viena eilutė.

Rezultatų faile giminerez.txt turi būti pirmiausia surašytos giminės moterys, pradedant nuo vyriausios, baigiant jauniausia, nurodant gimimo metus, mėnesį ir dieną. Po to nuo vyriausio iki jauniausio išvardinti giminės vyrai, nurodant gimimo mėnesį ir dieną. Jei vyrų, arba moterų lape nebuvo, tuomet išvedamas žodis NERASTA (žr. pradinių duomenų ir rezultatų pavyzdžius). Vardą, metus, mėnesį ir dieną vienas nuo kito atskirkite tarpais. Mėnesių pavadinimus rašykite be diakritinių ženklų (nenaudokite ą, č, ę, ė ir t.t.).

Pradiniai duomenys Rezultatai

6
Romas 36508230023
Antanina 43210060068
Asta 60111300321
Veronika 40203190010
Pranas 30501150007
Martynas 50310241123

MOTERYS
Veronika 1902 kovo 19
Antanina 1932 spalio 6
Asta 2001 lapkricio 30
VYRAI
Pranas 1905 sausio 15
Romas 1965 rugpjucio 23
Martynas 2003 spalio 24

 3

Emilija 43210060068
Karolina 60111300321
Zuzana 40203190010

 MOTERYS

Zuzana 1902 kovo 19
Emilija 1932 spalio 6
Karolina 2001 lapkricio 30
VYRAI
NERASTA

Reikalavimai

  • Naudokite struktūras ir struktūrų masyvus.
  • Pradinių duomenų skaitymo funkcija void().
  • Vieno žmogaus gimimo metų, mėnesio ir dienos išskyrimo iš asmens kodo funkcija void().
  • Mėnesių, išreikštų skaičiais nuo 01 iki 12, konvertavimo į žodžius funkcija, grąžinanti reikšmę per funkcijos vardą.
  • Rikiavimo pagal amžių funkcija, į kurią reikia kreiptis 2 kartus: su vyrų ir moterų struktūrų masyvais.
  • Rezultatų išsaugojimo faile funkcija, į kurią reikia kreiptis 2 kartus: su vyrų ir moterų struktūrų masyvais.

Papildoma informacija

  • Lygis: 3
  • Taškai: 100
Į viršų