Vous êtes sur la page 1sur 25

1- Qu’est-ce que la programmation?

La programmation est une collaboration entre humains et ordinateurs.

LA PROGRAMMATION EST PARTOUT


La programmation est littéralement tout autour de nous. De la commande à emporter que
nous commandons aux films que nous diffusons, le code est toujours présent dans nos vies.
Les entreprises de technologie ne sont plus reconnues comme de simples éditeurs de
logiciels. Au lieu de cela, elles apportent de la nourriture à notre porte, nous aident à trouver
un taxi ou agissent en tant qu entraîneur personnel.
Lorsque vous marchez dans la rue, où pouvez-vous trouver la technologie dans votre
environnement?

… ET LA PROGRAMMATION EST POUR TOUS


Pendant de nombreuses années, seules quelques personnes savaient coder. Cependant, cela
commence à changer. Le nombre de personnes qui apprennent à coder augmente d’année en
année, avec environ ​22,3 millions de développeurs de logiciels dans le monde , ce qui ne
compte même pas pour les nombreuses carrières AUTRES liées à la programmation.
Ici à ​Homedeve​, notre mission est de donner aux gens les compétences dont ils ont besoin
pour améliorer leur carrière. Nous avons toujours su que la technologie jouait un rôle crucial
dans notre économie – mais la programmation n’est plus uniquement réservée aux
développeurs Web et aux data scientists. Toute personne, quelle que soit sa carrière, peut tirer
profit de l’apprentissage de la programmation– que ce soit pour apprendre le HTML pour
améliorer vos courriels marketing ou pour suivre un cours de SQL pour ajouter une dose
d’analyse à votre rôle de recruteur. Même en dehors du secteur des technologies, apprendre à
programmer est essentiel pour participer au monde qui vous entoure: cela affecte les produits
que vous achetez, les politiques juridiques pour lesquelles vous votez et les données que vous
partagez en ligne.
Alors, voyons ce que la programmation est.

QU’EST-CE QUE LA PROGRAMMATION?


Beaucoup de gens viennent à Homedeve parce qu’ils ont décidé d’apprendre la
programmation, mais ils ne savent pas ce qu’est la programmation ni pourquoi la
programmation est importante.
La programmation consiste à donner à l’ordinateur un ensemble d’instructions à exécuter.
Si vous avez déjà cuisiné avec une recette, vous pouvez vous considérer comme l’ordinateur
et l’auteur de la recette comme un programmeur. L'auteur de la recette vous fournit un
ensemble d'instructions que vous lisez et suivez ensuite.
Dans le domaine de l'informatique, la ​programmation​, appelée aussi ​codage​, est l'ensemble
des activités qui permettent l'écriture des programmes informatiques. C'est une étape
importante du développement de logiciels.
Donc, vous me dites essentiellement que je commande juste un ordinateur? Je pensais que les
ordinateurs étaient supposés être intelligents?
Eh bien, vous avez raison! Les ordinateurs sont très efficaces pour certaines choses, mais
jusqu’à ce que la singularité soit réelle, ils ne peuvent pas penser par eux-mêmes. Alors, ils
comptent sur nous, humains, pour leur dire quoi faire.

PROGRAMMATION COMME COMMUNICATION OU CODAGE


“Ok, alors maintenant je sais ce qu’est la programmation, mais qu’est-ce que le codage? Je
suis ici pour apprendre à coder. Sont-ils la même chose?
Bien que parfois utilisés de manière interchangeable, la programmation et le codage ont en
réalité des définitions différentes. ​La programmation est le processus mental qui consiste à
trouver de manière créative un moyen de donner des instructions à n’importe quelle machine,
pas nécessairement à un ordinateur. ​Le codage consiste à transformer ces idées en un langage
écrit qu’un ordinateur peut comprendre.
Au cours du siècle dernier, les humains ont essayé de trouver le meilleur moyen de
communiquer avec des ordinateurs au moyen de différents langages de programmation. La
programmation a évolué, passant de cartes perforées avec des rangées de chiffres à des
interfaces de glisser-déposer, etc. ​Le code est la forme la plus familière d’un langage de
programmation.
À ce jour, les gens développent encore des langages de programmation, essayant d’améliorer
notre efficacité de programmation. D'autres construisent de nouvelles langages qui améliorent
l’accessibilité à l’apprentissage du code, par exemple en développant un langage de
programmation Camerounais ou en améliorant l’accès pour les aveugles et les malvoyants .

PROGRAMMER EN COLLABORATION
«Le problème avec la programmation n’est pas que l’ordinateur n’est pas logique:
l’ordinateur est terriblement logique, implacable au sens littéral. Les ordinateurs sont censés
être comme des cerveaux, mais ce sont en fait des idiots, car ils prennent tout ce que vous
dites comme une obligation. «
Lorsque nous donnons des instructions à un ordinateur via un code, nous communiquons à
notre manière avec l’ordinateur. Mais comme les ordinateurs sont construits différemment et
comprennent un langage différent du nôtres, nous devons traduire nos instructions de manière
à ce que les ordinateurs les comprennent.
Les ordinateurs interprètent les instructions de manière très littérale, nous devons donc être
très précis dans leur programmation. Pensez à apprendre à quelqu’un à marcher. Si vous
commencez par leur dire: «Mettez votre pied devant vous», savent-ils ce qu’est un pied? Ou
ce que cela signifie? En codant, cela peut vouloir dire s’assurer que les petites choses comme
la ponctuation et l’orthographe sont correctes. Beaucoup de larmes ont été versées sur un
point-virgule manquant ( ;). eh oui je dis beaucoup de larmes.
Mais plutôt que de considérer cela comme une relation patron-employé, il est plus utile de
penser à notre relation avec les ordinateurs en tant que collaboration.
L’ordinateur n’est qu’un outil (particulièrement puissant) parmi une longue liste d’outils
utilisés par les hommes pour étendre et augmenter leurs capacités.
Comme mentionné précédemment, les ordinateurs sont très bons pour certaines choses et pas
si bien pour d’autres. Mais voici la bonne nouvelle: les choses auxquelles les ordinateurs sont
bons, les humains sont nuls, et les choses pour lesquelles les ordinateurs sont nuls, les
humains sont bons!
Imaginez ce que nous pouvons accomplir en travaillant ensemble! Nous pouvons faire des
films avec des effets spéciaux incroyables, avoir une production en usine continue 24 heures
sur 24, 7 jours sur 7, et améliorer nos villes et notre santé.
Les meilleurs programmes informatiques sont ceux qui nous permettent de créer des choses
que nous ne pourrions pas faire nous-mêmes, tout en tirant parti de nos capacités créatives.
Nous pouvons être bons en dessin, mais un ordinateur est excellent pour faire la même tâche
à plusieurs reprises – et rapidement!

