Qualche giorno fà mi ero imbattuto in un blog (non ricordo quale) dove in un post si riportava il fatto che negli esami dei laureandi di Informatica in USA c'è una domanda molto frequente che viene posta e che molti non riescono a rispondere in maniera corretta.
La domanda è la seguente: scrivimi un programma che mostri i numeri da 1 a 100, quando un numero è multiplo di 3 al posto del numero devi mostrare BUZZ, quando è multiplo di 5 devi mostrare FIZZ e quando è multiplo sia di 3 che di 5 devi mostrare BUZZFIZZ.
Ok ho detto.. che ci vuole! è una sciocchezza!.. quindi mi sono subito aperto un'abap editor e ho iniziato a scrivere.. tutto bene finchè non dovevo trovare il fatto che un numero sia il multiplo di un'altro.. cosa che nei vari report in ABAP non mi era mai capitato.. e sfogliando l'help ho trovato la funzione MOD che serve proprio per questo! Ovvero se il risultato è zero significa che la divisione non riporta numeri dopo la virgola, quindi il numero risultante è un numero intero..
ecco il sorgente scritto in due minuti..
data:
rec(3) type n,
var1(3) type n,
var2(3) type n,
mul3 type n value 3,
mul5 type n value 5.
do 100 times.
rec = rec + 1.
var1 = rec MOD mul3.
var2 = rec MOD mul5.
if var1 = 0 and var2 <> 0.
write:/ 'BUZZ'.
elseif var1 <> 0 and var2 = 0.
write:/ 'FIZZ'.
elseif var1 = 0 and var2 = 0.
write:/ 'BUZZFIZZ'.
else.
write:/ rec.
endif.
enddo.
giovedì 29 marzo 2007
Iscriviti a:
Commenti sul post (Atom)
Nessun commento:
Posta un commento