3° Anno TEORIA 9. Tipi di dato strutturato: vettori e record | Page 37

8 : I dati e la loro struttura nella programmazione ( ARRAY , MATRICI , RECORD ) Vers . 8.2 – Settembre 2022
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 . 37