Programmi commentati per la calcolatrice programmabile
HP Serie 48G(X)

L'obiettivo di questa pagina e' di esaminare alcuni programmi per conoscere le potenzialita' delle le varie funzioni (predefinite e non) della calcolatrice programmabile serie HP48G. Per il corretto apprendimento degli esercizi e' necessaria una certa di familiarita' con la Notazione Polacca Inversa (RPN), notazione che non necessita della presenza di parentesi per i calcoli matematici.

Si consiglia la lettura di alcune utili dispense presenti in Internet per la programmazione delle calcolatrici della famiglia HP48G. Un buon sito in italiano e' quello di Salvatore Miano, oppure quello in lingua inglese di Justin Dossey.

« A -> DIAG
    A SIZE
    DIAG->
»
D Costruiamo una matrice diagonale ossia avente tutti gli elementi nulli tranne quelli nella posizione aii.
riga 1: nello stack viene messa la matrice A: [[1 2] [3 4]] da cui vengono ottenuti gli elementi diagonali [1 4].
riga 2: Con A SIZE si ottiene la dim. di A: {2 2}
riga 3: DIAG-> mette nella diagonale di una matrice con le dim. precedenti gli elementi in cima allo stack, ossia [1 4]. Quindi si otterra' p.e. : [[1 0] [0 4]]
« "Inserire il valore della
  base del triangolo"
  "base " 
  INPUT 
  OBJ->
  "Ora quello dell'altezza" "altezza "
  INPUT 
  OBJ-> 
  SWAP DROP 
  AREA
»
ATRI. I due programmi che seguono, ATRI e AREA, permettono inseme di calcolare l'area di un triangolo. Il problema da risolvere, elementare, e' solo un pretesto per capire l'utilizzo del comando INPUT, e OBJ->.
riga 1,2: visualizza un messaggio sul display
riga 3: prompt che richiede un valore
riga 4: esegue quanto scritto in riga 1,2,3
riga 5: OBJ-> scompone la stringa "base numeroInserito" in 'base' (liv. 2 dello stack) e numeroInserito (in cima lo stack)
riga 9,10: elimina "altezza " dallo stack, e chiama AREA.
« -> B A
  « 'B*A/2' ->NUM 
  »
»
AREA. Semplice esempio di programma che utilizza i primi due valori dello stack e calcola l'area del triangolo.
« 1 -> Z
   «A
     1 A SIZE HEAD
	 FOR Q
	     Z A SIZE HEAD
		 FOR P
		      {Q P} 0 PUT
	     NEXT
	 1 'Z' STO+
	 NEXT
   »
»
L. Data una matrice di dimensioni NxN, costruiamo un programma che azzera gli elementi della diagonale principale, nonche' gli elementi al di sopra della stessa.
riga 1: Z = 1
riga 2: mette nello stack la matrice A per poi modificarla, con le varie iterazioni, in triang. bassa

riga 3: da 1 alla dim. di A (primo ciclo FOR)

riga 5: da Z alla dim. di A (secondo ciclo FOR)

riga 7: metti a 0 gli elem. di riga P e colonna Q


riga 9: la variabile Z viene incrementata di 1 appena usciti dal secondo ciclo FOR
« A
   A SIZE HEAD 2
   FOR X
       -> A
      « A DET
        A X ROW- DROP
          X COL- DROP
     »
 -1 STEP
»
DETMN. Una matrice A puo' essere fattorizzata nel prodotto LDU, se i minori principali di A sono non singolari. In altri termini se le "sottomatrici" costruite a partire dall'angolo superiore sinistro hanno determinante diverso dal 0. Il programma in questione calcola i determinanti dei minori principali di A.
NOTA: L e' triangolare bassa, D e' diagonale ed U e' triangolare alta (non viene riportato il codice per ottenere U perche' si puo' facilmente ricavare da A, L e D).
riga 1: metti nello stack A
riga 2: indici del ciclo FOR = dim(A) TO 2
riga 4: il minore di A viene memorizzato in A
riga 5: calcola il determinante del minore
riga 6,7: ridefinisce il nuovo minore riducendo la matrice di una riga e di una colonna


NUMERI TASTIERA
Il motore di ricerca del Dizionario Informaticov1.03

Solo connessi ad Internet potete utilizzare DizSearch

Termini mancanti/suggerimenti ?

© Copyright 1997-2001 by Francesco Longo, flongo@dsi.unive.it

Homepage Dizionario Informatico