JOS#01

Ecco la soluzione ai problemi proposti sul Life.

1) Riempimento di un array di numeri interi, con valori casuali da 1 a 100

class RandomIntegerArray
{
	public static void main(String[] argv)
	{
		//Creazione di un array di interi contenente 10 elementi
		int[] array = new int[10];
		for (int i=0; i<array.length; i++)
			array[i] = (int)( (Math.random() * 100) + 1 );
	}
}

1.2)Ordinamento decrescente dell’array creato

class SortArray
{
	public static void main(String[] argv)
	{
		//Array di 10 elementi, di tipo intero
		int[] array = new int[10];
		//Ordinamento dell'array
		for (int i=0; i&lt; array[j])
				{
					int app = array[i];
					array[i] = array[j];
					array[j] = app;
				}
	}
}

1.3) Ricerca del massimo valore presente nell’array

class FindMaxValue
{
	public static void main(String[] argv)
	{
		//Array di 10 elementi di tipo intero
		int[] array = new int[10];
		//Elemento contenente il valore massimo
		int max = array[0];
		//Ricerca del valore massimo
		for (int i=1; i array[i])
				max = array[i];
	}
}

Per chi volesse scaricarsi il codice del punto 1, ecco il file: FillAndSortRandomIntegerArray.java

2) Riempimento di una matrice di numeri float contenente valori compresi tra 0 e 1
2.1) Ordinamento crescente della matrice in modo da avere nella cella (0, 0) il valore minimo e nella cella (n, n) il valore massimo

public class FillAndSortRandomFloatMatrix
{
	/*
	La funzione 'printMatrix' stampa la matrice passata
	tra i parametri, inserendo alla fine di ogni riga
	e in coda ad ogni colonna la sommatoria rispettivamente
	per riga e per colonna.
	*/
	public static void printMatrix(float[][] m)
	{
		float sumRighe = 0;
		float[] sumColonne = new float[m.length];
		for (int i=0; i<m.length; i++)
		{
			for (int j=0; j<m[i].length; j++)
			{
				System.out.printf(" %.1f", m[i][j]);
				sumRighe += m[i][j];
				sumColonne[i] += m[j][i];
			}
			System.out.printf(" - S: %.1f\n", sumRighe);
			sumRighe = 0;
		}
 
		for (int i=0; i<sumColonne.length; i++)
			System.out.printf("  | ");
		System.out.println();
 
		for (int i=0; i<sumColonne.length; i++)
			System.out.printf(" %.1f", sumColonne[i]);
		System.out.println();
	}
 
	/*
	La funzione ordina la matrice prima per righe e successivamente
	per colonne.
	Essendo una funzione 'static' per ritornare la matrice
	ordinata ho impostato come valore di ritorno una matrice float
	*/
	public static float[][] sortMatrix(float[][] matrix)
	{
		//Ordinamento per righe
		for (int i=0; i<matrix.length; i++)
			for (int k=0; k<matrix[i].length-1; k++)
				for (int h=k; h<matrix[i].length; h++)
					if (matrix[i][k] > matrix[i][h])
					{
						float app = matrix[i][h];
						matrix[i][h] = matrix[i][k];
						matrix[i][k] = app;
					}
		//Ordinamento per colonne
		for (int i=0; i<matrix.length; i++)
			for (int k=0; k<matrix[i].length-1; k++)
				for (int h=k; h<matrix[i].length; h++)
					if (matrix[k][i] > matrix[h][i])
					{
						float app = matrix[h][i];
						matrix[h][i] = matrix[k][i];
						matrix[k][i] = app;
					}
		//Ritorno della matrice ordinata
		return matrix;
	}
 
	/*
	Nel main viene creata la matrice (in questo caso di 4x4 elementi)
	Successivamente viene riempita con valori casuali, e ordinata.
	*/
	public static void main(String[] argv)
	{
		float[][] matrix = new float[4][4];
		//Riempimento della matrice con valori casuali
		for (int i=0; i<matrix.length; i++)
			for (int j=0; j<matrix[i].length; j++)
				matrix[i][j] = (float)( Math.random() );
		//Stampa della matrice
		printMatrix(matrix);
		//Ordinamento della matrice
		matrix = sortMatrix(matrix);
		//Stampa della matrice ordinata
		System.out.printf("\n\nStampa Matrice Ordinata:\n");
		printMatrix(matrix);
	}
}

Per chi volesse scaricarsi il codice del punto 2: fillandsortrandomfloatmatrix

Tags: ,

About the Author

Hello everyone! I'm Andrea Rastelli, a 23 year old programmer, designer, 3D animator and compositor. You may follow me on Twitter and Facebook