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.

Ou seja, enquanto der (isto é enquanto for a=>b) vamos subtraindo a a o valor de b.<br />

Quando deixar de dar <strong>para</strong>mos e o que sobrar em a é o resto.<br />

A versão completa será então:<br />

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

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

a = a - b;<br />

}<br />

return a;<br />

}<br />

É muito importante perceber a lógica do<br />

a = a - b;<br />

A operação a - b dá o valor da subtracção. Mas isso não chega! É indispensável que este<br />

resultado vá de novo <strong>para</strong> a (ou seja fazer a = a -b ) <strong>para</strong> que na repetição seguinte do ciclo<br />

o valor de a já seja o que resultou da subtracção anterior.<br />

Este versão apura o resto da divisão. O exercício pede <strong>para</strong> dizer se, "sim ou não", a é múltiplo<br />

de b. Mas tendo o resto calculado é fácil chegar lá:<br />

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

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

a = a - b;<br />

}<br />

return a == 0;<br />

}<br />

d) O <strong>Defina</strong> <strong>uma</strong> <strong>função</strong> <strong>para</strong> <strong>obter</strong> o quociente da divisão inteira, sem recorrer ao<br />

operador de divisão<br />

Para <strong>obter</strong> o quociente podemos também fazer subtracções sucessivas (commo exercício<br />

anterior). Vamos supor que queríamos <strong>obter</strong> 11 / 3. Fazemos:<br />

11 – 3 dá 8<br />

8 – 3 dá 5<br />

5 – 3 dá 2<br />

e termina (porque já não conseguimos subtrair mais) e é este o resto.<br />

O resultado é o número de vezes que se consegue subtrair, ou seja 3.<br />

Consideremos a estrutura da versão anterior:<br />

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

}<br />

...<br />

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

// quantas vezes se passa aqui ?<br />

a = a - b;<br />

}<br />

...

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

Saved successfully!

Ooh no, something went wrong!