8: I dati e la loro struttura nella programmazione( ARRAY, MATRICI, RECORD) Vers. 10.0 – Maggio 2025
Le operazioni di base sulle matrici sono le stesse di quelle già esaminate per i vettori( quindi caricamento, visualizzazione, ordinamento, ricerca).
Qui ci limitiamo ad illustrare quelle relative al CARICAMENTO ed alla VISUALIZZAZIONE di una matrice rettangolare n x m e di una matrice quadrata n x n
N. B. Anche nel caso delle matrici, useremo un criterio di FALSA DINAMICITA’ analogo a quello utilizzato nel caso di vettore o array monodimensionale avendo però l’ accortezza di utilizzare invece di due costanti differenti( una per il numero di righe ed una per il numero di colonne) una soltanto, essendo sempre possibile dichiarare una matrice rettangolare anche all’ interno di una zona di memoria " quadrata ".
ALGORITMO CaricaVisualizzaMatriceRettangolare
/* N. B. Si usa un unica costante MAXDIM per gestire la FALSA DINAMICITA’ anche nel caso degli array bidimensionali( ossia delle matrici). La decisione di allocare uno spazio di memoria“ quadrato” non impedisce di utilizzare al suo interno una parte“ rettangolare” */ MAXDIM 10 /* Max numero di righe e di colonne */ MAXDIM colonne
PROCEDURA main()
matr: ARRAY [ MAXDIM ] [ MAXDIM ] DI INT n, m: INT i, j: INT
MAXDIM righe
INIZIO
/* leggo il numero di righe e di colonne della matrice rettangolare che si desidera caricare rispettando in entrambi i casi i vincoli imposti da MAXDIM */ RIPETI Leggi( n) FINCHE’( n ≥ 1) AND( n ≤ MAXDIM)
RIPETI Leggi( m) FINCHE’( m ≥ 1) AND( m ≤ MAXDIM) AND( n ≠ m) /* Così si escludono le matrici quadrate */
/* carico per riga e per colonna crescenti gli elementi nella matrice rettangolare */ PER i � 1 A n ESEGUI /* RIGA crescente */ PER j � 1 A m ESEGUI /* COLONNA crescente */ Leggi( matr [ i ][ j ]) j � j + 1 FINE PER i � i + 1 FINE PER
/* visualizzo per riga e per colonna crescenti gli elementi della matrice rettangolare */ PER i � 1 A n ESEGUI /* RIGA crescente */ PER j � 1 A m ESEGUI /* COLONNA crescente */ Scrivi( matr [ i ][ j ]) j � j + 1 FINE PER i � i + 1 FINE PER
FINE
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 38