Програмирање 2/К1 2018 — разлика између измена
м (Još jedna) |
м (Ovo sam pogrešno prepisao sa papira, trebalo bi da sad ima više smisla) |
||
Ред 17: | Ред 17: | ||
* <math>m_X = 0100_2 \implies M_X = 1.0100_2</math> | * <math>m_X = 0100_2 \implies M_X = 1.0100_2</math> | ||
* <math>X = 1.0100_2 \cdot 2^3 = 0.00010100_2 \cdot 2^7 = 0.000101_2 \cdot 2^7</math> | * <math>X = 1.0100_2 \cdot 2^3 = 0.00010100_2 \cdot 2^7 = 0.000101_2 \cdot 2^7</math> | ||
* <math>Y = 10100100_2 = 1.0100100_2 \cdot 2^7 = 1. | * <math>Y = 10100100_2 = 1.0100100_2 \cdot 2^7 = 1.0100_2 \cdot 2^7</math> | ||
* <math>Z = X - Y = (0.000101_2 - 1. | * <math>Z = X - Y = (0.000101_2 - 1.0100_2) \cdot 2^7 = -1.001011 \cdot 2^7</math> | ||
Odsecamo poslednje dve cifre sa <math>Z</math> kako bismo mogli da ga uglavimo u | Odsecamo poslednje dve cifre sa <math>Z</math> kako bismo mogli da ga uglavimo u četiri bita za mantisu. Pošto su poslednje dve cifre <math>11</math>, <math>Z</math> zaokružujemo na viši broj, pa je <math>Z \approx -1.0011_2 \cdot 2^7 = -10011000_2 = -152_{10}</math> i tačan odgovor je pod '''A'''. | ||
=== Pitanje 3 === | === Pitanje 3 === |
Верзија на датум 8. март 2020. у 23:27
Pitanja
Pitanje 1
Ovo je nestandardan zadatak u kojem nam količina bitova za eksponent () i mantisu () nisu poznati. Postupak rešavanja ide ovako:
- IEEE standard
- , ,
Pošto smo dobili broj čija se mantisa dužine 8 ne može skratiti bez zaokruživanja dobijamo da je . Za možemo da probamo par dovoljno bliskih brojeva, pošto imamo da je . Na primer, ako probamo dobićemo da je pa je a broj 10 se ne može smestiti na 3 binarne cifra pa ta opcija otpada. Na ovaj način dobijamo da je , tako da je tačan odgovor pod B.
Pitanje 2
- IEEE standard
Odsecamo poslednje dve cifre sa kako bismo mogli da ga uglavimo u četiri bita za mantisu. Pošto su poslednje dve cifre , zaokružujemo na viši broj, pa je i tačan odgovor je pod A.
Pitanje 3
- Promenljive
a
,b
ic
se neće menjati tokom izvršavanja programa i uvek će zadržati svoje vrednosti 2, 3 i 4. i
promenljiva nam funkcioniše kao brojač u do-while petlji, s tim što se poveća pre izvršenja ostatka petlje.- Ne postoji
break
izmeđucase
za 1 i 3 tako da će program nastaviti da izvršavacase 3
nakoncase 1
. - Nakon
default
dela petlja se nastavlja bez povećavanjan
na kraju. n += c / a * a
je ekvivalentnon += c
.- Na kraju nam se ispisuju vrednosti
n
ii
.
Iteracije kroz petlju izgledaju ovako:
- iteracija
i := 1
n := b = 3
n := n + c = 3 + 4 = 7
n := n + 1 = 8
n >= 2 * i
, odnosno8 >= 2 * 1
je tačno, petlja se nastavlja.
- iteracija
i := 2
n & c = 1000 & 0100 = 0
n := n - c = 8 - 4 = 4
n >= 2 * i
, odnosno4 >= 2 * 2
je tačno, petlja se nastavlja.
- iteracija
i := 3
n := n + c = 4 + 4 = 8
n := n + 1 = 9
n >= 2 * i
, odnosno9 >= 2 * 3
je tačno, petlja se nastavlja.
- iteracija
i := 4
n & c = 1001 & 0100 = 0
n := n - c = 9 - 4 = 5
n >= 2 * i
, odnosno5 >= 2 * 4
nije tačno, petlja se zaustavlja.
Dobijamo na kraju da su nam n
i i
jednaki 5 i 4, tako da je odgovor pod B tačan.