Introduction à l'algorithmique en Java
Introduction à l'algorithmique en Java
Initiation à la programmation
1
Brainstorm Consulting
Table des matières
● Introduction
● Les variables
● Les opérateurs conditionnels
● Les structures conditionnelles
● Les structures itératives
● Les tableaux
● Les sous-programmes
● Suppléments
2
Brainstorm Consulting
INTRODUCTION À
L’ALGORITHMIQUE
3
Brainstorm Consulting
Courage, rigueur et persévérance
• L’apprentissage des techniques et méthodes de programmation est un long processus
constitué d’une multitude d’efforts à accomplir et d’embuches à surmonter !
• De même, développer un programme informatique est un long chemin composé d’un grand
nombre de petites étapes !
4
Brainstorm Consulting
Ordinateur, machine programmable
5
Brainstorm Consulting
Ordinateur, machine programmable
• Un ordinateur n’a pas de cerveau ! Il est donc nécessaire de lui dire tout ce qu’il doit
faire.
6
Brainstorm Consulting
Composants importants d’un ordinateur
• Processeur : permet d’exécuter des opérations basiques comme des calculs arithmétiques. Il est
composé de :
– Une horloge
– Des registres
• Bien qu’il y ait d’autres composants dans un ordinateur, nous nous intéresserons au processeur et à la
mémoire
7
Brainstorm Consulting
La mémoire
● Zone où l’ordinateur enregistre les données dont il a besoin pour fonctionner.
● Plusieurs types de mémoire dans un ordinateur :
8
Brainstorm Consulting
Algorithme ?
• Suite d’instructions précises permettant de résoudre un problème de manière automatique.
• Contrairement à ce que l’on pourrait penser de prime abord, l’informatique n’est pas la première
science concernée par l’algorithmique, cet honneur revient aux mathématiques.
9
Brainstorm Consulting
Recette de cuisine
• Un algorithme peut être comparé à une recette de cuisine. Elle décrit la marche à suivre, mais
c’est la personne exécutant les instructions qui réalise le plat.
– Ce que l’on attend comme résultat : la recette réussie (crumble aux pommes et aux poires)
10
Brainstorm Consulting
Utilité d’un algorithme
• Nous retrouvons des algorithmes partout dans notre vie de tous les jours.
– Lorsqu’un GPS calcule le chemin le plus rapide vers une destination, il utilise un algorithme
– Lorsqu’une intelligence artificielle doit prendre une décision, cette prise de décision est basée sur
un algorithme
11
Brainstorm Consulting
Instant réflexion
● À chaque utilisation de programme ou même parfois lors de certains raisonnements,
vous utilisez des algorithmes potentiellement célèbres.
12
Brainstorm Consulting
Algorithme et programme : Nuances
Algorithme Programme
• Suite d’instructions totalement • Suite d’instructions, compréhensibles par
indépendantes de la technologie. l’ordinateur, permettant d’exécuter une
tâche.
• Solution abstraite à un problème donné.
• Peut être écrit dans différents langages
• Peut être réalisé à l’aide d’un simple (dits de programmation) conçus pour être
éditeur de texte ou même sur papier. compris par l’ordinateur : C, C#, Java,
Python, Ruby,…
• Un même algorithme peut être utilisé par
plusieurs programmes (qui peuvent être • Un programme met en œuvre un (ou
écrits dans différents langages) plusieurs) algorithme(s).
13
Brainstorm Consulting
Algorithme et programme : Dijkstra
● L’algorithme de Dijkstra (bien que méconnu par les non-informaticiens) est présent
dans divers domaines… Et pour cause, il permet de trouver le plus court chemin entre
un point A et un point B !
● Exemple ?
14
Brainstorm Consulting
Algorithme et programme : Dijkstra
• Cet algorithme « n’est qu’une » suite d’instruction que même un humain peut suivre
pour trouver le plus court chemin.
• Ceci dit, nous imaginons mal un conducteur faire lui-même cette suite d’instructions
pour trouver le chemin qui lui convient (long et possibilité d’erreurs).
• Dans les exemples suivants, nous utiliserons des algorithmes plus « simples »,
contenant moins d’instructions
15
Brainstorm Consulting
Représentation d’un algorithme
16
Brainstorm Consulting
Pseudo-code
• Représentation des étapes sous forme écrite, Algorithme EuclidePGCD
de manière structurée.
Variable a, b, r : entier,
• La taille de l’algorithme n’influence pas la DEBUT
lisibilité et la compréhension du Lire(a)
pseudo-code. Lire(b)
TANT QUE (r ← a MOD b) ≠ 0 FAIRE
• Structure les instructions menant à la a ← b
résolution du problème pour lequel b ← r
l’algorithme a été élaboré. FINTQ
Ecrire("PGCD = ", b)
• Exemple : algorithme d’Euclide en FIN
pseudo-code.
17
Brainstorm Consulting
Pseudo-code : Structure de base
• Un algorithme est toujours divisé en trois
parties distinctes :
Algorithme EuclidePGCD
• Le nom de l’algorithme.
Variable a, b, r : entier
• La partie déclarative. Nous y déclarons les
DEBUT variables et constantes (nous verrons
Lire(a) bientôt ce qu’elles représentent).
Lire(b)
TANT QUE (r ← a MOD b) ≠ 0 FAIRE
a ← b
b ← r • Les instructions de l’algorithme délimitées
FINTQ par les mots-clés « Debut » et « Fin ».
Ecrire("PGCD = ", b)
FIN
18
Brainstorm Consulting
Langage de programmation
• Permets de faire exécuter des instructions concrètes à un ordinateur.
• Il existe de nombreux langages différents. Ils possèdent des éléments communs, mais
également des spécificités qui leur sont propres.
19
Brainstorm Consulting
Choix d’implémentation pour le cours : flowgorithm
20
Brainstorm Consulting
Remarques importantes
• Il s’agit ici d’un cours d’algorithmique et non d’un cours de Java. Ce langage est utilisé à
titre d’exemple afin d’illustrer de manière concrète les concepts d’algorithmique que
nous allons aborder.
• Les notions d’orienté-objet ne seront pas abordées dans ce cours qui est uniquement
dédié aux concepts d’algorithmique.
21
Brainstorm Consulting
Petite histoire de Java
● Java :
○ est né en 1995
○ doit son nom à la boisson favorite des programmeurs le café traduit en argot américain : java
22
Brainstorm Consulting
Que peut-on faire avec lui ?
● Des petits programmes appelés applets (mort)
● Des jeux, des suites bureautiques, des logiciels multimédias, des clients de
messagerie…
● Des applications web
● Connexion aux bases de données
● Développer des applications mobiles
23
Brainstorm Consulting
Télécharger et installer
● [Link]
● Cliquer sur Download
● Installer + Oui téléchargement de JAVA
● Lancer eclipse
ou
● [Link]
● Cliquer sur Downloas dans la version Community
● Installer + Oui téléchargement de JAVA
● Lancer Intellij
24
Brainstorm Consulting
Changer le thème couleur
• Intellij -> File -> Import Settings -> Sélectionnez le fichier .zip
• Si pas activé au redémarrage : Settings -> Editor -> Colors & Fonts
25
Brainstorm Consulting
ALGORITHMIQUE : LES BASES
26
Brainstorm Consulting
LES VARIABLES
27
Brainstorm Consulting
Un monde de variables
29
Brainstorm Consulting
Typage des variables
• Comme expliqué précédemment, une variable est entre autres définie par le type de valeur qu’elle
peut contenir.
– Entier : 1, 2, 5, 6, 42…
– Logique ou booléen : vrai ou faux (nous en reparlerons dans le chapitre sur les structures conditionnelles.)
30
Brainstorm Consulting
Déclarer une variable
• Déclarer une variable consiste à réserver un emplacement en mémoire afin de
pouvoir l’utiliser par la suite.
• Pour déclarer une variable, il nous faut spécifier 2 choses : son nom et son type. Il est
important de choisir un nom cohérent qui permet de facilement comprendre l’utilité
de la variable.
31
Brainstorm Consulting
Les constantes
• Dans nos algorithmes, nous avons parfois besoin de valeurs qui ne changent pas au cours de
l’exécution.
• Ces valeurs sont appelées des constantes, car elles ne changent pas durant l’exécution de
l’algorithme.
32
Brainstorm Consulting
Bonnes pratiques
• Le choix des noms de variable doit rester cohérent. À la relecture de l’algorithme, il doit
être possible de comprendre le sens d’une variable en fonction de son nom. L’alphabet
n’est pas une bonne idée.
• Éviter les accents pour des raisons informatiques. Les langages sont écrits en anglais, et
cette langue ne comprend pas les accents
• Le nom d'une variable ne peut commencer par un chiffre mais il peut en contenir
33
Brainstorm Consulting
Mots réservés en Java
● Le nom d'une variable ne peut être un des mots suivants car ils ont une signification en Java.
abstract assert boolean break byte
case catch char class const
continue default do double else
enum extends false final finally
float for goto if implements
import instanceof int interface long
native new null package private
protected public return short static
strictfp super switch synchronized this
throw throws transient true try
void volatile while
34
Brainstorm Consulting
Affectation
• Une fois une variable déclarée, il faut pouvoir lui donner une valeur. Cette opération
s’appelle une affectation.
35
Brainstorm Consulting
Affectation
• L’initialisation est primordiale :
Variable a, b : Entier
Debut
b ← a + 2 Quelle est la valeur de A ?
Fin
Variable a : Entier
Debut
a ← "Bonsoir" Ceci ne fonctionnera pas !
Fin La variable A est de type Entier
36
Brainstorm Consulting
Java : Déclaration et affectation d’une variable
• En Java, une variable se déclare de la manière suivante :
type nomVariable;
– Il est interdit d’utiliser des caractères accentués dans les noms de variables.
• L’affectation ne se fait pas avec une flèche, mais avec un « = ». Type Type
• Voici les différents types de variables en Java : Pseudo Java
Entier int
nomVariable = "valeur";
Réel double
Caractère char
• Il est possible de déclarer et d'initialiser un variable en même temps
Texte String
type nomVariable = "valeur";
/!\ Booléen boolean
Majuscule
37
Brainstorm Consulting
Exemple : Java
38
Brainstorm Consulting
Exercice
● exo00 - Stockez dans une variable nommé message la chaine de caractères
"Bienvenue" et affichez son contenu à l'écran
39
Brainstorm Consulting
Inverser le contenu de deux variables
40
Brainstorm Consulting
Opérations entrées/sorties
• Il est très régulièrement nécessaire d’interagir avec un algorithme. Comme vu dans l’introduction,
nous pouvons communiquer des informations à un algorithme et il peut nous en communiquer
également.
• Attention ! Ces deux opérations doivent être comprises du point de vue de l’ordinateur. L’opération
Ecrire va donc écrire une information (que nous pourrons lire sur l’écran par exemple) et l’opération
Lire va enregistrer une valeur (écrite sur le clavier par exemple).
41
Brainstorm Consulting
42
Brainstorm Consulting
Ecrire
• Opération permettant de communiquer une
information au « monde extérieur ». Ce qui
peut être : Variable message : Texte
DEBUT
– L’écran de l’ordinateur
message ← "Bonne
– Une autre machine journée"
Ecrire(message)
• Déroulement de cette opération : FIN
44
Brainstorm Consulting
Lire et Ecrire en Java
• L’opération d’écriture est la suivante :
[Link]("Bienvenue"); [Link](nom_variable);
45
Brainstorm Consulting
Remarques : Lire en Java
• Il existe une grande différence entre l’algorithmique et le Java en ce qui concerne l’opération Lire.
• Cette dernière récupère la saisie au clavier sous la forme d’une chaine de caractère (le type String). C’est d’ailleurs
normal, l’utilisateur entre des touches claviers qui sont des caractères. La valeur « 123 » est la concaténation de
trois caractères, le chiffre 1, le chiffre 2 et le chiffre 3. Pour récupérer la valeur numérique 123, il faut convertir les
chiffres en nombre.
46
Brainstorm Consulting
Exercice
● exo02-Récupérer le nom et le prénom du l'utilisateur puis affichez le message
"Bienvenue prenom nom"
● Ex : Bienvenue Jules César
47
Brainstorm Consulting
Opérateurs
• Jusqu’à maintenant, nous avons vu plusieurs éléments importants :
– La notion de variable
– L’affectation
• Nous aimerions pouvoir effectuer des opérations dans nos algorithmes. C’est
maintenant que les opérateurs entrent en jeu.
48
Brainstorm Consulting
Opérateurs
• Il existe plusieurs types d’opérateurs :
– Opérateurs arithmétiques
– Opérateurs de comparaisons
– Opérateurs logiques
• Les deux derniers seront abordés un peu plus tard dans le cours.
49
Brainstorm Consulting
Opérateurs arithmétiques
● Porte sur des valeurs de type numérique (entiers ou réels).
+ Addition
- Soustraction
* Multiplication
/ Division
50
Brainstorm Consulting
Opérateurs arithmétiques : Exemples
Variable a, b, c, d : Entier, • Dans cet exemple, nous utilisons des opérateurs
e, f : Reel entre des valeurs, mais également des variables !
DEBUT
a ← 10 • Les valeurs de chaque variable sont donc les
b ← 5 DIV 2 suivantes :
c ← b + a Variables Valeurs
d ← 5 MOD 2 a 10
e ← 5 / 2 b 2
f ← (e - 0.5) * a c 12
FIN
d 1
e 2.5
f 20.0
51
Brainstorm Consulting
Opérateurs arithmétiques : Java
• Voici la table des opérateurs arithmétiques en Java.
+ Addition
- Soustraction
* Multiplication
/ Division
52
Brainstorm Consulting
Opérateurs arithmétiques : Exercices
• exo03a - Voici l’exemple précédent en Java
int a, b, c, d;
double e, f; Variables Valeurs
a = 10;
a
b = 5 / 2;
c = b + a; b
d = 5 % 2;
e = 5 / 2.0; c
f = (e - 0.5) * a; d
e
f
53
Brainstorm Consulting
Opérateurs arithmétiques : Exercices
• exo03a-Déterminez la valeur des variables de ce pseudo-code.
Variable a, b, c, d, e : Entier
DEBUT
a ← 8 MOD 3
b ← 4 + a
c ← b * a
• exo03b-Vérifiez vos réponses en utilisant d ← (c – a) * b
54
Brainstorm Consulting
Un dernier pour la route
● Exemple :
4561 secondes correspondent à 0 jour 1 heure 16 minutes et 1 seconde.
55
Brainstorm Consulting
LES OPÉRATEURS CONDITIONNELS
56
Brainstorm Consulting
Les booléens
• Type de variable n’ayant que deux valeurs possibles : vrai ou faux.
• Ce type permet de connaitre un état.
• Exemples :
57
Brainstorm Consulting
Comparer des variables
• Dans un algorithme, il est souvent intéressant de pouvoir comparer des
variables.
• Par exemple, pour savoir si un étudiant a réussi un examen, il faut savoir si ses
points sont supérieurs ou égaux à 10 (sur un total de 20).
58
Brainstorm Consulting
Opérateurs de comparaisons
● Comparaison de deux valeurs et obtenir une valeur logique (vrai ou faux) comme
résultat.
== Égalité stricte
!= Différence
59
Brainstorm Consulting
Comparaisons : Exemples
• Voici un exemple dans lequel nous comparons les
points de Jean et Paul pour savoir s’ils ont réussi.
60
Brainstorm Consulting
Comparaison : Java
• Voici l’exemple précédent en Java ainsi que les opérateurs de comparaison en Java:
Pseudo-co Java
int pointsJean = 15; de
int pointsPaul = 9;
== ==
boolean reussiteJean = (pointsJean >= 10); != !=
boolean reussitePaul = (pointsPaul >= 10);
> >
Variables Valeurs
< <
reussiteJean true
>= >=
reussitePaul false
<= <=
Attention en Java, pour comparer des valeurs de type “String”, il ne faut pas utiliser
l'opérateur “==”, mais la méthode equals. boolean test = [Link](chaine2);
61
Brainstorm Consulting
Combiner des comparaisons
• Nous désirons démarrer la chaudière lorsque la température est comprise entre 5 et
15 degrés. En considérant la variable température, deux comparaisons apparaissent :
– (température ≤ 15)
– (température ≥ 5)
Pour allumer la chaudière :
(température ≥ 5) et (température ≤ 15) doivent être vrais.
62
Brainstorm Consulting
Opérateurs logiques
• Permettent de combiner des valeurs logiques. Ce qui va nous permettre
de combiner des comparaisons. Le résultat est toujours une valeur
logique.
63
Brainstorm Consulting
Opérateurs logiques : Java
• Voici la table des opérateurs logique en Java
! Négation logique
64
Brainstorm Consulting
Tables de vérité : ET – OU – NON
ET OU NON
65
Brainstorm Consulting
Exemples
• Si A = vrai et B = faux :
– A ET B est faux
• Nous pouvons donc utiliser les opérateurs logiques avec des booléens et des comparaisons.
66
Brainstorm Consulting
Lois de De Morgan
• De Morgan est un mathématicien britannique ayant formulé des propriétés d’algèbre
booléenne. Ces propriétés peuvent nous être utiles.
67
Brainstorm Consulting
Lois de De Morgan : Pseudo-code
NON(A ET B) = NON(A) OU NON(B)
A B A ET B NON(A ET B) NON(A) NON(B) NON(A) OU NON(B)
0 0 0 1 1 1 1
0 1 0 1 1 0 1
1 0 0 1 0 1 1
1 1 1 0 0 0 0
68
Brainstorm Consulting
XOR
• Il existe un quatrième opérateur logique :
OU exclusif (⊕)
• XOR vient de l’anglais : eXclusive OR
– « l’un ou l’autre ».
69
Brainstorm Consulting
Table de vérité du XOR
● Soit l’un, soit l’autre, mais pas les deux
XOR
Faux V F
70
Brainstorm Consulting
Exercices
• Considérons A = 3, B = 9, C = Faux, D = NON (C), E = 9.
• Donnez le résultat pour chacune de ces instructions :
Notation pseudo-code :
Notation Java :
1. (A > 8)
A != 3
2. (B == 9) !(D) || C
3. (NON(A != 3)) ((A + B) == 12) && D
4. (NON(C))
5. ((A < B) OU C)
6. NON((A + B) != 12)
7. ((B == 5) OU ( (E > 10) ET (A < 8) ))
8. ((((B == 5) OU ((E > 10) ET (A < 8))) OU (A < B) OU C) ET C)
exo06 - Vérifiez avec Java
71
Brainstorm Consulting
LES STRUCTURES CONDITIONNELLES
72
Brainstorm Consulting
Les structures conditionnelles
● Souvent, un algorithme se retrouve face à plusieurs situations qui ne peuvent pas être
traitées avec les mêmes instructions. Nous ne savons pas quel sera le cas de figure à
l’exécution.
● Nous devons alors prévoir tous les cas possibles. Nous allons donc utiliser les
structures conditionnelles.
73
Brainstorm Consulting
SI… SINON
• Reprenons l’exemple de la chaudière :
Nous désirons l’allumer si la température est comprise entre 5 et 15 degrés. Pour cela, nous
avons besoin de dire :
74
Brainstorm Consulting
SI… SINON
• Il s’agit d’une structure conditionnelle qui va nous permettre d’effectuer des
instructions différentes si une condition est vérifiée ou non.
• En pseudo-code :
SI [condition] ALORS
[instructions1]
SINON
[instructions2]
FINSI
75
Brainstorm Consulting
Exemples : Pseudo-code
76
Brainstorm Consulting
Exemples : Java
int age;
if (conditions) age = [Link]([Link]());
{ if (age >= 18)
//instructions; {
}
else [Link]("Bienvenue");
{ }
//instructions; else
} {
[Link]("Accès interdit");
}
NB : L'instruction
else
est optionnelle
77
Brainstorm Consulting
Instant Réflexion
78
Brainstorm Consulting
Beaucoup de conditions
79
Brainstorm Consulting
SI..SINON imbriqués
Variable jour : Entier
DEBUT
Lire(jour)
SI jour = 1 ALORS Ecrire("Lundi")
SINON
SI jour = 2 ALORS Ecrire("Mardi")
SINON
SI jour = 3 ALORS Ecrire("Mercredi")
SINON
SI jour = 4 ALORS Ecrire("Jeudi")
SINON
SI jour = 5 ALORS Ecrire("Vendredi")
SINON
Pas très intuitif
☹
SI jour = 6 ALORS Ecrire("Samedi")
SINON
SI jour = 7 ALORS Ecrire("Dimanche")
SINON
Ecrire("Dimanche")
FINSI
FINSI
FINSI
FINSI
FINSI
FINSI
FINSI
FIN
80
Brainstorm Consulting
L’indentation
• Nous commençons à voir apparaitre, dans le pseudo-code, des blocs d’instructions.
Afin de garder le code lisible, nous utilisons des espaces (ou des tabulations) pour
structurer le code en fonction de sa logique.
81
Brainstorm Consulting
Code non indenté vs Code indenté
Variable jour : Entier Variable jour : Entier
DEBUT DEBUT
Lire(jour)
Lire(jour)
SI jour = 1 ALORS Ecrire("Lundi")
SI jour = 1 ALORS Ecrire("Lundi") SINON
SINON SI jour = 2 ALORS Ecrire("Mardi")
SI jour = 2 ALORS Ecrire("Mardi") SINON
SINON SI jour = 3 ALORS Ecrire("Mercredi")
SI jour = 3 ALORS Ecrire("Mercredi") SINON
SI jour = 4 ALORS Ecrire("Jeudi")
SINON
SINON
SI jour = 4 ALORS Ecrire("Jeudi") SI jour = 5 ALORS Ecrire("Vendredi")
SINON SINON
SI jour = 5 ALORS Ecrire("Vendredi") SI jour = 6 ALORS Ecrire("Samedi")
SINON SINON
SI jour = 6 ALORS Ecrire("Samedi") SI jour = 7 ALORS Ecrire("Dimanche")
SINON SINON
Ecrire("Dimanche")
SI jour = 7 ALORS Ecrire("Dimanche")
FINSI
SINON FINSI
Ecrire("Erreur") FINSI
FINSI FINSI
FINSI FINSI
FINSI FINSI
FINSI ILLISIBLE !!! FINSI
FIN
FINSI
FINSI
FINSI
FIN
82
Brainstorm Consulting
SI… SINON SI... SINON
• Lorsque nous avons plus de deux conditions à vérifier, nous pouvons utiliser le SINON
SI dans la structure conditionnelle que nous avons vue précédemment.
SINON SI condition2
instructions2
SINON
instructions3
FINSI
83
Brainstorm Consulting
Exemples : Pseudo-code
Variable jour : Entier
DEBUT
Lire(jour)
SI jour = 1 ALORS Ecrire("Lundi")
SINONSI jour = 2 ALORS Ecrire("Mardi")
SINONSI jour = 3 ALORS Ecrire("Mercredi")
SINONSI jour = 4 ALORS Ecrire("Jeudi")
☺
SINONSI jour = 5 ALORS Ecrire("Vendredi") C’est déjà
SINONSI jour = 6 ALORS Ecrire("Samedi")
SINONSI jour = 7 ALORS Ecrire("Dimanche")
mieux
SINON : Ecrire("Erreur")
FINSI
FIN
84
Brainstorm Consulting
Exemples : Java int jour;
jour = [Link]([Link]());
if (jour == 1)
if (condition) [Link]("Lundi");
{
instructions; else if (jour == 2)
[Link]("Mardi");
}
else if (condition) else if (jour == 3)
{ [Link]("Mercredi");
instructions;
} else if (jour == 4)
[Link]("Jeudi");
else
{ else if (jour == 5)
instructions; [Link]("Vendredi");
}
else if (jour == 6)
[Link]("Samedi");
85
Brainstorm Consulting
SELON QUE
• Bien que le SI.. SINON SI..SINON soit plus compact, cela reste un peu lourd. Une
autre instruction va nous permettre de soulager l’écriture de ce genre de tests : le
SELON QUE.
86
Brainstorm Consulting
Exemple : Pseudo-code
• Voici l’algorithme du jour de la semaine en utilisant un SELON
QUE. Variable jour : Entier
DEBUT
Lire(jour)
SELONQUE jour vaut
1 : Ecrire("Lundi")
2 : Ecrire("Mardi")
3 : Ecrire("Mercredi")
4 : Ecrire("Jeudi")
5 : Ecrire("Vendredi")
6 : Ecrire("Samedi")
7 : Ecrire("Dimanche")
Sinon : Ecrire("Erreur")
FINSQ
FIN
87
Brainstorm Consulting
int jour;
88
Brainstorm Consulting
Exercices
● exo07-Année bissextile (Pseudo-Code + Java)
Réalisez un petit algorithme qui sur base d’une année donnée va déterminer s’il s’agit d’une
année bissextile. Une année est bissextile si elle est divisible par 4, mais non divisible par
100. Ou si elle est divisible par 400.
Bissextile : 2000, 1996 !Bissextile : 1900, 1997
● pret : permet de savoir si le tennisman est prêt. Il ne faut pas lancer de balles dans le
cas contraire
● panierVide : permet de savoir s’il y a encore des balles disponibles
Le lanceur de balle possède l’opération « lancerBalle » qui, vous l’aurez compris, permet de
lancer une balle.
89
Brainstorm Consulting
Exercices
● exo09-Distributeur de boissons (Pseudo-Code + Java) (switch())
Réalisez l’algorithme d’un distributeur de boissons. Ce dernier propose plusieurs boissons et
l’utilisateur choisit celle qu’il désire en entrant le numéro correspondant. N'oubliez pas de
vérifier s’il y a encore des boissons en stock.
90
Brainstorm Consulting
Exercices
● exo11-Note (Pseudo-Code + Java)
Ecrire un algorithme qui met l'appréciation par rapport à des notes. Ces notes sont comprises
entre 0 et 20.
- 0-10 : I, 11-12 : S, 13-15 : B, 16-18 : TB, 19-20 : Excellent
/!\ Gérer les erreurs : ex : -2; 25
● exo12
Réalisez un algorithme utilisant le convertisseur de secondes, il reçoit deux durées (jours,
heures, minutes et secondes) et calcule la différence entre ces dernières.
91
Brainstorm Consulting
LES STRUCTURES ITÉRATIVES
92
Brainstorm Consulting
Introduction aux structures itératives
• Nous pouvons maintenant faire pas mal de choses avec ce que nous avons appris.
• Mais jusqu’à présent, nos algorithmes ne peuvent exécuter leurs instructions qu’une
seule fois. Ce n’est pas très pratique !
– Le lanceur de balle devrait pouvoir lancer des balles jusqu’à ce que son stock soit vide
– Le distributeur de boissons pourrait proposer une autre boisson au client tant que ce dernier
le désire
93
Brainstorm Consulting
Les boucles
• Afin répéter des instructions dans nos algorithmes, nous utilisons les boucles.
• Une boucle est une structure itérative permettant de réitérer un comportement sur
base d’une condition précise.
• Exemple :
TANT QU’il y a des balles, lancer une balle.
94
Brainstorm Consulting
Les boucles
• Pour utiliser une boucle, il est nécessaire de pouvoir identifier clairement :
– Pourquoi le répéter
• Nous répétons des instructions afin d’atteindre un état défini. Il est donc primordial
que les instructions répétées permettent d’atteindre l’état voulu sous peine de se
retrouver dans une boucle infinie !
95
Brainstorm Consulting
Les types de boucles
– Boucles à tests postérieurs, décomposées en deux (FAIRE… TANT QUE et FAIRE… JUSQU’À)
96
Brainstorm Consulting
TANT QUE.. FAIRE
• Dans cette boucle, nous répétons nos instructions tant que la condition définie est
vraie. De plus, si cette condition n’est pas vérifiée au départ, nous n’exécutons pas du
tout les instructions.
97
Brainstorm Consulting
Java : Boucle Tant Que
while (conditions)
{
instructions;
}
98
Brainstorm Consulting
Exemples : Pseudo-code
• Nous pouvons utiliser une boucle pour valider la saisie d’un utilisateur par exemple :
99
Brainstorm Consulting
Exemples : Java
100
Brainstorm Consulting
Exercices
• exo13-À l’aide d’une boucle, affichez la table de multiplication par 2. Ensuite, codez
votre algorithme en Java.
101
Brainstorm Consulting
Plus ou Moins
• exo16- C'est plus, c'est moins, c'est gagné
Un algorithme reçoit deux nombres de l’utilisateur (opération Lire) : justePrix et
proposition.
Il répond : « C’est plus » lorsque proposition est plus petit que justePrix.
Et inversement, il répond : « C’est moins » lorsque proposition est plus grand que
justePrix.
102
Brainstorm Consulting
Plus ou Moins
103
Brainstorm Consulting
Remarques
• Dans certains cas, il est nécessaire d’effectuer les instructions au moins une fois avant
d’évaluer s’il est nécessaire de les répéter.
• Reprenons l’exemple de la validation de la saisie d’un utilisateur :
Variable selection : Entier
Debut
Ecrire("Entrez un nombre entre 1 et 10")
L’instruction Lire() Lire(selection)
est répétée deux fois. TANTQUE (selection < 1) OU (selection > 10) FAIRE
Ecrire("Valeur incorrecte ! Réessayer")
Lire(selection)
FINTQ
Fin
104
Brainstorm Consulting
FAIRE .. TANT QUE
• La boucle FAIRE.. TANT QUE nous permet d’effectuer les instructions de la boucle une
première fois avant d’évaluer s’il est nécessaire de les réitérer.
• Même si la condition de répétition est fausse dès le départ, les instructions seront
exécutées une fois.
• En pseudo-code :
FAIRE
instructions à répéter
TANTQUE conditions FINTQ
105
Brainstorm Consulting
Exemples : Pseudo-code
FAIRE
Ecrire("Entrez un nombre entre 1 et 10")
Lire(selection)
TANTQUE (selection < 1) OU (selection > 10) FINTQ
Fin
106
Brainstorm Consulting
Exemples : Java
do
{
// instructions
} while (conditions) ; /!\ N'oubliez pas le ;
107
Brainstorm Consulting
Exemples : Pseudo-code
int selection;
do
{
[Link]("Entrez un nombre entre 1 et 10");
selection = [Link]([Link]());
} while (selection < 1) || (selection > 10) ;
108
Brainstorm Consulting
FAIRE .. JUSQU’À
• Comme vous l’aurez compris, cette boucle va répéter les instructions JUSQU’À
ce que la condition soit vraie.
• En pseudo-code : FAIRE
instruction
JUSQU’A condition(s)
109
Brainstorm Consulting
Quel intérêt entre les deux ?
FAIRE .. TANT QUE FAIRE .. JUSQU’À
• Répète les instructions tant que la • Répète les instructions tant que la
condition est VRAIE. condition est FAUSSE.
• Répète les instructions jusqu’à ce que • Répète les instructions jusqu’à ce que
la condition soit FAUSSE. la condition soit VRAIE.
110
Brainstorm Consulting
Attention aux conditions !
111
Brainstorm Consulting
Exercices
● exo17-À l’aide d’une boucle Faire … TantQue , améliorez l’algorithme du distributeur de
boissons pour qu’il demande au client s’il désire une autre boisson (Tant qu’il en a envie).
● exo18-À l’aide d’une boucle Faire … TantQue, améliorez l’algorithme de la calculatrice afin
qu’elle demande à l’utilisateur s’il veut faire un autre calcul (tant qu’il le désire).
112
Brainstorm Consulting
Exercices
● exo21- Améliorez le "C'est plus, c'est moins, c'est gagné" pour qu'il tourne en
boucle tant que le juste_prix n'a pas été trouvé.
L'utilisateur est invité à entrer un nombre et l'algorithme nous répond "C'est plus"
ou "C'est moins".
113
Brainstorm Consulting
Exercices supplémentaires
1. Réalisez un système de connexion à l'aide d'un mot de passe. L'algorithme demande à
l'utilisateur de saisir son mot de passe. Si ce dernier valide de bon mot de passe, on le
salue. Par contre, si il fait une erreur trois fois de suite, un message lui signalera que son
compte est bloqué et il ne pourra pas réessayer une quatrième fois
2. Ecrivez un algorithme qui demande à l’utilisateur de taper 10 entiers et qui affiche le plus
petit de ces entiers.
114
Brainstorm Consulting
Projet : justePrix
● Améliorez encore le justePrix : l'utilisateur a droit à 10 essais après ces 10 essais, il a
perdu et l'ordinateur affiche le justePrix
● Ajouter un niveau :
○ facile : entre 1 et 10
○ moyen : entre 1 et 100
○ difficile : entre 1 et 1000
● Vérifiez que tout caractère entré est correct, c'est-à-dire pour que le programme ne
plante jamais.
115
Brainstorm Consulting
Indices
● Pour générer un nombre entre 0 et 10 non compris, il faut :
- c'est impossible en java : il faut donc ajouter des retours à la ligne pour que le texte disparaisse.
116
Brainstorm Consulting
Indices
117
Brainstorm Consulting
LES TABLEAUX
118
Brainstorm Consulting
Utilité
• Dans beaucoup de cas, nous pouvons avoir besoin de nombreuses variables d’un même type :
– …
• Nous serions tentés de déclarer autant de variables que le nombre de valeurs dont nous avons besoin.
C’est embêtant et laborieux ! Et les informaticiens sont paresseux, ils n’aiment pas faire deux fois la
même chose ☺ !
• Les tableaux nous permettent d’obtenir un nombre donné d’éléments d’un même type.
119
Brainstorm Consulting
Les tableaux
• Un tableau est une structure de données composée d’un ensemble de variables, du même type, accessibles
par leur indice.
Tableau
d’entiers
12 512 15 4 -5 1 -88 782
• La déclaration d’un tableau est similaire à celle des variables avec deux éléments supplémentaires :
120
Brainstorm Consulting
Déclarer un tableau
• Pour déclarer un tableau, rien de plus simple :
Variable : nomTableau : Tableau[nombreElement] de typeElement
121
Brainstorm Consulting
Affectation dans un tableau
122
Brainstorm Consulting
L’opérateur d’accès [ ]
• Nous sommes capables de déclarer un tableau de N cases d’un certain type. Mais
nous devons pouvoir accéder à chaque case du tableau !
• Les cellules d’un tableau sont toutes numérotées à partir de 0 jusqu’à la taille du
tableau -1.
• Nous utilisons dès lors l’opérateur d’accès [ ] qui va nous permettre de l’indice de la
cellule à laquelle nous désirons accéder.
123
Brainstorm Consulting
L’opérateur d’accès [ ] : Exemples
Variable : tabSMS : Tableau[3] de Texte
DEBUT
Constatez que la tabSMS[0] ← "Première case du tableau"
tabSMS[1] ← "Deuxième case du tableau"
numérotation commence
tabSMS[2] ← "Dernière case du tableau"
bien à 0 et termine à 2 (taille FIN
du tableau -1).
INTERDIT !
Variable : tab : Tableau[2] de Entier
DEBUT
Car il s’agit d’un tableau
tab[0] ← 10 d’entiers
tab[1] ← "valeur"
Ne fonctionnera pas, car
tab[2] ← 1
FIN nous sommes en dehors
du tableau.
124
Brainstorm Consulting
Les tableaux en Java
125
Brainstorm Consulting
Représentation d’un tableau en mémoire
• Voici un petit résumé de ce que nous avons vu sur les tableaux :
Élément du
tableau
Tableau 1 4 7 3 1 4 9 0 9 2
de 10
entiers 0 1 2 3 … 9 Indices du
tableau
126
Brainstorm Consulting
Exemple :
127
Brainstorm Consulting
Exemple : Représentation du tableau en mémoire
• En considérant les cotes suivantes : 14/20, 14/20 et 11/20.
Le tableau en mémoire serait représenté comme suit :
Élément du
tableau
tabCotes 14 14 11
0 1 2 Indices du
tableau
tabCotes[0] ayant
comme valeur : 14
128
Brainstorm Consulting
Trucs et astuces
• Il est souvent utile de stocker la taille d’un tableau dans une constante. Cela rend
l’algorithme plus facilement modifiable. Nous illustrerons cela un peu plus loin
dans le chapitre.
• Nous avons donc la taille du tableau en constante, mais comment savoir quelles
sont la ou les cellules possédant déjà une valeur ou non ? Une solution simple
consiste à utiliser une variable supplémentaire pour retenir le nombre d’éléments
utiles dans le tableau.
129
Brainstorm Consulting
Trucs et astuces : Exemple
0 1 2
Constante : TAILLE = 10
Variable : tab : Tableau[TAILLE] de 9 3 @ @ @ @ @ @ tab
Entier
nbElement : Entier
DEBUT 2 nbElemen
nbElement ← 0 t
tab[nbElement] ← 9
nbElement ← nbElement +1 Nous ne connaissons pas le contenu
tab[nbElement] ← 79
de ces cellules (résidus de mémoire).
nbElement ← nbElement +1
FIN
La variable nbElement nous permet
donc de connaitre le nombre de
cellule ayant une valeur utile.
130
Brainstorm Consulting
Les tableaux en Java
• Pour ajouter un élément au tableau.
// déclaration
String[] nomTableau = new String[10];
// récupération
[Link]("Saisissez une valeur à ajouter");
Scanner sc = new Scanner([Link]);
String nomVariable = [Link]();
131
Brainstorm Consulting
Trucs et astuces : Exemple
0 1 2
Constante : TAILLE = 10
Variable : tab : Tableau[TAILLE] de Entier 9 3 @ @ @ @ @ @ tab
nbElement : Entier
DEBUT
tab[0] ← 9 2 nbElemen
tab[1] ← 79 t
Ecrire(tab[0])
Ecrire(tab[1]) Pour accéder un élément précis, il
FIN
suffit d'ajouter l'indice entre [].
132
Brainstorm Consulting
Les tableaux en Java
maVariable = nomTableau[0];
[Link](nomTableau[0]);
133
Brainstorm Consulting
Les tableaux en Java
• Pour parcourir un tableau.
// déclarer
String[] nomTableau = new String[3];
nomTableau[0] = "element 1";
nomTableau[1] = "element 2";
nomTableau[2] = "element 3";
// parcourir le tableau :
// .lenght renvoie le nombre d'éléments dans le tableau
while (i < [Link])
{
[Link](nomTableau[i]);
i++; // incrémentation
}
134
Brainstorm Consulting
Exercices
• exo22-Écrire un algorithme qui saisit 6 entiers et les stocke dans un tableau, puis
affiche le contenu de ce tableau une fois qu’il est rempli.
• exo23-BONUS : initialiser un tableau de 10 entiers avec les valeurs 2, 4, 8, 16, 32, 64,
128, 256, 512, 1024 à l’aide d’une boucle. Ensuite, à l’aide d’une boucle afficher la valeur
de chaque cellule du tableau avec l’opération Ecrire().
135
Brainstorm Consulting
Correction de l’exercice BONUS
● Pour pouvoir parcourir un tableau, nous avons besoin de plusieurs éléments :
○ La taille du tableau
○ Une boucle
136
Brainstorm Consulting
Exercice BONUS
Déclaration des constantes et des Constante TAILLE = 10
variables. Variable tab : Tableau[TAILLE] d'Entier
nbElem, indice : Entier
DEBUT
nbElem ← 0
Initialisation du compteur d’élément, de la
indice ← 0
variable indice ainsi que du premier
tab[nbElem] ← 2
élément du tableau. nbElem ← nbElem + 1
137
Brainstorm Consulting
Une nouvelle boucle sauvage apparait !
● Une boucle spéciale va nous permettre d’itérer plus facilement un tableau.
138
Brainstorm Consulting
Boucle POUR
– indice : corresponds à la variable utilisée pour l’indice du tableau (comme dans l’exercice bonus)
– p : indique un pas d’incrémentation, c’est-à-dire de combien indice va être augmenté (ou diminuer)
à chaque itération. Cette clause est facultative, elle vaut 1 par défaut
139
Brainstorm Consulting
Java : Boucle POUR (version 1)
● La boucle Pour en Java :
○ La boucle for parcourt tout le tableau, il est possible d'accéder à chaque élément du tableau grâce
nomTableau[i]
140
Brainstorm Consulting
Java : Boucle POUR (version 2)
● La boucle Pour en Java :
○ La boucle for parcourt tout le tableau, il est possible d'accéder à chaque élément du tableau grâce
element (le nom est variable)
141
Brainstorm Consulting
Équivalence POUR et TANT QUE
indice ← 0
POUR indice de 0 à 9 par 2 FAIRE TANT QUE non(indice > 9) FAIRE
Ecrire(tableau[indice]) Ecrire(tableau[indice])
FINPR indice ← indice + 2
FINTQ
142
Brainstorm Consulting
Exemple : Pseudo-code
• Reprenons l’exemple de l’exercice bonus en utilisant une boucle POUR :
Constante MAXCOTES = 10 Nous en profitons pour afficher la
Variable tabCotes : Tableau[MAXCOTES] de Entier
nbCotes, indice : Entier valeur calculée directement afin ne
DEBUT pas devoir utiliser une deuxième
nbCotes ← 0 boucle.
indice ← 0
tabCotes[nbCotes] ← 2
nbCotes ← nbCotes + 1
143
Brainstorm Consulting
Exercices
• exo24-Écrire un algorithme demandant à l’utilisateur le nombre de joueurs (max 10 joueurs).
Ensuite, l’algorithme doit demander à l’utilisateur le score de chaque joueur. Une fois ceci fini,
il faut afficher la moyenne des scores. Faites de même en Java
• exo26-À l’aide des boucles, réalisez un algorithme permettant de trier un tableau d’entiers
dans l’ordre croissant. Mettez-le ensuite en pratique avec Java.
144
Brainstorm Consulting
Java : Quelle touche enfoncée ?
● Pour récupérer le premier caractère d'une String :
145
Brainstorm Consulting
Exercices
● exo27-Refaites l'algorithme qui demande à l’utilisateur de taper 10 entiers et qui
affiche le plus petit de ces entiers mais cette fois-ci à l'aide d'un tableau et sans retenir
le minimum lors de la saisie.
146
Brainstorm Consulting
Exercices
● exo30-En considérant un tableau d'entiers trié dans l'ordre croissant, réalisez un
algorithme étant capable d'insérer une nouvelle valeur dans le tableau de façon à ce
que le tableau reste trié. Le but n'est évidemment pas d'insérer la valeur à la fin et de
trier après mais bien de l'insérer au bon endroit directement.
● exo31-Réalisez un algorithme dans lequel nous devons rechercher une valeur (entrée
par l'utilisateur) dans un tableau d'entiers.
● exo32-En considérant deux tableaux d'entiers (non triés), réalisez un algorithme qui
place tous les éléments des deux tableaux dans un troisième. Ce dernier doit être trié
une fois l'algorithme terminé. Notez que le tri doit être fait en même temps que la
fusion des deux tableaux et pas après.
147
Brainstorm Consulting
LES SOUS-PROGRAMMES
148
Brainstorm Consulting
Diviser pour mieux régner
● Jusqu’à maintenant, nous avons écrit des petits algorithmes ne dépassant pas
la trentaine de lignes. Mais comment s’y retrouver lorsqu’il y en a plusieurs
milliers ?
149
Brainstorm Consulting
Diviser pour mieux régner : Illustration
● Exemple : un robot doit pouvoir conduire un
véhicule. Problème
Problème complexe
● Conduire peut être décomposé en : complexe
• Démarrer le moteur
• Rouler jusqu’à la destination
Problème
• Couper le moteur complexe Décomposition
en petits
● Ces trois étapes sont encore décomposables problèmes
en :
• Mettre la clé dans le contact
• Se mettre au point mort
• Embrayer
• Tourner la clé de contact
• Passer la première vitesse
• …
150
Brainstorm Consulting
Diviser pour mieux régner
151
Brainstorm Consulting
Sous-programme
• Le concept de sous-programme est donc une illustration de la décomposition de problèmes
complexes en nombreux problèmes de complexité moindre.
– Les procédures
– Les fonctions
152
Brainstorm Consulting
Utilité
• Outre le fait de décomposer un algorithme en plusieurs parties, les sous-programmes sont
très utiles pour de nombreuses choses :
– Ils permettent une réutilisabilité du code. En effet, lorsque nous effectuons régulièrement les
mêmes instructions, il est plus pratique d’écrire ces instructions une seule fois ! (Souvenez-vous,
les informaticiens sont paresseux)
– Les sous-programmes réduisent également l’impact d’une erreur : si nous utilisons plusieurs fois les
mêmes instructions dans notre algorithme, une erreur dans ces dernières nous obligerait à corriger
l’erreur à tous les endroits où nous avons utilisé ces instructions (au risque d’en oublier une quelque
part)
153
Brainstorm Consulting
Les procédures et fonctions
• Une procédure est un sous-programme que nous pouvons appeler pour utiliser des
actions : traitement de données.
154
Brainstorm Consulting
Exemple introductif
Algorithme diviseur :
DEBUT
Algorithme saisirDonnees()
abstrait traiterDonnees()
divisant deux afficherResultats() Concrétisatio Algorithme diviseur :
nombres. FIN n Variable : nombre1, nombre2, resultat : Reel
DEBUT
Procedure saisirDonnees() : saisirDonnees()
DEBUT traiterDonnees()
Lire(nombre1) afficherResultats()
Lire(nombre2) FIN
FIN
Procedure traiterDonnees() :
DEBUT
Procedure afficherResultats() :
Si nombre2 ≠ 0 Alors
DEBUT
resultat ←
Ecrire(resultat)
nombre1/nombre2
FIN
FinSi
FIN
155
Brainstorm Consulting
Les paramètres : Introduction
• Notre exemple précédent comporte un gros défaut :
Nous utilisons les variables déclarées dans l’algorithme au sein de nos procédures. Si
nous devons changer le nom d’une variable, nous devons le changer dans toutes nos
procédures. Nous nous retrouvons donc avec le même problème que nous désirions
éviter grâce au sous-programme.
• Les variables déclarées dans l’algorithme principal sont appelées des variables
globales.
156
Brainstorm Consulting
Portée lexicale
• Comme expliqué précédemment, les variables déclarées dans l’algorithme principal
sont des variables globales. Mais qu’en est-il des paramètres et des variables déclarés
dans nos procédures/fonctions ?
• Ces variables sont appelées variables locales, car elles existent en mémoire
uniquement lorsque nous nous trouvons à l’intérieur de la procédure/fonction.
157
Brainstorm Consulting
Les paramètres
• Les paramètres nous permettent de transmettre des informations de notre algorithme principal à nos
sous-programmes et inversement.
• Ils se présentent sous la forme de variables.
• Considérons un sous-programme qui affiche le contenu d’un tableau. Ce dernier reçoit un tableau et affiche les
valeurs du tableau à l’aide de l’opération Ecrire. Il effectue une action, il s’agit donc d’une procédure. Pour
fonctionner, cette procédure a besoin de deux éléments :
– Le tableau
Procedure afficherTableau()
– La taille du tableau
• Ces deux éléments représentent les paramètres de la procédure.
Tableau
Taille du tableau
158
Brainstorm Consulting
Les deux types de paramètres
• Nous distinguons deux paramètres différents :
• Les procédures sont caractérisées par le concept d’action, elles n’utilisent pas les paramètres
de résultats contrairement aux fonctions.
• Il est important de préciser qu’une fonction ou une procédure n’a pas obligatoirement des
paramètres de données.
159
Brainstorm Consulting
Les procédures : Concrètement
• Une procédure se déclare de cette façon en pseudo-code :
Procedure nomProcedure(parametre1 : type,...) :
DEBUT
instructions
FIN
Procedure direBonjour() :
DEBUT
Ecrire("Bonjour jeune Padawan")
FIN
160
Brainstorm Consulting
Java : Procédures
public static void nomProcedure(type parametre, ...)
{
// instructions
}
161
Brainstorm Consulting
Les fonctions : Concrètement
• Une fonction se déclare à peu de chose près de la même façon qu’une procédure :
Nouvelle action Fonction nomFonction(parametre1 : type,...) : type_retour
permettant de revenir à DEBUT Spécifie le type du
l’algorithme principal en instructions paramètre de
donnant une valeur renvoie(valeur)
résultat
correspondant au type de FIN
paramètre de résultat.
162
Brainstorm Consulting
Java : Fonctions = return
163
Brainstorm Consulting
Passage de paramètres à un sous-programme
• Comme nous l’avons vu dans la déclaration des procédures/fonctions, nous donnons des paramètres
dans la parenthèse qui suit le nom de la procédure/fonction. Mais qu’est-ce qui se cache derrière ça ?
Lorsque nous donnons la variable chiffre à la fonction, la valeur de cette dernière est copiée dans
la variable locale nb de la fonction multiplierPar2(). Ce processus se nomme le passage par
valeur.
Voici une petite illustration : Copie de la
chiffre valeur
nb
5 5
Renvoi de la
valeur calculée
Espace mémoire Espace mémoire
Algorithme fonction multiplierPar
principal 2
164
Brainstorm Consulting
Les paramètres par référence
• Nous connaissons maintenant le fonctionnement du passage de paramètres. Mais comment
faire si nous désirons modifier une variable globale à l’intérieur d’une procédure/fonction ?
• Nous savons que la valeur d’une variable est copiée dans la variable locale d’une
procédure/fonction. Nous utilisons donc la référence de la variable ! La référence peut être
comparée à l’adresse en mémoire de la variable globale.
165
Brainstorm Consulting
Les paramètres par référence : Pseudo-code
• Dans la déclaration d’une procédure/fonction, il suffit d’ajouter le mot-clé ref devant
les paramètres devant être passés par référence.
166
Brainstorm Consulting
Java : Passage par référence
Le passage par référence n'est possible qu'avec les tableaux
Tout tableau passé en paramètre dans un sous-programme sera mis à jour
167
Brainstorm Consulting
Exercices
● exo33-Réalisez une fonction calculant le carré d’un nombre entier donné en
paramètre.
● exo35-Réalisez une procédure dont l’objectif est de fusionner deux tableaux d’entiers.
168
Brainstorm Consulting
Exercices récapitulatifs
● exo36-Algorithme du peleur de patate.
Le peleur de patate possède un seau dans lequel se trouvent les pommes de terre non
pelées. Il prend une pomme de terre dans ce sceau, la pelle et la place ensuite dans
une grosse marmite jusqu’à ce qu’elle soit pleine. Si le seau est vide, il est capable de le
remplir.
La marmite peut contenir un maximum de 50 pommes de terre tandis que le sceau
peut en contenir maximum 17.
169
Brainstorm Consulting
SUPPLÉMENTS
170
Brainstorm Consulting
Les tableaux à n dimensions
• Jusqu’à présent, nous avons utilisé des tableaux à une dimension. Mais il est possible d’avoir autant de
dimension qu’on le souhaite.
171
Brainstorm Consulting
Merci pour votre attention.