SlideShare ist ein Scribd-Unternehmen logo
1 von 59
Downloaden Sie, um offline zu lesen
DUT MMI – IUT de Marne-la-Vallée
20/09/2013
M1202 - Algorithmique
Cours 1
Introduction aux algorithmes
Philippe Gambette
• Contact
- Courriel : philippe.gambette@gmail.com (M1202 dans le sujet du courriel)
- Avant ou après le cours
• Matériel
- Ordinateur portable : pas pendant les cours, à discuter pour les TD.
- Pas de téléphone portable pendant cours/TD/TP
- Salles informatiques : pas manger, pas boire, pas débrancher les câbles
• Déroulement des enseignements
- Page web du cours : http://tinyurl.com/M1202-2013S1
- Séparation cours/TP/TD :
→ nouvelles méthodes de travail
→ distinguer ce qui est important, à retenir
→ savoir où retrouver l'information
- En général, distribution de notes de cours à compléter
- En général, distribution de corrigés :
→ refaire les exercices !
Organisation pratique
• Notes et devoirs
- Interrogations QCM en début de cours ou TD
(signalement des absences pour rattrapage, voir intranet)
- Un devoir maison
• Note finale
- Prévision : environ 2/3 “compétences”, environ 1/3 “motivation”
- Compétences : 2/3 devoir final (8 janvier 2014), 1/3 QCM
- Motivation : devoir maison, note générale de TP
• Exercices supplémentaires d'entraînement
- Sur demande, par courriel
- Sur demande, possibilité d'organiser
une séance d'exercices ou de préparation
au devoir final.
Organisation pratique
• Notes et devoirs
- Interrogations QCM en début de cours ou TD
(signalement des absences pour rattrapage, voir intranet)
- Un devoir maison
• Note finale
- Prévision : environ 2/3 “compétences”, environ 1/3 “motivation”
- Compétences : 2/3 devoir final (8 janvier 2014), 1/3 QCM
- Motivation : devoir maison, note générale de TP
• Exercices supplémentaires d'entraînement
- Sur demande, par courriel
- Sur demande, possibilité d'organiser
une séance d'exercices ou de préparation
au devoir final.
Organisation pratique
• Le livre de Java premier langage, d'A. Tasso
• http://www.pise.info/algo/introduction.htm
• Cours INF120 de J.-G. Luque
• http://serecom.univ-tln.fr/cours/index.php/Algorithmie
• Cours de J. Henriet : http://julienhenriet.olympe-network.com/Algo.html
• http://xkcd.com, http://xkcd.free.fr
Sources
• Introduction aux algorithmes
• Variables et affectation, type et codage des données
• Les tests et la logique
• Les boucles et leur terminaison, les tableaux
• Les entrées-sorties et les fonctions
Plan des cours du semestre
• Introduction aux algorithmes
• A quoi sert un algorithme ?
• Algorithme et programme
• Enjeux de l'algorithmique
• Composants d'un algorithme
• Variables et affectation
Plan du cours 1 – Introduction aux algorithmes
La recette des crêpes
http://www.crepes-recette.com
Les différences possibles entre recettes pour un même plat :
La recette des crêpes
http://www.crepes-recette.com
Les différences possibles entre recettes pour un même plat :
• Ingrédients (quantités)
• Matériel utilisé
• Ordre des opérations, nombre d'opérations
• Cuisson, mode d'opération
• Nom de la recette
• Temps de préparation
• Source de la recette
• Style d'écriture
• Langue
La recette des crêpes
http://www.crepes-recette.com
La recette des crêpes
http://www.crepes-recette.com
La recette des crêpes
http://www.crepes-recette.com
La recette des crêpes
http://www.crepes-recette.com
L'“algorithme des crêpes”
Ingrédients : beurre, oeufs, sachets de sucre vanillé, farine, lait, sel
Récipients : saladier, verre mesureur, poêle, assiette
Opérations de base : mettre dans un récipient, mélanger, attendre pendant … minutes,
retourner, laisser cuire pendant ... minutes
Algorithme des crêpes :
Mettre 4 oeufs dans le saladier
Mettre 1 sachet de sucre vanillé dans le saladier
Mettre 250 g de farine dans le verre mesureur
Mettre le contenu du verre mesureur dans le saladier
Mettre 0,5 litre de lait dans le verre mesureur
Mettre le contenu du verre mesureur dans le saladier
Mettre 50 grammes de beurre dans la poêle
Laisser cuire la poêle pendant 1 minute
Mettre le contenu de la poêle dans le saladier
Mélanger le contenu du saladier
Attendre pendant 60 minutes
Mettre 5 grammes de beurre dans la poêle
Laisser cuire la poêle pendant 0.5 minute
Tant que le saladier n'est pas vide :
Mettre 5 cL du contenu du saladier dans
le verre mesureur
Mettre le contenu du verre mesureur
dans la poêle
Laisser cuire la poêle pendant 2 minutes
Retourner le contenu de la poêle
Laisser cuire la poêle pendant 2 minutes
Mettre le contenu de la poêle dans
l'assiette
Organigramme de la recette des crêpes
saladier ← 4 oeufs
saladier ← saladier +
sucre vanillé
verre ← 250g farine
saladier ← saladier +
verre
verre ← 0.5L lait
saladier ← saladier +
verre
poêle ← 50g beurre
cuire(poêle, 1 min)
saladier ← saladier +
poêle
mélanger(saladier)
attendre(60 min)
poêle ← 5g beurre
cuire(poêle, 0.5 min)
saladier vide ?
Bon appétit ! verre ← 5cL saladier poêle ← verre
cuire(poêle, 2 min)
retourner(poêle)
cuire(poêle, 2 min)
assiette ← poêle
oui non
Crêpes !
ingrédients
récipients
boucle
A quoi sert un algorithme ?
• À décrire les étapes de résolution d'un problème :
→ de façon structurée et compacte
→ à partir d'opérations de base
→ indépendamment d'un langage de programmation
A quoi sert un algorithme ?
• À décrire les étapes de résolution d'un problème :
→ de façon structurée et compacte
→ à partir d'opérations de base
→ indépendamment d'un langage de programmation
“étapes” aussi appelées “pas de l'algorithme”
A quoi sert un algorithme ?
• À décrire les étapes de résolution d'un problème :
→ de façon structurée et compacte
→ à partir d'opérations de base
→ indépendamment d'un langage de programmation
Les données du problème en entrée
Le résultat de sa résolution en sortie
Composants d'un algorithme
Algorithme :
Instruction 1
Instruction 2
Instruction 3
...
Recette des crêpes
Guidage GPS
Multiplication
Composants d'un algorithme
Algorithme :
Instruction 1
Instruction 2
Instruction 3
...
Données du
problème
entrées de
l'algorithme
Résultat
sorties de
l'algorithme
ingrédients
beurre, oeufs, sachets
de sucre vanillé, farine,
lait, sel et quantités
crêpesRecette des crêpes
informations sur
l'environnement
plan des rues, position de
la voiture, position de la
destination
itinéraire
ou prochaine
direction à
prendre
Guidage GPS
Multiplicationdeux entiers
entier1 et entier2
leur produit
entier1 x entier2
A quoi sert un algorithme ?
• À décrire les étapes de résolution d'un problème :
→ de façon structurée et compacte
→ à partir d'opérations de base
→ indépendamment d'un langage de programmation
Méthode de résolution d'un problème :
facile à comprendre
facile à transmettre
A quoi sert un algorithme ?
• À décrire les étapes de résolution d'un problème :
→ de façon structurée et compacte
→ à partir d'opérations de base
→ indépendamment d'un langage de programmation
Méthode de résolution d'un problème :
adaptée aux moyens à disposition
adaptée aux connaissances de celui qui l'utilise
A quoi sert un algorithme ?
• À décrire les étapes de résolution d'un problème :
→ de façon structurée et compacte
→ à partir d'opérations de base
→ indépendamment d'un langage de programmation
Méthode de résolution d'un problème :
adaptée pour des problèmes qui se traitent sans ordinateur
compréhensible sans apprendre un langage de programmation
A quoi sert un algorithme ?
• À décrire les étapes de résolution d'un problème :
→ de façon structurée et compacte
→ à partir d'opérations de base
→ indépendamment d'un langage de programmation
Euclide & Ada Lovelace : Wikipedia
Al-Khuwārizmī : Flickr (Heathen Dawn)
Algorithmes sans ordinateurs :
- Euclide (vers -300) : calcul du PGCD de 2 nombres
La “minute culturelle”
A quoi sert un algorithme ?
• À décrire les étapes de résolution d'un problème :
→ de façon structurée et compacte
→ à partir d'opérations de base
→ indépendamment d'un langage de programmation
Euclide & Ada Lovelace : Wikipedia
Al-Khuwārizmī : Flickr (Heathen Dawn)
Algorithmes sans ordinateurs :
- Euclide (vers -300) : calcul du PGCD de 2 nombres
- Al-Khuwārizmī (825) : résolution d'équations
La “minute culturelle”
A quoi sert un algorithme ?
• À décrire les étapes de résolution d'un problème :
→ de façon structurée et compacte
→ à partir d'opérations de base
→ indépendamment d'un langage de programmation
Euclide & Ada Lovelace : Wikipedia
Al-Khuwārizmī : Flickr (Heathen Dawn)
Algorithmes sans ordinateurs :
- Euclide (vers -300) : calcul du PGCD de 2 nombres
- Al-Khuwārizmī (825) : résolution d'équations
- Ada Lovelace (1842) : calcul des nombres
de Bernoulli sur la machine analytique de
Charles Babbage
La “minute culturelle”
A quoi sert un algorithme ?
• À décrire les étapes de résolution d'un problème :
→ de façon structurée et compacte
→ à partir d'opérations de base
→ indépendamment d'un langage de programmation
Trois langages abordés dans ce cours :
organigramme
pseudo-code
Java
A quoi sert un algorithme ?
• À décrire les étapes de résolution d'un problème :
→ de façon structurée et compacte
→ à partir d'opérations de base
→ indépendamment d'un langage de programmation
Trois langages abordés dans ce cours :
organigramme
pseudo-code
Java
avantage aux
littéraires !
De l'algorithme au programme, le “cycle en V”
Besoin Mise en production
Cahier des charges Tests d'intégration
Tests fonctionnels
et techniques
Analyse
Tests unitaires
Écriture de
l'algorithme
Compilation et
assemblage
Codage
programme : code source programme : exécutable
http://julienhenriet.olympe-network.com/Algo.html
De l'algorithme au programme, le “cycle en V”
Besoin Mise en production
Cahier des charges Tests d'intégration
Tests fonctionnels
et techniques
Analyse
Tests unitaires
Écriture de
l'algorithme
Compilation et
assemblage
Codage
M1202programme : code source programme : exécutable
http://julienhenriet.olympe-network.com/Algo.html
intuition rigueurclarté
recette
De l'algorithme au programme, le “cycle en V”
Besoin Mise en production
Cahier des charges Tests d'intégration
Analyse
Tests unitaires
Écriture de
l'algorithme
Compilation et
assemblage
Codage
M1202programme : code source programme : exécutable
http://julienhenriet.olympe-network.com/Algo.html
intuition rigueurclarté
recette
Tests fonctionnels
et techniques
Programme correct ?
Programme rapide ?
Enjeux de l'algorithmique
Algorithme correct ?
Algorithme rapide ?
Enjeux de l'algorithmique
Algorithme correct ?
- donne le résultat attendu ?
- quel que soit le type d'entrées ?
Algorithme rapide ?
- se termine ?
- en combien de temps ?
crêpes, GPS,
multiplication
Enjeux de l'algorithmique
Algorithme correct ?
- donne le résultat attendu ? → preuve de correction
- quel que soit le type d'entrées ? → débuggage, tests unitaires
Algorithme rapide ?
- se termine ? → preuve de terminaison
- en combien de temps ? → complexité
crêpes, GPS,
multiplication
Enjeux de l'algorithmique - correction
Correction : L'algorithme donne-t-il le résultat attendu ?
Preuve de correction :
- « invariant » : propriété vraie tout au long de l'algorithme
• vraie à la première étape
• si vraie à une étape, vraie à l'étape suivante
 vrai à la fin
