Naloge - 4. dan
Naloga 1 (2,5 točke)
Napiši program bitki.c, ki generira in izpiše vsa 8-bitna števila, ki imajo prižganih natanko i bitov. Na koncu naj program izpiše tudi, koliko je takih števil ter njihovo vsoto. Vrednost parametra i preberite iz prvega argumenta programa.
Primer izpisa za i=1:
00000001 = 1
00000010 = 2
00000100 = 4
00001000 = 8 00010000 = 16
00100000 = 32 01000000 = 64
10000000 = 128 i=1, n=8, vsota=255
Naloga 2 (2,5 točke)
vrstic: 6, besed: 15, znakov: 114
Dodatna (neobvezna) naloga
Napiši program licenca.c, ki skrbi za upravljanje z licenco (registracijsko številko) namišljene programske opreme. Napišite funkcije za generiranje registracijske številke, za preverjanje pravilnosti registracijske številke in za ugotavljanje registriranih komponent v registracijski številki.
Registracijska številka je 32-bitna in je sestavljena iz dveh delov:
- zgornjih 16 bitov je ID računalnika,
- v spodnjih 16 pa je zakodirano, katere komponente programske opreme so registrirane (vsak bit je ena komponenta).
Scenarij uporabe programa:
- Uporabnik preko tipkovnice vnese ID računalnika (16-bitno število zapisano šestnajstiško), npr. C4FE.
- Uporabnik preko tipkovnice vnese številke registriranih komponent (med 1 in 16, lahko jih izbere več). Vnos je lahko v eni vrstici (števila so ločena s presledki ali vejicami) ali pa po eno število na vrstico.
- Program ustvari registracijsko številko in jo izpiše.
- Program zahteva vpis registracijske številke v šestnajstiški obliki in izpiše ali je pravilna (ID se ujema) in katere komponente so registrirane.
Namigi: Kateri podatkovni tip je najbolje uporabiti za hranjenje registracijske številke (ki je 32-bitna)? Pri branju s tipkovnice (npr. scanf) in izpisu na zaslon (printf) lahko namesto desetiške vrednosti celega števila (%d) uporabimo njegovo šestnajstiško vrednost (%x).
Vpisi ID racunalnika (4 znaki hex): C4FE
Vpisi stevilko registrirane komponente (vsako posebej, koncaj z 0).
St. komponente: 2
St. komponente: 3
St. komponente: 0
Registracijska stevilka: C4FE0006
Vpisi registracijsko stevilko za preverjanje: C4FE0006
Registracijska stevilka se ujema z ID racunalnika.
Registrirane komponente:
komponenta 01: ne
komponenta 02: DA
komponenta 03: DA
komponenta 04: ne
komponenta 05: ne
komponenta 06: ne
komponenta 07: ne
komponenta 08: ne
komponenta 09: ne
komponenta 10: ne
komponenta 11: ne
komponenta 12: ne
komponenta 13: ne
komponenta 14: ne
komponenta 15: ne
komponenta 16: ne