Merge branch 'master' of gitea.it:gicorada/java-scuola
This commit is contained in:
		
							
								
								
									
										29
									
								
								6.x/p6.12/Sol Prof/ExpGenerator.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								6.x/p6.12/Sol Prof/ExpGenerator.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | |||||||
|  | public class ExpGenerator implements Sequence<Double>{ | ||||||
|  | 	private double x, nuovo, old, potenza, fattoriale; | ||||||
|  | 	private int n; | ||||||
|  | 	public static final double EPSILON = 1E-6; | ||||||
|  |  | ||||||
|  | 	public ExpGenerator(double x) { | ||||||
|  | 		this.x = x; | ||||||
|  | 		nuovo = 1; | ||||||
|  | 		old = 0; | ||||||
|  | 		potenza = 1; | ||||||
|  | 		fattoriale = 1; | ||||||
|  | 		n = 0; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	public boolean hasNext() { | ||||||
|  | 		return Math.abs(nuovo-old) >= EPSILON; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	public Double next() { | ||||||
|  | 		if(!hasNext()) throw new IllegalArgumentException(); | ||||||
|  | 		old = nuovo; | ||||||
|  | 		n++; | ||||||
|  | 		potenza *= x; | ||||||
|  | 		fattoriale *= n; | ||||||
|  | 		nuovo = old + potenza/fattoriale; | ||||||
|  | 		return old;  | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | } | ||||||
							
								
								
									
										23
									
								
								6.x/p6.12/Sol Prof/ExpTester.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								6.x/p6.12/Sol Prof/ExpTester.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | |||||||
|  | import java.util.Scanner; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  Classe che esegue il test dell'uso della funzione ExpApprossimator | ||||||
|  |  @author radaelli11353 | ||||||
|  | */ | ||||||
|  | public class ExpTester { | ||||||
|  | 	public static void main(String[] args) { | ||||||
|  | 		Scanner in = new Scanner(System.in); | ||||||
|  |  | ||||||
|  | 		System.out.print("Inserisci il valore di x"); | ||||||
|  | 		double x = in.nextDouble(); | ||||||
|  |  | ||||||
|  | 		ExpGenerator gen = new ExpGenerator(x); | ||||||
|  |  | ||||||
|  | 		double sum = 1; | ||||||
|  | 		while(gen.hasNext()) { | ||||||
|  | 			System.out.println(gen.next()); | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		System.out.println(sum); | ||||||
|  | 	}	 | ||||||
|  | } | ||||||
							
								
								
									
										4
									
								
								6.x/p6.12/Sol Prof/Sequence.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								6.x/p6.12/Sol Prof/Sequence.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | public interface Sequence<T> { | ||||||
|  |     public boolean hasNext(); | ||||||
|  |     public T next(); | ||||||
|  | } | ||||||
							
								
								
									
										149
									
								
								7.x/P7.1,2,3,4,5 Purse/Purse senza arraylist/Purse.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										149
									
								
								7.x/P7.1,2,3,4,5 Purse/Purse senza arraylist/Purse.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,149 @@ | |||||||
|  | import java.util.Arrays; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Classe che simula un borsellino | ||||||
|  |  * @author radaelli11353 | ||||||
|  |  */ | ||||||
|  | public class Purse { | ||||||
|  |     private String[] coins; | ||||||
|  |     private int actualSize; | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Costruttore | ||||||
|  |      * @param dim Quantità massima di monete inseribili nel borsellino | ||||||
|  |      */ | ||||||
|  |     public Purse(int dim) { | ||||||
|  |         coins = new String[dim]; | ||||||
|  |         actualSize = 0; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Metodo che aggiunge una moneta al borsellino | ||||||
|  |      * @param coinName Nome della moneta | ||||||
|  |      */ | ||||||
|  |     public void addCoin(String coinName) { | ||||||
|  |         coins[actualSize] = coinName; | ||||||
|  |         actualSize++; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Metodo che inverte gli elementi presenti nel borsellino | ||||||
|  |      */ | ||||||
|  |     public void reverse() { | ||||||
|  |         String[] oldCoins = new String[actualSize]; | ||||||
|  |         oldCoins = Arrays.copyOf(coins, actualSize); | ||||||
|  |         for(int i = 0; i < actualSize; i++) { | ||||||
|  |             coins[i] = oldCoins[actualSize - i - 1]; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Metodo che restituisce il numero di valori presenti nel borsellino | ||||||
|  |      * @return Numero di valori presenti nel borsellino | ||||||
|  |      */ | ||||||
|  |     public int getSize() { | ||||||
|  |         return actualSize; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Metodo che restituisce il valore di una moneta alla posizione 'i' | ||||||
|  |      * @param i Posizione del valore richiesto | ||||||
|  |      * @return Valore (String) alla posizione 'i' | ||||||
|  |      */ | ||||||
|  |     public String getCoinValue(int i) { | ||||||
|  |         if(i >= actualSize || i < 0) throw new IllegalArgumentException("La moneta all'index" + i + "non è presente nel borsellino"); | ||||||
|  |         return coins[i]; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Metodo che imposta la moneta ad una posizione 'i' ad un valore 'value' | ||||||
|  |      * @param i Posizione in cui inserire il valore | ||||||
|  |      * @param value Valore (String) da inserire nel borsellino | ||||||
|  |      */ | ||||||
|  |     public void setCoinValue(int i, String value) { | ||||||
|  |         if(i >= actualSize || i < 0) throw new IllegalArgumentException("La moneta all'index" + i + "non è presente nel borsellino"); | ||||||
|  |         coins[i] = value; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Metodo che svuota il borsellino | ||||||
|  |      */ | ||||||
|  |     public void clear() { | ||||||
|  |         for(int i = 0; i < actualSize; i++) { | ||||||
|  |             coins[i] = ""; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Metodo che sposta le monete contenute in un altro borsellino | ||||||
|  |      * nel borsellino attuale | ||||||
|  |      * @param other Altro borsellino che viene svuotato | ||||||
|  |      */ | ||||||
|  |     public void transfer(Purse other) { | ||||||
|  |         for(int i = 0; i < other.actualSize; i++) { | ||||||
|  |             coins[actualSize + i] = other.coins[i]; | ||||||
|  |         } | ||||||
|  |         actualSize += other.actualSize; | ||||||
|  |         other.clear(); | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Metodo che confronta (per contenuto e posizione del contenuto) due borsellini | ||||||
|  |      * @param other Altro borsellino con cui viene confrontato l'attuale | ||||||
|  |      * @return True se i due borsellini contengono le stesse monete nella stessa posizione, false se non soddisfano queste condizioni | ||||||
|  |      */ | ||||||
|  |     public boolean sameContents(Purse other) { | ||||||
|  |         if(this.actualSize == other.actualSize) { | ||||||
|  |             for(int i = 0; i < actualSize; i++) { | ||||||
|  |                 if(coins[i] != other.coins[i]) return false; | ||||||
|  |             } | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  |         return false; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Metodo che confronta (per contenuto) due borsellini | ||||||
|  |      * @param other Altro borsellino con cui viene confrontato l'attuale | ||||||
|  |      * @return True se i due borsellini contengono le stesse monete, false se non soddisfa questa condizione | ||||||
|  |      */ | ||||||
|  |     public boolean sameCoins(Purse other) { | ||||||
|  |         if(this.actualSize == other.actualSize) { | ||||||
|  |             String[] copy = new String[actualSize]; | ||||||
|  |             for(int i = 0; i < actualSize; i++) { | ||||||
|  |                 copy[i] = other.coins[i]; | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             for(String coin : this.coins) { | ||||||
|  |                 for(int i = 0; i < actualSize; i++) { | ||||||
|  |                     if(coin == other.coins[i]) { | ||||||
|  |                         copy[i] = ""; | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             for(String coin : copy) { | ||||||
|  |                 if(coin != "") return false;  | ||||||
|  |             } | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  |         return false; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Metodo toString che restituisce i valori delle monente nel borsellino | ||||||
|  |      * @return Testo che indica le monete contenute nel borsellino | ||||||
|  |      */ | ||||||
|  |     @Override | ||||||
|  |     public String toString() { | ||||||
|  |         String text = "Purse["; | ||||||
|  |          | ||||||
|  |         for(int i = 0; i < actualSize; i++) { | ||||||
|  |             if(i != 0) text += ",";   | ||||||
|  |             text += coins[i]; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         text += "]"; | ||||||
|  |  | ||||||
|  |         return text; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -0,0 +1,21 @@ | |||||||
|  | public class PurseTester { | ||||||
|  |     public static void main(String[] args) { | ||||||
|  |         Purse borsellino = new Purse(50); | ||||||
|  |          | ||||||
|  |         Purse altroBorsellino = new Purse(50); | ||||||
|  |          | ||||||
|  |         borsellino.addCoin("Test1"); | ||||||
|  |         borsellino.addCoin("Test1"); | ||||||
|  |         borsellino.addCoin("Test1"); | ||||||
|  |         borsellino.addCoin("Test"); | ||||||
|  |         altroBorsellino.addCoin("Test"); | ||||||
|  |         altroBorsellino.addCoin("Test1"); | ||||||
|  |         altroBorsellino.addCoin("Test1"); | ||||||
|  |         altroBorsellino.addCoin("Test1"); | ||||||
|  |          | ||||||
|  |         System.out.println(borsellino.sameCoins(altroBorsellino)); | ||||||
|  |          | ||||||
|  |         System.out.println(borsellino.toString()); | ||||||
|  |         System.out.println(altroBorsellino.toString()); | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										29
									
								
								7.x/PN7.1 RunGenerator/RunGenerator.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								7.x/PN7.1 RunGenerator/RunGenerator.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | |||||||
|  |   | ||||||
|  | public class RunGenerator { | ||||||
|  |     public static void main(String[] args) { | ||||||
|  |         int[] values = {1,2,2,2,3,4,4,5,5,5,6,6,7,7,7,7,7,8,9,0}; | ||||||
|  |          | ||||||
|  |         boolean inRun = false; | ||||||
|  |          | ||||||
|  |         for(int i = 0; i < values.length; i++) { | ||||||
|  |             if(inRun) { | ||||||
|  |                 if(values[i] != values[i-1]) { | ||||||
|  |                     System.out.print(")"); | ||||||
|  |                     inRun = false; | ||||||
|  |                     if(i < values.length - 1 && values[i] == values[i+1]) { | ||||||
|  |                         System.out.print("("); | ||||||
|  |                         inRun = true; | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } else { | ||||||
|  |                 if(i < values.length - 1 && values[i] == values[i+1]) { | ||||||
|  |                     System.out.print("("); | ||||||
|  |                     inRun = true; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |              | ||||||
|  |             System.out.print(values[i]); | ||||||
|  |         } | ||||||
|  |         if(inRun) System.out.print(")"); | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										
											BIN
										
									
								
								7.x/PN7.1 RunGenerator/RunGenerator.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								7.x/PN7.1 RunGenerator/RunGenerator.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										35
									
								
								7.x/PN7.3 Riempimento/Riempimento.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								7.x/PN7.3 Riempimento/Riempimento.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | |||||||
|  |  | ||||||
|  | public class Riempimento { | ||||||
|  | 	public static void main(String[] args) { | ||||||
|  | 		boolean[] posti = {false, false, false, false, false, false, false, false, false, false}; | ||||||
|  | 		int occupati = 0; | ||||||
|  |  | ||||||
|  | 		while (occupati < posti.length) { | ||||||
|  | 			int centro = 0; | ||||||
|  | 			int maxSequence = 0; | ||||||
|  | 			int actSequence = 0; | ||||||
|  | 			for (int i = 0; i < posti.length; i++) { | ||||||
|  | 				if (!posti[i]) { | ||||||
|  | 					actSequence++; | ||||||
|  | 					if (actSequence > maxSequence) { | ||||||
|  | 						maxSequence = actSequence; | ||||||
|  | 						centro = i - actSequence / 2; | ||||||
|  | 					} | ||||||
|  | 				} else { | ||||||
|  | 					actSequence = 0; | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 			posti[centro] = true; | ||||||
|  | 			occupati++; | ||||||
|  |  | ||||||
|  | 			for(int i = 0; i < posti.length; i++) { | ||||||
|  | 				if(posti[i]) System.out.print("X"); | ||||||
|  | 				else System.out.print("_"); | ||||||
|  | 			} | ||||||
|  |  | ||||||
|  | 			System.out.println(); | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		 | ||||||
|  | 	}	 | ||||||
|  | } | ||||||
							
								
								
									
										
											BIN
										
									
								
								7.x/PN7.3 Riempimento/Riempimento.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								7.x/PN7.3 Riempimento/Riempimento.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										12
									
								
								Test somma floating point/FPSum.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Test somma floating point/FPSum.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | public class FPSum { | ||||||
|  |     public static void main(String[] args) { | ||||||
|  |         double sum = 0; | ||||||
|  |          | ||||||
|  |         for(int i = 0; i < 1000; i++) { | ||||||
|  |             sum += 1/(double)1000; | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         System.out.println("Numero teorico: 1"); | ||||||
|  |         System.out.println("Numero reale: " + sum); | ||||||
|  |     } | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user