CONCLUSION
Alors que la programmation occupe une place plus importante dans nos vies, il est essentiel
que tout le monde comprenne ce qu’est la programmation et comment l’utiliser. La
programmation est importante pour nos carrières, mais elle joue également un rôle clé dans
notre façon de participer à la politique, d’acheter des choses et de rester en contact les uns
avec les autres.
Apprendre à coder est un voyage passionnant. Que votre objectif soit de créer une application
mobile, de rechercher une base de données ou de programmer un robot, le codage est une
compétence qui vous mènera loin dans la vie. N’oubliez pas que les ordinateurs sont vos
collaborateurs. Bien qu’apprendre à programmer puisse être initialement frustrant, si vous
choisissez de vous y tenir, vous pourrez ensemble réaliser de brillantes choses.

Les variables

Introduction aux variables

En programmation, nous avons un moyen de stocker des valeurs afin de pouvoir les réutiliser
dans notre programme ou de les modifier, si nécessaire. Ce concept s’appelle ​les​ ​variables​ .
Peut-être connaissez-vous la ​variable terme mathématique , ou le mot ​variabilité . Les
variables de programmation partagent des qualités avec chacune. Semblable à une variable en
mathématiques, une variable est un moyen de sauvegarder une information avec un nom
spécifique. En donnant un nom à une valeur, nous pouvons facilement réutiliser cette valeur
dans notre code. Comme la notion de variabilité, une variable de programmation nous permet
de modifier facilement une valeur dans notre code.
L’utilisation des variables est une première étape importante du codage car avec les variables,
nous pouvons commencer à utiliser un outil de programmation important: la répétition. Plutôt
que d’écrire une donnée à chaque fois que nous en avons besoin, nous l’écrivons une fois et
l’ordinateur s’en souvient et peut répéter cette information.
Dans cette leçon, nous verrons pourquoi les variables constituent une partie importante de ​la
programmation​, notamment:

● Utiliser des variables pour réutiliser une valeur


● Utiliser des variables pour changer une valeur

Réutilisation des valeurs dans les variables

Une des raisons pour lesquelles nous utilisons des variables est qu’elles nous permettent de
réutiliser​ facilement des valeurs dans différentes parties de notre code.
Lorsque nous réutilisons une valeur, celle-ci apparaîtra à plusieurs endroits dans notre code.
Ressaisir cette valeur devient fastidieux, ce qui conduit à des erreurs, et sans nom de variable,
il devient difficile de savoir ce que représente la valeur. Il peut également avoir un confusion
sur ce que cette valeur est censée représenter.
Jetons un coup d’œil au morceau de code suivant. Nous avons ici un nombre que nous
réutilisons pour faire des calculs:
2019
2019 * 2
2019 / 4
Plutôt que d’écrire le même nombre encore et encore, nous pouvons l’enregistrer dans une
variable nommée nombre:
nombre = 2019
nombre * 2
nombre / 4
Vous pensez peut-être: «Mais si mon nom de variable est plus long que la valeur qu’il
stocke? Quel est le point d’une variable? ”
Lorsque nous utilisons une valeur sans l’affecter à une variable, on parle de ​codage en ​dur .
Bien qu’il soit parfois plus rapide de coder les valeurs initiales dans votre programme, vous
rencontrerez des problèmes à long terme, notamment si vous devez modifier ces valeurs.
Changer la valeur d’une variable

Le point fort de l’utilisation d’une variable est que nous pouvons facilement modifier leur
valeur, ce qui rend nos programmes flexibles.
Comme nous l’avons vu plus haut, nous pouvons enregistrer un nombre dans une variable et
le réutiliser dans un programme:
nombre = 2019
nombre * 2
nombre / 4
Nous pourrions facilement changer la valeur de ​nombre sans avoir à changer ce nombre à
plusieurs endroits dans notre code.
nombre = 062019
nombre * 2
nombre / 4
Nous pourrions aussi changer la valeur de la variable ​nombre ​dans plusieurs partie de notre
programme:
nombre = 2019
nombre * 22
nombre = 302018
nombre / 3

Application

Maintenant que vous en savez un peu sur les variables, codons-en nous-mêmes!
NB​: Nous créons ou ​déclarons une variable en lui donnant un nom et en lui donnant une
valeur.
EX: ​terrain = ‘lac’
Ici nous créons la variable nommée ​terrain ​et l’affectons comme valeur la chaîne de
caractères ​‘lac’

// déclaration de la variable ​nom​ et attributions de la valeur ​“Homedeve”


nom = “Homedeve”
// déclaration de la variable ​anneeCreation​ et attributions de la valeur ​2017
anneeCreation = 2017
// déclaration de la variable moyenne et attributions de la ​15.39
moyenne = 15.39

Révision – Les Variables

Félicitations! Maintenant, vous avez appris les variables et leur utilité en programmation.
Dans cette leçon, nous avons appris que:

● Les variables​ nous permettent de stocker des informations


● Les variables nous permettent de ​réutiliser rapidement une valeur de notre
programme.
● Les variables nous permettent de ​changer facilement une valeur dans notre
programme.

Dans la prochaine leçon, nous examinerons différents types d’informations pouvant être
utilisées dans un programme et sauvegardées dans des variables.
LES TYPES DE DONNÉES

Introduction aux types de données


Les données sont une unité de base en programmation. Sans données, nous ne pourrions
écrire aucun programme! Mais c'est quoi ​les données? Nous pouvons être familiarisés avec
les données en tant qu'informations ou faits. En informatique, les données sont les
informations que nous utilisons pour construire des programmes, comme les nombres dans un
calcul, ou le texte afficher sur un écran.
Les types de données correspondent exactement à leur sonorité: différents types de données.
Les types de données nous renseignent sur les données, notamment sur la manière dont elles
peuvent être stockées et sur les types d'opérations que nous pouvons effectuer. Par exemple,
nous pouvons écrire un programme qui élève des nombres au carrés, mais il ne serait pas
capable de mettre un mot au carré.
En programmation, il existe un groupe spécial de types de données appelés ​primitives . ​Les
primitives sont les types de données les plus élémentaires. Vous pouvez donc les trouver
dans presque tous les langages de programmation. Ils comprennent:

