• 4 heures
  • Facile

Ce cours est visible gratuitement en ligne.

Ce cours est en vidéo.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !

Mis à jour le 20/05/2019

Posez les fondations

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Comment se construit un programme ? Comme tout bâtiment : brique après brique et pas à pas.

La première étape est de découper notre grand problème en sous-problèmes. Imaginons que vous vouliez réaliser votre propre château en Lego. Vous avez toutes les pièces sous les yeux, mais vous ne savez pas encore dans quel ordre les assembler. Plutôt que de chercher à tout construire en même temps, ce qui serait impossible, vous commencez par un angle. Peut-être commencerez-vous par les fondations, ou par les fenêtres, ou pourquoi pas par le toit ? De toute manière, vous allez décomposer le château en plusieurs sous-ensembles.

C’est exactement ce que nous ferons dans ce chapitre en réfléchissant aux différentes règles de notre tout nouveau mode de scrutin.

Règles du programme

Voici les règles de notre programme :

  • Chaque candidat a une mention entre "Excellent" et "À rejeter". Il y en a 7 en tout.

  • La mention majoritaire de chaque candidat est calculée sur une médiane et non sur une moyenne. 50 % au moins des votants trouvent cette mention valable.

  • En cas d’égalité de mentions majoritaires : celle ou celui ayant le pourcentage le plus important de mentions supérieures à la mention majoritaire est le mieux classé.

Oublions l’ordinateur un moment et réfléchissons à la manière dont nous pourrions traiter les résultats à la main. Un algorithme n’étant qu’une solution à un problème, nous pouvons nous passer de nos amis les robots quelques instants.

Découper un problème en sous-problèmes

Quelles sont les opérations à réaliser ? Listons-les en bloc :

  • Dépouillement (traiter les bulletins de vote) : création d’un premier tableau, vide, qui sera ensuite rempli en fonction du contenu des différents bulletins.

  • Calcul de la mention médiane de chaque candidat : la mention médiane est la mention minimale qui représente, pour au moins 50 % des votants, la capacité du candidat à exercer ses fonctions.

  • Tri des candidats par mention : celui ayant la meilleure mention arrivera en haut du classement et celui ayant la moins bonne arrivera en bas.

Parfait. Nous avons une bonne feuille de route !

Décomposons le premier sous-problème : le dépouillement. Avez-vous déjà assisté à une session de dépouillement ? Si oui, vous savez que c’est assez long, mais intéressant (si si ! Ce suspense haletant qui n’en finit pas, votre cœur qui bat la chamade à l’annonce du candidat pour lequel vous avez voté et la satisfaction sur le visage du ou de la maire lorsque tout est terminé ! Incomparable.). Non ? Eh bien, vous allez voir ce que c’est tout de suite !

Nous avons 10 votants. Chacun a jugé chaque candidat selon sa capacité à exercer cette fonction en lui attribuant une mention. Commençons par créer un tableau qui recense les mentions de chaque candidat.

 

Balou

Hermione

Chuck Norris

Elsa

Gandalf

Beyonce

Excellent

 

 

 

 

 

 

Très bien

 

 

 

 

 

 

Bien

 

 

 

 

 

 

Assez bien

 

 

 

 

 

 

Passable

 

 

 

 

 

 

Insuffisant

 

 

 

 

 

 

À rejeter

 

 

 

 

 

 

Comment allons-nous le remplir ?

Nous prenons un bulletin, le lisons et ajoutons 1 dans le tableau dans la case qui relie un candidat à la bonne mention. Exemple avec le bulletin suivant :

Hermione : Insuffisant, Balou : Passable, Chuck Norris : Assez bien, Elsa : Bien, Gandalf : Très bien, Beyonce : Excellent.

 

Balou

Hermione

Chuck Norris

Elsa

Gandalf

Beyonce

Excellent

 

 

 

 

 

1

Très bien

 

 

 

 

1

 

Bien

 

 

 

1

 

 

Assez bien

 

 

1

 

 

 

Passable

1

 

 

 

 

 

Insuffisant

 

1

 

 

 

 

À rejeter

 

 

 

 

 

 

Le vote suivant nous amène à réaliser la même action sur le tableau :

Hermione : Insuffisant, Balou : Bien, Chuck Norris : Très bien, Elsa : Bien, Gandalf : Très bien, Beyonce : Excellent.

 

Balou

Hermione

Chuck Norris

Elsa

Gandalf

Beyonce

Excellent

 

 

 

 

 

2

Très bien

 

 

1

 

2

 

Bien

1

 

 

2

 

 

Assez bien

 

 

1

 

 

 

Passable

1

 

 

 

 

 

Insuffisant

 

