16.04.2013 Views

a) Defina uma função para obter o máximo entre dois números

a) Defina uma função para obter o máximo entre dois números

a) Defina uma função para obter o máximo entre dois números

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

) <strong>Defina</strong> <strong>uma</strong> <strong>função</strong> <strong>para</strong> <strong>obter</strong> o valor absoluto de um número.<br />

A solução mais imediata talvez seja esta:<br />

Outra<br />

public static int abs ( int a ) {<br />

if ( a > 0 )<br />

return a;<br />

else<br />

return -a;<br />

}<br />

public static int abs ( int a ) {<br />

if ( a < 0 )<br />

a = -a;<br />

return a;<br />

}<br />

c) <strong>Defina</strong> <strong>uma</strong> <strong>função</strong> que permita verificar se um número é múltiplo de um outro<br />

número<br />

A solução normal seria<br />

public static boolean eMultiplo ( int a, int b ) {<br />

if ( a % b == 0 )<br />

return true;<br />

else<br />

return false;<br />

}<br />

ou, mais simplesmente,<br />

public static boolean eMultiplo ( int a, int b ) {<br />

return a %b == 0;<br />

}<br />

Mas, <strong>para</strong> complicar, vamos admitir que não é permitido usar o operador %. Podemos <strong>obter</strong> o<br />

mesmo efeito por subtracções sucessivas: se subtrairmos b da enquanto pudermos acabaremos<br />

por encontrar o resto da divisão de b por a.<br />

Por exemplo, vamos supor que queremos saber o resto da divisão de 11 por 3.<br />

Fazemos<br />

11 – 3 dá 8<br />

8 – 3 dá 5<br />

5 – 3 dá 2<br />

sobra 2 (porque já não conseguimos subtrair mais); é este o resto.<br />

Estas contas traduzem-se no seguinte esqueleto:<br />

public static void resto ( int a, int b ) {<br />

}<br />

while ( a >= b ) {<br />

}<br />

...<br />

a = a - b;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!