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.

       
×

Įspėjimas

JUser: :_load: Nepavyko įkelti nario su id: 5722

Užduotis

Kuriant programas, kurios apdoroja didelius natūraliuosius skaičius, svarbu optimizuoti kiekvieną programos dalį. Pavyzdžiui, surasti optimaliausią duomenų saugojimo tipą. Tai galima atlikti tokiu būdu: surandamas didžiausias duomenų narys ir patikrinama, kurį tipą geriausia naudoti. Nors šitas būdas laiko nesutaupo, tačiau sutaupo atminties resursų.

Parašykite programą, kuri surastų, kiek didžiausias natūrinis skaičius a užims bitų n ir pasirinkti optimaliausią duomenų tipą. Visus gautus rezultatus išspausdinti ekrane.

Pagrindiniai sveikųjų skaičių tipai: 

  1. short int, kuris saugo nuo -32768 (-215) iki 32767 (215 - 1) ir atmintyje užima du baitus arba šešiolika bitų (16 bitas skirtas skaičiaus ženklui nurodyti, o 15 bitų yra skirti saugoti pačiam skaičui).
  2. long int, kuris saugo nuo -2147483648 (-231) iki 2147483647 (231 - 1) ir atmintyje užima keturis baitus (arba 32 bitus).
  3. long long int, kuris saugo nuo -263 iki 263 - 1 ir atmintyje užimą aštuonis baitus (arba 64 bitus).

Norint parinkti optimaliausią duomenų tipą reikia:

  1. Surasti, kiek natūrinis skaičius a užims bitų n. Patarimas  n skaičiavimui - dvejeto laipsnis (2m) m sutampa su bitų skaičiumi n (žiūrint į teigiamus skaičius reikia atimti 1, tai yra 2-1). Arba kitais žodžiais surasti mažiausią skaičių 2, kuris būtų didesnis už (2m > a) ir m = n.
  2. Pagal n reikšmę sprendžiama, kuris duomenų tipas yra optimaliausias, tai yra mažiausiai užimantis duomenų tipas į kurį telpa skaičius a.
Pradiniai duomenys Rezultatai

65

32768

32767

2147483700

7 short int

16 long int

15 short int

32 long long int

Reikalavimai

  1. Skaičiavimų rezultatus išvesti į ekraną be papildomų žodžių arba simbolių.
  2. Skaičiavimams panaudoti nežinomo kartojimų skaičiaus ciklą while.
  3. a > 0, a - long long int tipo.
  4. n > 0.

 

Papildoma informacija

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