En pratique, pour débuter :
- vérifier sur les “cas de base”
- vérifier sur des exemples aléatoires
Enjeux de l'algorithmique - terminaison
L'algorithme se termine-t-il en un temps fini ?
Laisser cuire la poêle pendant 0.5 minute
Tant que le saladier n'est pas vide :
Mettre 5 cL du contenu du saladier dans
le verre mesureur
Mettre le contenu du verre mesureur
dans la poêle
Laisser cuire la poêle pendant 2 minutes
Retourner le contenu de la poêle
Laisser cuire la poêle pendant 2 minutes
Mettre le contenu de la poêle dans
l'assiette
Algorithme des crêpes :
Mettre 4 oeufs dans le saladier
Mettre 1 sachet de sucre vanillé dans le saladier
Mettre 250 g de farine dans le verre mesureur
Mettre le contenu du verre mesureur dans le saladier
Mettre 0,5 litre de lait dans le verre mesureur
Mettre le contenu du verre mesureur dans le saladier
Mettre 50 grammes de beurre dans la poêle
Laisser cuire la poêle pendant 1 minute
Mettre le contenu de la poêle dans le saladier
Mélanger le contenu du saladier
Attendre pendant 60 minutes
Mettre 5 grammes de beurre dans la poêle
Enjeux de l'algorithmique - terminaison
L'algorithme se termine-t-il en un temps fini ?
→ Le saladier sera forcément vide à un moment donné !
→ preuve mathématique...
Laisser cuire la poêle pendant 0.5 minute
Tant que le saladier n'est pas vide :
Mettre 5 cL du contenu du saladier dans
le verre mesureur
Mettre le contenu du verre mesureur
dans la poêle
Laisser cuire la poêle pendant 2 minutes
Retourner le contenu de la poêle
Laisser cuire la poêle pendant 2 minutes
Mettre le contenu de la poêle dans
l'assiette
Algorithme des crêpes :
Mettre 4 oeufs dans le saladier
Mettre 1 sachet de sucre vanillé dans le saladier
Mettre 250 g de farine dans le verre mesureur
Mettre le contenu du verre mesureur dans le saladier
Mettre 0,5 litre de lait dans le verre mesureur
Mettre le contenu du verre mesureur dans le saladier
Mettre 50 grammes de beurre dans la poêle
Laisser cuire la poêle pendant 1 minute
Mettre le contenu de la poêle dans le saladier
Mélanger le contenu du saladier
Attendre pendant 60 minutes
Mettre 5 grammes de beurre dans la poêle
Enjeux de l'algorithmique - terminaison
La “minute votes SMS”
Problème : aller en voiture de Châtelet à la Tour Montparnasse
Enjeux de l'algorithmique - terminaison
La “minute votes SMS”
Problème : aller en voiture de Châtelet à la Tour Montparnasse
Algorithme “du repère visuel” :
A tout instant on sait où se trouve la Tour Montparnasse
→ prendre la rue qui s'en rapproche le plus
Enjeux de l'algorithmique - terminaison
La “minute votes SMS”
Problème : aller en voiture de Châtelet à la Tour Montparnasse
Algorithme “du repère visuel” :
A tout instant on sait où se trouve la Tour Montparnasse
→ prendre la rue qui s'en rapproche le plus
algorithme de la famille des
algorithmes gloutons
toujours choisir le profit maximum !
Enjeux de l'algorithmique - terminaison
La “minute votes SMS”
Problème : aller en voiture de Châtelet à la Tour Montparnasse
Algorithme “du repère visuel” :
A tout instant on sait où se trouve la Tour Montparnasse
→ prendre la rue qui s'en rapproche le plus
Question : l'algorithme “du repère visuel” termine ?
Enjeux de l'algorithmique - terminaison
La “minute votes SMS”
Problème : aller en voiture de Châtelet à la Tour Montparnasse
Algorithme “du repère visuel” :
A tout instant on sait où se trouve la Tour Montparnasse
→ prendre la rue qui s'en rapproche le plus
Question : l'algorithme “du repère visuel” termine ?
distance (en millimètres, au mm près)
entre la position actuelle et la Tour
Montparnasse, entière, positive,
strictement décroissante ?
Illustration : http://www.tourmontparnasse56.com
distance (en millimètres, au mm près)
entre la position actuelle et la Tour
Montparnasse, entière, positive,
strictement décroissante ?
Enjeux de l'algorithmique - terminaison
La “minute votes SMS”
Problème : aller en voiture de Châtelet à la Tour Montparnasse
Algorithme “du repère visuel” :
A tout instant on sait où se trouve la Tour Montparnasse
→ prendre la rue qui s'en rapproche le plus
Question : l'algorithme “du repère visuel” termine ?
NON !
Illustration : http://www.tourmontparnasse56.com
Enjeux de l'algorithmique - complexité
Complexité : Combien de temps l'algorithme prend-il pour se
terminer ?
Théorie de la complexité :
- nombre d'opérations en fonction de la taille du problème, dans le pire cas
- prouver qu'on ne peut pas utiliser moins d'opérations pour résoudre le
problème, dans le pire cas
En pratique, pour débuter :
- vérifier sur des exemples aléatoires
- connaître les cas difficiles
Enjeux de l'algorithmique - complexité
Complexité : Combien de temps l'algorithme prend-il pour se
terminer ?
Théorie de la complexité :
- nombre d'opérations en fonction de la taille du problème, dans le pire cas
- prouver qu'on ne peut pas utiliser moins d'opérations pour résoudre le
problème, dans le pire cas
En pratique, pour débuter :
- vérifier sur des exemples aléatoires
- connaître les cas difficiles
impossible de faire mieux que la ligne droite !
Quels types d'instructions ?
Divers types d'instructions :
- déclaration d'un algorithme
- appel d'un algorithme
- déclaration d'une variable
- affectation d'une variable
- entrées / sorties
- boucle
- test
pour stocker des valeurs, des résultats intermédiaires
Organigramme de la recette des crêpes
saladier ← 4 oeufs
saladier ← saladier +
sucre vanillé
verre ← 250g farine
saladier ← saladier +
verre
verre ← 0.5L lait
saladier ← saladier +
verre
poêle ← 50g beurre
cuire(poêle, 1 min)
saladier ← saladier +
poêle
mélanger(saladier)
attendre(60 min)
poêle ← 5g beurre
cuire(poêle, 0.5 min)
saladier vide ?
Bon appétit ! verre ← 5cL saladier poêle ← verre
cuire(poêle, 2 min)
retourner(poêle)
cuire(poêle, 2 min)
assiette ← poêle
oui non
Crêpes !
ingrédients
récipients
Organigramme de la recette des crêpes
saladier ← 4 oeufs
saladier ← saladier +
sucre vanillé
verre ← 250g farine
saladier ← saladier +
verre
verre ← 0.5L lait
saladier ← saladier +
verre
poêle ← 50g beurre
cuire(poêle, 1 min)
saladier ← saladier +
poêle
mélanger(saladier)
attendre(60 min)
poêle ← 5g beurre
cuire(poêle, 0.5 min)
saladier vide ?
Bon appétit ! verre ← 5cL saladier poêle ← verre
cuire(poêle, 2 min)
retourner(poêle)
cuire(poêle, 2 min)
assiette ← poêle
oui non
Crêpes !
ingrédients
récipients
entrées
sortie
Organigramme de la recette des crêpes
saladier ← 4 oeufs
saladier ← saladier +
sucre vanillé
verre ← 250g farine
saladier ← saladier +
verre
verre ← 0.5L lait
saladier ← saladier +
verre
poêle ← 50g beurre
cuire(poêle, 1 min)
saladier ← saladier +
poêle
mélanger(saladier)
attendre(60 min)
poêle ← 5g beurre
cuire(poêle, 0.5 min)
saladier vide ?
Bon appétit ! verre ← 5cL saladier poêle ← verre
cuire(poêle, 2 min)
retourner(poêle)
cuire(poêle, 2 min)
assiette ← poêle
oui non
Crêpes !
ingrédients
récipients
variables
entrées
affectationssortie
Organigramme de la recette des crêpes
saladier ← 4 oeufs
saladier ← saladier +
sucre vanillé
verre ← 250g farine
saladier ← saladier +
verre
verre ← 0.5L lait
saladier ← saladier +
verre
poêle ← 50g beurre
cuire(poêle, 1 min)
saladier ← saladier +
poêle
mélanger(saladier)
attendre(60 min)
poêle ← 5g beurre
cuire(poêle, 0.5 min)
saladier vide ?
Bon appétit ! verre ← 5cL saladier poêle ← verre
cuire(poêle, 2 min)
retourner(poêle)
cuire(poêle, 2 min)
assiette ← poêle
oui non
Crêpes !
ingrédients
récipients
variables
entrées
boucle
affectationssortie
Organigramme de la recette des crêpes
saladier ← 4 oeufs
saladier ← saladier +
sucre vanillé
verre ← 250g farine
saladier ← saladier +
verre
verre ← 0.5L lait
saladier ← saladier +
verre
poêle ← 50g beurre
cuire(poêle, 1 min)
saladier ← saladier +
poêle
mélanger(saladier)
attendre(60 min)
poêle ← 5g beurre
cuire(poêle, 0.5 min)
saladier vide ?
Bon appétit ! verre ← 5cL saladier poêle ← verre
cuire(poêle, 2 min)
retourner(poêle)
cuire(poêle, 2 min)
assiette ← poêle
oui non
Crêpes !
ingrédients
récipients
variables
entrées
appels d'algorithmes
boucle
affectationssortie
Premier programme Java
public static void main(String[]arg){
String nom, reponse;
int nombreATrouver, nombreUtilisateur;
//Identification de l'utilisateur
nom = reponseALaQuestion("Comment vous appelez-vous ?");
Affiche(" ");
Affiche("Bonjour "+nom+" !");
//Choix du nombre aléatoire
nombreATrouver = nombreAleatoire(1,10);
Affiche("L'ordinateur a choisi un nombre entre 1 et 10.");
Affiche("Essayez de le deviner.");
//Premier essai de l'utilisateur
reponse = reponseALaQuestion("Premier essai :");
nombreUtilisateur = Integer.parseInt(reponse);
if (nombreUtilisateur == nombreATrouver){
Affiche("Bravo "+nom+", vous avez trouve !");
}
}
entrées
sortie : “gambette” si l’utilisateur a entré ce nom
sortie : 3 si l’ordinateur a choisi ce numéro au hasard
Premier programme Java
variables
public static void main(String[]arg){
String nom, reponse;
int nombreATrouver, nombreUtilisateur;
//Identification de l'utilisateur
nom = reponseALaQuestion("Comment vous appelez-vous ?");
Affiche(" ");
Affiche("Bonjour "+nom+" !");
//Choix du nombre aléatoire
nombreATrouver = nombreAleatoire(1,10);
Affiche("L'ordinateur a choisi un nombre entre 1 et 10.");
Affiche("Essayez de le deviner.");
//Premier essai de l'utilisateur
reponse = reponseALaQuestion("Premier essai :");
nombreUtilisateur = Integer.parseInt(reponse);
if (nombreUtilisateur == nombreATrouver){
Affiche("Bravo "+nom+", vous avez trouve !");
}
}
Premier programme Java
variables affectations
public static void main(String[]arg){
String nom, reponse;
int nombreATrouver, nombreUtilisateur;
//Identification de l'utilisateur
nom = reponseALaQuestion("Comment vous appelez-vous ?");
Affiche(" ");
Affiche("Bonjour "+nom+" !");
//Choix du nombre aléatoire
nombreATrouver = nombreAleatoire(1,10);
Affiche("L'ordinateur a choisi un nombre entre 1 et 10.");
Affiche("Essayez de le deviner.");
//Premier essai de l'utilisateur
reponse = reponseALaQuestion("Premier essai :");
nombreUtilisateur = Integer.parseInt(reponse);
if (nombreUtilisateur == nombreATrouver){
Affiche("Bravo "+nom+", vous avez trouve !");
}
}
Premier programme Java
variables affectations appel d'algorithme
public static void main(String[]arg){
String nom, reponse;
int nombreATrouver, nombreUtilisateur;
//Identification de l'utilisateur
nom = reponseALaQuestion("Comment vous appelez-vous ?");
Affiche(" ");
Affiche("Bonjour "+nom+" !");
//Choix du nombre aléatoire
nombreATrouver = nombreAleatoire(1,10);
Affiche("L'ordinateur a choisi un nombre entre 1 et 10.");
Affiche("Essayez de le deviner.");
//Premier essai de l'utilisateur
reponse = reponseALaQuestion("Premier essai :");
nombreUtilisateur = Integer.parseInt(reponse);
if (nombreUtilisateur == nombreATrouver){
Affiche("Bravo "+nom+", vous avez trouve !");
}
}
Premier programme Java
public static void main(String[]arg){
String nom, reponse;
int nombreATrouver, nombreUtilisateur;
//Identification de l'utilisateur
nom = reponseALaQuestion("Comment vous appelez-vous ?");
Affiche(" ");
Affiche("Bonjour "+nom+" !");
//Choix du nombre aléatoire
nombreATrouver = nombreAleatoire(1,10);
Affiche("L'ordinateur a choisi un nombre entre 1 et 10.");
Affiche("Essayez de le deviner.");
//Premier essai de l'utilisateur
reponse = reponseALaQuestion("Premier essai :");
nombreUtilisateur = Integer.parseInt(reponse);
if (nombreUtilisateur == nombreATrouver){
Affiche("Bravo "+nom+", vous avez trouve !");
}
}
variables affectations appel d'algorithme test
Variables et affectation
Dans un algorithme, une variable possède :
• un nom,
• une valeur,
• un type (ensemble des valeurs que peut prendre la variable).
La valeur d'une variable :
• est fixe à un moment donné,
• peut changer au cours du temps.
En revanche, le nom et
le type d'une variable
ne changent pas.
Variables et affectation
Dans un algorithme, une variable possède :
• un nom,
• une valeur,
• un type (ensemble des valeurs que peut prendre la variable).
La valeur d'une variable :
• est fixe à un moment donné,
• peut changer au cours du temps.
L'affectation change la valeur d'une variable :
• a ← 5 (pseudo-code) / a=5 (Java) :
- la variable a prend la valeur 5
- la valeur précédente est perdue (“écrasée”)
• a ← b (pseudo-code) / a=b (Java) :
- la variable a prend la valeur de la variable b
- la valeur précédente de a est perdue (“écrasée”)
- la valeur de b n'est pas modifiée
- a et b doivent être de même type (ou de type compatible)
Variables et affectation
Dans un algorithme, une variable possède :
• un nom,
• une valeur,
• un type (ensemble des valeurs que peut prendre la variable).
La valeur d'une variable :
• est fixe à un moment donné,
• peut changer au cours du temps.
L'affectation change la valeur d'une variable :
• a ← 5 (pseudo-code) / a=5 (Java) :
- la variable a prend la valeur 5
- la valeur précédente est perdue (“écrasée”)
• a ← b (pseudo-code) / a=b (Java) :
- la variable a prend la valeur de la variable b
- la valeur précédente de a est perdue (“écrasée”)
- la valeur de b n'est pas modifiée
- a et b doivent être de même type
(ou de type compatible)
La recette de cuisine avec
récipients n'est qu'une métaphore

