Exercices dirigés séance n 2 - corrigé



Documents pareils
Solutions du chapitre 4

ACTIVITÉ DE PROGRAMMATION

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

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

Flux de données Lecture/Ecriture Fichiers

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

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

TP, première séquence d exercices.

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

Langage Java. Classe de première SI

Corrigés des premiers exercices sur les classes

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Les structures. Chapitre 3

Corrigé des exercices sur les références

Initiation à la programmation en Python

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

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


Tp 1 correction. Structures de données (IF2)

PROGRAMMATION PAR OBJETS

Java Licence Professionnelle CISII,

INF 321 : mémento de la syntaxe de Java

Programmation par les Objets en Java

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Gestion distribuée (par sockets) de banque en Java

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Présentation du langage et premières fonctions

1. Langage de programmation Java

Cours 1: Java et les objets

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

Les chaînes de caractères

as Architecture des Systèmes d Information

UE Programmation Impérative Licence 2ème Année

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Programmer en JAVA. par Tama

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

Chapitre 10. Les interfaces Comparable et Comparator 1

Les bases de l informatique et de la programmation. École polytechnique

Le langage C. Séance n 4

ALGORITHMIQUE ET PROGRAMMATION En C

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

TP1 : Initiation à Java et Eclipse

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Utilisation d objets : String et ArrayList

Algorithmique et programmation : les bases (VBA) Corrigé

I. Introduction aux fonctions : les fonctions standards

Programmation Objet Java Correction

Introduction au langage C

Algorithmique et Programmation, IMA

Cours d initiation à la programmation en C++ Johann Cuenin

Chap III : Les tableaux

TP 1. Prise en main du langage Python

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

TP1. Outils Java Eléments de correction

Généralités sur le Langage Java et éléments syntaxiques.

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

Notions fondamentales du langage C# Version 1.0

Chapitre 2 Devine mon nombre!

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

TD/TP PAC - Programmation n 3

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Premiers Pas en Programmation Objet : les Classes et les Objets

TD/TP PAC - Programmation n 3

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Auto-évaluation Programmation en Java

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

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

Applet pour visualiser les variables «automate» notifiées

Programmation système I Les entrées/sorties

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

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

Programmation Orientée Objet Java

Java DataBaseConnectivity

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

Programmation en Java IUT GEII (MC-II1) 1

COMPARAISONDESLANGAGESC, C++, JAVA ET

Initiation. àl algorithmique et à la programmation. en C

Programmation Orientée Objets Le Langage JAVA

Claude Delannoy. 3 e édition C++

Une introduction à Java

Algorithmique, Structures de données et langage C

Rappels Entrées -Sorties

ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C

Exercices sur les interfaces

Introduction à l algorithmique et à la programmation M1102 CM n 3

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

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

Programme Compte bancaire (code)

Découverte de Python

Apprendre Java en 154 minutes

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Machines virtuelles fonctionnelles (suite) Compilation ML Java

Transcription:

Exercices dirigés séance n 2 - corrigé Exercice 1 : volume d'un cylindre Ecrire un programme qui saisit le rayon et la longueur d'un cylindre puis calcule et affiche son volume. On utilisera les formules suivantes : surface = rayon * rayon * π volume = surface * longueur o déclarer les variables appropriées o saisir les valeurs de rayon et longueur Note : pour saisir une donnée au clavier, on utilise la classe java.util.scanner Il faut l importer : import java.util.scanner ; puis créer un objet capable de lire une donnée à partir du clavier et initialiser la variable de type Scanner : Scanner input = new Scanner(System.in) ; // System.in représente le clavier puis lire la donnée selon son type : double d = input.nextdouble(); int a = input.nextint(); float f = input.nextfloat(); o effectuer les calculs o afficher le résultat Rappel : System.out.println( <param> ) où <param> est une chaîne de caractères. L'opérateur + est surchargé afin de convertir les valeurs des types primitifs en String : Selon le type choisi pour les données saisies (double ou float), le programme se comportera différemment. Expliquer. On remplace la valeur littérale 3.14159 par Math.PI (une constante de type double). Selon le type choisi pour les variables, une erreur peut survenir à la compilation. Pourquoi? Comment corriger cette erreur? Avec le type float : public class Exo1{ System.out.print(" rayon : "); float rayon = input.nextfloat(); System.out.print(" longueur : "); float longueur = input.nextfloat(); float surface = rayon*rayon*(float)math.pi; System.out.print(" volume : "+longueur*surface); VARI ED n 2 premiers programmes corrigé 1

résultat avec le type double rayon : 56,8 longueur : 3,4 volume : 34460.808401239614 résultat avec le type float rayon : 56,8 longueur : 3,4 volume : 34460.81 Il faut convertir : (float)math.pi Exercice 2 : calcul du service Ecrire un programme qui saisit un prix et le taux du service puis calcule et affiche le total à payer et le service. Par exemple, si le prix est de 10 et le taux du service de 15%, le programme affichera 1.5 pour le service et 11.5 pour le total. On considère que le prix saisi sera de type float tandis que le service saisi sera de type int. Pour afficher le caractère, on utilisera sa valeur unicode : '\u20ac' Le service est calculé par la formule : prix*taux/100. Le service est calculé par la formule : prix*(taux/100). import java. util.scanner; public class Exo2{ System.out.print(" prix : "); float prix = input.nextfloat(); System.out.print(" taux : "); int taux = input.nextint(); float service = prix*taux/100; System.out.println(" service : "+service+'\u20ac'); float total = prix+service; System.out.println(" total : "+total+'\u20ac'); résultat prix : 56,80 taux : 15 service : 8.52 total : 65.32 VARI ED n 2 premiers programmes corrigé 2

Avec float service = prix*(taux/100); Résultat prix : 56,80 taux : 15 service : 0.0 total : 56.8 Exercice 3 : expression conditionnelle Ecrire un programme qui détermine si un entier est divisible par 5 ou 6. On affichera le message suivant : 45 divisible par 5 ou 6 est : vrai ou 67 divisible par 5 ou 6 est :faux Rappel : syntaxe de l'opérateur ternaire expression booléenne? valeur1 : valeur2 public class Exo3{ System.out.print(" Entier : "); int entier = input.nextint(); String res = entier%5==0 entier%6==0? "vrai":"faux"; System.out.println(entier +" divisible par 5 ou 6 est : "+res); Modifier le programme pour déterminer si l'entier est divisible par 5 et 6 String res = entier%5==0 && entier%6==0? "vrai":"faux"; Modifier le programme pour déterminer si l'entier est divisible par 5 ou 6 mais pas à la fois par 5 et par 6. String res = entier%5==0 ^ entier%6==0? "vrai":"faux"; VARI ED n 2 premiers programmes corrigé 3

Exercice 4 : le type String Ecrire un programme qui saisit un nom (par exemple martin) et un prénom (par exemple jean) puis affiche la saisie sous la forme : nom : "martin" prénom : "jean" public class Exo4{ System.out.print(" Nom : "); String nom1 = input.next(); System.out.print(" Prénom : "); String prenom1 = input.next(); System.out.print(" Nom : "); String nom2 = input.next(); System.out.print(" Prénom : "); String prenom2 = input.next(); System.out.println("nom : "+"\""+nom1+"\""+ " prénom : "+"\""+prenom1+"\""); Compléter ce programme pour afficher les initiales en majuscules String s1 = nom1.touppercase(); String p1 = prenom1.touppercase(); System.out.println("initiales : "+s1.charat(0)+"."+p1.charat(0)); Compléter ce programme pour afficher le nombre de lettres d'un nom. System.out.println("nombre de lettres : "+s1.length()); Question 4 Compléter ce programme pour afficher : noms identiques ou noms différents System.out.println(nom1.equals(nom2)?"noms identiques":"noms différents"); Question 5 Modifier le programme pour permettre la saisie sous la forme d'une interface graphique (IHM), il faut importer la classe javax.swing.joptionpane. Pour une saisie : VARI ED n 2 premiers programmes corrigé 4

String donnee = JOptionPane.showInputDialog(null, "entrez une donnée", "Boîte de saisie", JOptionPane.QUESTION_MESSAGE); Pour terminer la saisie : int reponse = JOptionPane.showConfirmDialog(null," Voulez vous continuer?"); Pour afficher un résultat : JOptionPane.showMessageDialog(null, "affichage des résultats", "Titre de la boîte", JOptionPane.INFORMATION_MESSAGE ); VARI ED n 2 premiers programmes corrigé 5

Exercice 5 : remboursement de prêts Ecrire un programme qui, à partir des données suivantes : taux d intérêt annuel, durée du remboursement, montant du prêt, calcule et affiche les traites mensuelles et le montant total à rembourser. On donne la formule pour calculer le montant traite des traites mensuelles : Soit p le montant du prêt, tm le taux d intérêt mensuel et n la durée (en années) du prêt traite = p*tm/(1-(1/(1+tm)**n*12)) Pour calculer le taux mensuel tm à partir du taux annuel t : tm = t/1200 Note : en Java, pour effectuer l opération a**b, on écrit Math.pow(a,b) Ecrire l algorithme, solution du problème Traduire l algorithme en Java Test du programme import static java.lang.system.*; public class Pret{ public static void main( String[] args){ out.print(" Entrer le taux d'intérêt annuel : "); double taux = input.nextdouble(); out.print(" Entrer la durée du prêt : "); int duree = input.nextint(); out.print(" Entrer le montant du prêt : "); double montant = input.nextdouble(); // calcul du taux d'intérêt mensuel double tm = taux/1200; // calcul du montant de la traite mensuelle double traite = montant*tm/(1-(1/math.pow(1+tm,duree*12))); // ne conserver que 2 chiffres après la virgule traite = (int)(traite*100)/100.; // calcul du remboursement total double total = (int)( traite*duree*12*100)/100.; // affichage des résultats out.println("montant des traites mensuelles : "+traite); out.println("montant total remboursé : "+total); VARI ED n 2 premiers programmes corrigé 6