Pubblicità

Corso Java – Episodio 8

Creare e Gestire una Matrice in Java: Guida Pratica con Scanner ed Eccezioni

Argomenti dell’episodio 8 – Le matrici in java

Introduzione

Le matrici rappresentano una delle strutture dati fondamentali nella programmazione. In Java vengono utilizzate in numerosi contesti, dall’elaborazione numerica alla gestione di dati tabellari. In questo articolo analizzeremo un semplice programma che permette di creare una matrice 3×3, inserire i valori da tastiera, visualizzarli e calcolarne la somma.

Il progetto mostra anche l’utilizzo di concetti importanti della programmazione orientata agli oggetti, come classi, costruttori, metodi ed eccezioni.


La classe Matrice

Il cuore dell’applicazione è la classe Matrice, responsabile della gestione dell’intera struttura dati.

All’interno della classe troviamo:

  • una matrice bidimensionale di interi (int[][]);
  • il numero di righe e colonne;
  • una variabile utilizzata per memorizzare la somma degli elementi.
private int[][] mat;
private int n, m;
private int somma;

Queste variabili rappresentano lo stato dell’oggetto e vengono inizializzate nel costruttore.


Il costruttore: creazione della matrice

Il costruttore riceve in ingresso il numero di righe e colonne e crea dinamicamente la matrice.

 public Matrice(int x, int y) {
        n = x;
        m = y;
        mat = new int[n][m];
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < n; i++)
            for (int j = 0; j < m; j++) {
                try {
                    System.out.print("Inserisci elementi di posto:" + (i + 1 + "," + (j + 1) + ":"));
                    mat[i][j] = sc.nextInt();
                } catch (InputMismatchException e) {
                    System.out.print("Errore di inserimento !\n");
                    j--;
                    sc.nextLine();
                }
            }
        sc.close();
    }

Successivamente utilizza un oggetto Scanner per richiedere all’utente l’inserimento di ogni elemento.

Per ogni posizione della matrice viene mostrato un messaggio simile a:

Inserisci elementi di posto:1,1
fino al completamento dell'intera matrice.

Gestione degli errori con try-catch

Uno degli aspetti più interessanti del programma è la gestione degli errori di input.

L’utente potrebbe infatti digitare una lettera anziché un numero.

Per evitare che il programma termini in modo anomalo viene utilizzato:

try{
    ...
}
catch(InputMismatchException e){
    ...
}

Se viene inserito un valore non valido:

  • compare il messaggio “Errore di inserimento!”;
  • l’utente può riprovare;
  • il programma continua normalmente.

Questa tecnica rende il software molto più robusto e affidabile.


Il metodo Stampa()

Dopo aver inserito tutti i dati, la matrice viene visualizzata tramite il metodo:

 public void Stampa() {
        for (int i = 0; i < n; i++) {
            System.out.print("\n");
            for (int j = 0; j < m; j++)
                System.out.print("|" + mat[i][j] + "\t|");
        }

    }

Il metodo utilizza due cicli for annidati per percorrere tutte le celle della matrice.

L’output assume una forma simile alla seguente:

|1| |2| |3|
|4| |5| |6|
|7| |8| |9|

In questo modo è possibile verificare rapidamente che tutti i valori siano stati memorizzati correttamente.


Calcolo della somma degli elementi

La funzione:

 public int getSomma() {
        somma = 0;
        for (int i = 0; i < n; i++)
            for (int j = 0; j < m; j++)
                somma += mat[i][j];
        return somma;
    }

scorre tutta la matrice e somma ogni elemento.

Il risultato viene restituito al programma principale.

Il codice utilizza ancora due cicli annidati, mostrando come sia semplice elaborare matrici bidimensionali in Java.


La classe Test

La seconda classe contiene il metodo main(), ovvero il punto di ingresso del programma.

