ISN LORGUES TD Durée : 2H TD - Algo Java Eclipse 1. L’Algorithme de conversion d’un entier écrit en base 10 vers la base b. 1.1. Exemple d’utilisation : A l’aide du tableau ci-dessous traduire n=45 en binaire (base b=2) Entier n Quotient division par b Reste de la division par b Justification 45 22 1 45 = 2 x 22 + 1 Conclusion : 53= ( ………………. )2 1.2. Algorithme utilisé lors de ces calculs : Un algorithme est une suite finie séquentielle de règles que l’on applique à un nombre fini de données, permettant de résoudre une classe de problèmes semblables. 1.3. Traduction de notre algorithme en langage courant. → Données nécessaires au traitement (devront être déclarées dans le programme): * …. * …. * …. * …. → Traitement : Saisir l’entier n (au clavier) Saisir l’entier b Tant que n strictement positif, faire : Calculer q, le quotient de la division de n par b Calculer r, le reste de la division de n par b Afficher r Remplacer n par q. → Sortie des résultats : Affichage des restes au fur et à mesure Traduction de cet algorithme en Java 1.5. import java.util.Scanner; public class changement_base { /** * @param args */ public static void main(String[] args) { Scanner saisie = new Scanner(System.in); System.out.println("Veuillez saisir un nombre n :"); int n = saisie.nextInt(); System.out.println("Veuillez saisir une base b :"); int b = saisie.nextInt(); System.out.println("Résultat, à lire de bas en haut:"); int q,r; while (n>0) { q=n/b; r=n%b; System.out.println(r); n=q; } } } Créez un nouveau projet sous « Eclipse » voir le fichier « Utilisation Eclipse.pdf ». Recopiez le code de la fonction « main ». Exécutez le programme. 2. Un deuxième algorithme. 2.1. Algorithme → Préparation du traitement : Demander trois nombres entiers a, b et c positifs avec c le plus grand des 3. → Traitement : Calculer x =a² + b² Si x est égal à c² alors : conclusion= « Le triangle ayant pour côtés a, b et c est rectangle » sinon : conclusion= « Le triangle ayant pour côtés a, b et c n’est pas rectangle » → Sortie des résultats : Afficher la phrase Conclusion Traduction de cet algorithme en Java 2.3. import java.util.Scanner; public class triangle { public static void main(String[] args) { // TODO Auto-generated method stub Scanner saisie = new Scanner(System.in); System.out.println("Veuillez saisir un entier a :"); int a = saisie.nextInt(); System.out.println("Veuillez saisir un entier b :"); int b = saisie.nextInt(); System.out.println("Veuillez saisir un entier c :"); int c = saisie.nextInt(); if (a*a+b*b==c*c) { System.out.println("le triangle est rectangle."); } else { System.out.println("le triangle n'est pas rectangle."); } } } Créez un nouveau projet sous « Eclipse » voir le fichier « Utilisation Eclipse.pdf ». Recopiez le code de la fonction « main ». Exécutez le programme. 3. Exercices: AFFECTATION DES VARIABLES En algorithmique, l’affectation se code ← et l’on dit « prend la valeur ». À l’issue des algorithmes suivants : A←1 B←A+1 A←B+2 B←A+2 A←B+3 B←A+3 N←1 S←N N←N+1 S←S+N N←N+1 S←S+N N←N+1 S←S+N N←N+1 S←S+N Quelles sont les valeurs contenues dans les variables Quelles sont les valeurs contenues dans les variables A et B ? N et S ? A = …..... B = …...... N = …..... S = …...... 4. Exercices : ALGORITHMMES 4.1) Périmètre et aire d’un rectangle Écrire un algorithme demandant à l’utilisateur la longueur et la largeur d’un rectangle, et affichant son périmètre et son aire. 4.2) Rendre la monnaie On désire écrire un algorithme aidant à rendre la monnaie. On suppose qu’on dispose d’un nombre illimité de pièces de 1, 2, 5, 10, 20 et 50 centimes. Une somme S (en centimes) étant donnée, on veut la décomposer en le plus petit nombre possible de pièces de monnaie. Par exemple, si l’on doit rendre 93 centimes, le programme devra afficher : Pour rendre 93 centimes, il faut donner : - 1 pièce de 50 centimes, - 2 pièces de 20 centimes, - 0 pièces de 10 centimes, - 0 pièces de 5 centimes, - 1 pièces de 2 centimes, - 1 pièces de 1 centime