Tp02_Corrigé
Transcription
Tp02_Corrigé
TP02 - Corrigé Partie I Exercice 1 //Init variable double t=13; double h=3; String messageHeure=""; String messageTemperature=""; //Temperature if(t<0){ messageHeure="il gèle"; } else if(t>=0 & t<10){ messageTemperature="il faid froid"; } else if(t>=10 & t<25){ messageTemperature="il fait bon"; } else{ messageTemperature="il fait chaud"; //Heure if(t>=6 & t<12){ messageHeure="C'est le matin"; } else if(t>=12 & t<18){ messageHeure="C'est l'après-midi"; } else if(t>=18 & t<23){ messageHeure="C'est le soir"; } else{ messageHeure="C'est la nuit"; } //Print results System.out.println(messageHeure + " et " + messageTemperature); 1/4 TP02 - Corrigé Exercice 2 //Init String s= ""; for(int i=5;i>=1;i--){ //Reduces number of stars to be printed for(int j=1;j<=i;j++){ //Prints number of stars s=s+"*"; } s=s+"\n"; } //Print System.out.println(s); Exercice 3 double d = Math.random()*11 - 7; On multiplie par 11 car l’espace qu’on essaie de couvrir s’étant de 4 à –7 ; on calcule donc : 4 – (-7) = 11 Après on décale le numéro aléatoire entre 0 et 11 de –7 pour arriver à notre nombre voulu. Exercice 4 int e = (int)(Math.random( )*12)-7; Il est important de mettre les parenthèses autour, sinon le casting s’applique tout de suite au nombre aléatoire avant de le multiplier avec 12. On multiplie par 12 et non pas par 11 car on veut que les bornes soient comprises. Vue qu’avec le casting on perd toute la partie derrière le virgule (pas d’arrondissement !) il faut étendre le domaine de 1 pour ne perdre la possibilité d’obtenir la valeur 4. Exercice 5 //Init int int int int a = (int)(Math.random()*100)+1; b = (int)(Math.random()*100)+1; a1 = a; // copier les valeurs originales pour après le boucle... b1 = b; //Execute while(b != 0){ 2/4 TP02 - Corrigé int f =b; b = a % b; a = f; } int pgcd = a; /* le ppcm se calcule facilement ˆ partir du pgcd. */ int ppcm = a1*b1 / pgcd; System.out.println("A="+a1+"\tB="+b1); System.out.println("PGCD:"+pgcd+"\tPPCM:"+ppcm); Partie II public class Vecteur{ public static void main (String[] args){ //Init int[] a=new int[10]; for(int i=0;i<a.length;i++) a[i]=(int)(10*Math.random()+1); //Value of even positions System.out.println("Even"); for(int i=0;i<a.length;i++) if(i%2==0)System.out.print(i+")Value: "+a[i]+"\t"); //Value of odd positions System.out.println("\nOdd"); for(int i=0;i<a.length;i++) if(i%2==1)System.out.print(i+")Value: "+a[i]+"\t"); //Max/min int max=Integer.MIN_VALUE; int min=Integer.MAX_VALUE; for(int i=0;i<a.length;i++){ if(max<a[i])max=a[i]; if(min>a[i])min=a[i]; } System.out.print("\n\nMax: "+max+"\tMin:"+min); //Sum int sum=0; for(int i=0;i<a.length;i++) sum+=a[i]; System.out.println("\tVector elements' sum: "+sum); //Find element int lucky=10; for(int i=0;i<a.length;i++) if(a[i]==lucky){System.out.println("The lucky number "+lucky+" has been found on position "+i); break;} else if(i==(a.length-1))System.out.println("The lucky number has been not found :("); } } 3/4 TP02 - Corrigé Partie III public class Equation{ public static void main (String[] args){ //Init int dim=10, range=10; double[][] eq=new double[dim][3]; //Create a table of 10 lines //Initialize for(int i=0;i<dim;i++){ for(int j=0;j<3;j++) eq[i][j]=range*Math.random()-range/2;//Gives a value to each cell System.out.println("Equation n."+i+":"+eq[i][0]+"x*x+"+eq[i][1]+"x +"+eq[i][2]); } //Solve for(int i=0;i<dim;i++) System.out.println("Equation n."+i+": "+solve(eq[i][0],eq[i] [1],eq[i][2])); } public static String solve (double a, double b, double c){ double radical=b*b-4*a*c; //Gives the radical double solution1=0.0, solution2=0.0; String message=""; if(a!=0){ if(radical>0){ solution1=(-b+Math.sqrt(radical))/2*a; solution2=(-b-Math.sqrt(radical))/2*a; message="Il y a deux solutions à l'équation: solution 1 = " + solution1 + " solution2 = "+ solution2; } else if(radical==0){ solution1=-b/(2*a); message="Il y a une solution à l'equation: " +solution1; } else{ message="Il n'y a pas de solution pour cette équation"; } } else if(b!=0){ solution1= -c/b; message="Il y a une solution à l'equation: " +solution1; } else{ message="Il n'y a pas de solution pour cette équation"; } return message; } } 4/4