public class Test {
    public static void main(String[] args) {
        Matrice obj = new Matrice(3, 3);
        obj.Stampa();
        System.out.println("\nsomma elementi:" + obj.getSomma() + "\n");

    }
}

Le operazioni svolte sono molto semplici:

  1. crea una matrice 3×3;
  2. richiede l’inserimento dei valori;
  3. stampa la matrice;
  4. visualizza la somma totale degli elementi.

Il codice è essenziale ma dimostra perfettamente il funzionamento della classe Matrice.


Concetti Java utilizzati

Questo esempio permette di ripassare numerosi argomenti fondamentali:

  • classi e oggetti;
  • costruttori;
  • array bidimensionali;
  • cicli for;
  • input da tastiera con Scanner;
  • gestione delle eccezioni (try-catch);
  • metodi;
  • incapsulamento dei dati.

Per uno studente alle prime armi rappresenta un ottimo esercizio completo.


Possibili miglioramenti

Il programma può essere ampliato introducendo nuove funzionalità, ad esempio:

  • calcolo della media degli elementi;
  • ricerca del valore massimo e minimo;
  • somma delle righe e delle colonne;
  • somma della diagonale principale e secondaria;
  • trasposizione della matrice;
  • moltiplicazione tra matrici;
  • scelta dinamica delle dimensioni da parte dell’utente.

Queste estensioni rappresentano ottimi esercizi per approfondire la programmazione Java.


Conclusione

Questo progetto dimostra come sia possibile realizzare una semplice applicazione per la gestione di matrici utilizzando Java e la programmazione orientata agli oggetti.

Nonostante la sua semplicità, il codice introduce numerosi concetti fondamentali: la creazione di oggetti, l’utilizzo di array bidimensionali, l’acquisizione di dati tramite Scanner, la gestione delle eccezioni e l’organizzazione del codice in metodi dedicati.

È un ottimo punto di partenza per chi desidera imparare a lavorare con strutture dati più complesse e sviluppare applicazioni Java sempre più complete.

