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
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 />
...