Još malo o podacima, operatorima, ...

5. Pretvorba tipova podataka

5.3. Zadaci za vježbu

Zadatak 1.  Koju će vrijednost poprimiti varijable i, x, c najavljene ovako:

    int i, c;
    double x, d;

nakon naredbi:

                    d = 10.0;
             i = (int) (d + 1.23);           
             x = (float)((int)i + 1);  
             c = (int)(x += 105.3);                
  

Rješenje:

i = (int)(10.0+1.23)=(int)(11.23)=11
x = (float)((int)11+ 1)= (float)(12)=12.00
c = (int)(x += 105.3)  prvo se mijenja x naredbom x+=105.3 što znači x=x+105.3=12.00+105.3=117.3 tek tada se izračunava c=(int)(117.3)=117


Zadatak 2. Ako su najavljene varijable a, b i c na sljedeći način:

     int a, b;
     float c;

kojeg će tipa biti izraz a + b * c?

Rješenje: float

Zadatak 3.  Ako su najavljene i inicijalizirane varijable:

     int a = 10, b = 3;
     float c = 12.5;

kojeg tipa mora biti rezultat izraza a / b * c i koji je njegov rezultat?

 Rješenje: float i iznosi 10/3*12.5 = 3*12.5 = 37.500000


Zadatak 4. Ako su najavljene i inicijalizirane varijable:

     int a = 10, b = 3;
   float c = 12.5;

kojeg će tipa biti rezultat izraza a / b * (int)c i koji je njegov rezultat?

 Rješenje:

     Rezultat je tipa int i iznosi 36.


Zadatak 5. Ako su deklarirane i inicijalizirane varijable:

     int a = 14, b = 3;

    float c = 2.5;

kojeg će tipa biti rezultati izraza

              a) (float)(a / b * (int)c)
              b) (float)a / b * (int)c
              c) (float)(a / b) * c

i koji su njihovi rezultati?

 Rješenje:

Svi su rezultati tipa float, a iznose

a) (float)(14/3*(int)2.5)= (float)(14/3*2)= (float)(4*2)=8.000000

b) (float)14/3*(int)2.5= 14.00/3*2=4.667*2=9.333333

c) (float)(14/3)*2.5=(float)(4)*2.5=4.00*2.5= 10.000000