2

 

 

 

 

À rejeter

 

 

 

 

 

 

Et ainsi de suite jusqu’au dernier vote de l’urne.

Arrêtons-nous un instant, car nous venons en fait de voir plusieurs concepts dans cette simple action. Vous ne vous en êtes pas rendu compte, mais en fait nous pourrions découper ce sous-problème en d’autres micro-tâches :

  • créer un tableau ;

  • prendre un bulletin ;

  • en ressortir la première information (mention "insuffisant" pour la candidate Hermione) ;

  • ajouter cette information dans le tableau ;

  • répéter l’action jusqu’à ce qu’il n’y ait plus de bulletins.

Que ferait un ordinateur ? Exactement la même chose. Il créerait un tableau, accèderait à la première information d’une liste, etc. La seule différence est qu’il faut dire à l’ordinateur de le faire (de la même manière que vous formeriez un nouveau membre de l’équipe).

Comment communiquer avec un ordinateur ? À travers un langage de programmation, pardi !

Communiquer avec un ordinateur

Pour communiquer avec un ordinateur, vous avez d’abord besoin d’un langage. Entre humains, il existe beaucoup de langues différentes qui ont chacune leur usage. Nous avons d’ailleurs plusieurs familles de langues organisées souvent autour d’un alphabet : les langues indo-européennes (dont le français, l’espagnol ou l’anglais), les langues sino-tibétaines (dont le mandarin), les langues sémitiques (dont l’arabe), etc.

Ces langues partagent très souvent bien plus qu’un alphabet. Vous voyez où je veux en venir : je parle bien sûr de grammaire ou de structure de phrase. Alors, ne vous inquiétez pas, je ne vais pas vous faire un cours de grammaire. Mais je vais prendre l’exemple du français, que nous connaissons tous, et des différents éléments. Nous utilisons des verbes quand nous voulons exprimer une action. On utilise aussi des noms pour désigner les objets ou les personnes : une chaise, un tableau, une fille.

Les langages de programmation utilisent une logique très semblable. Dans ce cours, nous nous intéresserons à la programmation structurée qui est un des paradigmes de programmation les plus connus.

Un paradigme est une manière de concevoir une situation à la fois dans ses problématiques et dans les différentes solutions à apporter. 

En programmation structurée, nous découpons un problème en micro-tâches indépendantes les unes des autres et modulaires. C’est exactement ce que nous sommes en train de faire !

Les noms : les variables

Une variable est une manière de faire référence à un objet. Dans le langage courant, c’est exactement ce que nous appelons "nom". Qu’est-ce qu’un mot, sinon une étiquette que nous avons collée sur un objet pour pouvoir y faire référence plus tard ?

Bergson, dans Le Rire, disait d’ailleurs : "Pour tout dire, nous ne voyons pas les choses mêmes ; nous nous bornons, le plus souvent, à lire des étiquettes collées sur elles." Lire l’extrait

Afin d’illustrer notre propos, créons un tableau et associons-le à la variable "résultats".

Résultats
Résultats

Nous allons interagir avec lui grâce à des instructions. Qu’allons-nous réaliser sur ce tableau ? Écrivons-le à l’infinitif :

  • prendre un bulletin ;

  • en ressortir la première information (mention "insuffisant" pour le candidat Hermione) ;

  • ajouter cette information dans le tableau "résultats".

Les verbes : les fonctions

À présent, je souhaite effectuer exactement le même ensemble d’instructions pour tous mes bulletins. Comment faire ? Commençons par regrouper ces instructions sous un seul et même nom, comme si nous les mettions dans des boîtes.

ajoute_un_vote :

  • prendre un bulletin ;

  • en ressortir la première information ;

  • ajouter cette information dans le tableau "résultats".

Désormais, lorsque je dirai 'ajoute_un_vote', la personne en face de moi saura de quoi je parle !

C’est ce que nous appelons, en programmation, une fonction. Il s’agit d’un bloc qui regroupe plusieurs actions. Vous pouvez réutiliser ce bloc autant de fois que vous le voulez en invoquant son nom (comme les esprits !).

En langage informatique, la création d’une fonction est ce que nous appelons une déclaration. Son utilisation est son exécution.

Une fonction peut aussi être vue comme une moulinette qui va prendre des informations, les traiter et en renvoyer d’autres en sortie. Comme une râpe à fromage quand vous avez envie de gruyère sur vos pâtes ! Vous lui donnez un morceau de gruyère et la râpe le transforme en filaments prêts à être mangés.

Comment exécuter notre fonction pour chaque bulletin de l’urne ? Voyons cela tout de suite dans le prochain chapitre !

Exemple de certificat de réussite
Exemple de certificat de réussite