Weitere ähnliche Inhalte

Andere mochten auch

INF220 - Algo DUT SRC1 - Cours 2
INF220 - Algo DUT SRC1 - Cours 2INF220 - Algo DUT SRC1 - Cours 2
INF220 - Algo DUT SRC1 - Cours 2PGambette
 
INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3PGambette
 
Technique de recherche , méthodes et outils de veille sur internet - #Benindi...
Technique de recherche , méthodes et outils de veille sur internet - #Benindi...Technique de recherche , méthodes et outils de veille sur internet - #Benindi...
Technique de recherche , méthodes et outils de veille sur internet - #Benindi...Stévy-Ferry WALLACE
 
INF120 - Algo DUT SRC1 - Cours 5
INF120 - Algo DUT SRC1 - Cours 5INF120 - Algo DUT SRC1 - Cours 5
INF120 - Algo DUT SRC1 - Cours 5PGambette
 
INF120 - Algo DUT SRC1 - Cours 4
INF120 - Algo DUT SRC1 - Cours 4INF120 - Algo DUT SRC1 - Cours 4
INF120 - Algo DUT SRC1 - Cours 4PGambette
 
INF120 - Algo DUT SRC1 - Cours 2
INF120 - Algo DUT SRC1 - Cours 2INF120 - Algo DUT SRC1 - Cours 2
INF120 - Algo DUT SRC1 - Cours 2PGambette
 