● Nombres (Numbers)
● Les Chaines (Strings)
● Les caractères (Char)
● Valeurs Booléennes(Boolean) (Vrai ou Faux) (True or False)

Dans les paragraphes suivants, nous approfondirons un peu plus chaque type de données
primitif et ce que vous pouvez (et ne pouvez pas faire) avec chacun d’eux.

Les Nombres
Les nombres sont un type de données d'origine. Les premiers ordinateurs communiquaient
uniquement avec ls nombres, à l'aide des ​calculs binaires​ .
Nous ne faisons plus que programmer en utilisant des nombres, mais les nombres ont
toujours des propriétés spéciales et sont utilisés pour effectuer les opérations suivantes:

● Décrire - les nombres sont utilisés pour exprimer une valeur: quelle est la fréquence
d’une onde sonore? Nous pouvons exprimer cela en nombre, par exemple 800 Hz.
● Calculer - les nombres sont utilisés dans les calculs: quelle est la distance entre la
terre et mars?
● Compter - les chiffres servent à garder une trace: combien de fois la voiture a-t-elle
contourné la piste?

Bien que nous puissions faire beaucoup de choses avec les nombres, il y a quelques choses
que nous ne pouvons pas faire avec eux. Par exemple, supposons que nous avons le nombre ​5
et le texte suivant: ​«J'ai 5 livres.» Alors que les deux traitent de l’idée de 5 comme valeur, un
ordinateur peut effectuer des opérations mathématiques sur la première donnée, mais pas sur
la seconde.
Les nombres nous permettent d’écrire des programmes qui stockent des valeurs, les comptent
et effectuent des calculs.

Les Chaines
Mais que faire si nous voulons travailler avec des données qui ne sont pas un nombre? Nous
pouvons représenter d'autres formes de données sous forme de ​chaîne​ .
Les chaînes sont une séquence de caractères (lettres, espaces, chiffres ou symboles). Elles
sont généralement utilisés pour représenter du texte ou des paroles. Semblable à la manière
dont nous représentons le discours en écriture, nous entourons les chaînes de caractères avec
les simples ( '...') ou doubles ( "...") guillemets.
Mais pourquoi le nom des ​chaînes ? Les chaînes sont une séquence de symboles, nous
pouvons donc imaginer que chaque caractère est lié, comme une perle dans un collier.
Alors, que pouvons-nous utiliser les chaînes?

● Pour afficher des données qui utilisent du texte ou des symboles, comme l’affichage
de notre nom à l’écran.
● Pour ajouter ou supprimer du texte. Étant donné que les chaînes sont une séquence
linéaire de caractères, nous pouvons les décomposer en chaînes encore plus petites ou
les combiner pour en faire des plus longues.
● Pour modifier les caractères. Par exemple, nous pourrions mettre la première lettre de
chaque mot d'une chaîne en majuscules si nous voulons le transformer en titre.
● Laisser l'ordinateur communiquer avec nous de manière «lisible par l'homme»,
comme pour afficher les règles d'un jeu en ligne.

Les chaînes peuvent parfois ressembler à d'autres types de données. Mais il est important de
se rappeler que même si un nombre ressemble à un nombre ou qu'un booléen à un booléen, il
est bon de vérifier que ce n'est pas une chaîne - sinon vous ne pourrez pas l'utiliser
correctement!
Prenez la chaîne suivante: '20'. La chaîne '20'est différente de la valeur numérique de 20. Bien
qu’ils semblent identiques, un ordinateur verrait le premier sous la forme de deux caractères:
'2'et '0', tandis que le second contient la valeur numérique de 20.
Bien que nous puissions considérer les chaînes comme des morceaux de texte, il est
également utile de rappeler qu’elles ne sont qu’une collection de caractères individuels.

Booléen (Boolean)
Ce type de données suivant revêt une importance particulière pour l'informatique. ​Les valeurs
booléennes​ représentent les idées logiques de vrai et de faux.
Les booléens, contrairement aux nombres ou aux chaînes, n'ont que deux valeurs: trueet false.
Le terme booléen (boolean) vient de l'inventeur d'une forme de logique spécifique, ​George
Boole . La logique est importante pour l’informatique car il s’agit d’une première tentative
pour traduire la capacité humaine de la raison en ordinateurs.
Alors, pourquoi utilisons-nous des booléens?

● Pour déterminer la validité. Par exemple, nous voulons savoir si une maladie est
virale. Si cela a été vu plus de 50 millions de fois en moins d'une semaine, nous
dirions que c'est vrai que c'est devenu virale.
● Prendre des décisions. Par exemple, si je reçois un courrier électronique, le
programme vérifie qu'il est nouveau et il s'affiche en haut de ma boîte de réception.

Parce que les booléens agissent comme des opposés binaires, nous pouvons les penser de
multiples façons, par exemple, de temps en temps, oui et non, parfois même 1 et 0.
Bien que nous utilisions les mots true et false pour représenter les valeurs booléennes, il est
important de se rappeler qu’ils sont différents des chaînes 'true' et 'false'.
Les programmeurs ont d’abord été en mesure d’illustrer l’idée de la logique binaire en
allumant et en éteignant des circuits électriques, où ​ON ​égal true et ​OFF égal false. En fait, la
relation entre l'électricité et la logique est la base de la numérisation!

Mise en communs
Jusqu'à présent, vous avez appris trois types de données différents:

● Les Nombres
● les chaînes
● les booléens

Exemple
nombre = 150; //un nombre
chaine = 'hello'; //une chaine de caractère
bool = true; //un booléen

Révision
Félicitations! Vous connaissez maintenant les éléments de base de la plupart des langages de
programmation et vous devriez commencer à vous faire une idée des types de programmes
simples que vous pourriez écrire.
Dans cette leçon, nous avons appris:

● La catégorisation des informations à l'aide ​des types de données permet à un


ordinateur de distinguer différents types d'entrées.
● Les primitives sont les types de données les plus simples et sont partagées entre de
nombreux langages de programmation. Ils comprennent:
○ Les Nombres - valeurs qui nous permettent d'effectuer des calculs et de
compter.
○ Les Chaînes - une séquence de caractères ou de symboles souvent utilisée pour
représenter du texte.
○ Les Booléens​ - valeurs logiques qui représentent l'idée de vrai ou de faux.

