Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

MAC: Terne pitagoriche

Precedente
SUPERIORE
Successiva

Dati tre interi a, b e c decidere se a2+b2=c2.

Analisi con esempi: è nota la terna pitagorica (3, 4, 5), infatti 32+42=52, 9+16=25, ...

Algoritmo (da descrivere a parole e con un diagramma di flusso): dopo una prima fase di input calcola l'espressione a2+b2-c2, se il risultato è zero va alla visualizzazione della risposta "1" (sì), già contenuta nel dato RISP, altrimenti continua settando la risposta a "0" (no) e dopo la visualizza.

Programma:

PROG   RUN       '
       INP a     '
       INP b     '
       INP c     '
       LDA a     '
       MUL a     '
       STA qa    ' qa <-- a*a
       LDA b     '
       MUL b     '
       STA qb    ' qb <-- b*b
       LDA c     '
       MUL c     '
       STA qc    ' qc <-- c*c
       LDA qa    '
       ADD qb    '
       SUB qc    ' ACC <-- qa+qb-qc
       JEQ OUTPUT' SE(ACC = 0): PC <-- OUTPUT
       LDA #0    '
       STA RISP  '
OUTPUT OUT RISP  '
       ALT       '
a      DAT 0     '
b      DAT 0     '
c      DAT 0     '
qa     DAT 0     '
qb     DAT 0     '
qc     DAT 0     '
RISP   DAT 1     '
       END       '

Commento: le risorse qa, qb e qc sono superflue, perché non modificare direttamente i valori in a, b e c?

MAC: Terne pitagoriche - ApPuNtIdIuNiNfOrMaTiCo

Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Precedente
SUPERIORE
Successiva