INF120 - Algo DUT SRC1 - Cours 2 (2012)
INF120 - Algo DUT SRC1 - Cours 2 (2012)INF120 - Algo DUT SRC1 - Cours 2 (2012)
INF120 - Algo DUT SRC1 - Cours 2 (2012)PGambette
 
INF240 - Bases de données DUT SRC1 - Cours 2
INF240 - Bases de données DUT SRC1 - Cours 2INF240 - Bases de données DUT SRC1 - Cours 2
INF240 - Bases de données DUT SRC1 - Cours 2PGambette
 
INF240 - Bases de données DUT SRC1 - Cours 1
INF240 - Bases de données DUT SRC1 - Cours 1INF240 - Bases de données DUT SRC1 - Cours 1
INF240 - Bases de données DUT SRC1 - Cours 1PGambette
 
Fonctions formules excel
Fonctions formules excelFonctions formules excel
Fonctions formules excelCarlitza
 
devoir de synthèse N1
devoir de synthèse N1devoir de synthèse N1
devoir de synthèse N1Hichem Kemali
 
devoir de contrôle N°2
devoir de contrôle N°2devoir de contrôle N°2
devoir de contrôle N°2Hichem Kemali
 
Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Hichem Kemali
 
Telecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdfTelecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdfwebreaker
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siNarûtö Bàl'Sèm
 

Andere mochten auch (20)

INF220 - Algo DUT SRC1 - Cours 2
INF220 - Algo DUT SRC1 - Cours 2INF220 - Algo DUT SRC1 - Cours 2
INF220 - Algo DUT SRC1 - Cours 2
 
INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3
 
Technique de recherche , méthodes et outils de veille sur internet - #Benindi...
Technique de recherche , méthodes et outils de veille sur internet - #Benindi...Technique de recherche , méthodes et outils de veille sur internet - #Benindi...
Technique de recherche , méthodes et outils de veille sur internet - #Benindi...
 
INF120 - Algo DUT SRC1 - Cours 5
INF120 - Algo DUT SRC1 - Cours 5INF120 - Algo DUT SRC1 - Cours 5
INF120 - Algo DUT SRC1 - Cours 5
 
INF120 - Algo DUT SRC1 - Cours 4
INF120 - Algo DUT SRC1 - Cours 4INF120 - Algo DUT SRC1 - Cours 4
INF120 - Algo DUT SRC1 - Cours 4
 
INF120 - Algo DUT SRC1 - Cours 2
INF120 - Algo DUT SRC1 - Cours 2INF120 - Algo DUT SRC1 - Cours 2
INF120 - Algo DUT SRC1 - Cours 2
 
INF120 - Algo DUT SRC1 - Cours 2 (2012)
INF120 - Algo DUT SRC1 - Cours 2 (2012)INF120 - Algo DUT SRC1 - Cours 2 (2012)
INF120 - Algo DUT SRC1 - Cours 2 (2012)
 
INF240 - Bases de données DUT SRC1 - Cours 2
INF240 - Bases de données DUT SRC1 - Cours 2INF240 - Bases de données DUT SRC1 - Cours 2
INF240 - Bases de données DUT SRC1 - Cours 2
 
INF240 - Bases de données DUT SRC1 - Cours 1
INF240 - Bases de données DUT SRC1 - Cours 1INF240 - Bases de données DUT SRC1 - Cours 1
INF240 - Bases de données DUT SRC1 - Cours 1
 
Fonctions formules excel
Fonctions formules excelFonctions formules excel
Fonctions formules excel
 
Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
 
Ordonnancement
OrdonnancementOrdonnancement
Ordonnancement
 
devoir de synthèse N1
devoir de synthèse N1devoir de synthèse N1
devoir de synthèse N1
 
devoir de contrôle N°2
devoir de contrôle N°2devoir de contrôle N°2
devoir de contrôle N°2
 
Ordonnancement SJF
Ordonnancement SJFOrdonnancement SJF
Ordonnancement SJF
 
LES JOINTURES
LES JOINTURESLES JOINTURES
LES JOINTURES
 
Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)
 
Telecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdfTelecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdf
 
Algorithme
AlgorithmeAlgorithme
Algorithme
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 si
 

Ähnlich wie M1202 Algorithmique & programmation Java - Cours 1 2013

Atelier colloque e-learning 3.0 TECFA évaluation par les pairs - 18-10-2014
Atelier colloque e-learning 3.0 TECFA  évaluation par les pairs - 18-10-2014Atelier colloque e-learning 3.0 TECFA  évaluation par les pairs - 18-10-2014
Atelier colloque e-learning 3.0 TECFA évaluation par les pairs - 18-10-2014Rémi Bachelet
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmiqueAbdoulaye Dieng
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmiqueAbdoulaye Dieng
 
