Esempi JAVA
Da Bioingegneria Elettronica e Informatica.
Versione del 22 mar 2017 alle 11:04 di Profbevilacqua (Discussione | contributi)
Indice
Hello World
Esercizio introduttivo a JAVA. Il seguente codice mostra a video la stringa "Hello World !"
/* Questo è il primo programma in JAVA
* e inizia con un commento multilinea
*/
// Commento su singola linea
/**
* Uso della javadoc
* Questo programma deve stampare sullo standard output, ovvero la console,
* la stringa "Hello World !"
*
* @author antonio
*
*/
public class Principale {
/**
* Metodo di avvio del programma
* @param args argomenti passati dalla linea di comando
*/
public static void main(String[] args) {
// Standard output
System.out.println("Hello World !");
}
}
Uso delle funzioni: Doppio e Somma
Codice Java per l'introduzione alle funzioni; sono state implementate due funzioni:
- calcolo del doppio di un numero intero;
- calcolo della somma di due numeri interi.
/** Programma per mostrare il funzionamento di:
* 1. Funzione chiamante (main) e funzione chiamata;
* 2. Variabili locali e parametri (valori) attuali;
* 3. Passaggio per Valore;
*
* @author antonio
*
*/
public class Principale {
public static void main(String[] args) {
new Principale().run();
}
public void run() {
// Dichiarazione e inizializzazione delle variabili origin, origin2 e result
int origin = 3;
int origin2 = 5;
int result = 0;
System.out.println("Doppio di una variabile");
// Stampa in console del valore attuale di origin
System.out.println("Il valore di origin è: " + origin);
/* Calcolo il doppio della variabile origin:
* 1. chiamo la funzione doppio
* 2. salvo il risultato nella variabile result
*/
result = doppio(origin);
// Stampa in console il valore di result
System.out.println("Il valore di result è: " + result);
System.out.println("Somma di due variabili");
// Stampa in console del valore attuale di origin e origin2
System.out.println("Il valore di origin è: " + origin);
System.out.println("Il valore di origin2 è: " + origin2);
// Calcolo la somma di origin e origin2
result = somma(origin, origin2);
// Stampa in console il valore di result
System.out.println("Il valore di result è: " + result);
}
/**
* Funzione per calcolare il doppio di un valore
* @param val
* @return
*/
public int doppio(int val) {
// Dichiaro la variabile res per salvare il doppio della variabile val
int res = 0;
res = val * 2;
// Restituzione di res
return res;
}
/**
* Funzione per calcolare la somma di due addendi
* @param add1
* @param add2
* @return
*/
public int somma(int add1, int add2) {
// Codice compatto che fa la somma di add1 e add2 e restituisce il risultato
return add1 + add2;
}
}
Scambio di due elementi all'interno di un vettore
Codice Java che implementa lo scambio di due componenti in un vettore; sono stati implementati due casi:
- caso1: vettore di sole due componenti che vengono scambiate (funzione scambia(...));
- caso2: vettore di dimensione N nel quale sono scambiate le componenti con indice ind1 e ind2 (funzione scambia_componenti(...)).
public class Principale {
public static void main(String[] args) {
new Principale().run();
}
public void run() {
// Vettore formato da due elementi
int[] v = {3,5};
// Stampo il valore delle due variabili prima dello scambio
System.out.println("La prima componente del vettore vale: " + v[0]);
System.out.println("La seconda componente del vettore vale: " + v[1]);
// Effettuo lo scambio
scambia(v);
// Stampo il valore delle due variabili dopo lo scambio
System.out.println("La prima componente del vettore vale: " + v[0]);
System.out.println("La seconda componente del vettore vale: " + v[1]);
// Generalizzazione a vettore formato da N elementi in cui indico le componenti da scambiare
// Vettore formato da N elementi
int N = 10;
int i = 0;
int[] vett = new int[N];
for(i = 0; i < N; i++)
vett[i] = i+1;
int ind1 = 3;
int ind2 = 8;
// Stampo il vettore prima dello scambio
for(i = 0; i < N; i++)
System.out.print(vett[i] + " ");
System.out.println();
// Effettuo lo scambio
scambia_componenti(vett, ind1, ind2);
// Stampo il vettore dopo dello scambio
for(i = 0; i < N; i++)
System.out.print(vett[i] + " ");
System.out.println();
}
/**
* Funzione scambia funzionante
* @param V
*/
public void scambia(int[] V) {
int temp;
temp = V[0];
V[0] = V[1];
V[1] = temp;
}
/**
* Funzione di scambio delle componenti in posizione c1 e c2 del vettore V
* @param V
* @param c1
* @param c2
*/
public void scambia_componenti(int[] V, int c1, int c2) {
int temp;
temp = V[c1];
V[c1] = V[c2];
V[c2] = temp;
}
}
Prodotto tra matrici
Codice Java che implementa il prodotto, righe per colonne, tra due matrici.
public class Principale {
public static void main(String[] args) {
new Principale().run();
}
public void run() {
int r1, c1;
int r2, c2;
int k;
// Affinchè il prodotto tra matrici possa essere eseguito è necessario che c1 = r2;
// Dimensioni prima matrice
r1 = 2;
c1 = 3;
// Dimensioni della seconda matrice
r2 = 3;
c2 = 5;
// Valorizzazzione matrice1 con numeri interi da 0 (r1*c1)-1
k = 0;
int[][] mat1 = new int[r1][c1];
for (int i = 0; i < r1; i++) {
for (int j = 0; j < c1; j++) {
mat1[i][j] = k;
k++;
}
}
// Valorizzazzione matrice1 con numeri interi da 0 (r2*c2)-1
k = 0;
int[][] mat2 = new int[r2][c2];
for (int i = 0; i < r2; i++) {
for (int j = 0; j < c2; j++) {
mat2[i][j] = k;
k++;
}
}
// Stampa delle matrici mat1 e mat2
System.out.println("La prima matrice vale: ");
stampaMatrice(mat1, r1, c1);
System.out.println("La seconda matrice vale: ");
stampaMatrice(mat2, r2, c2);
/* Controllo che le dimensioni delle matrici rispettano r2 == c1
* affinchè sia possibile effettuare il prodotto tra le due matrici
*/
if (r2 != c1) {
System.out.println("Non è possibile fare il prodotto tra matrici");
}
else {
// Dichiarazione della matrice prodotto mat3 di dimensioni r1*c2
int[][] mat3 = new int[r1][c2];
// Il prodotto tra le matrici è effettuato nella relativa funzione
prodottoMatrici(mat1, r1, c1, mat2, r2, c2, mat3);
// Stampa della matrice prodotto mat3
System.out.println("La matrice prodotto vale: ");
stampaMatrice(mat3, r1, c2);
}
}
/**
* Funzione per la stampa della matrice mat note le sue dimensioni r e c
* @param mat
* @param r
* @param c
*/
public void stampaMatrice(int[][] mat, int r, int c) {
int i = 0;
int j = 0;
for (i = 0; i < r; i++) {
for (j = 0; j < c; j++) {
System.out.print(mat[i][j] + "\t");
}
System.out.println();
}
}
/**
* Funzione che effettua il prodotto tra matrici
* @param A prima matrice
* @param r1 numero di righe della prima matrice
* @param c1 numero di colonne della prima matrice
* @param B seconda matrice
* @param r2 numero di righe della seconda matrice
* @param c2 numero di colonne della seconda matrice
* @param C matrice prodotto
*/
public void prodottoMatrici(int[][] A, int r1, int c1, int[][] B, int r2, int c2, int[][] C) {
int i = 0;
int j = 0;
int k = 0;
// Algoritmo per il prodotto tra matrici
for (i = 0; i < r1; i++) {
for (k = 0; k < c2; k++) {
C[i][k] = 0;
for (j = 0; j < c1; j++) {
C[i][k] = C[i][k] + A[i][j] * B[j][k];
}
}
}
}
}
Algoritmo di ordinamento Selection Sort
Codice Java che implementa l'algoritmo di ordinamento Selection Sort.
public class Principale {
public static void main(String[] args) {
new Principale().run();
}
public void run() {
int i = 0;
// Vettore formato da N elementi
int N = 10;
int[] vett = {15, 25, 18, 6, 4, 9, 110, 200, 0, 201};
// Stampo il vettore prima dell'ordinamento
for(i = 0; i < N; i++)
System.out.print(vett[i] + " ");
System.out.println();
// Effettuo l'ordinamento
ordinamentoSelectionSort(vett, N);
// Stampo il vettore dopo l'ordinamento
for(i = 0; i < N; i++)
System.out.print(vett[i] + " ");
System.out.println();
}
/**
* Funzione che implementa l'algoritmo di ordinamento Selection Sort noti il vettore e la sua dimensione
* @param V
* @param dim
*/
public void ordinamentoSelectionSort(int[] V, int dim) {
int i = 0;
int j = 0;
int i_min = 0;
for (i = 0; i < dim -1; i++) {
i_min = i;
for (j = i+1; j < dim; j++ ) {
if (V[j] < V[i_min])
i_min = j;
}
scambia_componenti(V, i, i_min);
}
}
/**
* Funzione di scambio delle componenti in posizione c1 e c2 del vettore V
* @param V
* @param c1
* @param c2
*/
public void scambia_componenti(int[] V, int c1, int c2) {
int temp = V[c1];
V[c1] = V[c2];
V[c2] = temp;
}
}