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

Documents pareils