Chouette! Encore un bug! Agile Tour 2012
Chouette! Encore un bug! Agile Tour 2012Chouette! Encore un bug! Agile Tour 2012
Chouette! Encore un bug! Agile Tour 2012AgileCoach.net
 
2010 agile conférence - Comment vendre les tests automatisés
2010 agile conférence - Comment vendre les tests automatisés2010 agile conférence - Comment vendre les tests automatisés
2010 agile conférence - Comment vendre les tests automatisésNathaniel Richand
 
Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?CGI Québec Formation
 
Présentation delta slideshare
Présentation delta slidesharePrésentation delta slideshare
Présentation delta slideshareFlorence Siquet
 
Chouette! Encore un bug!
Chouette! Encore un bug!Chouette! Encore un bug!
Chouette! Encore un bug!AgileCoach.net
 
Mieux travailler le css avec sass compass
Mieux travailler le css avec sass compassMieux travailler le css avec sass compass
Mieux travailler le css avec sass compassInnobec
 
Innover en support de formation à l'ère du numérique : exemple d'un escape ga...
Innover en support de formation à l'ère du numérique : exemple d'un escape ga...Innover en support de formation à l'ère du numérique : exemple d'un escape ga...
Innover en support de formation à l'ère du numérique : exemple d'un escape ga...Institut de l'Elevage - Idele
 