Video dell’episodio 8 – del corso Java

  • Corso Java – Episodio 8
    Creare e Gestire una Matrice in Java: Guida Pratica con Scanner ed Eccezioni Argomenti dell’episodio 8 – Le matrici in java Introduzione Le matrici rappresentano una delle strutture dati fondamentali nella programmazione. In Java vengono utilizzate in numerosi contesti, dall’elaborazione numerica alla gestione di dati tabellari. In questo articolo analizzeremo un semplice programma che permette di creare una matrice 3×3, inserire i… Leggi tutto: Corso Java – Episodio 8
  • Corso Java – Episodio 7 – Sotto classi, ereditarietà e polimorfismo
    Java: ereditarietà, sottoclassi e classi matematiche con l’esempio del Poligono Regolare Nel settimo episodio del corso Java affrontiamo uno degli argomenti più importanti della programmazione orientata agli oggetti: le sottoclassi e l’ereditarietà. Per spiegare questi concetti utilizziamo un esempio pratico molto interessante: la gestione dei poligoni regolari attraverso una classe base e una sottoclasse dedicata al quadrato. Oltre all’ereditarietà, vedremo anche come… Leggi tutto: Corso Java – Episodio 7 – Sotto classi, ereditarietà e polimorfismo
  • Corso Java – Episodio 6 – Gli array
    Creare una Classe Java per Gestire un Vettore di Numeri Argomenti Quando si inizia a programmare in Java, uno degli esercizi più utili è imparare a gestire gli array (o vettori) e le operazioni matematiche di base come somma e media. In questo articolo analizziamo una semplice classe Java chiamata Vettore, che permette di: Il Codice della classe Vettore Diamo uno sguardo… Leggi tutto: Corso Java – Episodio 6 – Gli array
  • Corso C# – Preparare Visual Studio Code per C#
    🧑‍💻 Come installare C# e Visual Studio Code: guida passo passo Se stai iniziando a programmare in C#, il primo passo fondamentale è configurare correttamente il tuo ambiente di sviluppo. In questa guida ti accompagno passo dopo passo nell’installazione degli strumenti necessari per iniziare subito a scrivere codice. 🔧 Cosa è richiesto per l’installazione La procedura è semplice e si compone di… Leggi tutto: Corso C# – Preparare Visual Studio Code per C#
  • Corso Java – Episodio 5 – Come creare una struttura record
    Argomenti dell’articolo Gestione di una classe Java: il caso della classe Prodotto In questo articolo analizziamo la realizzazione di una semplice classe Java chiamata Prodotto, utilizzata per rappresentare le informazioni principali di un articolo commerciale. Questo esempio è particolarmente utile per comprendere i concetti fondamentali della programmazione orientata agli oggetti (OOP), come incapsulamento, costruttori, metodi getter/setter e overriding. Struttura della classe La… Leggi tutto: Corso Java – Episodio 5 – Come creare una struttura record
  • Corso Java – Episodio – 4 – I cicli e gli array
    Argomenti: Introduzione In questo articolo introduce il programmatore all’uso degli array in Java mediante la programmazione OOP Obiject Oriented Programming. In particolare gli array possono essere utilizzati anche per gestire collezioni di oggetti. In questo articolo attraverso la creazione di una semplice classe, vedremo come una classe che contiene un array di oggetti di questa classe, mediante un’associazione di composizione. L’associazione di… Leggi tutto: Corso Java – Episodio – 4 – I cicli e gli array
  • Corso Java – Episodio 3 – Estendere le classi
    Creare e gestire una classe Persona in Java: input da console, getter/setter e classe di test In questo articolo vediamo come progettare una semplice classe Java per rappresentare una persona, partendo da un esempio pratico. Analizzeremo tre aspetti fondamentali: Indice degli argomenti 1. L’inserimento dati in Java da Console Uno degli aspetti più utili quando si lavora con Java è la possibilità… Leggi tutto: Corso Java – Episodio 3 – Estendere le classi
  • Corso Java – Episodio 2 – La prima classe
    Classe Persona in Java: guida completa con esempio pratico e diagramma UML Argomenti: Introduzione Se stai imparando Java, uno dei primi concetti fondamentali da comprendere è quello di classe. Le classi sono la base della programmazione orientata agli oggetti (OOP) e permettono di rappresentare entità del mondo reale all’interno di un programma. In questo articolo vedremo come creare una classe Persona in… Leggi tutto: Corso Java – Episodio 2 – La prima classe
  • Lezione Pratica C++ – 13 – Le struct
    Argomenti Gestione e uso delle struct in C++ Analisi Completa di un Progetto con Struct, Array e Modularizzazione Uno degli esercizi più importanti per chi studia C++ è la gestione di dati complessi tramite struct e la suddivisione del programma in più file. In questo articolo analizziamo in modo dettagliato un progetto che simula la gestione di un piccolo magazzino prodotti. Il… Leggi tutto: Lezione Pratica C++ – 13 – Le struct
  • Corso C# – Lezione 3 – La prima classe
    Argomenti Cosa vediamo Introduzione In questo articolo voglio partire da un semplice esempio in C# per spiegare alcuni concetti fondamentali della programmazione a oggetti, collegandoli ai temi trattati nel video dell’episodio 3 del corso Java: progettazione di una classe, get e set, separazione del main, input da tastiera e organizzazione del codice. 1️⃣ Un esempio base in C#: confrontare due numeri Partiamo… Leggi tutto: Corso C# – Lezione 3 – La prima classe
  • Nuovo Corso Java – Lezione 1
    Argomenti: Video della Lezione 1 Come installare JDK e Visual Studio Code su Windows Benvenute e benvenuti al primo episodio del nostro corso dedicato a Java.In questo articolo vedremo passo dopo passo come preparare il nostro ambiente di sviluppo su Windows, installando: L’obiettivo è avere tutto pronto per iniziare a scrivere, compilare ed eseguire il nostro primo programma Java. 1️⃣ Cos’è il… Leggi tutto: Nuovo Corso Java – Lezione 1
  • Lezione C++ Pratica – 12 – Operazioni avanzate con le matrici
    Argomenti dell’articolo Operazioni sulle matrici in C++: teoria e implementazione completa Nel precedente articolo abbiamo visto come il file opmatrici2.cpp realizzi una calcolatrice matriciale tramite un menu interattivo.In questa estensione entriamo nel cuore del codice, analizzando l’implementazione concreta delle funzioni e il modo in cui la matematica viene tradotta in C++. Dichiarazione delle librerie e delle variabili Il programma utilizza librerie standard… Leggi tutto: Lezione C++ Pratica – 12 – Operazioni avanzate con le matrici
  • Nuovo Corso C# – Lezione 2
    C# e .NET: variabili numeriche e classe Convert (Lezione pratica n. 2) Nel percorso di apprendimento di C# e della piattaforma .NET, una delle prime competenze fondamentali è la gestione dei numeri. In questa lezione pratica numero 2 vediamo come utilizzare le variabili numeriche e come convertire i dati grazie alla classe Convert, strumenti indispensabili in qualsiasi applicazione reale. Creare l’ambiente di… Leggi tutto: Nuovo Corso C# – Lezione 2
  • C++ – Lezione Pratica 11
    Le matrici in C++: guida pratica con esempi In questo articolo vedremo come utilizzare le matrici (array bidimensionali) in C++, partendo dai concetti teorici fino ad arrivare a un programma completo e funzionante. L’esempio è pensato per chi sta muovendo i primi passi nella programmazione strutturata. Gli argomenti trattati sono: 1. Cos’è una matrice in C++ Una matrice è un array bidimensionale,… Leggi tutto: C++ – Lezione Pratica 11
  • C++ – Lezione Pratica – 10
    Argomenti Cancellazione logica, compattamento e fusione di array L’obiettivo di oggi è capire come cancellare elementi da un array, come compattarlo ed infine come fondere due array in un terzo vettore. Il problema della cancellazione negli array statici In C++, quando utilizziamo array statici, la loro dimensione viene stabilita all’inizio del programma e non può essere modificata durante l’esecuzione. Questo significa che:… Leggi tutto: C++ – Lezione Pratica – 10
  • C++ Lezione Pratica – 9
    C++ – Lezione Pratica 9: Ordinamento degli Array e Ricerca Binaria In questa lezione del corso C++ approfondiamo tre strumenti fondamentali per lavorare con gli array: Tutti gli algoritmi, come nel tuo codice e nei tuoi flowchart, utilizzeranno come dimensione del vettore la variabile l, passata come parametro ai sottoprogrammi. 🔶 1. Ordinamento per Selezione (Selection Sort) Il Selection Sort ordina un… Leggi tutto: C++ Lezione Pratica – 9
  • Lezione Pratica C++ – 8
    Introduzione Gli array sono strutture dati omogenee sui quali possono essere fatte molte operazioni; alcune di riepilogo come ad esempio calcolare il valore massimo e minimo di un array, la somma dei valori di un array e altre per l’ordinamento e la ricerca. Argomenti Obiettivi dell’articolo In questo articolo sono illustrati gli strumenti per realizzare un programma in sotto programmi e il… Leggi tutto: Lezione Pratica C++ – 8
  • Lezione Pratica C++ n.7
    Introduzione In questa lezione introduciamo i concetti sugli array e il loro utilizzo nel linguaggio di programmazione C++. Un array è rappresentato in da un insieme di caselle identificate da un nome collettivo e i cui elementi sono individuati da un indice.Un esempio di array / vettore è qui sotto rappresentato: 3 -12 21 2 6 78 -123 11 223 0 Ogni… Leggi tutto: Lezione Pratica C++ n.7
  • Lezione Pratica C++ – 6
    Argomenti La scrittura in sotto programmi in C++ Un sotto programma è un’unità logica indipendente preposta per lo svolgimento di un compito specifico all’interno di un progetto software (programma). La differenza fra funzione e procedura in C++ Esiste la distinzione fra funzione e procedura nell’ambito della programmazione imperativa mediante i sotto programmi. Una funzione deve ritornare un valore dopo l’esecuzione, la procedura… Leggi tutto: Lezione Pratica C++ – 6
  • Nuovo Corso C++ – Lezione 5
    Strutture cicliche in C++ e loro uso Le strutture cicliche negli algoritmi e nella programmazione rivestono un’importanza fondamentale per la scrittura di programmi. Un ciclo è un blocco di operazioni ripetuto. Il numero delle ripetizione è determinato a priori e in questo caso si parla di ciclo a ripetizione definita oppure il numero delle ripetizione è determinato da una condizione.Si riassumono in… Leggi tutto: Nuovo Corso C++ – Lezione 5
  • Nuovao Corso C++ – Lezione 4
    Introduzione Le strutture condizionali negli algoritmi e nelle programmazione in generale rivestono un ruolo molto importante in quanto consentono al programma di modifiare la sua esecuzione sulla base di una o più condizioni. La struttura fondamentale della programmazione strutturata per le decisioni è l”if”., che in C++ può essere rappresentata schematicamente con la seguente sintassi generale: if (condizione) { istruzioni;}else {istruzioni;} il… Leggi tutto: Nuovao Corso C++ – Lezione 4
  • Esercizio Algoritmi – 2
    Esercitazione sugli algoritmi con il software flowgorithm. Traccia dell’esercizio Scrivere un algoritmo per risolvere il seguente problema: “Un negozio vende ad un cliente tre prodotti. Di ogni prodotto sono noti il prezzo, la quantità calcoalre il totale dovuto comprensivo di Iva al 22% La tabella dati prevede le seguenti variabili e costanti: Uso Nome Tipo Descrizione Input P1,P2,P3 Reali Prezzi dei tre… Leggi tutto: Esercizio Algoritmi – 2
  • Nuovo Corso C++ – Lezione – 1
    Introduzione Cosa Server per iniziare Il primo programma Una versione successiva del programma Il linguaggio di programmazione c++ è ancora molto utilizzato in molti ambiti professionali, educativi e scientifici grazie alla sua robustezza, ed è un linguaggio di programmazione multi paradigma ovvero è possibile programmare con la metodologia procedurale, la metodologia orientata agli oggetti, e anche mediante approccio funzionale. Cosa Serve per… Leggi tutto: Nuovo Corso C++ – Lezione – 1
  • Esercizio Algoritmi 1- per il calcolo della media di tre numeri
    Esercizio numero 1 – Scrittura do un semplice algoritmo con la struttura sequenziale. La soluzione del problema si compone di tre fasi: analisi, scrittura dell’algoritmo e codifica in n linguaggio di programmazione ad alto livello nel nostro caso C++.Nella fase di analisi si prende in esame il problema e anche attraverso degli esempi si determina quale può essere la possibile soluzione.Nel problema… Leggi tutto: Esercizio Algoritmi 1- per il calcolo della media di tre numeri
  • Corso Java – Episodio 8

    Corso Java – Episodio 8

    Creare e Gestire una Matrice in Java: Guida Pratica con Scanner ed Eccezioni Argomenti dell’episodio 8 – Le matrici in java Introduzione Le matrici rappresentano una delle strutture dati fondamentali nella programmazione. In Java vengono utilizzate in numerosi contesti, dall’elaborazione numerica alla gestione di dati tabellari. In questo articolo analizzeremo un semplice programma che permette…



In questa pagina sono presenti link di affiliazione che garantiscono a questo sito una piccola quota di ricavi, senza variazione del prezzo per l'acquirente.

Pubblicità