JAVA année 2015 CP 2 série n 2. Exercices sur les conditionnelles, le contrôle de flot et les méthodes statiques

Documents pareils
TD3: tableaux avancées, première classe et chaînes

Initiation à la programmation en Python

Solutions du chapitre 4

Langage Java. Classe de première SI

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Chapitre 2 Devine mon nombre!

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Corrigé des TD 1 à 5

ACTIVITÉ DE PROGRAMMATION

Java Licence Professionnelle CISII,

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Découverte de Python

Plan du cours. Historique du langage Nouveautés de Java 7

I. Introduction aux fonctions : les fonctions standards

Cours Informatique Master STEP

INF 321 : mémento de la syntaxe de Java

Programme Compte bancaire (code)

Structurer ses données : les tableaux. Introduction à la programmation

Projet de programmation (IK3) : TP n 1 Correction

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Examen Médian - 1 heure 30

Introduction à JDBC. Accès aux bases de données en Java

TP 1. Prise en main du langage Python

Recherche dans un tableau

Chapitre 10. Les interfaces Comparable et Comparator 1

Programmation C++ (débutant)/instructions for, while et do...while

as Architecture des Systèmes d Information

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

TP, première séquence d exercices.

Objets et Programmation. origine des langages orientés-objet

Notions fondamentales du langage C# Version 1.0

Premiers Pas en Programmation Objet : les Classes et les Objets

Claude Delannoy. 3 e édition C++

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Programmer en JAVA. par Tama

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Utilisation d objets : String et ArrayList

Package Java.util Classe générique

Propagation sur réseau statique et dynamique

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Algorithmique et Programmation, IMA

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

1. Structure d'un programme FORTRAN 95

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Programmation avec des objets : Cours 7. Menu du jour

Programmation Objet - Cours II

KL5121. Pour activer des sorties en fonction de la position d'un codeur

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Introduction au langage C

1 Recherche en table par balayage

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Probabilités sur un univers fini

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan


Chapitre 1 : Évolution COURS

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

La question est : dans 450 combien de fois 23. L opération est donc la division. Le diviseur. Le quotient

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Un ordonnanceur stupide

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN :

Chapitre 4 Pierre, papier, ciseaux

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Probabilités sur un univers fini

Représentation d un entier en base b

Présentation du langage et premières fonctions

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

TD/TP PAC - Programmation n 3

Chap III : Les tableaux

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Introduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011

Chapitre 2. Classes et objets

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

CORRECTION EXERCICES ALGORITHME 1

Algorithmique et programmation : les bases (VBA) Corrigé

Chaînes de Markov au lycée

Résolution de systèmes linéaires par des méthodes directes

V- Manipulations de nombres en binaire

Bases de programmation. Cours 5. Structurer les données

Java DataBaseConnectivity

1. Langage de programmation Java

Corrigés des premiers exercices sur les classes

Introduction à MATLAB R

FANTEC DB-229US Manuel de l'utilisateur

Cours 7 : Utilisation de modules sous python

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Transcription:

JAVA année 2015 CP 2 série n 2 Exercices sur les conditionnelles, le contrôle de flot et les méthodes statiques Exercice 1 Écrire un programme Ex0201.java qui lit 3 nombres au clavier, les classes dans l'ordre croissant et les affiche du plus petit au plus grand sur la console. C:\JAVA\TP2>java Ex0201 1er nombre : 14 2ème nombre : 10 3ème nombre : 17 les nombres dans l'ordre croissant : 10 14 17 C:\JAVA\TP2> public class Ex0201 { int a1, a2, a3; System.out.println("Entrez le nombre 1 "); a1 = sc.nextint(); System.out.println("Entrez le nombre 2 "); a2 = sc.nextint(); System.out.println("Entrez le nombre 3 "); a3 = sc.nextint(); int max, min, mil; //max, min et le nombre du milieu /* on commence les comparaisons */ /* on compare le 1er et le 2eme */ if (a1>a2) { max = a1; mil = a2; else { mil = a1; max = a2; /* on compare le plus grand (entre le 1er et le 2eme) et a3 */ if (max > a3) /* on compare le milieu et a3 */

if (mil > a3) min = a3; else { int perm; perm = mil; mil = a3; min = perm; else { min = mil; mil = max; max = a3; max); System.out.println("Les 3 nombres dans l'ordre croissant sont : " + min + " " + mil + " " + Exercice 2 Écrire un programme qui lit au clavier une suite de nombres réels positifs ou nuls (correspondant à des notes), terminée par la valeur -1, et calcule la moyenne olympique de ces valeurs, c'est à dire la moyenne des notes sans prendre en compte la note la plus élevée ni la note la moins élevée. Exemple de trace d'exécution (en gras les valeurs introduites par l'utilisateur): C:\JAVA\TP2>java Ex0202 donnez une note ( >=0 ou -1 pour arrêter): 9.6 donnez une note ( >=0 ou -1 pour arrêter): 9.7 donnez une note ( >=0 ou -1 pour arrêter): 10.0 donnez une note ( >=0 ou -1 pour arrêter): 9.8 donnez une note ( >=0 ou -1 pour arrêter): 9.2 donnez une note ( >=0 ou -1 pour arrêter): 9.9 donnez une note ( >=0 ou -1 pour arrêter): -1 La note la plus élevée (10.0)et la note plus basse (9.2) ont été retirées La moyenne olympique est : 9.75 C:\JAVA\TP2> public class Ex0202 { float nb, max, min;

float somme = 0.0f; int nbval = 0; System.out.println("Donnez une note "); nb = sc.nextfloat(); max = min = nb; while (nb!= -1){ nbval++; if (nb > max) max = nb; if (nb < min) min = nb; somme = somme + nb; System.out.println("Donnez une note "); nb = sc.nextfloat(); System.out.println("La note la plus élevée ("+ max+ ") et la note la plus basse ("+ min +" ) ont été retirées"); somme = somme - max - min; System.out.println("La moyenne olympique est : "+ somme/ (float) nbval); Exercice 3 Écrire un programme affiche un motif triangulaire dont la taille est fixée par une valeur lue au clavier. Exemple de trace d'exécution (en gras les valeurs introduites par l'utilisateur): C:\JAVA\TP2>java Ex0203 donnez taille du motif : 7

* ** *** **** ***** ****** ******* public class Ex0203 { int taille, lignes, colonnes; System.out.print("Entrez la taille du motif "); taille = sc.nextint(); for(lignes = 1; lignes <= taille; lignes++){ for( colonnes = 1; colonnes <= lignes; colonnes++) System.out.print("*"); System.out.println(""); Exercice 4 Exercice 5 La suite de Fibonacci est définie par la formule de récurrence suivante: u1 = 1 u2 = 2 un = un-1 + un-2 ( n >= 3). Écrire un programme Ex0205.java qui permet de calculer le nième terme de la suite de Fibonacci, n étant fixé par l'utilisateur.

public class Ex0205 { int i, u, v, w; // u premier terme, v deuxième terme de la suite u = 0; v = 1; w = u + v; System.out.print("Donnez le rang de la suite "); int rang; rang = sc.nextint(); for(i = 0; i < rang; i++){ w = u + v; v = u; u = w; System.out.println("Le terme de rang " + rang + " est " + w); Exercice 6 Un nombre est n premier s'il a seulement deux diviseurs : 1 et n. Écrire un programme Ex0206.java qui permet de tester si un nombre introduit par l'utilisateur est premier ou non. Exemple de trace d'exécution (en gras les valeurs introduites par l'utilisateur): C:\JAVA\TP2>java Ex0206 donnez un entier positif : 7 7 est un nombre premier Voulez-vous essayer un autre nombre O/N? o donnez un entier positif : 25

25 n'est pas un nombre premier, il est divisible par 5 Voulez-vous essayer un autre nombre O/N? n Au revoir C:\JAVA\TP2> public class Ex0206 { System.out.print("Entrez un entier "); int n, i; n = sc.nextint(); /* vérification pour savoir si n est premier */ boolean est_premier = true; for(i = 2; i < n; i++) if ( (n % i) == 0) // si i divise n, i n'est pas premier est_premier = false; if (est_premier) System.out.println(n + " est premier"); else System.out.println(n + " n'est pas premier");

Exercice 7 Le jeu consiste à découvrir par essais successifs le prix d'un lot. Pour chaque essai, le joueur reçoit un message : "Trop grand", "Trop petit" ou "BRAVO! Vous avez trouvé en K essais". Le jeu est fini quand le joueur a trouvé le prix du lot. On propose d'écrire un programme JAVA Ex0207.java qui joue le rôle de meneur de jeu ; l'exécution de ce programme vous fera tenir le rôle du joueur. Le programme Ex0207 doit définir le prix du lot en tirant un entier aléatoire entre 1 et 1000 et dialoguer avec le joueur pendant le jeu. Pour choisir un nombre au hasard on utilisera la méthode random de la classe Math qui retourne un réel (double) tiré au hasard et de manière uniforme dans l'intervalle [0 1]. exemple : double x; x = Math.random(); exemple d'exécution du programme Ex0207 eudoxe%java Ex0207 Le but est de chercher un prix entre 0 et 1000 Tapez un prix : 566 Trop grand Tapez un prix : 400 Trop grand Tapez un prix : 150 Trop petit Tapez un prix : 200 Trop petit Tapez un prix : 214 BRAVO! Vous avez gagné en 5 essais public class Ex0207 { double x; int prix, essai; x = Math.random(); // valeur aléatoire entre 0 et 1 x = x *1000.0;

int v; v = (int) x; // transformation de x en entier System.out.println("Le but est de trouver un prix entre 0 et 1000"); System.out.print("Entrez un prix "); prix = sc.nextint(); essai = 1; while (v!= prix){ if (prix > v) System.out.println("Trop grand"); else System.out.println("Trop petit"); System.out.print("Entrez un prix "); prix = sc.nextint(); essai++; System.out.println("Bravo! Vous avez trouvé le prix de " + v + " en " + essai + " essais."); Exercice 8 Écrire un programme JAVA Ex0208.java permettant de calculer et d'afficher la valeur de x n où x et n sont respectivement un réel (double) et un entier introduits au clavier. Pour effectuer ce calcul on ne fera pas appel aux fonctions de la classe Math (pow ou exp et log), mais on utilisera des instructions itératives (for, while ou do while). Le programme devra permettre de traiter tous les cas possibles : n = 0, n > 0 et n < 0 avec X réel négatif, positif ou nul. Rappelons que : X^0 = 1 pour X > 0, On pourra organiser le calcul de la façon suivante : 0^0 = 1 par convention, X^0 n'est pas défini pour X < 0,

0^n = 0 pour n > 0, 0^n n'est pas défini pour n < 0. public class Ex0208 { /* programme de calcul de puissance */ double x; int n; System.out.print("Entrez x "); x = sc.nextdouble(); System.out.print("Entrez n "); n = sc.nextint(); if (n == 0){ /* cas où n = 0 */ if (x >= 0.0) System.out.println(1); else System.out.println("non défini"); else { /* cas ou n différent de 0 */

if (n > 0) { int i; double produit = 1.0; for(i = 0; i < n; i++) produit = produit*x; else { System.out.println(produit); /* cas où n < 0 */ if (x == 0.0) { System.out.println("non défini"); else { int i; double produit = 1.0; for(i = 0; i < -n; i++) produit = produit*x; produit = 1.0/produit; System.out.println(produit); Exercice 9 On considère un nombre réel positif A ; on sait que la suite (un) n=0,1,2,... définie par la donnée d'un réel u0 positif et par la relation de récurrence un = (un-1 + A / un-1) * 0,5 (pour n > 0) converge vers la racine carrée de A. On suppose le nombre A compris entre 1 et 100, et on prend u0 = A / 2.

Pour obtenir une valeur approchée de racine carrée de A, on cherche le premier terme un tel que un^2 - A < E-5. Le nombre trouvé est une valeur approchée de racine carrée de A ( en effet un^2 - A < E-5 implique que un- rac(a) < E-5 / ( un+ rac(a) où rac(a) correspond à la racine carrée de A). a) Écrire un programme JAVA Ex0209.java qui permet 1. de lire le nombre A, 2. de calculer et d'afficher les approximations intermédiaires et la valeur approchée de la racine carrée de A définie ci-dessus. Exemple de l'état de l'écran obtenu par exécution du programme Raca1 : Entrer un nombre A entre 1 et 100: 19.23 Approximations successives : u0 = 9.615 u1 = 5.8075 u2 = 4.559367735686612 u3 = 4.388528900180239 u4 = 4.385203650605606 Valeur approchée de la racine carrée = 4.385202389856321 Indications pour écrire le programme : définir une constante : static final double EPS = 1E-5; - utiliser une boucle tant que : while (....... >= EPS) {......... public class Ex0209 { /* calcul de la racine carrée par approximations succesives */ final double EPS = 1E-5; double x, u; int i = 0; System.out.print("Entrez un nombre dont vous souhaitez calculer la racine "); x = sc.nextdouble();

u = x/2.0; System.out.println("Approximations successives"); /* boucle de calcul */ while (Math.abs(u*u -x) >= EPS) { System.out.println("u" + i + " = " + u); u = (u + x/u)*0.5; i++; System.out.println("Valeur approchée de la racine carrée " + u);