Les Biais Cognitifs - Agile Dojo® du 14 avril 2014 (http://www.agilbee.com/lab/)
Les Biais Cognitifs - Agile Dojo® du 14 avril 2014 (http://www.agilbee.com/lab/)Les Biais Cognitifs - Agile Dojo® du 14 avril 2014 (http://www.agilbee.com/lab/)
Les Biais Cognitifs - Agile Dojo® du 14 avril 2014 (http://www.agilbee.com/lab/)Agilbee (Patrice Petit)
 
jeu puissance 7 distanciel
jeu puissance 7 distancieljeu puissance 7 distanciel
jeu puissance 7 distancielNadia Gharbi
 
Herve aide-memoire-statistique r
Herve aide-memoire-statistique rHerve aide-memoire-statistique r
Herve aide-memoire-statistique rDies Diassa
 
Jeu outils de la qualité
Jeu outils de la qualitéJeu outils de la qualité
Jeu outils de la qualitéCIPE
 
2016 05 j2 rsn acm pessac_itg_paris_j_vds
2016 05 j2 rsn acm pessac_itg_paris_j_vds2016 05 j2 rsn acm pessac_itg_paris_j_vds
2016 05 j2 rsn acm pessac_itg_paris_j_vdsJean Vanderspelden
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes AgilesIppon
 
Jeu résolution de problèmes_ outils qualité.pdf
Jeu résolution de problèmes_ outils qualité.pdfJeu résolution de problèmes_ outils qualité.pdf
Jeu résolution de problèmes_ outils qualité.pdfCIPE
 
Agile Tour 2010 - Mise en place d'un projet agile
Agile Tour 2010 - Mise en place d'un projet agileAgile Tour 2010 - Mise en place d'un projet agile
Agile Tour 2010 - Mise en place d'un projet agileLaurent Deséchalliers
 
AT2010 Mise place d'un projet Agile
AT2010 Mise place d'un projet AgileAT2010 Mise place d'un projet Agile
AT2010 Mise place d'un projet AgileNormandy JUG
 

Ähnlich wie M1202 Algorithmique & programmation Java - Cours 1 2013 (20)

Atelier colloque e-learning 3.0 TECFA évaluation par les pairs - 18-10-2014
Atelier colloque e-learning 3.0 TECFA  évaluation par les pairs - 18-10-2014Atelier colloque e-learning 3.0 TECFA  évaluation par les pairs - 18-10-2014
Atelier colloque e-learning 3.0 TECFA évaluation par les pairs - 18-10-2014
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
Chouette! Encore un bug! Agile Tour 2012
Chouette! Encore un bug! Agile Tour 2012Chouette! Encore un bug! Agile Tour 2012
Chouette! Encore un bug! Agile Tour 2012
 
2010 agile conférence - Comment vendre les tests automatisés
2010 agile conférence - Comment vendre les tests automatisés2010 agile conférence - Comment vendre les tests automatisés
2010 agile conférence - Comment vendre les tests automatisés
 
Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?
 
Présentation delta slideshare
Présentation delta slidesharePrésentation delta slideshare
Présentation delta slideshare
 
Chouette! Encore un bug!
Chouette! Encore un bug!Chouette! Encore un bug!
Chouette! Encore un bug!
 
Mieux travailler le css avec sass compass
Mieux travailler le css avec sass compassMieux travailler le css avec sass compass
Mieux travailler le css avec sass compass
 
Innover en support de formation à l'ère du numérique : exemple d'un escape ga...
Innover en support de formation à l'ère du numérique : exemple d'un escape ga...Innover en support de formation à l'ère du numérique : exemple d'un escape ga...
Innover en support de formation à l'ère du numérique : exemple d'un escape ga...
 
Les Biais Cognitifs - Agile Dojo® du 14 avril 2014 (http://www.agilbee.com/lab/)
Les Biais Cognitifs - Agile Dojo® du 14 avril 2014 (http://www.agilbee.com/lab/)Les Biais Cognitifs - Agile Dojo® du 14 avril 2014 (http://www.agilbee.com/lab/)
Les Biais Cognitifs - Agile Dojo® du 14 avril 2014 (http://www.agilbee.com/lab/)
 
Entrepôt'Lytech JM2L
Entrepôt'Lytech JM2LEntrepôt'Lytech JM2L
Entrepôt'Lytech JM2L
 
jeu puissance 7 distanciel
jeu puissance 7 distancieljeu puissance 7 distanciel
jeu puissance 7 distanciel
 
Herve aide-memoire-statistique r
Herve aide-memoire-statistique rHerve aide-memoire-statistique r
Herve aide-memoire-statistique r
 
Jeu outils de la qualité
Jeu outils de la qualitéJeu outils de la qualité
Jeu outils de la qualité
 
2016 05 j2 rsn acm pessac_itg_paris_j_vds
2016 05 j2 rsn acm pessac_itg_paris_j_vds2016 05 j2 rsn acm pessac_itg_paris_j_vds
2016 05 j2 rsn acm pessac_itg_paris_j_vds
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes Agiles
 
Jeu résolution de problèmes_ outils qualité.pdf
Jeu résolution de problèmes_ outils qualité.pdfJeu résolution de problèmes_ outils qualité.pdf
Jeu résolution de problèmes_ outils qualité.pdf
 
Agile Tour 2010 - Mise en place d'un projet agile
Agile Tour 2010 - Mise en place d'un projet agileAgile Tour 2010 - Mise en place d'un projet agile
Agile Tour 2010 - Mise en place d'un projet agile
 
AT2010 Mise place d'un projet Agile
AT2010 Mise place d'un projet AgileAT2010 Mise place d'un projet Agile
AT2010 Mise place d'un projet Agile
 

Kürzlich hochgeladen

GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesMohammedAmineHatoch
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcourshalima98ahlmohamed
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkRefRama
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLElebaobabbleu
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxrajaakiass01
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfAmgdoulHatim
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdftrendingv83
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...Universidad Complutense de Madrid
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxabdououanighd
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Technologia Formation
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxShinyaHilalYamanaka
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesUnidad de Espiritualidad Eudista
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKNassimaMdh
 

Kürzlich hochgeladen (19)

GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdf
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 

M1202 Algorithmique & programmation Java - Cours 1 2013

  • 1. DUT MMI – IUT de Marne-la-Vallée 20/09/2013 M1202 - Algorithmique Cours 1 Introduction aux algorithmes Philippe Gambette
  • 2. • Contact - Courriel : philippe.gambette@gmail.com (M1202 dans le sujet du courriel) - Avant ou après le cours • Matériel - Ordinateur portable : pas pendant les cours, à discuter pour les TD. - Pas de téléphone portable pendant cours/TD/TP - Salles informatiques : pas manger, pas boire, pas débrancher les câbles • Déroulement des enseignements - Page web du cours : http://tinyurl.com/M1202-2013S1 - Séparation cours/TP/TD : → nouvelles méthodes de travail → distinguer ce qui est important, à retenir → savoir où retrouver l'information - En général, distribution de notes de cours à compléter - En général, distribution de corrigés : → refaire les exercices ! Organisation pratique
  • 3. • Notes et devoirs - Interrogations QCM en début de cours ou TD (signalement des absences pour rattrapage, voir intranet) - Un devoir maison • Note finale - Prévision : environ 2/3 “compétences”, environ 1/3 “motivation” - Compétences : 2/3 devoir final (8 janvier 2014), 1/3 QCM - Motivation : devoir maison, note générale de TP • Exercices supplémentaires d'entraînement - Sur demande, par courriel - Sur demande, possibilité d'organiser une séance d'exercices ou de préparation au devoir final. Organisation pratique
  • 4. • Notes et devoirs - Interrogations QCM en début de cours ou TD (signalement des absences pour rattrapage, voir intranet) - Un devoir maison • Note finale - Prévision : environ 2/3 “compétences”, environ 1/3 “motivation” - Compétences : 2/3 devoir final (8 janvier 2014), 1/3 QCM - Motivation : devoir maison, note générale de TP • Exercices supplémentaires d'entraînement - Sur demande, par courriel - Sur demande, possibilité d'organiser une séance d'exercices ou de préparation au devoir final. Organisation pratique
  • 5. • Le livre de Java premier langage, d'A. Tasso • http://www.pise.info/algo/introduction.htm • Cours INF120 de J.-G. Luque • http://serecom.univ-tln.fr/cours/index.php/Algorithmie • Cours de J. Henriet : http://julienhenriet.olympe-network.com/Algo.html • http://xkcd.com, http://xkcd.free.fr Sources
  • 6. • Introduction aux algorithmes • Variables et affectation, type et codage des données • Les tests et la logique • Les boucles et leur terminaison, les tableaux • Les entrées-sorties et les fonctions Plan des cours du semestre
  • 7. • Introduction aux algorithmes • A quoi sert un algorithme ? • Algorithme et programme • Enjeux de l'algorithmique • Composants d'un algorithme • Variables et affectation Plan du cours 1 – Introduction aux algorithmes
  • 8. La recette des crêpes http://www.crepes-recette.com Les différences possibles entre recettes pour un même plat :
  • 9. La recette des crêpes http://www.crepes-recette.com Les différences possibles entre recettes pour un même plat : • Ingrédients (quantités) • Matériel utilisé • Ordre des opérations, nombre d'opérations • Cuisson, mode d'opération • Nom de la recette • Temps de préparation • Source de la recette • Style d'écriture • Langue
  • 10. La recette des crêpes http://www.crepes-recette.com
  • 11. La recette des crêpes http://www.crepes-recette.com
  • 12. La recette des crêpes http://www.crepes-recette.com
  • 13. La recette des crêpes http://www.crepes-recette.com
  • 14. L'“algorithme des crêpes” Ingrédients : beurre, oeufs, sachets de sucre vanillé, farine, lait, sel Récipients : saladier, verre mesureur, poêle, assiette Opérations de base : mettre dans un récipient, mélanger, attendre pendant … minutes, retourner, laisser cuire pendant ... minutes Algorithme des crêpes : Mettre 4 oeufs dans le saladier Mettre 1 sachet de sucre vanillé dans le saladier Mettre 250 g de farine dans le verre mesureur Mettre le contenu du verre mesureur dans le saladier Mettre 0,5 litre de lait dans le verre mesureur Mettre le contenu du verre mesureur dans le saladier Mettre 50 grammes de beurre dans la poêle Laisser cuire la poêle pendant 1 minute Mettre le contenu de la poêle dans le saladier Mélanger le contenu du saladier Attendre pendant 60 minutes Mettre 5 grammes de beurre dans la poêle Laisser cuire la poêle pendant 0.5 minute Tant que le saladier n'est pas vide : Mettre 5 cL du contenu du saladier dans le verre mesureur Mettre le contenu du verre mesureur dans la poêle Laisser cuire la poêle pendant 2 minutes Retourner le contenu de la poêle Laisser cuire la poêle pendant 2 minutes Mettre le contenu de la poêle dans l'assiette
  • 15. Organigramme de la recette des crêpes saladier ← 4 oeufs saladier ← saladier + sucre vanillé verre ← 250g farine saladier ← saladier + verre verre ← 0.5L lait saladier ← saladier + verre poêle ← 50g beurre cuire(poêle, 1 min) saladier ← saladier + poêle mélanger(saladier) attendre(60 min) poêle ← 5g beurre cuire(poêle, 0.5 min) saladier vide ? Bon appétit ! verre ← 5cL saladier poêle ← verre cuire(poêle, 2 min) retourner(poêle) cuire(poêle, 2 min) assiette ← poêle oui non Crêpes ! ingrédients récipients boucle
  • 16. A quoi sert un algorithme ? • À décrire les étapes de résolution d'un problème : → de façon structurée et compacte → à partir d'opérations de base → indépendamment d'un langage de programmation
  • 17. A quoi sert un algorithme ? • À décrire les étapes de résolution d'un problème : → de façon structurée et compacte → à partir d'opérations de base → indépendamment d'un langage de programmation “étapes” aussi appelées “pas de l'algorithme”
  • 18. A quoi sert un algorithme ? • À décrire les étapes de résolution d'un problème : → de façon structurée et compacte → à partir d'opérations de base → indépendamment d'un langage de programmation Les données du problème en entrée Le résultat de sa résolution en sortie
  • 19. Composants d'un algorithme Algorithme : Instruction 1 Instruction 2 Instruction 3 ... Recette des crêpes Guidage GPS Multiplication
  • 20. Composants d'un algorithme Algorithme : Instruction 1 Instruction 2 Instruction 3 ... Données du problème entrées de l'algorithme Résultat sorties de l'algorithme ingrédients beurre, oeufs, sachets de sucre vanillé, farine, lait, sel et quantités crêpesRecette des crêpes informations sur l'environnement plan des rues, position de la voiture, position de la destination itinéraire ou prochaine direction à prendre Guidage GPS Multiplicationdeux entiers entier1 et entier2 leur produit entier1 x entier2
  • 21. A quoi sert un algorithme ? • À décrire les étapes de résolution d'un problème : → de façon structurée et compacte → à partir d'opérations de base → indépendamment d'un langage de programmation Méthode de résolution d'un problème : facile à comprendre facile à transmettre
  • 22. A quoi sert un algorithme ? • À décrire les étapes de résolution d'un problème : → de façon structurée et compacte → à partir d'opérations de base → indépendamment d'un langage de programmation Méthode de résolution d'un problème : adaptée aux moyens à disposition adaptée aux connaissances de celui qui l'utilise
  • 23. A quoi sert un algorithme ? • À décrire les étapes de résolution d'un problème : → de façon structurée et compacte → à partir d'opérations de base → indépendamment d'un langage de programmation Méthode de résolution d'un problème : adaptée pour des problèmes qui se traitent sans ordinateur compréhensible sans apprendre un langage de programmation
  • 24. A quoi sert un algorithme ? • À décrire les étapes de résolution d'un problème : → de façon structurée et compacte → à partir d'opérations de base → indépendamment d'un langage de programmation Euclide & Ada Lovelace : Wikipedia Al-Khuwārizmī : Flickr (Heathen Dawn) Algorithmes sans ordinateurs : - Euclide (vers -300) : calcul du PGCD de 2 nombres La “minute culturelle”
  • 25. A quoi sert un algorithme ? • À décrire les étapes de résolution d'un problème : → de façon structurée et compacte → à partir d'opérations de base → indépendamment d'un langage de programmation Euclide & Ada Lovelace : Wikipedia Al-Khuwārizmī : Flickr (Heathen Dawn) Algorithmes sans ordinateurs : - Euclide (vers -300) : calcul du PGCD de 2 nombres - Al-Khuwārizmī (825) : résolution d'équations La “minute culturelle”
  • 26. A quoi sert un algorithme ? • À décrire les étapes de résolution d'un problème : → de façon structurée et compacte → à partir d'opérations de base → indépendamment d'un langage de programmation Euclide & Ada Lovelace : Wikipedia Al-Khuwārizmī : Flickr (Heathen Dawn) Algorithmes sans ordinateurs : - Euclide (vers -300) : calcul du PGCD de 2 nombres - Al-Khuwārizmī (825) : résolution d'équations - Ada Lovelace (1842) : calcul des nombres de Bernoulli sur la machine analytique de Charles Babbage La “minute culturelle”
  • 27. A quoi sert un algorithme ? • À décrire les étapes de résolution d'un problème : → de façon structurée et compacte → à partir d'opérations de base → indépendamment d'un langage de programmation Trois langages abordés dans ce cours : organigramme pseudo-code Java
  • 28. A quoi sert un algorithme ? • À décrire les étapes de résolution d'un problème : → de façon structurée et compacte → à partir d'opérations de base → indépendamment d'un langage de programmation Trois langages abordés dans ce cours : organigramme pseudo-code Java avantage aux littéraires !
  • 29. De l'algorithme au programme, le “cycle en V” Besoin Mise en production Cahier des charges Tests d'intégration Tests fonctionnels et techniques Analyse Tests unitaires Écriture de l'algorithme Compilation et assemblage Codage programme : code source programme : exécutable http://julienhenriet.olympe-network.com/Algo.html
  • 30. De l'algorithme au programme, le “cycle en V” Besoin Mise en production Cahier des charges Tests d'intégration Tests fonctionnels et techniques Analyse Tests unitaires Écriture de l'algorithme Compilation et assemblage Codage M1202programme : code source programme : exécutable http://julienhenriet.olympe-network.com/Algo.html intuition rigueurclarté recette
  • 31. De l'algorithme au programme, le “cycle en V” Besoin Mise en production Cahier des charges Tests d'intégration Analyse Tests unitaires Écriture de l'algorithme Compilation et assemblage Codage M1202programme : code source programme : exécutable http://julienhenriet.olympe-network.com/Algo.html intuition rigueurclarté recette Tests fonctionnels et techniques Programme correct ? Programme rapide ?
  • 32. Enjeux de l'algorithmique Algorithme correct ? Algorithme rapide ?
  • 33. Enjeux de l'algorithmique Algorithme correct ? - donne le résultat attendu ? - quel que soit le type d'entrées ? Algorithme rapide ? - se termine ? - en combien de temps ? crêpes, GPS, multiplication
  • 34. Enjeux de l'algorithmique Algorithme correct ? - donne le résultat attendu ? → preuve de correction - quel que soit le type d'entrées ? → débuggage, tests unitaires Algorithme rapide ? - se termine ? → preuve de terminaison - en combien de temps ? → complexité crêpes, GPS, multiplication
  • 35. Enjeux de l'algorithmique - correction Correction : L'algorithme donne-t-il le résultat attendu ? Preuve de correction : - « invariant » : propriété vraie tout au long de l'algorithme • vraie à la première étape • si vraie à une étape, vraie à l'étape suivante  vrai à la fin En pratique, pour débuter : - vérifier sur les “cas de base” - vérifier sur des exemples aléatoires
  • 36. Enjeux de l'algorithmique - terminaison L'algorithme se termine-t-il en un temps fini ? Laisser cuire la poêle pendant 0.5 minute Tant que le saladier n'est pas vide : Mettre 5 cL du contenu du saladier dans le verre mesureur Mettre le contenu du verre mesureur dans la poêle Laisser cuire la poêle pendant 2 minutes Retourner le contenu de la poêle Laisser cuire la poêle pendant 2 minutes Mettre le contenu de la poêle dans l'assiette Algorithme des crêpes : Mettre 4 oeufs dans le saladier Mettre 1 sachet de sucre vanillé dans le saladier Mettre 250 g de farine dans le verre mesureur Mettre le contenu du verre mesureur dans le saladier Mettre 0,5 litre de lait dans le verre mesureur Mettre le contenu du verre mesureur dans le saladier Mettre 50 grammes de beurre dans la poêle Laisser cuire la poêle pendant 1 minute Mettre le contenu de la poêle dans le saladier Mélanger le contenu du saladier Attendre pendant 60 minutes Mettre 5 grammes de beurre dans la poêle
  • 37. Enjeux de l'algorithmique - terminaison L'algorithme se termine-t-il en un temps fini ? → Le saladier sera forcément vide à un moment donné ! → preuve mathématique... Laisser cuire la poêle pendant 0.5 minute Tant que le saladier n'est pas vide : Mettre 5 cL du contenu du saladier dans le verre mesureur Mettre le contenu du verre mesureur dans la poêle Laisser cuire la poêle pendant 2 minutes Retourner le contenu de la poêle Laisser cuire la poêle pendant 2 minutes Mettre le contenu de la poêle dans l'assiette Algorithme des crêpes : Mettre 4 oeufs dans le saladier Mettre 1 sachet de sucre vanillé dans le saladier Mettre 250 g de farine dans le verre mesureur Mettre le contenu du verre mesureur dans le saladier Mettre 0,5 litre de lait dans le verre mesureur Mettre le contenu du verre mesureur dans le saladier Mettre 50 grammes de beurre dans la poêle Laisser cuire la poêle pendant 1 minute Mettre le contenu de la poêle dans le saladier Mélanger le contenu du saladier Attendre pendant 60 minutes Mettre 5 grammes de beurre dans la poêle
  • 38. Enjeux de l'algorithmique - terminaison La “minute votes SMS” Problème : aller en voiture de Châtelet à la Tour Montparnasse
  • 39. Enjeux de l'algorithmique - terminaison La “minute votes SMS” Problème : aller en voiture de Châtelet à la Tour Montparnasse Algorithme “du repère visuel” : A tout instant on sait où se trouve la Tour Montparnasse → prendre la rue qui s'en rapproche le plus
  • 40. Enjeux de l'algorithmique - terminaison La “minute votes SMS” Problème : aller en voiture de Châtelet à la Tour Montparnasse Algorithme “du repère visuel” : A tout instant on sait où se trouve la Tour Montparnasse → prendre la rue qui s'en rapproche le plus algorithme de la famille des algorithmes gloutons toujours choisir le profit maximum !
  • 41. Enjeux de l'algorithmique - terminaison La “minute votes SMS” Problème : aller en voiture de Châtelet à la Tour Montparnasse Algorithme “du repère visuel” : A tout instant on sait où se trouve la Tour Montparnasse → prendre la rue qui s'en rapproche le plus Question : l'algorithme “du repère visuel” termine ?
  • 42. Enjeux de l'algorithmique - terminaison La “minute votes SMS” Problème : aller en voiture de Châtelet à la Tour Montparnasse Algorithme “du repère visuel” : A tout instant on sait où se trouve la Tour Montparnasse → prendre la rue qui s'en rapproche le plus Question : l'algorithme “du repère visuel” termine ? distance (en millimètres, au mm près) entre la position actuelle et la Tour Montparnasse, entière, positive, strictement décroissante ? Illustration : http://www.tourmontparnasse56.com
  • 43. distance (en millimètres, au mm près) entre la position actuelle et la Tour Montparnasse, entière, positive, strictement décroissante ? Enjeux de l'algorithmique - terminaison La “minute votes SMS” Problème : aller en voiture de Châtelet à la Tour Montparnasse Algorithme “du repère visuel” : A tout instant on sait où se trouve la Tour Montparnasse → prendre la rue qui s'en rapproche le plus Question : l'algorithme “du repère visuel” termine ? NON ! Illustration : http://www.tourmontparnasse56.com
  • 44. Enjeux de l'algorithmique - complexité Complexité : Combien de temps l'algorithme prend-il pour se terminer ? Théorie de la complexité : - nombre d'opérations en fonction de la taille du problème, dans le pire cas - prouver qu'on ne peut pas utiliser moins d'opérations pour résoudre le problème, dans le pire cas En pratique, pour débuter : - vérifier sur des exemples aléatoires - connaître les cas difficiles
  • 45. Enjeux de l'algorithmique - complexité Complexité : Combien de temps l'algorithme prend-il pour se terminer ? Théorie de la complexité : - nombre d'opérations en fonction de la taille du problème, dans le pire cas - prouver qu'on ne peut pas utiliser moins d'opérations pour résoudre le problème, dans le pire cas En pratique, pour débuter : - vérifier sur des exemples aléatoires - connaître les cas difficiles impossible de faire mieux que la ligne droite !
  • 46. Quels types d'instructions ? Divers types d'instructions : - déclaration d'un algorithme - appel d'un algorithme - déclaration d'une variable - affectation d'une variable - entrées / sorties - boucle - test pour stocker des valeurs, des résultats intermédiaires
  • 47. Organigramme de la recette des crêpes saladier ← 4 oeufs saladier ← saladier + sucre vanillé verre ← 250g farine saladier ← saladier + verre verre ← 0.5L lait saladier ← saladier + verre poêle ← 50g beurre cuire(poêle, 1 min) saladier ← saladier + poêle mélanger(saladier) attendre(60 min) poêle ← 5g beurre cuire(poêle, 0.5 min) saladier vide ? Bon appétit ! verre ← 5cL saladier poêle ← verre cuire(poêle, 2 min) retourner(poêle) cuire(poêle, 2 min) assiette ← poêle oui non Crêpes ! ingrédients récipients
  • 48. Organigramme de la recette des crêpes saladier ← 4 oeufs saladier ← saladier + sucre vanillé verre ← 250g farine saladier ← saladier + verre verre ← 0.5L lait saladier ← saladier + verre poêle ← 50g beurre cuire(poêle, 1 min) saladier ← saladier + poêle mélanger(saladier) attendre(60 min) poêle ← 5g beurre cuire(poêle, 0.5 min) saladier vide ? Bon appétit ! verre ← 5cL saladier poêle ← verre cuire(poêle, 2 min) retourner(poêle) cuire(poêle, 2 min) assiette ← poêle oui non Crêpes ! ingrédients récipients entrées sortie
  • 49. Organigramme de la recette des crêpes saladier ← 4 oeufs saladier ← saladier + sucre vanillé verre ← 250g farine saladier ← saladier + verre verre ← 0.5L lait saladier ← saladier + verre poêle ← 50g beurre cuire(poêle, 1 min) saladier ← saladier + poêle mélanger(saladier) attendre(60 min) poêle ← 5g beurre cuire(poêle, 0.5 min) saladier vide ? Bon appétit ! verre ← 5cL saladier poêle ← verre cuire(poêle, 2 min) retourner(poêle) cuire(poêle, 2 min) assiette ← poêle oui non Crêpes ! ingrédients récipients variables entrées affectationssortie
  • 50. Organigramme de la recette des crêpes saladier ← 4 oeufs saladier ← saladier + sucre vanillé verre ← 250g farine saladier ← saladier + verre verre ← 0.5L lait saladier ← saladier + verre poêle ← 50g beurre cuire(poêle, 1 min) saladier ← saladier + poêle mélanger(saladier) attendre(60 min) poêle ← 5g beurre cuire(poêle, 0.5 min) saladier vide ? Bon appétit ! verre ← 5cL saladier poêle ← verre cuire(poêle, 2 min) retourner(poêle) cuire(poêle, 2 min) assiette ← poêle oui non Crêpes ! ingrédients récipients variables entrées boucle affectationssortie
  • 51. Organigramme de la recette des crêpes saladier ← 4 oeufs saladier ← saladier + sucre vanillé verre ← 250g farine saladier ← saladier + verre verre ← 0.5L lait saladier ← saladier + verre poêle ← 50g beurre cuire(poêle, 1 min) saladier ← saladier + poêle mélanger(saladier) attendre(60 min) poêle ← 5g beurre cuire(poêle, 0.5 min) saladier vide ? Bon appétit ! verre ← 5cL saladier poêle ← verre cuire(poêle, 2 min) retourner(poêle) cuire(poêle, 2 min) assiette ← poêle oui non Crêpes ! ingrédients récipients variables entrées appels d'algorithmes boucle affectationssortie
  • 52. Premier programme Java public static void main(String[]arg){ String nom, reponse; int nombreATrouver, nombreUtilisateur; //Identification de l'utilisateur nom = reponseALaQuestion("Comment vous appelez-vous ?"); Affiche(" "); Affiche("Bonjour "+nom+" !"); //Choix du nombre aléatoire nombreATrouver = nombreAleatoire(1,10); Affiche("L'ordinateur a choisi un nombre entre 1 et 10."); Affiche("Essayez de le deviner."); //Premier essai de l'utilisateur reponse = reponseALaQuestion("Premier essai :"); nombreUtilisateur = Integer.parseInt(reponse); if (nombreUtilisateur == nombreATrouver){ Affiche("Bravo "+nom+", vous avez trouve !"); } } entrées sortie : “gambette” si l’utilisateur a entré ce nom sortie : 3 si l’ordinateur a choisi ce numéro au hasard
  • 53. Premier programme Java variables public static void main(String[]arg){ String nom, reponse; int nombreATrouver, nombreUtilisateur; //Identification de l'utilisateur nom = reponseALaQuestion("Comment vous appelez-vous ?"); Affiche(" "); Affiche("Bonjour "+nom+" !"); //Choix du nombre aléatoire nombreATrouver = nombreAleatoire(1,10); Affiche("L'ordinateur a choisi un nombre entre 1 et 10."); Affiche("Essayez de le deviner."); //Premier essai de l'utilisateur reponse = reponseALaQuestion("Premier essai :"); nombreUtilisateur = Integer.parseInt(reponse); if (nombreUtilisateur == nombreATrouver){ Affiche("Bravo "+nom+", vous avez trouve !"); } }
  • 54. Premier programme Java variables affectations public static void main(String[]arg){ String nom, reponse; int nombreATrouver, nombreUtilisateur; //Identification de l'utilisateur nom = reponseALaQuestion("Comment vous appelez-vous ?"); Affiche(" "); Affiche("Bonjour "+nom+" !"); //Choix du nombre aléatoire nombreATrouver = nombreAleatoire(1,10); Affiche("L'ordinateur a choisi un nombre entre 1 et 10."); Affiche("Essayez de le deviner."); //Premier essai de l'utilisateur reponse = reponseALaQuestion("Premier essai :"); nombreUtilisateur = Integer.parseInt(reponse); if (nombreUtilisateur == nombreATrouver){ Affiche("Bravo "+nom+", vous avez trouve !"); } }
  • 55. Premier programme Java variables affectations appel d'algorithme public static void main(String[]arg){ String nom, reponse; int nombreATrouver, nombreUtilisateur; //Identification de l'utilisateur nom = reponseALaQuestion("Comment vous appelez-vous ?"); Affiche(" "); Affiche("Bonjour "+nom+" !"); //Choix du nombre aléatoire nombreATrouver = nombreAleatoire(1,10); Affiche("L'ordinateur a choisi un nombre entre 1 et 10."); Affiche("Essayez de le deviner."); //Premier essai de l'utilisateur reponse = reponseALaQuestion("Premier essai :"); nombreUtilisateur = Integer.parseInt(reponse); if (nombreUtilisateur == nombreATrouver){ Affiche("Bravo "+nom+", vous avez trouve !"); } }
  • 56. Premier programme Java public static void main(String[]arg){ String nom, reponse; int nombreATrouver, nombreUtilisateur; //Identification de l'utilisateur nom = reponseALaQuestion("Comment vous appelez-vous ?"); Affiche(" "); Affiche("Bonjour "+nom+" !"); //Choix du nombre aléatoire nombreATrouver = nombreAleatoire(1,10); Affiche("L'ordinateur a choisi un nombre entre 1 et 10."); Affiche("Essayez de le deviner."); //Premier essai de l'utilisateur reponse = reponseALaQuestion("Premier essai :"); nombreUtilisateur = Integer.parseInt(reponse); if (nombreUtilisateur == nombreATrouver){ Affiche("Bravo "+nom+", vous avez trouve !"); } } variables affectations appel d'algorithme test
  • 57. Variables et affectation Dans un algorithme, une variable possède : • un nom, • une valeur, • un type (ensemble des valeurs que peut prendre la variable). La valeur d'une variable : • est fixe à un moment donné, • peut changer au cours du temps. En revanche, le nom et le type d'une variable ne changent pas.
  • 58. Variables et affectation Dans un algorithme, une variable possède : • un nom, • une valeur, • un type (ensemble des valeurs que peut prendre la variable). La valeur d'une variable : • est fixe à un moment donné, • peut changer au cours du temps. L'affectation change la valeur d'une variable : • a ← 5 (pseudo-code) / a=5 (Java) : - la variable a prend la valeur 5 - la valeur précédente est perdue (“écrasée”) • a ← b (pseudo-code) / a=b (Java) : - la variable a prend la valeur de la variable b - la valeur précédente de a est perdue (“écrasée”) - la valeur de b n'est pas modifiée - a et b doivent être de même type (ou de type compatible)
  • 59. Variables et affectation Dans un algorithme, une variable possède : • un nom, • une valeur, • un type (ensemble des valeurs que peut prendre la variable). La valeur d'une variable : • est fixe à un moment donné, • peut changer au cours du temps. L'affectation change la valeur d'une variable : • a ← 5 (pseudo-code) / a=5 (Java) : - la variable a prend la valeur 5 - la valeur précédente est perdue (“écrasée”) • a ← b (pseudo-code) / a=b (Java) : - la variable a prend la valeur de la variable b - la valeur précédente de a est perdue (“écrasée”) - la valeur de b n'est pas modifiée - a et b doivent être de même type (ou de type compatible) La recette de cuisine avec récipients n'est qu'une métaphore