# Java - Librairie de classes utiles ###### tags: `java` `POO` `gobelins` ## Calcul de Pi ``` public class Pi { public static void main(String[] args) { double pi = Math.sqrt(2); int iteration = 100; for (int i = 0; i < iteration; i++) { double pow = Math.pow(0.5 * pi,2); pi = Math.sqrt(pow + Math.pow(1-Math.sqrt(1-pow),2)); } System.out.println(Math.pow(2,iteration +1)*pi); } } ``` ## Minimum d'un tableau ``` public class Minimum { static int MiniumTableau(int[] tableau) { if(tableau.length == 0){ throw new RuntimeException("Le tableau est vide"); } int minimum = tableau[0]; for(int i = 0; i < tableau.length; i++) { if(tableau[i] < minimum){minimum = tableau[i];} } System.out.println(minimum); return minimum; } public static void main(String[] args) { int tableauEntier[] = {}; MiniumTableau(tableauEntier); } } ``` ## Moindre carré ``` public class LeastSquare { public static void main(String[] args) { double tabx[] = {1,2,3}; double taby[] = {1,1.5,1.78}; int N = tabx.length; // Conditions if(tabx.length != taby.length){throw new RuntimeException("les tableaux ne sont pas de la même taille");} if(N == 0){throw new RuntimeException("Un des tableaux est vide");} // Calculate a and b double sumXperY = 0; double sumX = 0; double sumY = 0; double sumXsquare = 0; double squaresumX = 0; for(int i = 0; i < N; i++) { sumX += tabx[i]; sumXsquare += Math.pow(tabx[i],2); sumY += taby[i]; sumXperY += tabx[i] * taby[i]; } squaresumX = Math.pow(sumX,2); double numerator = 2*sumXperY-(2.0/N)*sumX*sumY; double denominator = 2*sumXsquare-(2.0/N)*squaresumX; // Conditions if(denominator < 1e-6){throw new RuntimeException("Le carré n'est pas possible");} double a = numerator / denominator; double b = (1.0/N) * (sumY-a*sumX); System.out.println("a = "+a); System.out.println("b = "+b); // Calculate error double error = 0; for(int i = 0; i < N; i++) { error += Math.pow(a*tabx[i]+b-taby[i],2); } System.out.println("error = "+error); } } ``` Les conditions sont testées pour assurer le bon fonctionnement du programme. ## Tri d'un tableau ``` import java.util.ArrayList; public class SortingArray { public static void main(String[] args) { ArrayList<Integer> table = new ArrayList<Integer>(); table.add(6); table.add(3); table.add(8); table.add(1); table.add(5); Sorting(table); } static void Sorting(ArrayList<Integer> array) { int length = array.size(); if(length == 0){ throw new RuntimeException("Le tableau est vide"); } ArrayList<Integer> sortedTable = new ArrayList<Integer>(); for(int i = 0; i < length; i++) { // Solution 1 int val = array.get(getMinIndex(array,0)); sortedTable.add(val); int index = searchIndex(array,val); array.remove(index); // Solution 2 (cassé) int indexMin = getMinIndex(theArray,i); int minimum = theArray.get(indexMin); swap(theArray,indexMin,minimum,i); System.out.println(sortedTable.get(i)); } } static int getMinIndex(ArrayList<Integer> array, int n) { if(array.size() == 0){ throw new RuntimeException("Le tableau est vide"); } int minimum = array.get(n); int index = n; for(int i = n; i < array.size(); i++) { if(array.get(i) < minimum){ minimum = array.get(i); index = i; } } return index; } static int searchIndex(ArrayList<Integer> array, int value){ if(array.size() == 0){ throw new RuntimeException("Le tableau est vide"); } int index = -1; for(int i = 0; i < array.size(); i++) { if(array.get(i) == value){ index = i; } } return index; } static void swap(ArrayList<Integer> array, int indexMin, int minimum, int position){ array.set(indexMin,array.get(position)); array.set(position,minimum); } } ```