ING 1 - POO Java année 2016 -2017 Correction Rappel Syntaxe

publicité
ING 1 - POO Java année 2016 -2017
Correction
TD n°1
Rappel Syntaxe
En Java, la boucle pour a la forme suivante :
for (var = b1 ; var <= b2 ; var = var + val)
instructions ou bloc d’instructions
Exemple :
int i ;
for (i=1 ; i<= n ; i= i+1)
System.out.println.println(‘‘Iteration numero ‘‘+ i) ;
2. En Java, la boucle tant que a la forme suivante :
while (condition) instructions ou bloc d’instructions
Exemple :
int n = 0 ;
while(n * n < K) {
n++ ; System.out..println(n);
}
Boucle For Exercice 1 :
Affichage
1.
Écrire un programme qui affiche une ligne contenant n symboles *, n étant entré par
l’utilisateur
2.
Écrire un programme qui affiche un carré plein de n par n.
public class Ex0101 {
public static void main(String [] args){
final int n = 15;
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++)
System.out.print("*");
System.out.print("\n");
}
}
}
Exercice 2 : Puissance d’un nombre
1. écrire un programme qui calcule la nième puissance d’un nombre x entré par l’utilisateur
2,53 = 15,625
import java.util.Scanner;
public class Ex0102 {
/**
Calcul de la puissance
n-ième d'un nombre rentré par l'utilisateur */
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
double x;
int n;
System.out.print("Entrez le nombre ");
x = sc.nextDouble();
System.out.print("Entrez la puissance ");
n = sc.nextInt();
double resultat = 1.0;
for(int i = 1; i <= n; i++)
resultat *= x;
System.out.println("\n" + x + "^" + n + "=" +resultat);
}
}
Exercice 3 : Une suite
écrire un programme qui calcule la somme des carrés des n premiers nombres pairs.
Par exemple : 22 + 42 +62 =
Exercice 4 : deux suites
On définit trois suites :
1
1
A 0=1 B0 =
C 0=
2
4
√
A n +1=( A n+ B n)/2
On admet que lim (
n→∞
n
Bn+1= √ A n Bn Cn +1=C n−2 (
( A n +Bn)2
4∗C n
( A n−B n)
)
2
) converge vers π
Écrire le programme qui calcule l’approximation de π
Note/Rappel : la méthode Math.sqrt(x) calcule la racine carrée de x
Note supplémentaire : visiblement comme cela a été vu en TP, la suite ne converge pas du tout vers
π !
import java.util.Scanner;
public class Ex0104 {
/**
Calcul de la puissance
n-ième d'un nombre rentré par l'utilisateur */
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
double a,b,c;
int iter;
a = 1.0;
b = Math.sqrt(1.0/2.0);
c = 1.0/4.0;
System.out.println("Entrez le nombre d'itérations ");
iter = sc.nextInt();
double ancienA, ancienB;
for(int i = 1; i < iter; i++){
ancienA = a;
ancienB = b;
a = (a + b)/2.0;
b = Math.sqrt(ancienA*ancienB);
c = c - Math.pow(2.0,i)*((ancienA - ancienB)/2.0)*((ancienA - ancienB)/2.0);
}
double resultat = (a + b)*(a + b)/(4.0 * c);
System.out.println(resultat);
}
}
Exercice 5 : Boucle while : la suite de Syracuse
La suite de Syracuse est définie de la manière suivante à partir d’un entier n saisi au clavier
U 0=n
U n+ 1=U n /2 si n est pair
U n+ 1=3∗U n+ 1 sinon
Écrire un programme qui affiche tous les termes de la suite de Syracuse jusqu’au moment où celleci arrive à la valeur 1. On n’est pas certain que la suite converge vers 1 mais on a jamais jusqu’à
maintenant trouvé de contre-exemple
import java.util.Scanner;
public class Ex0105 {
// Suite de Syracuse
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
System.out.print("Entrez un entier ");
int nombre = sc.nextInt();
while (nombre != 1){
System.out.print(nombre + " ");
// cas o¨ le nombre est pair ou impair
if ((nombre % 2) == 0)
nombre /= 2;
else
nombre = 3*nombre + 1;
}
System.out.println(nombre);
}
}
Téléchargement