PARTIE 2: LES BASES DE LA PROGRAMMATION II

Les fonctions 

Cette  leçon  nécessite  que  vous  connaissiez  les  bases de la préparation des 


hamburgers : 

● Déposer le pain 
● Ajouter la Steak haché 
● Ajouter les cornichons 
● Placez le pain sur le dessus 

Et  si  vous  deviez  dire  chaque  étape  à  chaque  fois  que  vous  commandiez 
un  hamburger?  C’est  fastidieux.  Cela  prend  beaucoup  de  temps. 
(Comment  trouvez-vous  cela  dans  un  menu?)  Et  cela  risque  de  faire  des 
erreurs. 
Dans  cette  leçon,  vous  apprendrez  une  solution  à  ce  problème:  les 
fonctions​.  Vous  apprendrez  comment  et  pourquoi  ils  sont  utilisés  en 
programmation  et  serez  en  mesure  de  communiquer  leurs  avantages  à 
d’autres programmeurs! 
Les  fonctions  sont  utilisées  tout  au  long  de  la  programmation.  En  fait, 
certains  paradigme  de  programmation  ​reposent  entièrement  sur  les 
fonctions​ . 
Les fonctions pour la réutilisation 

Au  lieu  de  donner  ces  instructions pour chaque hamburger, nous pouvons 


