Initiation à la programmation JAVA - u-bourgogne.frjl.baril.u-bourgogne.fr/coursinfo.pdf ·...
Transcript of Initiation à la programmation JAVA - u-bourgogne.frjl.baril.u-bourgogne.fr/coursinfo.pdf ·...
Info1A - Licence 1 - Annee 20192020
Initiation a la programmation JAVA
Jean-Luc Baril
Universite de BourgogneLabo LIB
httpjlbarilu-bourgognefr
September 9 2019
Jean-Luc Baril Initiation a la programmation JAVA
Informations eventuellement utiles
Site web Module Info1Ahttpjlbarilu-bourgognefrLicence1html
CM=14 TD=18 TP=18
Jean-Luc Baril Initiation a la programmation JAVA
Informations eventuellement utiles
Modalites de controle- Partiel ecrit (en amphi) en milieu de semestre (coeff 1)- Examen ecrit (en amphi) en fin de semestre (coeff 2)Planning
Jean-Luc Baril Initiation a la programmation JAVA
Informations eventuellement utiles
Plages de TD et TPS selon groupes
Jean-Luc Baril Initiation a la programmation JAVA
Informations eventuellement utiles
Bibliographie
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique
Informatique - Computing science - InformaticsLrsquoinformatique est la science du traitement automatique delrsquoinformation (1957 - Informatik - Karl Steinbuch)
Ordinateur - ComputerLrsquoordinateur est un ensemble de dispositifs physiques utilisespour traiter automatiquement des informations(Microprocesseur memoire ecran clavier disques durs )
LogicielLe logiciel est un ensemble structure drsquoinstructions decrivant untraitement drsquoinformations a faire realiser par un ordinateur(contraction de logique et materiel - 1972 - software )
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Les bouliers sont les plus anciennes machines a calculerLe principe du boulier est deja en germe chez lesBabyloniens vers 2000 avant J-C a cette epoque onutilise des cailloux pour compter Puis au cours du Iermillenaire avant J-C naıt en Chine lrsquoidee de fabriquer uninstrument qui faciliterait le calcul le boulier
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Les batons de John Napier (1614) Systeme de baquettescoulissantes permettant de faire des multiplications
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1642 Blaise Pascal construit la Pascaline
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1694 le mathematicien Gottfried Wilhelm Leibnizconstruit la premiere machine a calculer utilisant descylindres canneles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1800 le Francais Joseph-Marie Jacquard met au pointun metier a tisser qui utilise des cartons perfores pourcommander les mouvements des aiguilles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1849 Charles babbage donne les plans de la machineanalytique mais nrsquoarrive pas a la construire
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
De 1939 a 1942 Alan Turing concoit la rsquoBombersquo qui permetde decrypter EnigmaEn 1945 il concoit les plans du premier ordinateurmoderne mais nrsquoa pas les moyens de le realiser
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1945 aux Etats-Unis naıt lrsquoENIAC (ElectronicNumerator Integrator and Computer) le premier veritableordinateur de lrsquohistoire- il srsquoagit drsquoune machine electronique Il nrsquoy a plus derouages mecaniques lrsquoinformation est transportee pardes electrons des particules chargees drsquoelectricite qui sedeplacent tres vite- crsquoest une machine programmable Cela signifie qursquoonpeut enregistrer des instructions qui srsquoexecuteront sansintervention de lrsquohomme
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
30 tonnes 100m2 17000 tubes a vides des cafardssrsquointroduisent dans les tubes faussant les resultats drsquoou leterme rsquobug informatiquersquo
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
1953 IBM lance son premier ordinateur commercial enserie lrsquoIBM 650 lrsquoere numerique commence
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Ordinateur quantique
1 qbit α PILE + β FACE
Billet de loterie- Avant le tirage billet de loterie = α GAIN + β PERTE- Apres le tirage billet de loterie = GAIN ou PERTE
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique et les mathematiques
+ Calculateur puissant (simulation meteo (equationsdifferentielles) traitement du signal (image-video) transformeede Fourier bioinformatique (theorie des mots combinatoire))+ Cryptographie (paiement securise sur internet cartebancaire systeme RSA issu de lrsquoarithmetique)+ Animation et reconstruction 3D (geometrie)+ Quantique (matrice )+
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Informations eventuellement utiles
Site web Module Info1Ahttpjlbarilu-bourgognefrLicence1html
CM=14 TD=18 TP=18
Jean-Luc Baril Initiation a la programmation JAVA
Informations eventuellement utiles
Modalites de controle- Partiel ecrit (en amphi) en milieu de semestre (coeff 1)- Examen ecrit (en amphi) en fin de semestre (coeff 2)Planning
Jean-Luc Baril Initiation a la programmation JAVA
Informations eventuellement utiles
Plages de TD et TPS selon groupes
Jean-Luc Baril Initiation a la programmation JAVA
Informations eventuellement utiles
Bibliographie
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique
Informatique - Computing science - InformaticsLrsquoinformatique est la science du traitement automatique delrsquoinformation (1957 - Informatik - Karl Steinbuch)
Ordinateur - ComputerLrsquoordinateur est un ensemble de dispositifs physiques utilisespour traiter automatiquement des informations(Microprocesseur memoire ecran clavier disques durs )
LogicielLe logiciel est un ensemble structure drsquoinstructions decrivant untraitement drsquoinformations a faire realiser par un ordinateur(contraction de logique et materiel - 1972 - software )
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Les bouliers sont les plus anciennes machines a calculerLe principe du boulier est deja en germe chez lesBabyloniens vers 2000 avant J-C a cette epoque onutilise des cailloux pour compter Puis au cours du Iermillenaire avant J-C naıt en Chine lrsquoidee de fabriquer uninstrument qui faciliterait le calcul le boulier
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Les batons de John Napier (1614) Systeme de baquettescoulissantes permettant de faire des multiplications
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1642 Blaise Pascal construit la Pascaline
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1694 le mathematicien Gottfried Wilhelm Leibnizconstruit la premiere machine a calculer utilisant descylindres canneles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1800 le Francais Joseph-Marie Jacquard met au pointun metier a tisser qui utilise des cartons perfores pourcommander les mouvements des aiguilles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1849 Charles babbage donne les plans de la machineanalytique mais nrsquoarrive pas a la construire
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
De 1939 a 1942 Alan Turing concoit la rsquoBombersquo qui permetde decrypter EnigmaEn 1945 il concoit les plans du premier ordinateurmoderne mais nrsquoa pas les moyens de le realiser
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1945 aux Etats-Unis naıt lrsquoENIAC (ElectronicNumerator Integrator and Computer) le premier veritableordinateur de lrsquohistoire- il srsquoagit drsquoune machine electronique Il nrsquoy a plus derouages mecaniques lrsquoinformation est transportee pardes electrons des particules chargees drsquoelectricite qui sedeplacent tres vite- crsquoest une machine programmable Cela signifie qursquoonpeut enregistrer des instructions qui srsquoexecuteront sansintervention de lrsquohomme
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
30 tonnes 100m2 17000 tubes a vides des cafardssrsquointroduisent dans les tubes faussant les resultats drsquoou leterme rsquobug informatiquersquo
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
1953 IBM lance son premier ordinateur commercial enserie lrsquoIBM 650 lrsquoere numerique commence
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Ordinateur quantique
1 qbit α PILE + β FACE
Billet de loterie- Avant le tirage billet de loterie = α GAIN + β PERTE- Apres le tirage billet de loterie = GAIN ou PERTE
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique et les mathematiques
+ Calculateur puissant (simulation meteo (equationsdifferentielles) traitement du signal (image-video) transformeede Fourier bioinformatique (theorie des mots combinatoire))+ Cryptographie (paiement securise sur internet cartebancaire systeme RSA issu de lrsquoarithmetique)+ Animation et reconstruction 3D (geometrie)+ Quantique (matrice )+
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Informations eventuellement utiles
Modalites de controle- Partiel ecrit (en amphi) en milieu de semestre (coeff 1)- Examen ecrit (en amphi) en fin de semestre (coeff 2)Planning
Jean-Luc Baril Initiation a la programmation JAVA
Informations eventuellement utiles
Plages de TD et TPS selon groupes
Jean-Luc Baril Initiation a la programmation JAVA
Informations eventuellement utiles
Bibliographie
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique
Informatique - Computing science - InformaticsLrsquoinformatique est la science du traitement automatique delrsquoinformation (1957 - Informatik - Karl Steinbuch)
Ordinateur - ComputerLrsquoordinateur est un ensemble de dispositifs physiques utilisespour traiter automatiquement des informations(Microprocesseur memoire ecran clavier disques durs )
LogicielLe logiciel est un ensemble structure drsquoinstructions decrivant untraitement drsquoinformations a faire realiser par un ordinateur(contraction de logique et materiel - 1972 - software )
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Les bouliers sont les plus anciennes machines a calculerLe principe du boulier est deja en germe chez lesBabyloniens vers 2000 avant J-C a cette epoque onutilise des cailloux pour compter Puis au cours du Iermillenaire avant J-C naıt en Chine lrsquoidee de fabriquer uninstrument qui faciliterait le calcul le boulier
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Les batons de John Napier (1614) Systeme de baquettescoulissantes permettant de faire des multiplications
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1642 Blaise Pascal construit la Pascaline
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1694 le mathematicien Gottfried Wilhelm Leibnizconstruit la premiere machine a calculer utilisant descylindres canneles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1800 le Francais Joseph-Marie Jacquard met au pointun metier a tisser qui utilise des cartons perfores pourcommander les mouvements des aiguilles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1849 Charles babbage donne les plans de la machineanalytique mais nrsquoarrive pas a la construire
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
De 1939 a 1942 Alan Turing concoit la rsquoBombersquo qui permetde decrypter EnigmaEn 1945 il concoit les plans du premier ordinateurmoderne mais nrsquoa pas les moyens de le realiser
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1945 aux Etats-Unis naıt lrsquoENIAC (ElectronicNumerator Integrator and Computer) le premier veritableordinateur de lrsquohistoire- il srsquoagit drsquoune machine electronique Il nrsquoy a plus derouages mecaniques lrsquoinformation est transportee pardes electrons des particules chargees drsquoelectricite qui sedeplacent tres vite- crsquoest une machine programmable Cela signifie qursquoonpeut enregistrer des instructions qui srsquoexecuteront sansintervention de lrsquohomme
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
30 tonnes 100m2 17000 tubes a vides des cafardssrsquointroduisent dans les tubes faussant les resultats drsquoou leterme rsquobug informatiquersquo
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
1953 IBM lance son premier ordinateur commercial enserie lrsquoIBM 650 lrsquoere numerique commence
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Ordinateur quantique
1 qbit α PILE + β FACE
Billet de loterie- Avant le tirage billet de loterie = α GAIN + β PERTE- Apres le tirage billet de loterie = GAIN ou PERTE
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique et les mathematiques
+ Calculateur puissant (simulation meteo (equationsdifferentielles) traitement du signal (image-video) transformeede Fourier bioinformatique (theorie des mots combinatoire))+ Cryptographie (paiement securise sur internet cartebancaire systeme RSA issu de lrsquoarithmetique)+ Animation et reconstruction 3D (geometrie)+ Quantique (matrice )+
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Informations eventuellement utiles
Plages de TD et TPS selon groupes
Jean-Luc Baril Initiation a la programmation JAVA
Informations eventuellement utiles
Bibliographie
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique
Informatique - Computing science - InformaticsLrsquoinformatique est la science du traitement automatique delrsquoinformation (1957 - Informatik - Karl Steinbuch)
Ordinateur - ComputerLrsquoordinateur est un ensemble de dispositifs physiques utilisespour traiter automatiquement des informations(Microprocesseur memoire ecran clavier disques durs )
LogicielLe logiciel est un ensemble structure drsquoinstructions decrivant untraitement drsquoinformations a faire realiser par un ordinateur(contraction de logique et materiel - 1972 - software )
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Les bouliers sont les plus anciennes machines a calculerLe principe du boulier est deja en germe chez lesBabyloniens vers 2000 avant J-C a cette epoque onutilise des cailloux pour compter Puis au cours du Iermillenaire avant J-C naıt en Chine lrsquoidee de fabriquer uninstrument qui faciliterait le calcul le boulier
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Les batons de John Napier (1614) Systeme de baquettescoulissantes permettant de faire des multiplications
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1642 Blaise Pascal construit la Pascaline
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1694 le mathematicien Gottfried Wilhelm Leibnizconstruit la premiere machine a calculer utilisant descylindres canneles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1800 le Francais Joseph-Marie Jacquard met au pointun metier a tisser qui utilise des cartons perfores pourcommander les mouvements des aiguilles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1849 Charles babbage donne les plans de la machineanalytique mais nrsquoarrive pas a la construire
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
De 1939 a 1942 Alan Turing concoit la rsquoBombersquo qui permetde decrypter EnigmaEn 1945 il concoit les plans du premier ordinateurmoderne mais nrsquoa pas les moyens de le realiser
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1945 aux Etats-Unis naıt lrsquoENIAC (ElectronicNumerator Integrator and Computer) le premier veritableordinateur de lrsquohistoire- il srsquoagit drsquoune machine electronique Il nrsquoy a plus derouages mecaniques lrsquoinformation est transportee pardes electrons des particules chargees drsquoelectricite qui sedeplacent tres vite- crsquoest une machine programmable Cela signifie qursquoonpeut enregistrer des instructions qui srsquoexecuteront sansintervention de lrsquohomme
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
30 tonnes 100m2 17000 tubes a vides des cafardssrsquointroduisent dans les tubes faussant les resultats drsquoou leterme rsquobug informatiquersquo
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
1953 IBM lance son premier ordinateur commercial enserie lrsquoIBM 650 lrsquoere numerique commence
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Ordinateur quantique
1 qbit α PILE + β FACE
Billet de loterie- Avant le tirage billet de loterie = α GAIN + β PERTE- Apres le tirage billet de loterie = GAIN ou PERTE
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique et les mathematiques
+ Calculateur puissant (simulation meteo (equationsdifferentielles) traitement du signal (image-video) transformeede Fourier bioinformatique (theorie des mots combinatoire))+ Cryptographie (paiement securise sur internet cartebancaire systeme RSA issu de lrsquoarithmetique)+ Animation et reconstruction 3D (geometrie)+ Quantique (matrice )+
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Informations eventuellement utiles
Bibliographie
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique
Informatique - Computing science - InformaticsLrsquoinformatique est la science du traitement automatique delrsquoinformation (1957 - Informatik - Karl Steinbuch)
Ordinateur - ComputerLrsquoordinateur est un ensemble de dispositifs physiques utilisespour traiter automatiquement des informations(Microprocesseur memoire ecran clavier disques durs )
LogicielLe logiciel est un ensemble structure drsquoinstructions decrivant untraitement drsquoinformations a faire realiser par un ordinateur(contraction de logique et materiel - 1972 - software )
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Les bouliers sont les plus anciennes machines a calculerLe principe du boulier est deja en germe chez lesBabyloniens vers 2000 avant J-C a cette epoque onutilise des cailloux pour compter Puis au cours du Iermillenaire avant J-C naıt en Chine lrsquoidee de fabriquer uninstrument qui faciliterait le calcul le boulier
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Les batons de John Napier (1614) Systeme de baquettescoulissantes permettant de faire des multiplications
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1642 Blaise Pascal construit la Pascaline
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1694 le mathematicien Gottfried Wilhelm Leibnizconstruit la premiere machine a calculer utilisant descylindres canneles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1800 le Francais Joseph-Marie Jacquard met au pointun metier a tisser qui utilise des cartons perfores pourcommander les mouvements des aiguilles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1849 Charles babbage donne les plans de la machineanalytique mais nrsquoarrive pas a la construire
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
De 1939 a 1942 Alan Turing concoit la rsquoBombersquo qui permetde decrypter EnigmaEn 1945 il concoit les plans du premier ordinateurmoderne mais nrsquoa pas les moyens de le realiser
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1945 aux Etats-Unis naıt lrsquoENIAC (ElectronicNumerator Integrator and Computer) le premier veritableordinateur de lrsquohistoire- il srsquoagit drsquoune machine electronique Il nrsquoy a plus derouages mecaniques lrsquoinformation est transportee pardes electrons des particules chargees drsquoelectricite qui sedeplacent tres vite- crsquoest une machine programmable Cela signifie qursquoonpeut enregistrer des instructions qui srsquoexecuteront sansintervention de lrsquohomme
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
30 tonnes 100m2 17000 tubes a vides des cafardssrsquointroduisent dans les tubes faussant les resultats drsquoou leterme rsquobug informatiquersquo
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
1953 IBM lance son premier ordinateur commercial enserie lrsquoIBM 650 lrsquoere numerique commence
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Ordinateur quantique
1 qbit α PILE + β FACE
Billet de loterie- Avant le tirage billet de loterie = α GAIN + β PERTE- Apres le tirage billet de loterie = GAIN ou PERTE
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique et les mathematiques
+ Calculateur puissant (simulation meteo (equationsdifferentielles) traitement du signal (image-video) transformeede Fourier bioinformatique (theorie des mots combinatoire))+ Cryptographie (paiement securise sur internet cartebancaire systeme RSA issu de lrsquoarithmetique)+ Animation et reconstruction 3D (geometrie)+ Quantique (matrice )+
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique
Informatique - Computing science - InformaticsLrsquoinformatique est la science du traitement automatique delrsquoinformation (1957 - Informatik - Karl Steinbuch)
Ordinateur - ComputerLrsquoordinateur est un ensemble de dispositifs physiques utilisespour traiter automatiquement des informations(Microprocesseur memoire ecran clavier disques durs )
LogicielLe logiciel est un ensemble structure drsquoinstructions decrivant untraitement drsquoinformations a faire realiser par un ordinateur(contraction de logique et materiel - 1972 - software )
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Les bouliers sont les plus anciennes machines a calculerLe principe du boulier est deja en germe chez lesBabyloniens vers 2000 avant J-C a cette epoque onutilise des cailloux pour compter Puis au cours du Iermillenaire avant J-C naıt en Chine lrsquoidee de fabriquer uninstrument qui faciliterait le calcul le boulier
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Les batons de John Napier (1614) Systeme de baquettescoulissantes permettant de faire des multiplications
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1642 Blaise Pascal construit la Pascaline
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1694 le mathematicien Gottfried Wilhelm Leibnizconstruit la premiere machine a calculer utilisant descylindres canneles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1800 le Francais Joseph-Marie Jacquard met au pointun metier a tisser qui utilise des cartons perfores pourcommander les mouvements des aiguilles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1849 Charles babbage donne les plans de la machineanalytique mais nrsquoarrive pas a la construire
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
De 1939 a 1942 Alan Turing concoit la rsquoBombersquo qui permetde decrypter EnigmaEn 1945 il concoit les plans du premier ordinateurmoderne mais nrsquoa pas les moyens de le realiser
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1945 aux Etats-Unis naıt lrsquoENIAC (ElectronicNumerator Integrator and Computer) le premier veritableordinateur de lrsquohistoire- il srsquoagit drsquoune machine electronique Il nrsquoy a plus derouages mecaniques lrsquoinformation est transportee pardes electrons des particules chargees drsquoelectricite qui sedeplacent tres vite- crsquoest une machine programmable Cela signifie qursquoonpeut enregistrer des instructions qui srsquoexecuteront sansintervention de lrsquohomme
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
30 tonnes 100m2 17000 tubes a vides des cafardssrsquointroduisent dans les tubes faussant les resultats drsquoou leterme rsquobug informatiquersquo
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
1953 IBM lance son premier ordinateur commercial enserie lrsquoIBM 650 lrsquoere numerique commence
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Ordinateur quantique
1 qbit α PILE + β FACE
Billet de loterie- Avant le tirage billet de loterie = α GAIN + β PERTE- Apres le tirage billet de loterie = GAIN ou PERTE
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique et les mathematiques
+ Calculateur puissant (simulation meteo (equationsdifferentielles) traitement du signal (image-video) transformeede Fourier bioinformatique (theorie des mots combinatoire))+ Cryptographie (paiement securise sur internet cartebancaire systeme RSA issu de lrsquoarithmetique)+ Animation et reconstruction 3D (geometrie)+ Quantique (matrice )+
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Les bouliers sont les plus anciennes machines a calculerLe principe du boulier est deja en germe chez lesBabyloniens vers 2000 avant J-C a cette epoque onutilise des cailloux pour compter Puis au cours du Iermillenaire avant J-C naıt en Chine lrsquoidee de fabriquer uninstrument qui faciliterait le calcul le boulier
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Les batons de John Napier (1614) Systeme de baquettescoulissantes permettant de faire des multiplications
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1642 Blaise Pascal construit la Pascaline
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1694 le mathematicien Gottfried Wilhelm Leibnizconstruit la premiere machine a calculer utilisant descylindres canneles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1800 le Francais Joseph-Marie Jacquard met au pointun metier a tisser qui utilise des cartons perfores pourcommander les mouvements des aiguilles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1849 Charles babbage donne les plans de la machineanalytique mais nrsquoarrive pas a la construire
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
De 1939 a 1942 Alan Turing concoit la rsquoBombersquo qui permetde decrypter EnigmaEn 1945 il concoit les plans du premier ordinateurmoderne mais nrsquoa pas les moyens de le realiser
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1945 aux Etats-Unis naıt lrsquoENIAC (ElectronicNumerator Integrator and Computer) le premier veritableordinateur de lrsquohistoire- il srsquoagit drsquoune machine electronique Il nrsquoy a plus derouages mecaniques lrsquoinformation est transportee pardes electrons des particules chargees drsquoelectricite qui sedeplacent tres vite- crsquoest une machine programmable Cela signifie qursquoonpeut enregistrer des instructions qui srsquoexecuteront sansintervention de lrsquohomme
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
30 tonnes 100m2 17000 tubes a vides des cafardssrsquointroduisent dans les tubes faussant les resultats drsquoou leterme rsquobug informatiquersquo
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
1953 IBM lance son premier ordinateur commercial enserie lrsquoIBM 650 lrsquoere numerique commence
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Ordinateur quantique
1 qbit α PILE + β FACE
Billet de loterie- Avant le tirage billet de loterie = α GAIN + β PERTE- Apres le tirage billet de loterie = GAIN ou PERTE
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique et les mathematiques
+ Calculateur puissant (simulation meteo (equationsdifferentielles) traitement du signal (image-video) transformeede Fourier bioinformatique (theorie des mots combinatoire))+ Cryptographie (paiement securise sur internet cartebancaire systeme RSA issu de lrsquoarithmetique)+ Animation et reconstruction 3D (geometrie)+ Quantique (matrice )+
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Les batons de John Napier (1614) Systeme de baquettescoulissantes permettant de faire des multiplications
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1642 Blaise Pascal construit la Pascaline
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1694 le mathematicien Gottfried Wilhelm Leibnizconstruit la premiere machine a calculer utilisant descylindres canneles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1800 le Francais Joseph-Marie Jacquard met au pointun metier a tisser qui utilise des cartons perfores pourcommander les mouvements des aiguilles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1849 Charles babbage donne les plans de la machineanalytique mais nrsquoarrive pas a la construire
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
De 1939 a 1942 Alan Turing concoit la rsquoBombersquo qui permetde decrypter EnigmaEn 1945 il concoit les plans du premier ordinateurmoderne mais nrsquoa pas les moyens de le realiser
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1945 aux Etats-Unis naıt lrsquoENIAC (ElectronicNumerator Integrator and Computer) le premier veritableordinateur de lrsquohistoire- il srsquoagit drsquoune machine electronique Il nrsquoy a plus derouages mecaniques lrsquoinformation est transportee pardes electrons des particules chargees drsquoelectricite qui sedeplacent tres vite- crsquoest une machine programmable Cela signifie qursquoonpeut enregistrer des instructions qui srsquoexecuteront sansintervention de lrsquohomme
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
30 tonnes 100m2 17000 tubes a vides des cafardssrsquointroduisent dans les tubes faussant les resultats drsquoou leterme rsquobug informatiquersquo
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
1953 IBM lance son premier ordinateur commercial enserie lrsquoIBM 650 lrsquoere numerique commence
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Ordinateur quantique
1 qbit α PILE + β FACE
Billet de loterie- Avant le tirage billet de loterie = α GAIN + β PERTE- Apres le tirage billet de loterie = GAIN ou PERTE
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique et les mathematiques
+ Calculateur puissant (simulation meteo (equationsdifferentielles) traitement du signal (image-video) transformeede Fourier bioinformatique (theorie des mots combinatoire))+ Cryptographie (paiement securise sur internet cartebancaire systeme RSA issu de lrsquoarithmetique)+ Animation et reconstruction 3D (geometrie)+ Quantique (matrice )+
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1642 Blaise Pascal construit la Pascaline
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1694 le mathematicien Gottfried Wilhelm Leibnizconstruit la premiere machine a calculer utilisant descylindres canneles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1800 le Francais Joseph-Marie Jacquard met au pointun metier a tisser qui utilise des cartons perfores pourcommander les mouvements des aiguilles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1849 Charles babbage donne les plans de la machineanalytique mais nrsquoarrive pas a la construire
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
De 1939 a 1942 Alan Turing concoit la rsquoBombersquo qui permetde decrypter EnigmaEn 1945 il concoit les plans du premier ordinateurmoderne mais nrsquoa pas les moyens de le realiser
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1945 aux Etats-Unis naıt lrsquoENIAC (ElectronicNumerator Integrator and Computer) le premier veritableordinateur de lrsquohistoire- il srsquoagit drsquoune machine electronique Il nrsquoy a plus derouages mecaniques lrsquoinformation est transportee pardes electrons des particules chargees drsquoelectricite qui sedeplacent tres vite- crsquoest une machine programmable Cela signifie qursquoonpeut enregistrer des instructions qui srsquoexecuteront sansintervention de lrsquohomme
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
30 tonnes 100m2 17000 tubes a vides des cafardssrsquointroduisent dans les tubes faussant les resultats drsquoou leterme rsquobug informatiquersquo
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
1953 IBM lance son premier ordinateur commercial enserie lrsquoIBM 650 lrsquoere numerique commence
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Ordinateur quantique
1 qbit α PILE + β FACE
Billet de loterie- Avant le tirage billet de loterie = α GAIN + β PERTE- Apres le tirage billet de loterie = GAIN ou PERTE
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique et les mathematiques
+ Calculateur puissant (simulation meteo (equationsdifferentielles) traitement du signal (image-video) transformeede Fourier bioinformatique (theorie des mots combinatoire))+ Cryptographie (paiement securise sur internet cartebancaire systeme RSA issu de lrsquoarithmetique)+ Animation et reconstruction 3D (geometrie)+ Quantique (matrice )+
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1694 le mathematicien Gottfried Wilhelm Leibnizconstruit la premiere machine a calculer utilisant descylindres canneles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1800 le Francais Joseph-Marie Jacquard met au pointun metier a tisser qui utilise des cartons perfores pourcommander les mouvements des aiguilles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1849 Charles babbage donne les plans de la machineanalytique mais nrsquoarrive pas a la construire
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
De 1939 a 1942 Alan Turing concoit la rsquoBombersquo qui permetde decrypter EnigmaEn 1945 il concoit les plans du premier ordinateurmoderne mais nrsquoa pas les moyens de le realiser
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1945 aux Etats-Unis naıt lrsquoENIAC (ElectronicNumerator Integrator and Computer) le premier veritableordinateur de lrsquohistoire- il srsquoagit drsquoune machine electronique Il nrsquoy a plus derouages mecaniques lrsquoinformation est transportee pardes electrons des particules chargees drsquoelectricite qui sedeplacent tres vite- crsquoest une machine programmable Cela signifie qursquoonpeut enregistrer des instructions qui srsquoexecuteront sansintervention de lrsquohomme
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
30 tonnes 100m2 17000 tubes a vides des cafardssrsquointroduisent dans les tubes faussant les resultats drsquoou leterme rsquobug informatiquersquo
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
1953 IBM lance son premier ordinateur commercial enserie lrsquoIBM 650 lrsquoere numerique commence
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Ordinateur quantique
1 qbit α PILE + β FACE
Billet de loterie- Avant le tirage billet de loterie = α GAIN + β PERTE- Apres le tirage billet de loterie = GAIN ou PERTE
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique et les mathematiques
+ Calculateur puissant (simulation meteo (equationsdifferentielles) traitement du signal (image-video) transformeede Fourier bioinformatique (theorie des mots combinatoire))+ Cryptographie (paiement securise sur internet cartebancaire systeme RSA issu de lrsquoarithmetique)+ Animation et reconstruction 3D (geometrie)+ Quantique (matrice )+
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1800 le Francais Joseph-Marie Jacquard met au pointun metier a tisser qui utilise des cartons perfores pourcommander les mouvements des aiguilles
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1849 Charles babbage donne les plans de la machineanalytique mais nrsquoarrive pas a la construire
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
De 1939 a 1942 Alan Turing concoit la rsquoBombersquo qui permetde decrypter EnigmaEn 1945 il concoit les plans du premier ordinateurmoderne mais nrsquoa pas les moyens de le realiser
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1945 aux Etats-Unis naıt lrsquoENIAC (ElectronicNumerator Integrator and Computer) le premier veritableordinateur de lrsquohistoire- il srsquoagit drsquoune machine electronique Il nrsquoy a plus derouages mecaniques lrsquoinformation est transportee pardes electrons des particules chargees drsquoelectricite qui sedeplacent tres vite- crsquoest une machine programmable Cela signifie qursquoonpeut enregistrer des instructions qui srsquoexecuteront sansintervention de lrsquohomme
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
30 tonnes 100m2 17000 tubes a vides des cafardssrsquointroduisent dans les tubes faussant les resultats drsquoou leterme rsquobug informatiquersquo
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
1953 IBM lance son premier ordinateur commercial enserie lrsquoIBM 650 lrsquoere numerique commence
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Ordinateur quantique
1 qbit α PILE + β FACE
Billet de loterie- Avant le tirage billet de loterie = α GAIN + β PERTE- Apres le tirage billet de loterie = GAIN ou PERTE
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique et les mathematiques
+ Calculateur puissant (simulation meteo (equationsdifferentielles) traitement du signal (image-video) transformeede Fourier bioinformatique (theorie des mots combinatoire))+ Cryptographie (paiement securise sur internet cartebancaire systeme RSA issu de lrsquoarithmetique)+ Animation et reconstruction 3D (geometrie)+ Quantique (matrice )+
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Vers 1849 Charles babbage donne les plans de la machineanalytique mais nrsquoarrive pas a la construire
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
De 1939 a 1942 Alan Turing concoit la rsquoBombersquo qui permetde decrypter EnigmaEn 1945 il concoit les plans du premier ordinateurmoderne mais nrsquoa pas les moyens de le realiser
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1945 aux Etats-Unis naıt lrsquoENIAC (ElectronicNumerator Integrator and Computer) le premier veritableordinateur de lrsquohistoire- il srsquoagit drsquoune machine electronique Il nrsquoy a plus derouages mecaniques lrsquoinformation est transportee pardes electrons des particules chargees drsquoelectricite qui sedeplacent tres vite- crsquoest une machine programmable Cela signifie qursquoonpeut enregistrer des instructions qui srsquoexecuteront sansintervention de lrsquohomme
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
30 tonnes 100m2 17000 tubes a vides des cafardssrsquointroduisent dans les tubes faussant les resultats drsquoou leterme rsquobug informatiquersquo
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
1953 IBM lance son premier ordinateur commercial enserie lrsquoIBM 650 lrsquoere numerique commence
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Ordinateur quantique
1 qbit α PILE + β FACE
Billet de loterie- Avant le tirage billet de loterie = α GAIN + β PERTE- Apres le tirage billet de loterie = GAIN ou PERTE
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique et les mathematiques
+ Calculateur puissant (simulation meteo (equationsdifferentielles) traitement du signal (image-video) transformeede Fourier bioinformatique (theorie des mots combinatoire))+ Cryptographie (paiement securise sur internet cartebancaire systeme RSA issu de lrsquoarithmetique)+ Animation et reconstruction 3D (geometrie)+ Quantique (matrice )+
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
De 1939 a 1942 Alan Turing concoit la rsquoBombersquo qui permetde decrypter EnigmaEn 1945 il concoit les plans du premier ordinateurmoderne mais nrsquoa pas les moyens de le realiser
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1945 aux Etats-Unis naıt lrsquoENIAC (ElectronicNumerator Integrator and Computer) le premier veritableordinateur de lrsquohistoire- il srsquoagit drsquoune machine electronique Il nrsquoy a plus derouages mecaniques lrsquoinformation est transportee pardes electrons des particules chargees drsquoelectricite qui sedeplacent tres vite- crsquoest une machine programmable Cela signifie qursquoonpeut enregistrer des instructions qui srsquoexecuteront sansintervention de lrsquohomme
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
30 tonnes 100m2 17000 tubes a vides des cafardssrsquointroduisent dans les tubes faussant les resultats drsquoou leterme rsquobug informatiquersquo
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
1953 IBM lance son premier ordinateur commercial enserie lrsquoIBM 650 lrsquoere numerique commence
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Ordinateur quantique
1 qbit α PILE + β FACE
Billet de loterie- Avant le tirage billet de loterie = α GAIN + β PERTE- Apres le tirage billet de loterie = GAIN ou PERTE
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique et les mathematiques
+ Calculateur puissant (simulation meteo (equationsdifferentielles) traitement du signal (image-video) transformeede Fourier bioinformatique (theorie des mots combinatoire))+ Cryptographie (paiement securise sur internet cartebancaire systeme RSA issu de lrsquoarithmetique)+ Animation et reconstruction 3D (geometrie)+ Quantique (matrice )+
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
En 1945 aux Etats-Unis naıt lrsquoENIAC (ElectronicNumerator Integrator and Computer) le premier veritableordinateur de lrsquohistoire- il srsquoagit drsquoune machine electronique Il nrsquoy a plus derouages mecaniques lrsquoinformation est transportee pardes electrons des particules chargees drsquoelectricite qui sedeplacent tres vite- crsquoest une machine programmable Cela signifie qursquoonpeut enregistrer des instructions qui srsquoexecuteront sansintervention de lrsquohomme
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
30 tonnes 100m2 17000 tubes a vides des cafardssrsquointroduisent dans les tubes faussant les resultats drsquoou leterme rsquobug informatiquersquo
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
1953 IBM lance son premier ordinateur commercial enserie lrsquoIBM 650 lrsquoere numerique commence
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Ordinateur quantique
1 qbit α PILE + β FACE
Billet de loterie- Avant le tirage billet de loterie = α GAIN + β PERTE- Apres le tirage billet de loterie = GAIN ou PERTE
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique et les mathematiques
+ Calculateur puissant (simulation meteo (equationsdifferentielles) traitement du signal (image-video) transformeede Fourier bioinformatique (theorie des mots combinatoire))+ Cryptographie (paiement securise sur internet cartebancaire systeme RSA issu de lrsquoarithmetique)+ Animation et reconstruction 3D (geometrie)+ Quantique (matrice )+
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
30 tonnes 100m2 17000 tubes a vides des cafardssrsquointroduisent dans les tubes faussant les resultats drsquoou leterme rsquobug informatiquersquo
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
1953 IBM lance son premier ordinateur commercial enserie lrsquoIBM 650 lrsquoere numerique commence
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Ordinateur quantique
1 qbit α PILE + β FACE
Billet de loterie- Avant le tirage billet de loterie = α GAIN + β PERTE- Apres le tirage billet de loterie = GAIN ou PERTE
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique et les mathematiques
+ Calculateur puissant (simulation meteo (equationsdifferentielles) traitement du signal (image-video) transformeede Fourier bioinformatique (theorie des mots combinatoire))+ Cryptographie (paiement securise sur internet cartebancaire systeme RSA issu de lrsquoarithmetique)+ Animation et reconstruction 3D (geometrie)+ Quantique (matrice )+
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
1953 IBM lance son premier ordinateur commercial enserie lrsquoIBM 650 lrsquoere numerique commence
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Ordinateur quantique
1 qbit α PILE + β FACE
Billet de loterie- Avant le tirage billet de loterie = α GAIN + β PERTE- Apres le tirage billet de loterie = GAIN ou PERTE
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique et les mathematiques
+ Calculateur puissant (simulation meteo (equationsdifferentielles) traitement du signal (image-video) transformeede Fourier bioinformatique (theorie des mots combinatoire))+ Cryptographie (paiement securise sur internet cartebancaire systeme RSA issu de lrsquoarithmetique)+ Animation et reconstruction 3D (geometrie)+ Quantique (matrice )+
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Rapide historique
Ordinateur quantique
1 qbit α PILE + β FACE
Billet de loterie- Avant le tirage billet de loterie = α GAIN + β PERTE- Apres le tirage billet de loterie = GAIN ou PERTE
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique et les mathematiques
+ Calculateur puissant (simulation meteo (equationsdifferentielles) traitement du signal (image-video) transformeede Fourier bioinformatique (theorie des mots combinatoire))+ Cryptographie (paiement securise sur internet cartebancaire systeme RSA issu de lrsquoarithmetique)+ Animation et reconstruction 3D (geometrie)+ Quantique (matrice )+
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique et les mathematiques
+ Calculateur puissant (simulation meteo (equationsdifferentielles) traitement du signal (image-video) transformeede Fourier bioinformatique (theorie des mots combinatoire))+ Cryptographie (paiement securise sur internet cartebancaire systeme RSA issu de lrsquoarithmetique)+ Animation et reconstruction 3D (geometrie)+ Quantique (matrice )+
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Algorithme
Algorithme (M al-Khwarizmi - 780850)Un algorithme est une suite ordonnee drsquoinstructions qui indiquela demarche a suivre pour resoudre un probleme
Exemple Faire cuire un oeuf sur le platAcheter un oeuf mettre de lrsquohuile dans la poele faire chauffercasser lrsquooeuf dans la poele attendre 2 minutes
AlgorithmiqueLrsquoalgorithmique est la science des algorithmes (constructiondrsquoalgorithme verification de la validite la robustesse leurreutilisabilite la complexite et leur efficacite)
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Programme
ProgrammeIl srsquoagit de la traduction drsquoun algorithme dans un langageparticulier Un programme depend donc du langage etegalement de la plateforme drsquoexecution
ProgrammationCrsquoest lrsquoaction qui consiste a rediger un programme dans unlangage donne
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Lrsquoinformatique Compilation et Execution
CompilationCrsquoest lrsquoaction qui consiste a traduire le programme en langagecomprehensible par lrsquoordinateur
Interpreteur (en JAVA)Un outil ayant pour tache drsquoexecuter un programme qui a etecompile
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Installation de Javahttpwwworaclecom
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La structure drsquoun programme java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principaldeclaration de variablesinstructions commentaires
Comment Faire- Dans un fichier texte taper le code ci-dessus- Sauvegarder le fichier texte dans un fichiermonpremierprogrammejava- Compiler le fichier javac monpremierprogrammejava(creation du fichier monpremierprogrammeclass)- Executer le programme java monpremierprogramme
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Bit (binary digit)
0 ou 1 il srsquoagit de la plus petite unite drsquoinformation manipulablepar une machine
Octet (Byte en anglais)
Unite drsquoinformation composee de 8 bits
Unites standardisees- 1 kilooctet (ko) = 1000 octets- 1 megaoctet (Mo) = 106 octets- 1 gigaoctet (Go) = 109 octets- 1 tetraoctet (To) = 1012 octets- 1 petaoctet (Po) = 1015 octets
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Representation des entiers en binaire (division entiere par2)
1001101
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Du binaire au decimal
Code binaire 1001101
77 = 120 + 021 + 122 + 123 + 024 + 025 + 126
Avec 1 2 ou 3 bits- Avec un bit on code les entiers 0 et 1- Avec deux bits on code les entiers 0 1 2 et 3- Avec 3 bits on code les entiers 01234567- Avec n bits on code les entiers compris entre 0 et 2n minus 1
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Comment coder un reels Exemple de 773
- Codage partie entiere 77larrrarr 1001101- Codage partie non entiere 03larrrarr
03 lowast 2 = 0606 lowast 2 = 1202 lowast 2 = 0404 lowast 2 = 0808 lowast 2 = 1606 lowast 2 = 12 =
03larrrarr 00 1001 1001 1001
Codage de 773
773larrrarr 10011010 1001 1001 1001
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les types de donnees simples en Java
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les variablesUne variable est un contenant ayant un nom (identificateur) etpouvant contenir une information des types precedents (intdouble char )
- Crsquoest une boite ayant un nom et pouvant contenir une valeurdrsquoun seul type de donnees- Toute variable drsquoun programme doit etre declaree avant sonutilisation (en debut de programme par exemple)
Declaration drsquoune variableType de donnees Identificateur
Declaration de la variable toto pouvant contenir un entierint toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateursLrsquoaddition la soustraction la multiplication la division +minus lowast La division entiere et le reste de la division entiere Les comparaisons ltgt== lt= gt= =
Affectation =Le Non Le ET logique ampamp
Le Ou (exclusif) andLe Ou (Inclusif) ||
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les operations classiques
Une expression mathematique
2x + 3yminus15x+1
4xENJAVA=rArr (2 lowast x + (3 lowast y minus 1)(5 lowast x + 1))(4 lowast x)
Reste de la division entiere
x mod 10 ENJAVA=rArr x10
Division entiere drsquoune variable entiere aa2
ENJAVA=rArr a2
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
AffectationCrsquoest placer une valeur dans une variable
Comment faireIndiquer la valeur exacte a placer dans la variable toto de lafacon suivantetoto = valeur a placer
Examplestiti= 8 place 8 dans la variable tititoto= titi place le contenu de titi dans la variable totototo= titi+5 place la somme du contenu de titi avec 5 danstotototo= toto+4 place la somme du contenu de toto avec 4dans toto
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Les operateurs booleensNon Ou exclusif and (Correspond au OU BIEN )
Ou inclusif ||
Et ampamp
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Le type booleanLe type boolean permet uniquement deux valeurs true false
Exercice Donner une expression java
a = b ENJAVA=rArr a == b
a ge b ENJAVA=rArr a gt= b
x isin [ab] ENJAVA=rArr x gt= a ampamp x lt= b
x isin]ab] ENJAVA=rArr x gt a ampamp x lt= b
x isin]ab]cap [cd [ENJAVA=rArr (x gt aampampx lt= b) ampamp (x gt= campampx lt d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Exercice Donner une expression java
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
[ab] sub [cd ] ENJAVA=rArr a gt= c ampamp b lt= d
x est une annee bissextile lorsque x est un multiple de 4mais pas de 100 OU BIEN x est un multiple de 400
ENJAVA=rArr (x4 == 0 ampamp x100 = 0) and (x400 == 0)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
La negation drsquoune expression negation (Je fais un CM ET il fait beau)harr (je ne fais pas unCM OU il ne fait pas beau) (A ampamp B)harr A || B negation (Je fais un CM OU je suis dans mon bureau)harr (jene fais pas un CM ET je ne suis pas dans mon bureau) (A || B)harr A ampamp B
Donner lrsquoexpression de la negationOn a vu que
x isin]ab] cup [cd [ENJAVA=rArr (x gt aampampx lt= b) || (x gt= campampx lt d)
x isin]ab] cup [cd [ENJAVA=rArr (x le a || x gt b)ampamp(x lt c || x gt= d)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class monpremierprogramme Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint toto titi tutu Declare trois variablesboolean tyty Declare une variable booleenne
Instructionstoto= 4 Met la valeur 4 dans totototo= toto+1 Ajoute 1 au contenu de tototiti= toto4 Met 45 dans titi
tutu= titi3 Met 203 dans tutututu= titi 3 Met 20 3 dans tutu
tyty= false Met false dans tytytyty= tutugt=2 ampamp tutu lt 4 Met true dans tyty
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Echange du contenu de deux variables
=rArr
Etape 1 V = N Etape 2 N = G Etape 3 G = V
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
public class echange Nom du programmepublic static void main (String[] args) Programme principal Declaration des variablesint Nuits Gevrey Temp Declare trois variables
Remplissage des verresNuits=4 Remplit le verre de NuitsGevrey=8 Remplit le verre de Gevrey Echange le contenu des deux verresTemp=Nuits Verse le contenu de Nuits dans TempNuits=Gevrey Verse le contenu de Gevrey dans NuitsGevrey=Temp Verse le contenu de Temp dans Gevrey
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java
Communiquer avec lrsquoordinateur pendant lrsquoexecution duprogramme
Affichage des resultats a lrsquoecran (sortie)Saisie drsquoinformations au clavier (entree)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte
Systemoutprint(texte a afficher) Affiche le texte
Systemoutprintln(texte a afficher) Affiche le texte puis revient a la ligne
Affichage a lrsquoecran du contenu drsquoune variable
Systemoutprint(variable) Affiche le contenu de la variable
Systemoutprintln(variable) Affiche le contenu de la variable puis revient a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Affichage a lrsquoecran drsquoun texte et du contenu drsquoune variable
Systemoutprint(texte a afficher+variable) Affiche le texte puis le contenu de la variable
Systemoutprintln(texte a afficher+variable) Affiche le texte puis le contenu de la variable et revient a la ligne
Systemoutprintln(toto= +toto)Affiche toto= 8
Systemoutprintln(toto= +toto+ et titi= +titi) Affiche toto= 8 et titi= 4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Bonjour)Nuits=4Gevrey=8Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les sorties
Un joli dessin
public class jolidessin Nom du programmepublic static void main (String[] args) Programme principalSystemoutprintln()Systemoutprintln( )Systemoutprintln( )Systemoutprintln( )
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les entrees
La saisie drsquoun entier dans la variable toto
int totototo=Lirei() attend que lrsquoutilisateur saisisse un entier
La saisie drsquoun reel dans la variable titi
double titititi=Lired() attend que lrsquoutilisateur saisisse un reel
La saisie drsquoun texte dans une variable tutu
String tutututu=LireS() attend que lrsquoutilisateur saisisse un texte
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
La programmation en Java - Les EntreesSorties
public class echange Nom du programmepublic static void main (String[] args) Programme principalint Nuits Gevrey Temp Systemoutprintln(Saisir le contenu de Nuits)Nuits=Lirei()Systemoutprintln(Saisir le contenu de Gevrey)Gevrey=Lirei()Temp=NuitsNuits=GevreyGevrey=TempSystemoutprintln(Le contenu de Nuits est+Nuits)Systemoutprintln(Le contenu de Gevrey est+Gevrey)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Moyenne de deux reelsEcrire un programme Java permettant de faire la moyenne dedeux reels saisis par lrsquoutilisateur
public class moyenne Nom du programmepublic static void main (String[] args) Programme principaldouble x y moyenneSystemoutprintln(Saisir x)x=Lired()Systemoutprintln(Saisir y)y=Lired()moyenne=(x+y)2Systemoutprintln(La moyenne est+moyenne)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM1- Les EntreesSorties
Le minimum a savoir
public class nomprog Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Le minimum a savoir1 a la fin de chaque instruction2 Affectation x=33 Operateurs booleen ampamp || ==
xgt= 1 ampamp xlt= 5 x==7 || y==84 Affichage a lrsquoecran Systemoutprintln(rdquoBonjourrdquo+variable)5 Saisie au clavier x=Lirei() y=Lired()
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Exercice - Les EntreesSorties
Resolution de a lowast x = b lorsque a 6= 0Ecrire un programme Java permettant la saisie de a et b parlrsquoutilisateur puis drsquoafficher la solution de lrsquoequation
public class moyenne Nom du programmepublic static void main (String[] args) Programme principal Declaration des variables utiles
Saisie de a et b
Calcul de la solution
Affichage de la solution
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Structures permettant de realiser des aiguillages
if
if(condition) Bloc drsquoinstructions
- Si la condition est vraie le programme execute lesinstructions situees entre accolades- Si la condition est fausse le programme ne considere pas lesinstructions et passe a la suite
Es-tu adulte
Declaration et saisie drsquoun ageif(agegt=18)Systemoutprintln(Vous etes adultes)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)x=x+1
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
if else
if(condition) Bloc drsquoinstructions 1else Bloc drsquoinstructions 2
- Si la condition est vraie le programme execute lesinstructions du bloc 1- Si la condition est fausse le programme execute lesinstructions du bloc 2
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
x isin [1100]
Declaration et saisie de $x$if(xgt=1 ampamp xlt=100)Systemoutprintln( x est entre 1 et 100)
elseSystemoutprintln( x n est pas entre 1 et 100)
Si le bloc drsquoinstructions dans le IF contient une seule instructionalors les accolades sont facultatives
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Maximum de deux entiers
public class maximumpublic static void main (String[] args)int x y maxiSystemoutprintln(Saisir x)x=Lirei()Systemoutprintln(Saisir y)y=Lirei() Declaration et saisie de x et yif(xgty)maxi=x
elsemaxi=y
Systemoutprintln(Le maximum est+maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Resolution equation ax+b=0
double a b xSystemoutprintln(Saisir a)a=Lired()Systemoutprintln(Saisir b)b=Lired()if(a=0) x=-baSystemoutprintln(La solution est +x)
elseif(b==0)
Systemoutprintln(Il y a une infinite de solutions)else
Systemoutprintln(Il nrsquoy a pas de solution)
Le if else est consideree comme une seule instructionJean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b ampamp blt=c)Systemoutprintln(a+lt=+b+lt=+c)
if(alt=c ampamp clt=b)Systemoutprintln(a+lt=+c+lt=+b)
if(blt=a ampamp alt=c)Systemoutprintln(b+lt=+a+lt=+c)
if(blt=c ampamp clt=a)Systemoutprintln(b+lt=+c+lt=+a)
if(clt=a ampamp alt=b)Systemoutprintln(c+lt=+a+lt=+b)
if(clt=b ampamp blt=a)Systemoutprintln(c+lt=+b+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Classement par ordre croissant de trois entiers
Declaration et saisie de a b et c
if(alt=b)if(blt=c)
Systemoutprintln(a+lt=+b+lt=+c)elseif(clt=a)Systemoutprintln(c+lt=+a+lt=+b)
elseSystemoutprintln(a+lt=+c+lt=+b)
elseif(alt=c)
Systemoutprintln(b+lt=+a+lt=+c)elseif(clt=b)Systemoutprintln(c+lt=+b+lt=+a)
elseSystemoutprintln(b+lt=+c+lt=+a)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Bloc drsquoinstructions B1 case val2 Bloc drsquoinstructions B2 case valn Bloc drsquoinstructions Bn
- Si valeur vaut val1 le programme execute B1 B2 Bn- Si valeur vaut val2 le programme execute B2 Bn- - Si valeur vaut valn le programme execute Bn
AttentionLa variable valeur du switch doit etre de type int ou char (pourlrsquoinstant)
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage des derniers jours de la semaine
int jourSystemoutprintln(Numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) case 2 Systemoutprintln(Mardi) case 3 Systemoutprintln(Mercredi) case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) case 7 Systemoutprintln(Dimanche)
Si jour=5 alors le programme affiche Vendredi Samedi etDimanche
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
switch
switch(valeur)case val1 Instructions B1 breakcase val2 Instructions B2 breakcase valn Instructions Bn break
- Si valeur vaut val1 le programme execute seulement B1- Si valeur vaut val2 le programme execute seulement B2- - Si valeur vaut valn le programme execute seulement Bn
Lrsquoinstruction break permet drsquoarreter lrsquoexecution dans unestructure Cette instruction sera permise UNIQUEMENT dansun switch
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Affichage du jour de la semaine
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) break case 5 Systemoutprintln(Vendredi) break case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=5 le programme affiche uniquement Vendredi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Un melange des deux syntaxes
int jourSystemoutprintln(Saisir le numero de jour de la semaine)jour=Lirei()switch(jour)case 1 Systemoutprintln(Lundi) break case 2 Systemoutprintln(Mardi) break case 3 Systemoutprintln(Mercredi) break case 4 Systemoutprintln(Jeudi) case 5 Systemoutprintln(Vendredi) case 6 Systemoutprintln(Samedi) break case 7 Systemoutprintln(Dimanche) break
Si jour=4 le programme affiche Jeudi Vendredi et Samedi
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les conditionnelles
Deux exercices
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM2- Les conditionnelles
Le minimum a savoir
if(condition)
if(condition)
else
switch(variable)case val1 breakcase val2 breakcase valn break
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Structures permettant de repeter des instructions
La boucle for()
for(initialisation condition incrementation) Instructions
- Lrsquoinitialisation permet de donner une valeur de depart a lavariable de boucle Crsquoest la premiere instruction executee- Condition est le test a verifier pour pouvoir executer lesinstructions de la boucle- Lrsquoincrementation est une instruction qui permet de modifier leresultat de la condition ( i ++ ou i minusminus)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Exemple Afficher les 100 premiers entiers
for(i=1 ilt=100 i++) Systemoutprintln(i)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
somme=somme+iSystemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle while()
while(condition) Instructions
- Tant que la condition est vraie (true) le programme executeles instructions de la boucle La condition est verifiee avant drsquoexecuter les instructions Il est necessaire de modifier la condition a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1while(ilt=100) Systemoutprintln(i)
i=i+1
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)somme=somme+ii=i+1
Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
La boucle do while
do Instructions
while(conditions)
- Le programme execute les instructions de la boucle puisverifie ensuite la condition pour eventuellement continuer La condition est verifiee apres avoir execute les instructions Il est necessaire de modifier la conditions a lrsquointerieur de laboucle pour que la boucle puisse srsquoarreter
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Afficher les 100 premiers entiers
i=1do Systemoutprintln(i)
i=i+1 while(ilt=100)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage de la somme des n premiers entiers
public class sommepublic static void main (String[] args)int i n somme=0Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1dosomme=somme+ii=i+1
while(ilt=n)Systemoutprintln(La somme est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Saisie drsquoun entier positif ou nul
public class saisiepublic static void main (String[] args)int ndoSystemoutprintln(Saisir un entier positif ou nul)n=Lirei()
while(nlt0)
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM3- Les repetitions
Le minimum a savoir
for(i=1ilt=100i++) Pour i allant de 1 jusqursquoa 100 faire
for(i=100igt=1i--) Pour i allant de 100 jusqursquoa 1 faire
while(condition) Tant que la condition est vraie faire
do Faire jusqursquoa ce que la condition soit fausse
while(condition)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()for(i=1 ilt=n i++)
produit=produitiSystemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1while(ilt=n)produit=produitii=i+1
Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions
Affichage du produit des n premiers entiers positifs
public class produitpublic static void main (String[] args)int i n produit=1Systemoutprintln(Saisir lrsquoentier n)n=Lirei()i=1doproduit=produitii=i+1while(ilt=n)Systemoutprintln(Le produit est +produit)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Somme drsquoune suite de notesProgramme qui calcule la somme drsquoune suite de notes saisiesau clavier jusqursquoa ce que la note -1 soit entree
public class moyennepublic static void main (String[] args)int note somme=0doSystemoutprintln(Saisir une note ou -1)note=Lirei()if(note=-1)somme=somme+note
while(note=-1)Systemoutprintln(La somme des notes est +somme)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSystemoutprintln(Saisir la taille du dessin)taille=Lirei() Saisie de la taillefor(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=ij++) Boucle decrivant les colonnes
Systemoutprint() Affichage Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Un joli dessinAfficher le motif suivant dont la taille est saisie par lrsquoutilisateur
Pour taile=3 Pour taille=4 Pour taille=5
int ijtailleSaisie de la taille
for(i=1ilt=taillei++) Boucle decrivant les lignes for(j=1jlt=taillej++) Boucle decrivant les colonnes
if(jlti)Systemoutprint( ) Affichage espaceselseSystemoutprint() Affichage etoiles
Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Exemple de menu
int xyzchoixchar opdoSystemoutprintln(1 Saisir x)Systemoutprintln(2 Saisir y)Systemoutprintln(3 Calculer la somme)Systemoutprintln(4 Quitter)Systemoutprintln(Quel est votre choix)choix=Lirei()switch(choix)case 1 x=Lirei() breakcase 2 y=Lirei() breakcase 3 z=x+y break
while(choix=4)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
MethodeSi a ge b alors PGCD(ab) =- b si b divise a (ab == 0)- PGCD(b r) ou r est le reste de la division de a par b(r = ab)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
while(bgt0)
r=a ba=bb=r
Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Lrsquoalgorithme drsquoEuclide - Calcul du PGCD
Declaration et saisie de a et b Echange de a et b si bgta
do
r=a ba=bb=r
while(bgt0)Systemoutprintln(Le PGCD est +a)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Ecrire un prog permettant de rechercher un nombre aleatoireentre 1 et 100 genere par lrsquoordinateurReel aleatoire entre 0 inclu et 1 exclu Mathrandom()Reel aleatoire entre 0 inclu et b exclu bMathrandom()Reel aleatoire entre a inclu et b exclua+(b-a)Mathrandom()Entier aleatoire entre a inclu et b-1 inclu(int)(a+(b-a)Mathrandom())
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Idee Saisir un nombre tant que le nombre saisi nrsquoest pas celuide lrsquoordinateur
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Une amelioration du jeu A chaque etape lrsquoordinateur devradire si votre nombre est trop grand ou trop petit
int ordi joueur
ordi=(int)(1+100Mathrandom())doSystemoutprintln(Proposer votre nombre)joueur=Lirei()if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Indiquer le nbre de coups utilisespour gagner
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi)
Systemoutprintln(Bravo vous avez trouve en +coups+coups)
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les repetitions - Exercice
Recherche drsquoun entier entre 1 et 100Encore une amelioration Limiter le nbre de coups a 7 coups
int ordi joueur coupsordi=(int)(1+100Mathrandom())coups=0doSystemoutprintln(Proposer votre nombre)joueur=Lirei()coups=coups+1if(joueurgtordi)Systemoutprintln(Votre nbre est trop grand)
if(joueurltordi)Systemoutprintln(Votre nbre est trop petit)
while(joueur=ordi ampamp coupslt7)
if(joueur==ordi)Systemoutprintln(Bravo vous avez trouve en +coups+coups)
elseSystemoutprintln(Perdu)
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Exercice
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Un tableau est une structure qui peut contenir plusieurselements du meme typeLe nombre drsquoelements du tableau est la taille du tableauLes elements sont reperes par un ou plusieurs indices detype int (ou char)Le nombre drsquoindices est la dimension du tableau
Tableau a 1 dimension de taille 10 contenant des entiers
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices du tableau
Tableau a 2 dimensions a 2 lignes et 10 colonnes
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Declaration drsquoun tableauReserve une adresse memoire
Tableau 1D Type des elements tab[]Tableau 2D Type des elements tab[][]
Creation drsquoun tableauDefinit la taille du tableau
Tableau 1D tab=new Type des elements[Nbre cases]Tableau 2D tab=new Type des elements[nblig][nbcol]
Declaration et allocation de tableaux
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaudouble tab[][] Declaration tableau 2Dtab= new double[2][10] Definition de la taille
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la i-ieme case drsquoun tableau 1D tab[i-1]
1 3 5 7 9 0 2 4 6 80 1 2 3 4 5 6 7 8 9 Indices i
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableautab[0]=1tab[1]=3tab[2]=5tab[9]=8
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 1D
int tab[] Declaration tableau 1D drsquoentierstab= new int[10] Definition de la taille du tableaufor(i=0ilt=9i++) Boucle pour parcourir les cases Systemoutprintln(Saisir la case +i)tab[i]=Lirei()
Affichage drsquoun tableau 1D
for(i=0ilt=9i++)Systemoutprint(tab[i]+ )
Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Acces a la case drsquoun tableau 2D sur la i-ieme ligne et j-iemecolonne tab[i-1][j-1]
1 3 5 7 9 0 2 4 6 80 2 4 6 8 1 3 5 7 9
01
0 1 2 3 4 5 6 7 8 9 Indices du tableau
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 2D drsquoentierstab= new int[2][10] Definition de la taille du tableautab[0][0]=1 tab[1][0]=0tab[0][1]=3 tab[1][1]=2tab[0][2]=5 tab[1][2]=4 tab[0][9]=8 tab[1][9]=9
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Remplissage drsquoun tableau 2D
int tab[][] Declaration tableau 1D drsquoentierstab= new int[2][10] Definition de la taille du tableaufor(i=0ilt=1i++) Boucle pour decrire les 2 lignesfor(j=0jlt=9j++) Boucle pour decrire les 10 colonnes Systemoutprintln(Saisir ligne +i+ et colonne +j)
tab[i][j]=Lirei()
Affichage drsquoun tableau 2D
for(i=0ilt=1i++) Boucle pour decrire les 2 lignes for(j=0jlt=9j++) Boucle pour decrire les 10 colonnes
Systemoutprint(tab[i][j]+ )Systemoutprintln() Retour a la ligne
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche drsquoun element dans un tableau 1D
int ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()for(i=0ilt=99i++) Boucle pour decrire les 100 casesif(tab[i]==element)Systemoutprintln(Trouve)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Recherche drsquoun element dans un tableau 1D
boolean trouveint ielementtab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableauSystemoutprintln(Entrer lrsquoelement a rechercher)element=Lirei()trouve=falsei=0while(ilt=99 ampamp trouve==false) if(tab[i]==element)
trouve=trueelsei=i+1
if(trouve==true)
Systemoutprintln(element+ est trouve en position +i)else
Systemoutprintln(element+ n est pas dans le tableau)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche du maximum drsquoun tableau 1D
int imaxitab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i]
Systemoutprintln(Le maximum du tableau est +maxi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
1 3 5 7 9 2 4 6 8
Recherche de la position du maximum drsquoun tableau 1D
int imaxipositab[] Declaration tableau 1D drsquoentierstab= new int[100] Definition de la taille du tableau Remplissage du tableaumaxi=tab[0]posi=0for(i=1ilt=99i++) Boucle pour decrire le tableauif(tab[i]gtmaxi)maxi=tab[i] posi=i
Systemoutprintln(La position du maximum du tableau est +posi)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
( VideoTriabullesmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
bool tab_en_ordre = falseint taille = tablength donne le nbre de cases du tableauwhile(tab_en_ordre)
tab_en_ordre = truefor(int i=0 i lt taille-1 i++)
if(tab[i] gt tab[i+1]) echange de tab[i] et tab[i+1]
tab_en_ordre = false
taille--
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
bool tab_en_ordreint taille = tablengthdo
tab_en_ordre = truefor(int i=0 i lt taille-1 i++)
if(tab[i] gt tab[i+1]) echange de tab[i] et tab[i+1]
tab_en_ordre = false
taille--while(tab_en_ordre)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri par insertion drsquoun tableau 1D
( VideoTriparinsertionmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri a bulles drsquoun tableau 1D
bool tab_en_ordreint taille = tablengthdo
tab_en_ordre = truefor(int i=0 i lt taille-1 i++)
if(tab[i] gt tab[i+1]) echange de tab[i] et tab[i+1]
tab_en_ordre = false
taille--while(tab_en_ordre)
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri par insertion drsquoun tableau 1D
( VideoTriparinsertionmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri par insertion drsquoun tableau 1D
( VideoTriparinsertionmp4
Jean-Luc Baril Initiation a la programmation JAVA
Les tableaux
Tri par insertion drsquoun tableau 1D
int taille = tablength donne le nbre de cases du tableaufor(int i=0 i lt taille-1 i++) k=i
while(kgt=0 ampamp tab[k]gttab[k+1])echanger tab[k] et tab[k+1]k=k-1
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM5- Les tableaux
Le minimum a savoir
int tab[]itab=new int[100] Declaration tableau 1D drsquoentiersfor(i=0ilt=99i++) AffichageSystemoutprint(tab[i]+ )
Systemoutprintln()
int tab[][]ijtab=new int[100][50] Declaration tableau 2D drsquoentiersfor(i=0ilt=99i++) Affichage for(j=0jlt=49j++)
Systemoutprint(tab[i][j]+ )Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Une chaıne de caracteres (de type String) est une suiteordonnee de caracteres (de type char) Exemplerdquoabcdefghijk000lmnopqrst123uvwxyzrdquo est une chaıne decaracteres (entouree de guillemets rdquordquo)Rappel- Un caractere est stocke dans une variable de type charExemple char car=rsquoersquo (entoure de rsquorsquo) - les caracteres sontclasses par le code ASCII
Declaration drsquoune chaıne de caracteresString nom variable
Declaration
String chaine
Jean-Luc Baril Initiation a la programmation JAVA
La table ASCII
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Une chaıne de caracteres (de type String) est une suiteordonnee de caracteres (de type char) Exemplerdquoabcdefghijk000lmnopqrst123uvwxyzrdquo est une chaıne decaracteres (entouree de guillemets rdquordquo)
Declaration drsquoune chaıne de caracteresString nom variable
Declaration
String chaine
Declaration drsquoune chaıne vide
String chaine= Deux guillements consecutifs (sans espace)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Affectationvariable=rdquotexterdquo
Affectation
String chaine1chaine2chaine3chaine1=Bonjourchaine2= Chaine videchaine3=chaine1
Affichage drsquoune chaıne
String chaine1chaine1=BonjourSystemoutprintl(chaine1)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
nombre de caracteres drsquoune chaıne (ou longueur)variablelength()
Longueur drsquoune chaine
int longueurString chainechaine=Bonjourlongueur=chainelength() Nombre de caracteresSystemoutprintln(Il y a +longueur+ caracteres dans la chaine)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
i-ieme caractere drsquoune chaınevariablecharAt(i-1) (de type char)
variablecharAt(0) est le premier caractere de la chaıne variablevariablecharAt(1) est le second caractere de la chaıne variable
i-ieme caractere drsquoune chaıne
char cString chainechaine=Bonjourc=chainecharAt(3)Systemoutprintln(le 4-ieme caractere est+c)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Juxtaposition de deux chaınes (concatenation)chaine1+chaine2
Juxtaposition de deux chaınes
String chaine1chaine2chaine3chaine4chaine1=Bonjourchaine2= jourBonchaine3=chaine1+chaine2Systemoutprintln(chaine3) Affiche Bonjour jourBonchaine4=chaine2+chaine1Systemoutprintln(chaine4) Affiche jourBonBonjour
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Test drsquoegalite de deux chaıneschaine1equals(chaine2) renvoie true si les contenus sontegaux et false sinon
Test drsquoegalite de deux chaınes
String chaine1chaine2chaine1=Bonjourchaine2=Bonjour A NE PAS FAIREif(chaine1==chaine2)Systemoutprintln(les adresses sont egales)
A FAIREif(chaine1equals(chaine2))Systemoutprintln(les contenus des chaines sont egaux)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Les methodes
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Suppression des rsquoarsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Remplacement des rsquoarsquo par des rsquoorsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
elsechaine2=chaine2+rsquoorsquo
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Une fonction est un bout de code qui a un nom et qui peutetre appelee depuis le reste du programmeExemples de fonctions predefinies Mathpow(ab)Mathabs(a) Mathrandom() Mathsqrt(a)
Interets des fonctionsMeilleure lisibilite et concision (evite drsquoecrire plusieurs foisle meme codeNiveau drsquoabstraction plus eleve (un nom remplace unepartie complexe du programme)Gain de place memoireModification plus aiseePartage de fonctions (biibliotheque de fonction)Recursivite
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonctionOn declare une fonction a lrsquoexterieur du main mais a lrsquointerieurde class Je conseille de les declarer juste apres le programmeprincipal
public class programmepublic static void main(String args[])
Programme principal
Declaration des fonctions
Jean-Luc Baril Initiation a la programmation JAVA
Deux types de fonctionFonction qui renvoie une valeur (Mathsqrt()Mathrandom() perimetre() moyenne())Fonction qui ne renvoie pas une valeur (affichage drsquountableau )
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonction qui renvoie une valeur
public static type Nomfonction(parametres formels) instructions de la fonction
return valeurrenvoyee
type est le type de la valeur renvoyee Nomfonction est le nom de la fonction Parametres formels sont les donnees necessaires pour ladeclaration de la fonction (ils restent donc sans valeur)
Appel de la fonction
variable=Nomfonction(parametres effectifs)renvoie la valeur de la fonction
Les parameres effectifs sont les parametres sur lesquels lafonction est executee Lors de lrsquoexecution les parametres formels sontremplaces par les parametres effectifs
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie le maximum de deux entiers
public static int maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
return maxi Renvoie le maximum de a et b
Les variables locales sont connues seulement dans lafonctionAppel de la fonction qui renvoie le maximum de deux entiers
int x=1y=2maxmax=maximum(xy) Appel de la fonction sur x et ySystemoutprintln(max) affichage de 2
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Fiche Memo CM5- Les tableaux
Le minimum a savoir
int tab[]itab=new int[100] Declaration tableau 1D drsquoentiersfor(i=0ilt=99i++) AffichageSystemoutprint(tab[i]+ )
Systemoutprintln()
int tab[][]ijtab=new int[100][50] Declaration tableau 2D drsquoentiersfor(i=0ilt=99i++) Affichage for(j=0jlt=49j++)
Systemoutprint(tab[i][j]+ )Systemoutprintln()
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Une chaıne de caracteres (de type String) est une suiteordonnee de caracteres (de type char) Exemplerdquoabcdefghijk000lmnopqrst123uvwxyzrdquo est une chaıne decaracteres (entouree de guillemets rdquordquo)Rappel- Un caractere est stocke dans une variable de type charExemple char car=rsquoersquo (entoure de rsquorsquo) - les caracteres sontclasses par le code ASCII
Declaration drsquoune chaıne de caracteresString nom variable
Declaration
String chaine
Jean-Luc Baril Initiation a la programmation JAVA
La table ASCII
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Une chaıne de caracteres (de type String) est une suiteordonnee de caracteres (de type char) Exemplerdquoabcdefghijk000lmnopqrst123uvwxyzrdquo est une chaıne decaracteres (entouree de guillemets rdquordquo)
Declaration drsquoune chaıne de caracteresString nom variable
Declaration
String chaine
Declaration drsquoune chaıne vide
String chaine= Deux guillements consecutifs (sans espace)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Affectationvariable=rdquotexterdquo
Affectation
String chaine1chaine2chaine3chaine1=Bonjourchaine2= Chaine videchaine3=chaine1
Affichage drsquoune chaıne
String chaine1chaine1=BonjourSystemoutprintl(chaine1)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
nombre de caracteres drsquoune chaıne (ou longueur)variablelength()
Longueur drsquoune chaine
int longueurString chainechaine=Bonjourlongueur=chainelength() Nombre de caracteresSystemoutprintln(Il y a +longueur+ caracteres dans la chaine)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
i-ieme caractere drsquoune chaınevariablecharAt(i-1) (de type char)
variablecharAt(0) est le premier caractere de la chaıne variablevariablecharAt(1) est le second caractere de la chaıne variable
i-ieme caractere drsquoune chaıne
char cString chainechaine=Bonjourc=chainecharAt(3)Systemoutprintln(le 4-ieme caractere est+c)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Juxtaposition de deux chaınes (concatenation)chaine1+chaine2
Juxtaposition de deux chaınes
String chaine1chaine2chaine3chaine4chaine1=Bonjourchaine2= jourBonchaine3=chaine1+chaine2Systemoutprintln(chaine3) Affiche Bonjour jourBonchaine4=chaine2+chaine1Systemoutprintln(chaine4) Affiche jourBonBonjour
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Test drsquoegalite de deux chaıneschaine1equals(chaine2) renvoie true si les contenus sontegaux et false sinon
Test drsquoegalite de deux chaınes
String chaine1chaine2chaine1=Bonjourchaine2=Bonjour A NE PAS FAIREif(chaine1==chaine2)Systemoutprintln(les adresses sont egales)
A FAIREif(chaine1equals(chaine2))Systemoutprintln(les contenus des chaines sont egaux)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Les methodes
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Suppression des rsquoarsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Remplacement des rsquoarsquo par des rsquoorsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
elsechaine2=chaine2+rsquoorsquo
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Une fonction est un bout de code qui a un nom et qui peutetre appelee depuis le reste du programmeExemples de fonctions predefinies Mathpow(ab)Mathabs(a) Mathrandom() Mathsqrt(a)
Interets des fonctionsMeilleure lisibilite et concision (evite drsquoecrire plusieurs foisle meme codeNiveau drsquoabstraction plus eleve (un nom remplace unepartie complexe du programme)Gain de place memoireModification plus aiseePartage de fonctions (biibliotheque de fonction)Recursivite
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonctionOn declare une fonction a lrsquoexterieur du main mais a lrsquointerieurde class Je conseille de les declarer juste apres le programmeprincipal
public class programmepublic static void main(String args[])
Programme principal
Declaration des fonctions
Jean-Luc Baril Initiation a la programmation JAVA
Deux types de fonctionFonction qui renvoie une valeur (Mathsqrt()Mathrandom() perimetre() moyenne())Fonction qui ne renvoie pas une valeur (affichage drsquountableau )
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonction qui renvoie une valeur
public static type Nomfonction(parametres formels) instructions de la fonction
return valeurrenvoyee
type est le type de la valeur renvoyee Nomfonction est le nom de la fonction Parametres formels sont les donnees necessaires pour ladeclaration de la fonction (ils restent donc sans valeur)
Appel de la fonction
variable=Nomfonction(parametres effectifs)renvoie la valeur de la fonction
Les parameres effectifs sont les parametres sur lesquels lafonction est executee Lors de lrsquoexecution les parametres formels sontremplaces par les parametres effectifs
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie le maximum de deux entiers
public static int maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
return maxi Renvoie le maximum de a et b
Les variables locales sont connues seulement dans lafonctionAppel de la fonction qui renvoie le maximum de deux entiers
int x=1y=2maxmax=maximum(xy) Appel de la fonction sur x et ySystemoutprintln(max) affichage de 2
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Une chaıne de caracteres (de type String) est une suiteordonnee de caracteres (de type char) Exemplerdquoabcdefghijk000lmnopqrst123uvwxyzrdquo est une chaıne decaracteres (entouree de guillemets rdquordquo)Rappel- Un caractere est stocke dans une variable de type charExemple char car=rsquoersquo (entoure de rsquorsquo) - les caracteres sontclasses par le code ASCII
Declaration drsquoune chaıne de caracteresString nom variable
Declaration
String chaine
Jean-Luc Baril Initiation a la programmation JAVA
La table ASCII
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Une chaıne de caracteres (de type String) est une suiteordonnee de caracteres (de type char) Exemplerdquoabcdefghijk000lmnopqrst123uvwxyzrdquo est une chaıne decaracteres (entouree de guillemets rdquordquo)
Declaration drsquoune chaıne de caracteresString nom variable
Declaration
String chaine
Declaration drsquoune chaıne vide
String chaine= Deux guillements consecutifs (sans espace)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Affectationvariable=rdquotexterdquo
Affectation
String chaine1chaine2chaine3chaine1=Bonjourchaine2= Chaine videchaine3=chaine1
Affichage drsquoune chaıne
String chaine1chaine1=BonjourSystemoutprintl(chaine1)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
nombre de caracteres drsquoune chaıne (ou longueur)variablelength()
Longueur drsquoune chaine
int longueurString chainechaine=Bonjourlongueur=chainelength() Nombre de caracteresSystemoutprintln(Il y a +longueur+ caracteres dans la chaine)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
i-ieme caractere drsquoune chaınevariablecharAt(i-1) (de type char)
variablecharAt(0) est le premier caractere de la chaıne variablevariablecharAt(1) est le second caractere de la chaıne variable
i-ieme caractere drsquoune chaıne
char cString chainechaine=Bonjourc=chainecharAt(3)Systemoutprintln(le 4-ieme caractere est+c)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Juxtaposition de deux chaınes (concatenation)chaine1+chaine2
Juxtaposition de deux chaınes
String chaine1chaine2chaine3chaine4chaine1=Bonjourchaine2= jourBonchaine3=chaine1+chaine2Systemoutprintln(chaine3) Affiche Bonjour jourBonchaine4=chaine2+chaine1Systemoutprintln(chaine4) Affiche jourBonBonjour
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Test drsquoegalite de deux chaıneschaine1equals(chaine2) renvoie true si les contenus sontegaux et false sinon
Test drsquoegalite de deux chaınes
String chaine1chaine2chaine1=Bonjourchaine2=Bonjour A NE PAS FAIREif(chaine1==chaine2)Systemoutprintln(les adresses sont egales)
A FAIREif(chaine1equals(chaine2))Systemoutprintln(les contenus des chaines sont egaux)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Les methodes
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Suppression des rsquoarsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Remplacement des rsquoarsquo par des rsquoorsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
elsechaine2=chaine2+rsquoorsquo
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Une fonction est un bout de code qui a un nom et qui peutetre appelee depuis le reste du programmeExemples de fonctions predefinies Mathpow(ab)Mathabs(a) Mathrandom() Mathsqrt(a)
Interets des fonctionsMeilleure lisibilite et concision (evite drsquoecrire plusieurs foisle meme codeNiveau drsquoabstraction plus eleve (un nom remplace unepartie complexe du programme)Gain de place memoireModification plus aiseePartage de fonctions (biibliotheque de fonction)Recursivite
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonctionOn declare une fonction a lrsquoexterieur du main mais a lrsquointerieurde class Je conseille de les declarer juste apres le programmeprincipal
public class programmepublic static void main(String args[])
Programme principal
Declaration des fonctions
Jean-Luc Baril Initiation a la programmation JAVA
Deux types de fonctionFonction qui renvoie une valeur (Mathsqrt()Mathrandom() perimetre() moyenne())Fonction qui ne renvoie pas une valeur (affichage drsquountableau )
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonction qui renvoie une valeur
public static type Nomfonction(parametres formels) instructions de la fonction
return valeurrenvoyee
type est le type de la valeur renvoyee Nomfonction est le nom de la fonction Parametres formels sont les donnees necessaires pour ladeclaration de la fonction (ils restent donc sans valeur)
Appel de la fonction
variable=Nomfonction(parametres effectifs)renvoie la valeur de la fonction
Les parameres effectifs sont les parametres sur lesquels lafonction est executee Lors de lrsquoexecution les parametres formels sontremplaces par les parametres effectifs
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie le maximum de deux entiers
public static int maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
return maxi Renvoie le maximum de a et b
Les variables locales sont connues seulement dans lafonctionAppel de la fonction qui renvoie le maximum de deux entiers
int x=1y=2maxmax=maximum(xy) Appel de la fonction sur x et ySystemoutprintln(max) affichage de 2
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
La table ASCII
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Une chaıne de caracteres (de type String) est une suiteordonnee de caracteres (de type char) Exemplerdquoabcdefghijk000lmnopqrst123uvwxyzrdquo est une chaıne decaracteres (entouree de guillemets rdquordquo)
Declaration drsquoune chaıne de caracteresString nom variable
Declaration
String chaine
Declaration drsquoune chaıne vide
String chaine= Deux guillements consecutifs (sans espace)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Affectationvariable=rdquotexterdquo
Affectation
String chaine1chaine2chaine3chaine1=Bonjourchaine2= Chaine videchaine3=chaine1
Affichage drsquoune chaıne
String chaine1chaine1=BonjourSystemoutprintl(chaine1)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
nombre de caracteres drsquoune chaıne (ou longueur)variablelength()
Longueur drsquoune chaine
int longueurString chainechaine=Bonjourlongueur=chainelength() Nombre de caracteresSystemoutprintln(Il y a +longueur+ caracteres dans la chaine)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
i-ieme caractere drsquoune chaınevariablecharAt(i-1) (de type char)
variablecharAt(0) est le premier caractere de la chaıne variablevariablecharAt(1) est le second caractere de la chaıne variable
i-ieme caractere drsquoune chaıne
char cString chainechaine=Bonjourc=chainecharAt(3)Systemoutprintln(le 4-ieme caractere est+c)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Juxtaposition de deux chaınes (concatenation)chaine1+chaine2
Juxtaposition de deux chaınes
String chaine1chaine2chaine3chaine4chaine1=Bonjourchaine2= jourBonchaine3=chaine1+chaine2Systemoutprintln(chaine3) Affiche Bonjour jourBonchaine4=chaine2+chaine1Systemoutprintln(chaine4) Affiche jourBonBonjour
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Test drsquoegalite de deux chaıneschaine1equals(chaine2) renvoie true si les contenus sontegaux et false sinon
Test drsquoegalite de deux chaınes
String chaine1chaine2chaine1=Bonjourchaine2=Bonjour A NE PAS FAIREif(chaine1==chaine2)Systemoutprintln(les adresses sont egales)
A FAIREif(chaine1equals(chaine2))Systemoutprintln(les contenus des chaines sont egaux)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Les methodes
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Suppression des rsquoarsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Remplacement des rsquoarsquo par des rsquoorsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
elsechaine2=chaine2+rsquoorsquo
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Une fonction est un bout de code qui a un nom et qui peutetre appelee depuis le reste du programmeExemples de fonctions predefinies Mathpow(ab)Mathabs(a) Mathrandom() Mathsqrt(a)
Interets des fonctionsMeilleure lisibilite et concision (evite drsquoecrire plusieurs foisle meme codeNiveau drsquoabstraction plus eleve (un nom remplace unepartie complexe du programme)Gain de place memoireModification plus aiseePartage de fonctions (biibliotheque de fonction)Recursivite
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonctionOn declare une fonction a lrsquoexterieur du main mais a lrsquointerieurde class Je conseille de les declarer juste apres le programmeprincipal
public class programmepublic static void main(String args[])
Programme principal
Declaration des fonctions
Jean-Luc Baril Initiation a la programmation JAVA
Deux types de fonctionFonction qui renvoie une valeur (Mathsqrt()Mathrandom() perimetre() moyenne())Fonction qui ne renvoie pas une valeur (affichage drsquountableau )
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonction qui renvoie une valeur
public static type Nomfonction(parametres formels) instructions de la fonction
return valeurrenvoyee
type est le type de la valeur renvoyee Nomfonction est le nom de la fonction Parametres formels sont les donnees necessaires pour ladeclaration de la fonction (ils restent donc sans valeur)
Appel de la fonction
variable=Nomfonction(parametres effectifs)renvoie la valeur de la fonction
Les parameres effectifs sont les parametres sur lesquels lafonction est executee Lors de lrsquoexecution les parametres formels sontremplaces par les parametres effectifs
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie le maximum de deux entiers
public static int maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
return maxi Renvoie le maximum de a et b
Les variables locales sont connues seulement dans lafonctionAppel de la fonction qui renvoie le maximum de deux entiers
int x=1y=2maxmax=maximum(xy) Appel de la fonction sur x et ySystemoutprintln(max) affichage de 2
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Une chaıne de caracteres (de type String) est une suiteordonnee de caracteres (de type char) Exemplerdquoabcdefghijk000lmnopqrst123uvwxyzrdquo est une chaıne decaracteres (entouree de guillemets rdquordquo)
Declaration drsquoune chaıne de caracteresString nom variable
Declaration
String chaine
Declaration drsquoune chaıne vide
String chaine= Deux guillements consecutifs (sans espace)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Affectationvariable=rdquotexterdquo
Affectation
String chaine1chaine2chaine3chaine1=Bonjourchaine2= Chaine videchaine3=chaine1
Affichage drsquoune chaıne
String chaine1chaine1=BonjourSystemoutprintl(chaine1)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
nombre de caracteres drsquoune chaıne (ou longueur)variablelength()
Longueur drsquoune chaine
int longueurString chainechaine=Bonjourlongueur=chainelength() Nombre de caracteresSystemoutprintln(Il y a +longueur+ caracteres dans la chaine)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
i-ieme caractere drsquoune chaınevariablecharAt(i-1) (de type char)
variablecharAt(0) est le premier caractere de la chaıne variablevariablecharAt(1) est le second caractere de la chaıne variable
i-ieme caractere drsquoune chaıne
char cString chainechaine=Bonjourc=chainecharAt(3)Systemoutprintln(le 4-ieme caractere est+c)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Juxtaposition de deux chaınes (concatenation)chaine1+chaine2
Juxtaposition de deux chaınes
String chaine1chaine2chaine3chaine4chaine1=Bonjourchaine2= jourBonchaine3=chaine1+chaine2Systemoutprintln(chaine3) Affiche Bonjour jourBonchaine4=chaine2+chaine1Systemoutprintln(chaine4) Affiche jourBonBonjour
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Test drsquoegalite de deux chaıneschaine1equals(chaine2) renvoie true si les contenus sontegaux et false sinon
Test drsquoegalite de deux chaınes
String chaine1chaine2chaine1=Bonjourchaine2=Bonjour A NE PAS FAIREif(chaine1==chaine2)Systemoutprintln(les adresses sont egales)
A FAIREif(chaine1equals(chaine2))Systemoutprintln(les contenus des chaines sont egaux)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Les methodes
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Suppression des rsquoarsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Remplacement des rsquoarsquo par des rsquoorsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
elsechaine2=chaine2+rsquoorsquo
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Une fonction est un bout de code qui a un nom et qui peutetre appelee depuis le reste du programmeExemples de fonctions predefinies Mathpow(ab)Mathabs(a) Mathrandom() Mathsqrt(a)
Interets des fonctionsMeilleure lisibilite et concision (evite drsquoecrire plusieurs foisle meme codeNiveau drsquoabstraction plus eleve (un nom remplace unepartie complexe du programme)Gain de place memoireModification plus aiseePartage de fonctions (biibliotheque de fonction)Recursivite
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonctionOn declare une fonction a lrsquoexterieur du main mais a lrsquointerieurde class Je conseille de les declarer juste apres le programmeprincipal
public class programmepublic static void main(String args[])
Programme principal
Declaration des fonctions
Jean-Luc Baril Initiation a la programmation JAVA
Deux types de fonctionFonction qui renvoie une valeur (Mathsqrt()Mathrandom() perimetre() moyenne())Fonction qui ne renvoie pas une valeur (affichage drsquountableau )
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonction qui renvoie une valeur
public static type Nomfonction(parametres formels) instructions de la fonction
return valeurrenvoyee
type est le type de la valeur renvoyee Nomfonction est le nom de la fonction Parametres formels sont les donnees necessaires pour ladeclaration de la fonction (ils restent donc sans valeur)
Appel de la fonction
variable=Nomfonction(parametres effectifs)renvoie la valeur de la fonction
Les parameres effectifs sont les parametres sur lesquels lafonction est executee Lors de lrsquoexecution les parametres formels sontremplaces par les parametres effectifs
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie le maximum de deux entiers
public static int maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
return maxi Renvoie le maximum de a et b
Les variables locales sont connues seulement dans lafonctionAppel de la fonction qui renvoie le maximum de deux entiers
int x=1y=2maxmax=maximum(xy) Appel de la fonction sur x et ySystemoutprintln(max) affichage de 2
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Affectationvariable=rdquotexterdquo
Affectation
String chaine1chaine2chaine3chaine1=Bonjourchaine2= Chaine videchaine3=chaine1
Affichage drsquoune chaıne
String chaine1chaine1=BonjourSystemoutprintl(chaine1)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
nombre de caracteres drsquoune chaıne (ou longueur)variablelength()
Longueur drsquoune chaine
int longueurString chainechaine=Bonjourlongueur=chainelength() Nombre de caracteresSystemoutprintln(Il y a +longueur+ caracteres dans la chaine)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
i-ieme caractere drsquoune chaınevariablecharAt(i-1) (de type char)
variablecharAt(0) est le premier caractere de la chaıne variablevariablecharAt(1) est le second caractere de la chaıne variable
i-ieme caractere drsquoune chaıne
char cString chainechaine=Bonjourc=chainecharAt(3)Systemoutprintln(le 4-ieme caractere est+c)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Juxtaposition de deux chaınes (concatenation)chaine1+chaine2
Juxtaposition de deux chaınes
String chaine1chaine2chaine3chaine4chaine1=Bonjourchaine2= jourBonchaine3=chaine1+chaine2Systemoutprintln(chaine3) Affiche Bonjour jourBonchaine4=chaine2+chaine1Systemoutprintln(chaine4) Affiche jourBonBonjour
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Test drsquoegalite de deux chaıneschaine1equals(chaine2) renvoie true si les contenus sontegaux et false sinon
Test drsquoegalite de deux chaınes
String chaine1chaine2chaine1=Bonjourchaine2=Bonjour A NE PAS FAIREif(chaine1==chaine2)Systemoutprintln(les adresses sont egales)
A FAIREif(chaine1equals(chaine2))Systemoutprintln(les contenus des chaines sont egaux)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Les methodes
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Suppression des rsquoarsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Remplacement des rsquoarsquo par des rsquoorsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
elsechaine2=chaine2+rsquoorsquo
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Une fonction est un bout de code qui a un nom et qui peutetre appelee depuis le reste du programmeExemples de fonctions predefinies Mathpow(ab)Mathabs(a) Mathrandom() Mathsqrt(a)
Interets des fonctionsMeilleure lisibilite et concision (evite drsquoecrire plusieurs foisle meme codeNiveau drsquoabstraction plus eleve (un nom remplace unepartie complexe du programme)Gain de place memoireModification plus aiseePartage de fonctions (biibliotheque de fonction)Recursivite
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonctionOn declare une fonction a lrsquoexterieur du main mais a lrsquointerieurde class Je conseille de les declarer juste apres le programmeprincipal
public class programmepublic static void main(String args[])
Programme principal
Declaration des fonctions
Jean-Luc Baril Initiation a la programmation JAVA
Deux types de fonctionFonction qui renvoie une valeur (Mathsqrt()Mathrandom() perimetre() moyenne())Fonction qui ne renvoie pas une valeur (affichage drsquountableau )
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonction qui renvoie une valeur
public static type Nomfonction(parametres formels) instructions de la fonction
return valeurrenvoyee
type est le type de la valeur renvoyee Nomfonction est le nom de la fonction Parametres formels sont les donnees necessaires pour ladeclaration de la fonction (ils restent donc sans valeur)
Appel de la fonction
variable=Nomfonction(parametres effectifs)renvoie la valeur de la fonction
Les parameres effectifs sont les parametres sur lesquels lafonction est executee Lors de lrsquoexecution les parametres formels sontremplaces par les parametres effectifs
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie le maximum de deux entiers
public static int maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
return maxi Renvoie le maximum de a et b
Les variables locales sont connues seulement dans lafonctionAppel de la fonction qui renvoie le maximum de deux entiers
int x=1y=2maxmax=maximum(xy) Appel de la fonction sur x et ySystemoutprintln(max) affichage de 2
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
nombre de caracteres drsquoune chaıne (ou longueur)variablelength()
Longueur drsquoune chaine
int longueurString chainechaine=Bonjourlongueur=chainelength() Nombre de caracteresSystemoutprintln(Il y a +longueur+ caracteres dans la chaine)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
i-ieme caractere drsquoune chaınevariablecharAt(i-1) (de type char)
variablecharAt(0) est le premier caractere de la chaıne variablevariablecharAt(1) est le second caractere de la chaıne variable
i-ieme caractere drsquoune chaıne
char cString chainechaine=Bonjourc=chainecharAt(3)Systemoutprintln(le 4-ieme caractere est+c)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Juxtaposition de deux chaınes (concatenation)chaine1+chaine2
Juxtaposition de deux chaınes
String chaine1chaine2chaine3chaine4chaine1=Bonjourchaine2= jourBonchaine3=chaine1+chaine2Systemoutprintln(chaine3) Affiche Bonjour jourBonchaine4=chaine2+chaine1Systemoutprintln(chaine4) Affiche jourBonBonjour
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Test drsquoegalite de deux chaıneschaine1equals(chaine2) renvoie true si les contenus sontegaux et false sinon
Test drsquoegalite de deux chaınes
String chaine1chaine2chaine1=Bonjourchaine2=Bonjour A NE PAS FAIREif(chaine1==chaine2)Systemoutprintln(les adresses sont egales)
A FAIREif(chaine1equals(chaine2))Systemoutprintln(les contenus des chaines sont egaux)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Les methodes
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Suppression des rsquoarsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Remplacement des rsquoarsquo par des rsquoorsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
elsechaine2=chaine2+rsquoorsquo
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Une fonction est un bout de code qui a un nom et qui peutetre appelee depuis le reste du programmeExemples de fonctions predefinies Mathpow(ab)Mathabs(a) Mathrandom() Mathsqrt(a)
Interets des fonctionsMeilleure lisibilite et concision (evite drsquoecrire plusieurs foisle meme codeNiveau drsquoabstraction plus eleve (un nom remplace unepartie complexe du programme)Gain de place memoireModification plus aiseePartage de fonctions (biibliotheque de fonction)Recursivite
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonctionOn declare une fonction a lrsquoexterieur du main mais a lrsquointerieurde class Je conseille de les declarer juste apres le programmeprincipal
public class programmepublic static void main(String args[])
Programme principal
Declaration des fonctions
Jean-Luc Baril Initiation a la programmation JAVA
Deux types de fonctionFonction qui renvoie une valeur (Mathsqrt()Mathrandom() perimetre() moyenne())Fonction qui ne renvoie pas une valeur (affichage drsquountableau )
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonction qui renvoie une valeur
public static type Nomfonction(parametres formels) instructions de la fonction
return valeurrenvoyee
type est le type de la valeur renvoyee Nomfonction est le nom de la fonction Parametres formels sont les donnees necessaires pour ladeclaration de la fonction (ils restent donc sans valeur)
Appel de la fonction
variable=Nomfonction(parametres effectifs)renvoie la valeur de la fonction
Les parameres effectifs sont les parametres sur lesquels lafonction est executee Lors de lrsquoexecution les parametres formels sontremplaces par les parametres effectifs
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie le maximum de deux entiers
public static int maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
return maxi Renvoie le maximum de a et b
Les variables locales sont connues seulement dans lafonctionAppel de la fonction qui renvoie le maximum de deux entiers
int x=1y=2maxmax=maximum(xy) Appel de la fonction sur x et ySystemoutprintln(max) affichage de 2
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
i-ieme caractere drsquoune chaınevariablecharAt(i-1) (de type char)
variablecharAt(0) est le premier caractere de la chaıne variablevariablecharAt(1) est le second caractere de la chaıne variable
i-ieme caractere drsquoune chaıne
char cString chainechaine=Bonjourc=chainecharAt(3)Systemoutprintln(le 4-ieme caractere est+c)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Juxtaposition de deux chaınes (concatenation)chaine1+chaine2
Juxtaposition de deux chaınes
String chaine1chaine2chaine3chaine4chaine1=Bonjourchaine2= jourBonchaine3=chaine1+chaine2Systemoutprintln(chaine3) Affiche Bonjour jourBonchaine4=chaine2+chaine1Systemoutprintln(chaine4) Affiche jourBonBonjour
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Test drsquoegalite de deux chaıneschaine1equals(chaine2) renvoie true si les contenus sontegaux et false sinon
Test drsquoegalite de deux chaınes
String chaine1chaine2chaine1=Bonjourchaine2=Bonjour A NE PAS FAIREif(chaine1==chaine2)Systemoutprintln(les adresses sont egales)
A FAIREif(chaine1equals(chaine2))Systemoutprintln(les contenus des chaines sont egaux)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Les methodes
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Suppression des rsquoarsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Remplacement des rsquoarsquo par des rsquoorsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
elsechaine2=chaine2+rsquoorsquo
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Une fonction est un bout de code qui a un nom et qui peutetre appelee depuis le reste du programmeExemples de fonctions predefinies Mathpow(ab)Mathabs(a) Mathrandom() Mathsqrt(a)
Interets des fonctionsMeilleure lisibilite et concision (evite drsquoecrire plusieurs foisle meme codeNiveau drsquoabstraction plus eleve (un nom remplace unepartie complexe du programme)Gain de place memoireModification plus aiseePartage de fonctions (biibliotheque de fonction)Recursivite
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonctionOn declare une fonction a lrsquoexterieur du main mais a lrsquointerieurde class Je conseille de les declarer juste apres le programmeprincipal
public class programmepublic static void main(String args[])
Programme principal
Declaration des fonctions
Jean-Luc Baril Initiation a la programmation JAVA
Deux types de fonctionFonction qui renvoie une valeur (Mathsqrt()Mathrandom() perimetre() moyenne())Fonction qui ne renvoie pas une valeur (affichage drsquountableau )
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonction qui renvoie une valeur
public static type Nomfonction(parametres formels) instructions de la fonction
return valeurrenvoyee
type est le type de la valeur renvoyee Nomfonction est le nom de la fonction Parametres formels sont les donnees necessaires pour ladeclaration de la fonction (ils restent donc sans valeur)
Appel de la fonction
variable=Nomfonction(parametres effectifs)renvoie la valeur de la fonction
Les parameres effectifs sont les parametres sur lesquels lafonction est executee Lors de lrsquoexecution les parametres formels sontremplaces par les parametres effectifs
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie le maximum de deux entiers
public static int maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
return maxi Renvoie le maximum de a et b
Les variables locales sont connues seulement dans lafonctionAppel de la fonction qui renvoie le maximum de deux entiers
int x=1y=2maxmax=maximum(xy) Appel de la fonction sur x et ySystemoutprintln(max) affichage de 2
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Juxtaposition de deux chaınes (concatenation)chaine1+chaine2
Juxtaposition de deux chaınes
String chaine1chaine2chaine3chaine4chaine1=Bonjourchaine2= jourBonchaine3=chaine1+chaine2Systemoutprintln(chaine3) Affiche Bonjour jourBonchaine4=chaine2+chaine1Systemoutprintln(chaine4) Affiche jourBonBonjour
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Test drsquoegalite de deux chaıneschaine1equals(chaine2) renvoie true si les contenus sontegaux et false sinon
Test drsquoegalite de deux chaınes
String chaine1chaine2chaine1=Bonjourchaine2=Bonjour A NE PAS FAIREif(chaine1==chaine2)Systemoutprintln(les adresses sont egales)
A FAIREif(chaine1equals(chaine2))Systemoutprintln(les contenus des chaines sont egaux)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Les methodes
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Suppression des rsquoarsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Remplacement des rsquoarsquo par des rsquoorsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
elsechaine2=chaine2+rsquoorsquo
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Une fonction est un bout de code qui a un nom et qui peutetre appelee depuis le reste du programmeExemples de fonctions predefinies Mathpow(ab)Mathabs(a) Mathrandom() Mathsqrt(a)
Interets des fonctionsMeilleure lisibilite et concision (evite drsquoecrire plusieurs foisle meme codeNiveau drsquoabstraction plus eleve (un nom remplace unepartie complexe du programme)Gain de place memoireModification plus aiseePartage de fonctions (biibliotheque de fonction)Recursivite
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonctionOn declare une fonction a lrsquoexterieur du main mais a lrsquointerieurde class Je conseille de les declarer juste apres le programmeprincipal
public class programmepublic static void main(String args[])
Programme principal
Declaration des fonctions
Jean-Luc Baril Initiation a la programmation JAVA
Deux types de fonctionFonction qui renvoie une valeur (Mathsqrt()Mathrandom() perimetre() moyenne())Fonction qui ne renvoie pas une valeur (affichage drsquountableau )
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonction qui renvoie une valeur
public static type Nomfonction(parametres formels) instructions de la fonction
return valeurrenvoyee
type est le type de la valeur renvoyee Nomfonction est le nom de la fonction Parametres formels sont les donnees necessaires pour ladeclaration de la fonction (ils restent donc sans valeur)
Appel de la fonction
variable=Nomfonction(parametres effectifs)renvoie la valeur de la fonction
Les parameres effectifs sont les parametres sur lesquels lafonction est executee Lors de lrsquoexecution les parametres formels sontremplaces par les parametres effectifs
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie le maximum de deux entiers
public static int maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
return maxi Renvoie le maximum de a et b
Les variables locales sont connues seulement dans lafonctionAppel de la fonction qui renvoie le maximum de deux entiers
int x=1y=2maxmax=maximum(xy) Appel de la fonction sur x et ySystemoutprintln(max) affichage de 2
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Test drsquoegalite de deux chaıneschaine1equals(chaine2) renvoie true si les contenus sontegaux et false sinon
Test drsquoegalite de deux chaınes
String chaine1chaine2chaine1=Bonjourchaine2=Bonjour A NE PAS FAIREif(chaine1==chaine2)Systemoutprintln(les adresses sont egales)
A FAIREif(chaine1equals(chaine2))Systemoutprintln(les contenus des chaines sont egaux)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Les methodes
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Suppression des rsquoarsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Remplacement des rsquoarsquo par des rsquoorsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
elsechaine2=chaine2+rsquoorsquo
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Une fonction est un bout de code qui a un nom et qui peutetre appelee depuis le reste du programmeExemples de fonctions predefinies Mathpow(ab)Mathabs(a) Mathrandom() Mathsqrt(a)
Interets des fonctionsMeilleure lisibilite et concision (evite drsquoecrire plusieurs foisle meme codeNiveau drsquoabstraction plus eleve (un nom remplace unepartie complexe du programme)Gain de place memoireModification plus aiseePartage de fonctions (biibliotheque de fonction)Recursivite
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonctionOn declare une fonction a lrsquoexterieur du main mais a lrsquointerieurde class Je conseille de les declarer juste apres le programmeprincipal
public class programmepublic static void main(String args[])
Programme principal
Declaration des fonctions
Jean-Luc Baril Initiation a la programmation JAVA
Deux types de fonctionFonction qui renvoie une valeur (Mathsqrt()Mathrandom() perimetre() moyenne())Fonction qui ne renvoie pas une valeur (affichage drsquountableau )
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonction qui renvoie une valeur
public static type Nomfonction(parametres formels) instructions de la fonction
return valeurrenvoyee
type est le type de la valeur renvoyee Nomfonction est le nom de la fonction Parametres formels sont les donnees necessaires pour ladeclaration de la fonction (ils restent donc sans valeur)
Appel de la fonction
variable=Nomfonction(parametres effectifs)renvoie la valeur de la fonction
Les parameres effectifs sont les parametres sur lesquels lafonction est executee Lors de lrsquoexecution les parametres formels sontremplaces par les parametres effectifs
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie le maximum de deux entiers
public static int maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
return maxi Renvoie le maximum de a et b
Les variables locales sont connues seulement dans lafonctionAppel de la fonction qui renvoie le maximum de deux entiers
int x=1y=2maxmax=maximum(xy) Appel de la fonction sur x et ySystemoutprintln(max) affichage de 2
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Les methodes
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Suppression des rsquoarsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Remplacement des rsquoarsquo par des rsquoorsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
elsechaine2=chaine2+rsquoorsquo
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Une fonction est un bout de code qui a un nom et qui peutetre appelee depuis le reste du programmeExemples de fonctions predefinies Mathpow(ab)Mathabs(a) Mathrandom() Mathsqrt(a)
Interets des fonctionsMeilleure lisibilite et concision (evite drsquoecrire plusieurs foisle meme codeNiveau drsquoabstraction plus eleve (un nom remplace unepartie complexe du programme)Gain de place memoireModification plus aiseePartage de fonctions (biibliotheque de fonction)Recursivite
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonctionOn declare une fonction a lrsquoexterieur du main mais a lrsquointerieurde class Je conseille de les declarer juste apres le programmeprincipal
public class programmepublic static void main(String args[])
Programme principal
Declaration des fonctions
Jean-Luc Baril Initiation a la programmation JAVA
Deux types de fonctionFonction qui renvoie une valeur (Mathsqrt()Mathrandom() perimetre() moyenne())Fonction qui ne renvoie pas une valeur (affichage drsquountableau )
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonction qui renvoie une valeur
public static type Nomfonction(parametres formels) instructions de la fonction
return valeurrenvoyee
type est le type de la valeur renvoyee Nomfonction est le nom de la fonction Parametres formels sont les donnees necessaires pour ladeclaration de la fonction (ils restent donc sans valeur)
Appel de la fonction
variable=Nomfonction(parametres effectifs)renvoie la valeur de la fonction
Les parameres effectifs sont les parametres sur lesquels lafonction est executee Lors de lrsquoexecution les parametres formels sontremplaces par les parametres effectifs
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie le maximum de deux entiers
public static int maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
return maxi Renvoie le maximum de a et b
Les variables locales sont connues seulement dans lafonctionAppel de la fonction qui renvoie le maximum de deux entiers
int x=1y=2maxmax=maximum(xy) Appel de la fonction sur x et ySystemoutprintln(max) affichage de 2
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Suppression des rsquoarsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Remplacement des rsquoarsquo par des rsquoorsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
elsechaine2=chaine2+rsquoorsquo
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Une fonction est un bout de code qui a un nom et qui peutetre appelee depuis le reste du programmeExemples de fonctions predefinies Mathpow(ab)Mathabs(a) Mathrandom() Mathsqrt(a)
Interets des fonctionsMeilleure lisibilite et concision (evite drsquoecrire plusieurs foisle meme codeNiveau drsquoabstraction plus eleve (un nom remplace unepartie complexe du programme)Gain de place memoireModification plus aiseePartage de fonctions (biibliotheque de fonction)Recursivite
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonctionOn declare une fonction a lrsquoexterieur du main mais a lrsquointerieurde class Je conseille de les declarer juste apres le programmeprincipal
public class programmepublic static void main(String args[])
Programme principal
Declaration des fonctions
Jean-Luc Baril Initiation a la programmation JAVA
Deux types de fonctionFonction qui renvoie une valeur (Mathsqrt()Mathrandom() perimetre() moyenne())Fonction qui ne renvoie pas une valeur (affichage drsquountableau )
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonction qui renvoie une valeur
public static type Nomfonction(parametres formels) instructions de la fonction
return valeurrenvoyee
type est le type de la valeur renvoyee Nomfonction est le nom de la fonction Parametres formels sont les donnees necessaires pour ladeclaration de la fonction (ils restent donc sans valeur)
Appel de la fonction
variable=Nomfonction(parametres effectifs)renvoie la valeur de la fonction
Les parameres effectifs sont les parametres sur lesquels lafonction est executee Lors de lrsquoexecution les parametres formels sontremplaces par les parametres effectifs
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie le maximum de deux entiers
public static int maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
return maxi Renvoie le maximum de a et b
Les variables locales sont connues seulement dans lafonctionAppel de la fonction qui renvoie le maximum de deux entiers
int x=1y=2maxmax=maximum(xy) Appel de la fonction sur x et ySystemoutprintln(max) affichage de 2
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les chaınes de caracteres
Remplacement des rsquoarsquo par des rsquoorsquo dans une chaıne
String chaine1chaine2int i longueurlongueur=chaine1length()chaine2=for(i=0ilt=longueur-1i++)if(chaine1charAt(i)=rsquoarsquo)chaine2=chaine2+chaine1charAt(i)
elsechaine2=chaine2+rsquoorsquo
Systemoutprintln(chaine2)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Une fonction est un bout de code qui a un nom et qui peutetre appelee depuis le reste du programmeExemples de fonctions predefinies Mathpow(ab)Mathabs(a) Mathrandom() Mathsqrt(a)
Interets des fonctionsMeilleure lisibilite et concision (evite drsquoecrire plusieurs foisle meme codeNiveau drsquoabstraction plus eleve (un nom remplace unepartie complexe du programme)Gain de place memoireModification plus aiseePartage de fonctions (biibliotheque de fonction)Recursivite
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonctionOn declare une fonction a lrsquoexterieur du main mais a lrsquointerieurde class Je conseille de les declarer juste apres le programmeprincipal
public class programmepublic static void main(String args[])
Programme principal
Declaration des fonctions
Jean-Luc Baril Initiation a la programmation JAVA
Deux types de fonctionFonction qui renvoie une valeur (Mathsqrt()Mathrandom() perimetre() moyenne())Fonction qui ne renvoie pas une valeur (affichage drsquountableau )
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonction qui renvoie une valeur
public static type Nomfonction(parametres formels) instructions de la fonction
return valeurrenvoyee
type est le type de la valeur renvoyee Nomfonction est le nom de la fonction Parametres formels sont les donnees necessaires pour ladeclaration de la fonction (ils restent donc sans valeur)
Appel de la fonction
variable=Nomfonction(parametres effectifs)renvoie la valeur de la fonction
Les parameres effectifs sont les parametres sur lesquels lafonction est executee Lors de lrsquoexecution les parametres formels sontremplaces par les parametres effectifs
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie le maximum de deux entiers
public static int maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
return maxi Renvoie le maximum de a et b
Les variables locales sont connues seulement dans lafonctionAppel de la fonction qui renvoie le maximum de deux entiers
int x=1y=2maxmax=maximum(xy) Appel de la fonction sur x et ySystemoutprintln(max) affichage de 2
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Une fonction est un bout de code qui a un nom et qui peutetre appelee depuis le reste du programmeExemples de fonctions predefinies Mathpow(ab)Mathabs(a) Mathrandom() Mathsqrt(a)
Interets des fonctionsMeilleure lisibilite et concision (evite drsquoecrire plusieurs foisle meme codeNiveau drsquoabstraction plus eleve (un nom remplace unepartie complexe du programme)Gain de place memoireModification plus aiseePartage de fonctions (biibliotheque de fonction)Recursivite
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonctionOn declare une fonction a lrsquoexterieur du main mais a lrsquointerieurde class Je conseille de les declarer juste apres le programmeprincipal
public class programmepublic static void main(String args[])
Programme principal
Declaration des fonctions
Jean-Luc Baril Initiation a la programmation JAVA
Deux types de fonctionFonction qui renvoie une valeur (Mathsqrt()Mathrandom() perimetre() moyenne())Fonction qui ne renvoie pas une valeur (affichage drsquountableau )
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonction qui renvoie une valeur
public static type Nomfonction(parametres formels) instructions de la fonction
return valeurrenvoyee
type est le type de la valeur renvoyee Nomfonction est le nom de la fonction Parametres formels sont les donnees necessaires pour ladeclaration de la fonction (ils restent donc sans valeur)
Appel de la fonction
variable=Nomfonction(parametres effectifs)renvoie la valeur de la fonction
Les parameres effectifs sont les parametres sur lesquels lafonction est executee Lors de lrsquoexecution les parametres formels sontremplaces par les parametres effectifs
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie le maximum de deux entiers
public static int maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
return maxi Renvoie le maximum de a et b
Les variables locales sont connues seulement dans lafonctionAppel de la fonction qui renvoie le maximum de deux entiers
int x=1y=2maxmax=maximum(xy) Appel de la fonction sur x et ySystemoutprintln(max) affichage de 2
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonctionOn declare une fonction a lrsquoexterieur du main mais a lrsquointerieurde class Je conseille de les declarer juste apres le programmeprincipal
public class programmepublic static void main(String args[])
Programme principal
Declaration des fonctions
Jean-Luc Baril Initiation a la programmation JAVA
Deux types de fonctionFonction qui renvoie une valeur (Mathsqrt()Mathrandom() perimetre() moyenne())Fonction qui ne renvoie pas une valeur (affichage drsquountableau )
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonction qui renvoie une valeur
public static type Nomfonction(parametres formels) instructions de la fonction
return valeurrenvoyee
type est le type de la valeur renvoyee Nomfonction est le nom de la fonction Parametres formels sont les donnees necessaires pour ladeclaration de la fonction (ils restent donc sans valeur)
Appel de la fonction
variable=Nomfonction(parametres effectifs)renvoie la valeur de la fonction
Les parameres effectifs sont les parametres sur lesquels lafonction est executee Lors de lrsquoexecution les parametres formels sontremplaces par les parametres effectifs
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie le maximum de deux entiers
public static int maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
return maxi Renvoie le maximum de a et b
Les variables locales sont connues seulement dans lafonctionAppel de la fonction qui renvoie le maximum de deux entiers
int x=1y=2maxmax=maximum(xy) Appel de la fonction sur x et ySystemoutprintln(max) affichage de 2
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Deux types de fonctionFonction qui renvoie une valeur (Mathsqrt()Mathrandom() perimetre() moyenne())Fonction qui ne renvoie pas une valeur (affichage drsquountableau )
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonction qui renvoie une valeur
public static type Nomfonction(parametres formels) instructions de la fonction
return valeurrenvoyee
type est le type de la valeur renvoyee Nomfonction est le nom de la fonction Parametres formels sont les donnees necessaires pour ladeclaration de la fonction (ils restent donc sans valeur)
Appel de la fonction
variable=Nomfonction(parametres effectifs)renvoie la valeur de la fonction
Les parameres effectifs sont les parametres sur lesquels lafonction est executee Lors de lrsquoexecution les parametres formels sontremplaces par les parametres effectifs
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie le maximum de deux entiers
public static int maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
return maxi Renvoie le maximum de a et b
Les variables locales sont connues seulement dans lafonctionAppel de la fonction qui renvoie le maximum de deux entiers
int x=1y=2maxmax=maximum(xy) Appel de la fonction sur x et ySystemoutprintln(max) affichage de 2
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Declaration drsquoune fonction qui renvoie une valeur
public static type Nomfonction(parametres formels) instructions de la fonction
return valeurrenvoyee
type est le type de la valeur renvoyee Nomfonction est le nom de la fonction Parametres formels sont les donnees necessaires pour ladeclaration de la fonction (ils restent donc sans valeur)
Appel de la fonction
variable=Nomfonction(parametres effectifs)renvoie la valeur de la fonction
Les parameres effectifs sont les parametres sur lesquels lafonction est executee Lors de lrsquoexecution les parametres formels sontremplaces par les parametres effectifs
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie le maximum de deux entiers
public static int maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
return maxi Renvoie le maximum de a et b
Les variables locales sont connues seulement dans lafonctionAppel de la fonction qui renvoie le maximum de deux entiers
int x=1y=2maxmax=maximum(xy) Appel de la fonction sur x et ySystemoutprintln(max) affichage de 2
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie le maximum de deux entiers
public static int maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
return maxi Renvoie le maximum de a et b
Les variables locales sont connues seulement dans lafonctionAppel de la fonction qui renvoie le maximum de deux entiers
int x=1y=2maxmax=maximum(xy) Appel de la fonction sur x et ySystemoutprintln(max) affichage de 2
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui renvoie la moyenne de 2 reels
public static double moyenne(double a double b)double moy Variable localemoy=(a+b)2
return moy Renvoie la moyenne de a et b
Appel de la fonction qui renvoie la moyenne
double x=15y=25moymoy=moyenne(xy) Appel de la fonction sur x et ySystemoutprintln(moy) affichage la moyenne
Il y a ici deux variables moy
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Declaration drsquoune fonction qui ne renvoie pas de valeur
public static void Nomfonction(parametres formels)instructions de la fonctionil nrsquoy a pas le return
Appel de la fonction
Nomfonction(parametres effectifs) Crsquoest une instruction qui ne renvoie pas de valeur Elle se contente drsquoexecuter les instructions de la fonction
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Fonction qui affiche le maximum de deux entiers (sans lerenvoyer)
public static void maximum(int a int b)int maxi Variable localeif(agtb)maxi=a
elsemaxi=b
Systemoutprintln(Le max de +a+ et +b+ est +maxi) Affiche le maximum de a et b
Appel de la fonction qui affiche le maximum de deux entiers
int xyx=1y=2maximum(xy) Appel de la fonction sur x et y
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Peut-on modifier un parametre de fonction
-Les parametres de types int char double boolean Stringne peuvent pas etre modifies au cours de lrsquoexecution drsquounefonctionOn dit que les parametres sont passes par valeur
-Les parametres de types tableaux 1D ou 2D peuvent etremodifiesOn dit que les parametres sont passes par references (ouvariable)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1y=ajoutun(x) Appel de la fonction sur x
A la fin y=2 et x=1
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Tentative de modification drsquoun parametre passe par valeur
public static int ajoutun(int a) a=a+1return a
Appel de la fonction
int xx=1x=ajoutun(x) Appel de la fonction sur x
A la fin x=2 Ici la modification est realisee (mais crsquoest en trichant)
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions
Modification drsquoun parametre passe par reference
public static void modif(int tab[]) tab[0]=1
tab[1]=2tab[2]=3
Appel de la fonction
int T[]T=new int[3]T[0]=0T[1]=1T[2]=2modif(T) Appel de la fonction sur T
A la fin T[0]=1 et T[1]=2 et T[2]=3
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Une fonction est recursive si elle srsquoappelle elle memeIl y a toujours un cas de base sans appel recursif et le casgeneral ou intervient la recursivite
Fonction recursive pour calculer n = (n-1) n
public static int facto(int n)if(n==0)return 1 Cas de base
elsereturn nfacto(n-1) Cas general de la recursivite
Appel de facto
int nresun=10resu=facto(n) Appel de la fonction recursive facto
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Partant drsquoun couple de lapins combien de couples obtiendrons-nous apres un nombre donne de mois sachant que
chaque couple produit chaque mois un nouveau couple lequel ne devient productif qursquoapres deux mois
Fonction recursive pour calculer les nombres de Fibonacci
f0 = 1 f1 = 1 fn = fnminus1 + fnminus2
public static int fibo(int n)if(n==0 || n==1)return 1 Cas de base
elsereturn fibo(n-1)+fibo(n-2) Cas general
Appel de fibo
int nresun=10resu=fibo(n) Appel de la fonction recursive fibo
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Les fonctions - La recursivite
Fonction recursive pour calculer les coefficients binomiaux
Ckn = Ckminus1
nminus1 + Cknminus1
public static int coeff(int nint k)if(k==0 || k==n)return 1 Cas de base
elsereturn coeff(n-1k-1)+coeff(n-1k) Cas general
Appel de coeff
int nkresun=10k=3resu=fibo(nk) Appel de la fonction recursive coeff
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA
Jean-Luc Baril Initiation a la programmation JAVA