Програмирање 2/К1 2018 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
м (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.01001_2 \cdot 2^7</math>
* <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.01001_2) \cdot 2^7 = -1.001011 \cdot 2^7</math>
* <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 pet bitova 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'''.
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

Zadaci i rešenja na sajtu.

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 i c 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đu case za 1 i 3 tako da će program nastaviti da izvršava case 3 nakon case 1.
  • Nakon default dela petlja se nastavlja bez povećavanja n na kraju.
  • n += c / a * a je ekvivalentno n += c.
  • Na kraju nam se ispisuju vrednosti n i i.

Iteracije kroz petlju izgledaju ovako:

  1. iteracija
    • i := 1
    • n := b = 3
    • n := n + c = 3 + 4 = 7
    • n := n + 1 = 8
    • n >= 2 * i, odnosno 8 >= 2 * 1 je tačno, petlja se nastavlja.
  2. iteracija
    • i := 2
    • n & c = 1000 & 0100 = 0
    • n := n - c = 8 - 4 = 4
    • n >= 2 * i, odnosno 4 >= 2 * 2 je tačno, petlja se nastavlja.
  3. iteracija
    • i := 3
    • n := n + c = 4 + 4 = 8
    • n := n + 1 = 9
    • n >= 2 * i, odnosno 9 >= 2 * 3 je tačno, petlja se nastavlja.
  4. iteracija
    • i := 4
    • n & c = 1001 & 0100 = 0
    • n := n - c = 9 - 4 = 5
    • n >= 2 * i, odnosno 5 >= 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.