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

Registracijos interneto svetainėje priimamos tik patikrinus asmens kredito kortelės numerį. Jei asmuo pateikia neteisingą informaciją, tai jo registracija yra naikinama. Kredito kortelės numeruojamos vieningai – numerį sudaro 13-16 skaitmenų, iš kurių du ar trys pirmi nusako kortelės tipą, 6 skaičiai nusako kortelę išdavusį banką ar įstaigą (BIN), o likę skaičiai parenkami pagal tam tikras taisykles – Luhn'o formulę. Luhn‘o formulė – algoritmas, kuris leidžia patikrinti, ar mokėjimo kortelės identifikacinis numeris yra teisingas: ar vedant kortelės numerį nepadaryta klaida, ar numeris nėra atsitiktinai sugalvotas.

Luhn‘o formulė: kas antras skaitmuo (antras, ketvirtas ir t.t.) dauginamas iš 2, jei rezultatas dviženklis, abu skaitmenys sudedami. Gauta nauja skaitmenų eilutė sudedama ir, jeigu sumos paskutinis skaitmuo yra 0, numeris yra teisingas.

Pavyzdžiui, identifikacinis kortelės numeris 49927398716 yra teisingas, nes atlikus algoritmą, skaitmenų suma yra lygi 70.

Numeris

4

9

9

2

7

3

9

8

7

1

6

Kas antras skaitmuo dauginamas iš 2

 

9*2
18

 

2*2
4

 

3*2
6

 

8*2
16

 

1*2
2

 

Nauji numerio skaitmenys

4

9

9

4

7

6

9

7

7

2

6

4 +9 + 9 + 4 + 7 + 6 + 9 + 7 + 7 + 2 + 6 = 70

Duomenų faile reg.txt pateikti n (1 < n < 100) asmenų registracijos duomenys: asmens vardas ir pavardė (25 simboliai) bei kortelės identifikacinis numeris (11 skaitmenų).

Sudarykite programą, kuri naikintų neteisingai nurodžiusių kortelės numerius asmenų registraciją ir šiuos asmenis įrašytų į pašalintų asmenų sąrašą.

Rezultatų failo rez.txt pirmoje eilutėje spausdinkite „Geras sąrašas“ ir teisingus duomenys pateikusių asmenų sąrašą. Jeigu tokių asmenų neliko, tai parašykite teksto eilutę „Duomenų nėra“. Po to, spausdinkite „Pašalintų sąrašas“ ir pašalintų asmenų sąrašą. Jeigu tokių asmenų nėra, tai parašykite teksto eilutę „Duomenų nėra“.

reg.txt

rez.txt

5

Vilkas Žiaurusis        49927398716

Lapė Gudrutė            10923247234

Kiškis Naivuolis        12525447558

Meškis Lepeškis         32587413698

Barsukas Sukas          12123212123

Geras sąrašas --------------------------

Vilkas Žiaurusis        49927398716

Kiškis Naivuolis        12525447558

Barsukas Sukas          12123212123

Pašalintų sąrašas -------------------------

Meškis Lepeškis         32587413698

Lapė Gudrutė            10923247234

2

Lapė Gudrutė            10923247234

Meškis Lepeškis         32587413698

Geras sąrašas ----------------------------

Duomenų nėra

Pašalintų sąrašas ------------------------

Meškis Lepeškis         32587413698

Lapė Gudrutė            10923247234

Reikalavimai

  • Naudoti struktūrų (įrašų) masyvus.
  • Sudaryti duomenų skaitymo iš failo funkciją (procedūrą).
  • Sudaryti kortelės numerio teisingumo nustatymo funkciją.
  • Sudaryti struktūros (įrašo) šalinimo iš struktūrų (įrašų) masyvo funkciją (procedūrą).
  • Sudaryti rezultatų rašymo į failą funkciją (procedūrą).

Papildoma informacija

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