Pari o dispari


Dato un numero naturale (0, 1, 2, ...) decidere se pari o dispari.

Analisi
Si applica l'algoritmo delle sottrazioni successive...
Diagramma di flusso
...

Programma
PROG   RUN       '
       INP N     '
       LDA N     '
SU     JEQ PARI  ' SE(ACC = 0) PC <-- PARI
       JLT DISP  ' SE(ACC < 0) PC <-- DISP
       SUB #2    '
       JMP SU    '
DISP   LDA #0    '
       STA RISP  '
PARI   OUT RISP  '
       ALT       '
N      DAT 0     '
RISP   DAT 1     '
       END       '




Invece di rispondere con 1/0 possiamo accordarci su 0/-1 (il contenuto dell'accumulatore...)
PROG   RUN       '
       INP N     '
       LDA N     '
SU     JLE FINE  ' SE(ACC <= 0): PC <-- FINE
       SUB #2    '
       JMP SU    '
FINE   STA N     '
       OUT N     '
       ALT       '
N      DAT 0     '
       END       '

Da 14 a 11 righe... (-21%)



Sapendo che in MACL la divisione solo intera, utilizziamo un altro algoritmo.

N pari se
(N/2)*2=N
cio se
(N/2)*2-N=0

Esempi

Programma
PROG   RUN       '
       INP N     '
       LDA N     '
       DIV #2    '
       MUL #2    '
       SUB N     '
       STA N     '
       OUT N     '
       ALT       '
N      DAT 0     '
       END       '
There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki