Chapitre 2
Transcription
Chapitre 2
Introduction à Java’s Cool – Programmer les conversions REMARQUE enregistrer vos programmes dans le répertoire : …\…..\ ISN \Chap 2 Introduction à Java’s Cool ** Ouvrir Java’s Cool ** Plusieurs activités sont possibles ( nommées Proglets). Double-cliquer sur abcdAlgos. ** Une fenêtre s’ouvre : Zone pour écrire le code Zone « Fichier » Zone où s’affiche : ** le résultat du programme ( Console) ** une aide sur la proglet en cours ** des rappels basiques sur Java’s Cool ( Mémo) ** Lire la partie Mémo et la partie 4 D’autres formes de boucles dans « Aide de la proglet programmer avec des boucles » . ** Un programme Java est une suite de déclarations (exemple: déclaration de variables, avec leurs types) et de fonctions . Une fonction , la fonction principale, est obligatoire car elle est exécutée en premier : void main( ) { …….} Les parenthèses indiquent que c’est 1 fonction. Les accolades { } délimitent 1 bloc . 1] Premiers programmes : utilisation de quelques mots-clés 11) Utilisation de println( ) Taper le programme : void main(){ println(« Bonjour à tous ! je m’appelle [votre prénom] et je suis en ISN. ») ; } Le point-virgule ; est le séparateur d’instructions. Faire Compiler , Enregistrer sous programme1 , Exécuter. Compiler permet de traduire le code en langage binaire exécutable par le processeur . Le programme s’exécute et affiche ( = imprime sur 1 ligne) le texte entre les « » . 12) Les types de variables Chaque variable doit être déclarée avec son type . ** int : type entier ( >0 ou <0) ** String : type chaîne de caractères (ex: String prenom = "Jean";) ** int[ ] désigne le type tableau d’entiers. Exemple : int[ ] monTab = new int[8] ; crée 1 tableau d’entiers qui s’appelle monTab,ce tableau a 8 cases et les cases vont de monTab[0] à monTab[7]. programme2 : void main(){ int monAge = 17 ; println(« Bonjour à tous ! je m’appelle [votre prénom] et j’ai » + monAge + « ans. ») ; } Noter l’utilisation des + programme3 : Ecrire le prog. qui affiche « Bonjour à tous ! je m’appelle Jean et j’ai 17 ans. » Remplacer Jean et 17 par vos valeurs ; utiliser String. 13) readInteger( ) ; readString( ) Ces fonctions lisent 1 entier ou 1 chaîne de caractères entrés au clavier . programme4 : comme le 3, mais le nom et l’âge sont entrés au clavier. 14) La boucle for for ( int n = 0; n < N; n = n+1) { Bloc d'instructions } L’instruction permet de faire une boucle où la variable n va de 0 à N exclu . programme5 : faire N = 8 ; imprimer les valeurs de n et expliquer comment la boucle fonctionne. programme6 : déclarer 1 tableau monTab de 8 entiers ; remplir le tableau avec 1 boucle for ; afficher les valeurs du tableau sous la forme : tab[0]= 10 tab[1] = 20 ……. etc Remarque , 1 tableau d’entiers peut aussi se déclarer selon : int[] monTab = { 0, 10, 20, 30, 40} ; ( on le déclare et on l’initialise sur 1seule ligne ) . Les commentaires : Si 1 ligne commence par // , elle est mise en commentaire et donc n’est pas exécutée ; L’ensemble /* …………………….*/ est 1 commentaire sur plusieurs lignes. 2]Conversion binaire ==décimal Le programme7 convertit 1 binaire de 8 octets en 1 décimal . ** le nombre binaire est considéré comme 1 tableau d’entiers, ** les bits sont entrés 1à 1 au clavier, ** le nombre binaire est affiché sur 1 ligne ( utiliser print( ) ) ** la conversion est faite ** le décimal est affiché . Fonction utile : la fonction Math.pow(a,b) réalise le calcul a b ; tester cette fonction dans 1 programme. Avant d’écrire le programme en Java, on écrit un algorithme . L’algorithme décrit en français ( ou presque !) le déroulement de la conversion ; ensuite on traduit l’algorithme en Java . Il se présente de la façon suivante : Algorithme Algorithme principal Début Variable1 : type Variable2 : type Variable ………. // initialiser si c’est possible Variable1 = ……. Afficher( « Entrer le nombre binaire ») // boucle for Pour Variable1 de … à …. (par pas de 1) Début Entrer le binaire Fin Pour Afficher (« Le nombre binaire = » ) // boucle for Pour Variable1 de … à …. (par pas de 1) Début Afficher le binaire Langage Java void main() { // boucle for { } // boucle for { } // boucle for pour la conversion Fin Pour // boucle for pour la conversion Pour Variable1 de …. à … (par pas de 1) Début Conversion Fin Pour { } Afficher(« le décimal vaut : » valeur ) } Fin 3] La conversion décimal == binaire 31) On peut concaténer des chaînes de caractères Programme8 : Entrer votre prénom dans 1 chaîne , votre nom dans 1 autre ; On considère que la chaîne identité = prénom nom Afficher l’identité à partir de nom et prénom Remarques : 1.Cela fonctionne-t-il avec des entiers ? pourquoi ? 2. On peut concaténer 1 String et 1 entier , et le résultat est 1 String ; le vérifier. 3. Attention à l’écriture : 7 est un entier , mais «7 » est un String ! On va considérer que le binaire est 1 String ** Entrer 1 entier entre 0 et 255 ** Le convertir , en cherchant les restes des divisions par 2, ** afficher le binaire ( écrire d’abord l’algorithme ; programme9 ) Méthode légèrement différente avec la fonction modulo : entière de 2 variables de type numérique. Tester quelques valeurs : 5 % 2 ; 99 % 8 ; 12 % 3 ; ….. Modifier le programme9 en utilisant % . cette fonction notée % nous donne le reste de la division 32) Autre méthode a) La boucle while while (expression Booléenne) { Bloc d' instructions } Exemple: while( n < 10) { println("Hello World !"); n = n + 1; } Une expression booléenne est « Vrai » ou « Faux » Tester le programme, programme10 . Remarques 1. le test « n égal 10 » ne s’écrit pas n= 10 mais n = = 10 2. la boucle while est utile si on ne sait pas à l’avance le nombre de boucles à faire 3. En algorithmique , 1 boucle while s’écrit : Tant que ( test) Début Action1 Action2 ….. Fin Tant que b) Conversion ( traduction exacte de ce que l’on fait à la main ) ** Entrer le décimal à convertir ** Le nombre binaire est 1 tableau d’entiers ** Faire la conversion par des divisions successives ** afficher le binaire sur 1 ligne ( écrire d’abord l’algorithme ; programme11 ) Programmes Java et Algorithmes 1] Algorithme principal Algorithme Algorithme principal Début traitement ; Fin Langage Java void main() { traitement ; } 2] La boucle non bornée (Tant que …) Algorithme Tant que (n >10) Début traitement ; Fin Tant que Langage Java while ( n < 10) { traitement ; } Remarque , une variante : do { corps de la boucle} while (test) ; 3] La boucle bornée ( Pour …) Algorithme Pour n de 0 à 9 (par pas de 1) Début traitement ; Fin Pour Langage Java for ( n = 0 ; n < 10 ; n = n + 1) { traitement ; } 4] Le choix ( Si …) Algorithme Si ( n > 0) Alors Début traitement ; Fin Alors Sinon Début traitement ; Fin Sinon Langage Java if ( n > 0 ) { traitement ; } else { traitement ; } 5] Syntaxe à retenir Les boucles Le choix * while (test) { corps de la boucle} * Il existe une variante : do {corps de la boucle} while(test) si le corps de la boucle doit être exécuté au moins une fois. * for (initialisation ; test de continuation ; incrémentation) { corps de la boucle} * if (test) { instruction1} else { instruction2} *switch (variable){ case valeur1 : actions1; break; case valeur2 : actions2; break; …………. case default : actions; }