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

Informatikai Paskalis ir Šarpis kiekvieną dieną tarpusavyje susirašinėja SMS žinutėmis. Paskaliui sugedo jo išmanusis telefonas, todėl šiuo metu jis naudojasi telefonu su mygtukine klaviatūra.

 Pamatęs šį telefoną, Šarpis sugalvojo genialų būdą, kaip užšifruoti siunčiamas SMS žinutes, kad Paskalis, naudodamasis savo telefonu, galėtų nesunkiai jas iššifruoti. Žinutės šifruojamos taip:

  • Kiekvieną lotynišką raidę atitinka skaičių seka, kuri nurodo mygtuko paspaudimų skaičių, reikalingą raidei įvesti, pvz., raidę „a“ atitinka 2, raidę „s“ – 7777 ir t.t.;
  • Po kiekvienos raidės į skaičių seką įterpiamas tarpas (0);
  • Po kiekvieno žodžio į skaičių seką įterpiami du tarpai (00);
  • Užšifruota žinutė baigiasi, kai skaičių sekos gale yra 1 – taško ženklas.

Tačiau Paskalis yra didelis tinginys ir labai nenoriai iššifruoja Šarpio siųstas žinutes. Parašykite programą, kuri padėtų Paskaliui iššifruoti skaičių seką. Pradinių duomenų failo Duomenys4.txt pirmoje eilutėje įrašytas sveikasis skaičius n (0 < n <1000) – skaičių sekoje esančių skaitmenų kiekis. Tolesnėse eilutėse yra nurodytas užšifruotas tekstas – skaičių seka.

Rezultatų failo „Rezultatai4.txt” pirmoje eilutėje išvedamas iššifruotos skaičių sekos tekstas, pasibaigiantis tašku. Kiekvienas žinutės žodis atskirtas vienu tarpo simboliu, visos raidės mažosios, lotyniškos.

Duomenys4.txt Rezultatai4.txt

1
1

.

55
4440660333066607770604440550
666002055020303306044405021

informiko akademija.

98
7020777705502055504440666006
0330409999080444066044407777
0055502022020444003044403033
05550444077771

paskalio megztinis labai didelis.

Reikalavimai

  • Pats iššifravimo raktas turi būti saugomas struktūros duomenų tipe, pvz., struktūroje saugomas dvimatis masyvas, kurio atskirose eilutėse yra saugomi kiekvieno mygtuko simboliai.
  • Funkcija duomenų skaitymui iš failo į char duomenų tipo masyvą.
  • Duomenų skaitymo funkcija negali išsaugoti n (sekos skaitmenų kiekio) reikšmės.
  • Funkcija, iššifruojanti skaičių seką. Funkcijoje, kuri iššifruoja skaičių seką, galite panaudoti tik while ciklus, for ciklo naudoti negalima (duomenų skaityme ir rezultatų įrašyme for ciklus naudoti galima).
  • Rezultatų įrašymo į rezultatų failą funkcija.

Interaktyvus sprendimas

cpp/2015/3/sms_sifras

Papildoma informacija

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