les regrouper et les nommer comme une seule ​fonction: 
function preparerHamburger () { 
Ajoutez du pain 
Ajoutez un burger patty 
Ajoutez des cornichons 
Ajoutez du pain 

Une  fonction  est  une  séquence  d’instructions  qui  effectue  une  tâche 
spécifique, empaquetée comme une unité. 
Nous  avons  ​défini  la  fonction  en  lui  donnant  des  instructions  et  un  nom, 
mais  comment  l’utilisons-nous?  Nous  utilisons  une  fonction  en l’ ​appelant 
.  Lorsque  nous  appelons,  preparerHamburger()nous  nous  attendons  à  ce 
que toutes ses étapes soient exécutées. 
  
Les fonctions pour la flexibilité 

Tout le monde ne veut pas manger de hamburger. 


Nous  pourrions  écrire  une  nouvelle fonction pour chaque nouveau type de 
sandwich,  mais  cela  demande  beaucoup  de  travail  et  risque  de provoquer 
des erreurs. 
Au  lieu  de  cela,  nous  généraliserons  la  fonction  hamburger  à une fonction 
sandwich.  Cette  nouvelle  fonction  sandwich  fera  toujours  une 
combinaison  ​pain-garniture-garniture-pain​,  mais  les  garnitures  peuvent 
changer en fonction des entrées de la fonction: 
function preparerSandwich (garniture1, garniture2) { 
Ajouter du pain 
Ajouter garniture1 
Ajouter garniture2 
Ajouter du pain 

Nous  avons  modifié  la  fonction  ​preparerSandwich(  )  ​et  lui  avons  attribué 
deux  entrées,  ou  ​paramètres  .  Chaque  fois  que  nous  appelons la fonction, 
nous  donnerons  les  valeurs  réelles  pour  chaque  entrée,  appelées 
arguments​ . 
Par  exemple,  nous  faisons  un  sandwich  au  jambon  et  au  fromage  avec 
preparerSandwich("jambon",  "fromage").  Nous  appelons  la fonction avec 
les  arguments  «jambon»  et  «fromage».  Ce  seront  les  valeurs  pour  les 
paramètres garniture et garniture2. 
Au  lieu  d’écrire  une  fonction  différente  pour  chaque  type  de  sandwich, 
nous avons une fonction qui peut les préparer tous! 
Les fonctions pour l’organisation 

Un sandwich ne serait pas complet sans frites et dessert! 


Voici les instructions pour faire le repas complet: 

● Ajouter  du  pain,  Ajouter  un  hamburger,  Ajouter  des  pommes  de 
terre  frites,  Ajouter  des  cornichons,  Ajouter  du  pain,  Ajouter  du  sel, 
Ajouter  une  boule  à  chocolat,  Ajouter  du ketchup, Ajouter une boule 
à la vanille, Ajouter une boule à la fraise 

Oof.  Toutes  les  instructions  sont  là,  mais  elles  sont  confuses  et  difficiles  à 
modifier.  Si  vous  décidez  de  demander  une  salade  de  fruits  au  lieu  de 
frites,  vous  devrez  trouver  toutes  les  instructions  relatives  aux  frites  et 
remplacer chaque ligne. 
Pour faciliter la lecture, nous séparons et organisons nos instructions: 

● Ajouter du pain, 
● Ajouter un hamburger, 
● Ajouter des cornichons, 
● Ajouter du pain 
● Ajouter des pommes de terre frites, 
● Ajouter du sel, 
● Ajouter du ketchup (sauce) 
● Ajouter une cuillère à chocolat, 
● Ajouter une cuillère à la vanille, 
● Ajouter une cuillère à la fraise 

Mieux… groupons maintenant ces instructions en trois fonctions: 

● preparerSandwich () 
● fairedesFrites() 
● fairecremmeGlace() 

Nous  pouvons  facilement  substituer  une  ligne  fairedesFrites(),  pour  une 


fonction  différente,  comme  fairesaladeFruit().  Et  s’il  y  a  une  erreur,  nous 
savons où chercher la recette pour chaque partie du repas. 
Les  nouvelles  instructions  commencent à ressembler à un programme! En 
utilisant  des  fonctions,  nous  avons  rendu  la  lecture  plus  facile,  réutilisable 
et  ​modulaire:  chaque  ensemble  d’instructions  connexes  (sandwich,  frites, 
dessert)  est  regroupé  dans  une  fonction  propre,  que  nous  pouvons 
facilement  ajouter,  supprimer  et  échanger  pour  créer  une  diversité  de 
repas. 

Application 

Il  est  temps  de  coder!  Ce  n’est  pas  grave  si  vous  ne  reconnaissez  pas  tous 
les  symboles  de  ce  code:  nous  vous  expliquerons  les  parties  que  vous 
devez connaître. 
// Defininition de la fonction preparerSandwich() 
function preparerSandwich(garniture1, garniture2) { 
sandwich = ‘pain’ + ‘,’ 
sandwich += garniture1 + ‘,’ 
sandwich += garniture2 + ‘,’ 
sandwich += ‘pain’ 
return sandwich 

//  Applel  de  la  fonction  et  sauvegarde  de  la  valeur  retourné  dans  la 
variable resultat 
resultat = preparerSandwich(‘Steak haché’, ‘cornichons’) 
La  fonction  preparerSandwich()  définie  plus  haut  a  deux  paramètres, 
garniture1  ​et  garniture2​.  En  lisant  les  instructions  à  l’intérieur  de  la 
fonction,  nous  pouvons  voir  qu’elle  construit  une  chaîne  de  mots 
représentant  les  ingrédients  du  sandwich.  Par  exemple,  le  premier 
ingrédient est ​'pain'​. 
Sous  la  définition  de  la  fonction,  la  fonction  est  appelée.  Lorsqu’elle  est 
appelée,  la  fonction  génère  une  chaîne  représentant  un  sandwich 
personnalisé.  Nous  disons  que  la  fonction  ​retourne  une  chaîne.  La  valeur 
de cette chaîne est stockée dans la variable ​resultat​. 
resultat = preparerSandwich(‘Steak haché’, ‘cornichons’) 
resultat  peut  être  interprété  comme  ​un  sandwich 
pain-steakhaché-cornichons-pain 
 
Résumons 

Bien  joué!  Les  fonctions  sont  un  concept  fondamental  de  la 
programmation,  et  l’apprentissage  des  bases  vous  sera  utile  quel  que  soit 
le chemin emprunté, sans distinction de langue ou de domaine.  

● Une  ​fonction  est  une  séquence d’instructions qui effectue une tâche 


spécifique, empaquetée comme une unité. 
● Lorsque  nous  ​définissons  une  fonction,  nous  spécifions  les 
instructions, les entrées et le nom de la fonction. 
● Lorsque  nous  ​appelons  une  fonction,  toutes  ses  instructions  sont 
exécutées. 
● Les  fonctions  peuvent  être  exécutées  plusieurs  fois,  rendant  ses 
instructions r​ éutilisables​ . 
● Les  fonctions  peuvent  avoir  des  ​paramètres  acceptant  les  valeurs 
d’entrée, ce qui rend les instructions ​flexibles​ . 
● Les  fonctions  organisent  un  programme  en  unités  distinctes,  ce  qui 
facilite  leur  échange  et  leur  édition.  Cela  rend  votre  programme 
entier organisé et m ​ odulaire​ . 

Assurez-vous  que  vous  êtes  à  l’aise  avec  les  concepts  ci-dessus  avant  de 
continuer! 
 
Les structures de contrôle 
Comment  les  ordinateurs  prennent-ils  des  décisions?  Voici  quelques 
exemples: 

● Surfer  sur  le  Web:  ouvrez  le  navigateur,  chargez  le  texte,  chargez  les 
images. 
● Médias  sociaux:  si  le  profil  de  l’utilisateur  est  privé,  masquez  ses 
publications. Sinon, rendez-les visibles. 
● Musique électronique: Répétez une note quatre fois par mesure. 
● Shopping:  collecter  les  informations  d’expédition  et  de  contact. 
Refuser un achat si l’un ou l’autre est incorrect. 

Chacun  de  ces  ​programmes  est  un  ensemble  d’instructions,  exécutées 


dans  un  certain  ordre.  Cet  ordre,  appelé  ​structure  de  contrôle  ,  est  tout 
aussi important que les instructions elles-mêmes. 
Les  programmeurs  utilisent  ​des  structures  de  contrôle  pour  modifier  ​le 
flux  de  contrôle  .  Les  structures  de  contrôle  incluent  des  conditions  – 
«faites  ces  instructions  si  Z  est  vrai»,  des boucles – «faites ces instructions X 
plusieurs  fois»  et  des  exceptions – «faites le jeu d’instructions A, mais si une 
erreur survient, passez au jeu d’instructions B». Les programmeurs utilisent 
ces  structures  dans  leur  code  pour  indiquer  à  un  ordinateur  quelles 
instructions (ou dans quel ordre) exécuter. 
Dans  cette  leçon,  vous  allez  apprendre  les  concepts  fondamentaux  des 
structures de contrôle et de trois structures de contrôle essentielles. À la fin 
de la leçon, vous devriez être capable de: 

● Définir une structure de contrôle 


● Expliquer  la  différence  entre  les  structures  de  contrôle 
conditionnelles, de boucle et d’exception 
● Donnez des exemples pour chacun 

Le programme suivant comporte cinq étapes, qui chargent un site Web de 
base. Les étapes sont exécutés du haut vers le bas. 
 
Les conditions 

Si  le  profil  de  l’utilisateur  est  privé,  masquez  ses  publications.  Sinon, 
rendez-les visibles. 
Les ordinateurs peuvent exécuter eux-mêmes des instructions, ce qui nous 
permet  de  travailler  sur  des  problèmes  plus  intéressants  et  plus  créatifs. 
Mais  les  ordinateurs  ne  peuvent  pas  prendre  des  décisions  par 
eux-mêmes.  Les  programmeurs  peuvent  leur  donner  plusieurs ensembles 
d’instructions  et  décrire  les  bonnes  conditions  d’utilisation  de  chaque 
ensemble.  Ils  peuvent  décrire  une structure semblable au programme cité 
ci-dessus:  «si  X,  alors,  instructions  1.  Sinon,  instructions  2.».  Cette  structure 
est  appelée  structure  de  contrôle  ​conditionnel  ,  car  les  instructions  de 
l’ordinateur dépendent d’une ou de plusieurs c ​ onditions​ . 
Dans  notre exemple de réseau social, toutes les instructions sont montrées 
dans  le  diagramme,  mais  seules  certaines  d’entre  elles  seront  exécutées  à 
chaque fois. Ici, ils sont sous forme de texte: 

1. Vérifier la confidentialité du profil 


2. Cacher le post 
3. Afficher le post 

Quand  est-ce  que  l’étape  ​2  est  exécutée  et  quand  est-ce  que  ​3  est 
exécuté?  La  réponse  est:  ça  dépend.  Le  flux  de  contrôle  est  ​1-2  si  le  profil 
est  privé  et  ​1-3  si  le  profil  est  public.  La  condition  est  le  paramètre  de 
confidentialité du profil. 

 
Les  structures  de  contrôle  conditionnelles,  ou  simplement  les  conditions, 
permettent  aux  programmes  de  faire  différentes  choses  dans  différents 
scénarios.  Comme  vous  pouvez  le  constater,  ils  suivent  une  logique 
semblable  à  celle  des  humains,  ce  qui  facilite  l’écriture  de  code  clair  tout 
en gérant des processus complexes. 

Les boucles 
Répétez un son quatre fois par mesure. 
Les  ordinateurs  sont  efficaces  pour  les  tâches  répétitives:  ils  suivent 
exactement  les  instructions  et  les  exécutent  rapidement.  Mais  si  le 
programmeur  doit  écrire  les  mêmes  instructions  pour  chaque  répétition, 
elles perdent du temps et augmentent les risques d’erreur. 
Dans  notre  exemple,  au  lieu  d’écrire  littéralement  «jouer  un  son,  jouer  un 
son,  jouer  un  son,  jouer  un  son»,  les  programmeurs  peuvent  utiliser  une 
structure  en  ​boucle  .  Une  boucle  est une séquence d’instructions spécifiée 
une  fois  mais pouvant être exécutée plusieurs fois de suite. Dans ce cas, il y 
a une instruction (jouer un son) et elle doit être effectuée 4 fois. 

 
Les  structures  de  boucle  peuvent  également  spécifier  que  les  instructions 
sont  répétées  jusqu’à  ce  qu’une  certaine  condition  soit  remplie.  Par 
exemple, «Répétez un son jusqu’à ce que vous soyez hué de la scène». 

Les exceptions 
Recueillir  l’adresse  d’expédition  et  l’adresse  email.  Refuser un achat si l’un 
ou l’autre est incorrect. 
Les  erreurs  ou  les  exceptions  se  produisent  tout  le  temps  dans  la 
programmation.  Vous  ne  pouvez  pas  leur  échapper.  Mais  vous  pouvez  les 
gérer avec élégance. 
Dans  la gestion des exceptions, deux ensembles d’instructions sont définis. 
Le  premier  ensemble  est  exécuté  et,  si  une  exception  se  produit,  le 
premier  ensemble  est  arrêté  et  le  deuxième  ensemble  d’instructions  est 
exécuté. 
Dans cet exemple, 

● Le  premier  ensemble  est  “récupérer  l’adresse  de  livraison”, 


“récupérer l’adresse e-mail” 
● Le deuxième ensemble est “rejeté l’achat” 

Si  des  erreurs  surviennent  lors  de  l’exécution  du  premier  ensemble 
(l’adresse  est  peut-être  mal  formatée  ou  fictive),  elle  est  arrêtée  et  le 
deuxième ensemble est exécuté. 

 
Ces  instructions  sont  utiles  si  vous  savez  qu’une  exception  peut  se 
produire  dans  un  ensemble  d’instructions  sans  savoir  laquelle,  ou  si  vous 
vous  attendez  à  ce  que  la  même  exception  se  produise  dans  plusieurs 
instructions séquentielles. 

Résumons 
Bien  joué!  Le  flux  de  contrôle  est  un  concept  fondamental  de  la 
programmation,  et  l’apprentissage  des  bases  vous  sera  utile  quel  que  soit 
le chemin emprunté, quel que soit le langage ou le domaine. En revue: 

● Le  flux  de  contrôle  est  l’ordre  dans  lequel  les  instructions  sont 
exécutées. 
● Les  structures  de  contrôle  modifient  le  flux  de  contrôle  dans  un 
programme.  Vous  avez appris trois structures, chacune adaptée à un 
scénario différent: 
○ Condition:  “si  une  condition  est  remplie,  alors  faites  X.  Sinon, 
faites Y”. 
○ Boucle:  “faire  quelque  chose  Z  nombre  de  fois”  ou  “faire 
quelque  chose  à  plusieurs  reprises jusqu’à ce qu’une condition 
soit remplie”. 
○ Exception:  «effectuez  les  étapes  A,  B,  C.  Si  une  erreur  se 
produit, arrêtez et exécutez les étapes J, K, L». 

Assurez-vous  que  vous  êtes  à  l’aise  avec  les  concepts  ci-dessus  avant  de 
continuer! 
 
PARTIE 3: LES BASES DE LA PROGRAMMATION III 
 

LES LISTES 
Introduction aux listes 
Lorsque  nous  commençons  à  écrire  des  programmes  plus  complexes, 
nous  allons  commencer  à  travailler  avec  plus  de  données.  Mais  les 
données  peuvent  être  très  rapidement  confuses  si  nous  ne  faisons  pas 
attention. 
Pour  garder  nos  données  en  ordre,  nous  voudrons  utiliser  ​des  structures 
de  données  .  Les  structures  de  données  sont  des  formats  que  nous 
pouvons utiliser pour suivre nos données de manière organisée. 
Les  listes  sont  une  structure  de  données  très  basique.  Les  programmeurs 
utilisent  les  listes  en  tant  que  conteneur  pour  stocker  plusieurs 
informations  qui  se  rapportent  les  unes  aux  autres.  Comme  une  liste  des 
présidents  du  Nigeria,  les  types  de  fromages  dans  l'ordre  alphabétique  et 
les positions finales des coureurs dans une course. 
Ce  qui  rend  les  listes  spéciales,  c’est  qu’elles  ordonnent  nos  données  dans 
une séquence linéaire spécifique. 
Puisque  nos  valeurs  sont  maintenues  en  ordre,  cela  nous  permet  de 
trouver  facilement  les  informations  que  nous  recherchons;  sinon,  nous 
aurions un énorme désordre de données! 
Dans cette leçon, nous allons voir comment: 

● Accéder à un élément d'une liste 


● Ajouter un élément à une liste 
● Supprimer un élément d'une liste 

Accéder aux éléments de la liste 


Répertorie  les  articles  de  l'  ​ordre  afin  qu'ils  soient  dans  une  séquence 
spécifique.  Par  exemple,  la  bande  dessinée,  sous  forme  de  liste,  stocke  les 
images dans un ordre spécifique. Sans commande, l'histoire n'aurait aucun 
sens! 
Cette  idée  de  séquence  est  importante  car  elle  nous  indique  que  chaque 
valeur  a  une  position  spécifique  dans  la  liste.  La position d'une valeur dans 
une  liste  s'appelle  son  ​index  .  Vous  pouvez  penser  à  un ​index comme une 
adresse  -  c'est  ce  que  nous  utilisons  pour  localiser  un  élément  dans  une 
liste. 
Les  index  de  liste  sont  des  nombres.  Habituellement,  les  listes 
commencent  leur index à 0, puis en ajoutent un pour chaque valeur. Donc, 
si  vous  voulez  sélectionner  le  premier  élément  de  la  liste,  n'oubliez  pas 
d'utiliser 0 pour le faire! 

 
Connaître  l'index  d'un  élément  nous  permet  de  sélectionner  une  valeur 
dans  une  liste  et  de  faire  quelque  chose  avec  elle,  comme  l'enregistrer 
dans  une  variable.  Cela  peut  également  être  utile  pour  modifier  une  liste, 
que ce soit en ajoutant ou en supprimant quelque chose. 
Ajout d'éléments à une liste 
Une fois la liste créée, nous pouvons y ajouter des éléments. 
Lorsque  nous  ajoutons  des  éléments  à  la  fin  d'une  liste  existante,  nous 
disons  que  nous  les  ​ajoutons  à  la  fin.  Imaginez  que  nous  essayons 
différentes fins pour notre bande dessinée. Nous pouvons essayer d'ajouter 
différents  cadres  à  notre  récit  actuel  et  voir  celui  qui  nous  convient  le 
mieux. 
maListe = [ 'pomme' , 'banane' , 'poire' ] 
maListe . append ( 'orange' ) 
// maintenant, maListe == ['pomme', 'banane', 'poire', 'orange'] 
En  plus  d'ajouter  des  éléments  à  la  fin  d'une  liste,  nous  pouvons 
également  insérer  des  éléments  dans  la  liste  existante  en  une  position 
spécifique.  Nous  le  faisons  en  utilisant  le  numéro  d'index  pour indiquer où 
nous voulons positionner notre nouvelle valeur. 
maListe = [ 'pomme' , 'banane' , 'poire' ] 
maListe  .  splice  (  1 , 0 , 'mango' ) // fait de 'mangue' le deuxième élément de 
la liste 
// maintenant, maListe = ['pomme', 'mangue', 'banane', 'poire'] 
Dans  cette  ligne  de  code,  nous  avons  inséré  la  chaîne  'mangue'à  la 
position  ​index  1​.  Mais  il  est  important  de  faire  attention  -  ajouter  quelque 
chose  au  milieu  d'une  liste  préexistante  ou  au  début  d'une  liste  modifiera 
les  index  pour  tous  les  éléments  suivants.  Notez  que  «banane»  était  en 
deuxième position et se trouve maintenant en troisième. 
En  JavaScript,  nous  pouvons  éditer  des  listes  avec  des  commandes  telles 
que  ​.splice  et  ​.pop​. Vous n'avez pas besoin de mémoriser ces commandes 
-  l'important  est  que  vous  compreniez  la  façon  dont  les listes peuvent être 
modifiées! 

Supprimer des éléments d'une liste 


Nous  sommes  également  en  mesure  de  supprimer  les  éléments  d'une 
liste. 
Comme  pour  l’ajout  d’éléments,  nous  pouvons  modifier  les  listes  en 
supprimant  le  dernier  élément ou utiliser l’indexation pour sélectionner un 
élément spécifique et le supprimer de la liste. 
maListe = [ 'pomme' , 'banane' , 'poire' ] 
maListe . pop ( ) // retourne 'poire' 
// maintenant, maListe == ['pomme', 'banane'] 
Cette  ligne  de  code  enlèvera  le  dernier  élément  de  notre  liste,  en 
conservant  notre  séquence  intacte.  Mais  nous  pouvons  également 
supprimer des éléments du milieu de notre liste: 
maListe = [ 'pomme' , 'banane' , 'poire' ] 
maListe . splice ( 1 , 1 ) // retourne 'banane' 
// maintenant, maListe == ['pomme', 'pear'] 
  

Application 
Génial! Maintenant que vous savez tout sur les listes, écrivons du code. 
Il  existe  de  nombreuses  façons  de créer des listes et elles peuvent changer 
en  fonction  du  langage  dans  lequel  vous  programmez.  Pour  cet  exercice, 
nous allons créer des listes en utilisant la syntaxe suivante: 
langage = [ 'Java' , 'JavaScript' , 'Python' ] 
Cette  ligne  de  code  créera  une  liste  appelée  ​langage  comprenant  trois 
éléments dans la liste. Chaque élément est séparé par une virgule: 

● 'Java' 
● 'JavaScript' 
● 'Python' 

Vous  avez  peut-être  remarqué  qu'il  s'agissait  de  ​chaînes  .  Nous  pouvons 
également  mettre  d'autres  types  de  données  dans  une  liste,  notamment 
des  nombres  et  des  valeurs  booléennes.  Nous  pouvons  même  mettre 
d'autres listes dans une liste! 
Pour sélectionner un élément de la liste, nous utilisons la syntaxe suivante: 
langage [ 0 ] 
Comme  nous  pouvons  nous  en  souvenir,  le  premier  élément  est  à  ​l'indice 
0​.  Donc  ,  ce  code  saisirait  la  chaîne,  'Java'.  Nous  pourrions  également 
enregistrer  cette  sélection  dans  une  variable  afin  de  pouvoir  l'utiliser 
ultérieurement dans notre code: 
topLang = langage [ 0 ] 

Résumons 
Toutes  nos  félicitations!  Vous  avez  maintenant  découvert  un autre type de 
données appelé ​liste​. 

● Une l​ iste​ est une séquence ordonnée d'informations 


● L'  access  à  un  élément  d'une  liste  se  fait  en  utilisant  sa  position  ​d' 
index 
● Vous  pouvez  ​ajouter  des  éléments  à  la fin de la liste ou les ​insérer au 
milieu. 
● Vous  pouvez également ​supprimer un élément de la fin ou du milieu 
d'une liste. 

NB: Assurez-vous de bien comprendre les concepts avant d'aller de l'avant! 


 
 

BOUCLES 
Introduction aux boucles 
Comment  utilisons-nous  le  code  pour  dire  à un ordinateur ceci: ​«Crée une 
variable et appelle une fonction 15 fois»​? 
Nous pourrions l'écrire 15 fois: 
créer une variable 
appeler une fonction 
créer une variable 
appeler une fonction 
créer une variable 
appeler une fonction .... 
…  Nous  vous  épargnerons  le  reste.  Cette  approche  prend  beaucoup  de 
temps  et  peut  facilement  conduire  à  des  erreurs.  À  la  place,  donnons  les 
instructions  une  fois  et  disons  à  l'ordinateur  combien  de  fois  il  faut  les 
répéter: 
Répétez cette opération 15 fois: 
créez une variable, 
appelez une fonction 
Cette  structure  s'appelle  une  ​boucle  et  vous  apprendrez  tout  sur  elles 
dans  cette  leçon.  Ces  structures  spéciales  en  programmation  vous 
donneront  la  possibilité  de  répéter  des  instructions  plusieurs  fois  sans  les 
écrire plusieurs fois. 
Cette leçon couvrira: 

● La boucle ​for​ (pour) 


● la boucle ​while​ (tantque) 
● la boucle ​for each  
En  passant,  nous  supposons  que  vous  êtes  habitué  à  créer  des variables, à 
utiliser des opérateurs, à appeler des fonctions et à utiliser des listes. 

La boucle for (pour) 


Lorsque  nous  donnons  des  instructions  une  fois  et  que  nous  disons  à 
l'ordinateur  combien  de  fois  il  faut  les  répéter,  nous  utilisons  une  ​boucle 
for ou une ​boucle à comptage . Il exécute un ensemble d'instructions ​pour 
un nombre de fois spécifié: 
for 10 fois: 
afficher("Bonjour") 
afficher("Bon après midi") 
afficher("Bonsoir") 
Lorsqu'un  ordinateur  reçoit  ce  programme,  il  place  le  compteur  à  0  et 
exécute  les  instructions  dans  le  corps  de  la  boucle.  Après chaque ​itération 
(un  passage  par  les  instructions),  le  compteur  avance  de 1. Le processus se 
répète  jusqu'à  ce  que  le  compteur  atteigne  10,  ce  qui  signifie  que  10 
itérations sont terminées. 
La  boucle  for  est  utile  lorsque  vous connaissez le nombre de fois que vous 
souhaitez  effectuer  une  tâche  avant  de  commencer,  comme  imprimer  3 
copies d'un document ou insérer 8 lignes dans un tableau. 

La boucle while (tantque) 


Et  si  vous  envisagiez  de  poser  les  carreaux  chez  vous:  vous  ne  savez  pas 
combien  de  carreaux  placer,  mais  vous  savez  quand  arrêter.  Comment 
pouvez-vous  communiquer  ce  type  de  commande  à  un  ordinateur? 
Donnez-lui les instructions et une c ​ ondition: 
while existe des carreaux roses disponibles: 
placeCarreaux ('rose') 
placeCarreaux ('orange') 
placeCarreaux ('blanc') 
C'est  une  ​boucle  while​ou  une  ​boucle  à  condition  contrôlé    .  Il  répète  un 
ensemble  d'instructions  tant  ​que  cette  condition  est  vraie.  Dans  ce  cas, 
l’ordinateur  placera  les  carreaux  tant  que  les  carreaux  roses  sont 
disponibles. 
Dans  une  ​boucle  while​,  l'ordinateur  vérifie  si  la  condition  est  remplie.  Si 
c'est  le  cas,  il  exécute  les  tâches  dans  le  corps  de  la  boucle.  Il  vérifie  à 
nouveau  la  condition  et  répète.  Cela  continue  jusqu'à  ce  que  la  condition 
ne soit pas remplie, et il arrête d'exécuter les tâches. 
Utilisez  ​les  boucles  while  lorsque  vous  savez  quand  un  programme  doit 
s'arrêter, mais pas le nombre de fois qu'il doit se répéter. 

La boucle For Each 


Il  existe  un  autre  moyen  de  donner  des  instructions  en  boucle  à  un 
ordinateur.  Nous  définissons  une séquence de langage de programmation 
souhaitées  (une  liste)  et  demandons  à  l'ordinateur  de  répéter  les 
instructions  ​pour  chaque  élément  de  la  séquence.  Voici  un  exemple  de 
liste: 
listeLangage = ['java', 'javascript', 'php', 'python', 'html', 'css'] 
et la boucle ressemblerait à ceci: 
For Each​ langage ​in​ listeLangage: 
​afficher(langage) 
Pourquoi ce programme semble-t-il plus court que ceux qui l'ont précédé? 
Nous  n'avons  besoin  d'écrire  ​afficher(langage)  ​qu'une  seule  fois  car  la 
répétition ​java-javascript-php​ est déjà décrite dans la liste. 
langage​est  une  variable  dont  la  valeur  change  à  chaque  itération.  Il 
représente  chaque  élément  de  la  liste.  À  la  première  itération,  sa  valeur 
serait 'java'ensuite 'javascript', ensuite 'php', et ainsi de suite. 
La  séquence  que  nous  avons  utilisée  était  une  liste,  mais  nous  pouvons 
utiliser d'autres types de données similaires. Le terme générique désignant 
ceux-ci est: c​ ollection. 
Donc La boucle For Each peut encore être appelé boucles de collection. 
Utilisez  cette  boucle  lorsque  vous  devez  effectuer  une  tâche  pour  chaque 
élément  d'une  liste  ou  lorsque  l'ordre  des  éléments  doit  être  maintenu. 
Dans  ce cas, les deux étaient importants. Un langage  doit être affiché pour 
chaque élément de la liste. 

Application 
Combinons tout ce que nous avons appris jusqu'à présent: 

● variables, opérateurs et types de données 


● fonctions et flux de contrôle 
● listes et boucles 

Les exemples de boucles for et while sont fournis ci-dessous en J​ avaScript​. 


Dans cette boucle for, les instructions sont exécutées 10 fois. 
for (i = 0; i < 10; i++) { 
vider('sac') 
vider('panier') 
vider('marmite') 

Dans  cette  boucle  while,  nous créons un compteur et l'initialisons à 0 et lui 
ajoutons  1  à  chaque  itération.  La  boucle  est  exécutée  jusqu'à  ce  que  le 
compteur atteigne 10 ou plus. 
let compteur = 0; 
while (i < 10) { 
ajouter("crédit") 
ajouter("salaire") 
compteur++ 

Résumons 
Bien  joué!  Les  boucles  sont  couramment  utilisées  en  programmation  car 
elles permettent de gagner du temps, réduisent les erreurs et sont faciles à 
lire.  Être  à  l'aise  avec  chaque  type  de  boucle  fera  de  vous  un  meilleur 
programmeur.  
 
 
 
 
 
 
 
 
 
 

Vous aimerez peut-être aussi