Neuf personnes présentes pour ce samedi après-midi.
***0_Introduction*** :
—Présentation de quelques éléments historiques.
— Présentation de quelques langages de programmation.
***1_ le plan : ***
De quoi programmer.
-
1.1 Le problème : *
Jean-Jean est champion du monde 2021, pour le meilleur
chausson aux pommes de la galaxie.
Pour la sortie de son nouveau modèle 2022, Jean-Jean
prévoit une affluence record... et probablement des émeutes au comptoir.
Pour le confort de tou.te.s, Jean-Jean décide de mettre en
place un automate à l’entrée de la boutique :
La machine orientera automatiquement chaque nouveau
visiteur vers la file d’attente devant le comptoir la moins
longue.
-
1.2 L’algorithme de la machine de Jean-Jean.*
Situation initiale : des files d’attente pour quatre serveurs au
comptoir ; huit nouveaux gourmand.e.s à répartir.
La machine oriente tous les clients...
Situation finale : les files d’attente sont équilibrées au mieux
au comptoir.
Le modèle est évidemment simplifié : par exemple, on ne
tiendra pas compte de la vitesse de service, qui peut varier
d’une file à l’autre, ou encore au sein d’une même file.
***2_Proposer un algorithme pour la machine de Jean-Jean. ***
Programmer cet algorithme.
***3_Avec Python3 ***
nom du fichier solution-0.py .
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# fichier : solution-0.py
# auteur : Pascal Chauvin
comptoir = [2, 4, 1, 7]
attente = 8
while attente > 0:
i_plus_courte_file = 0 # recherche de la position de la plus courte file
for i in range(len(comptoir)):
if comptoir[i_plus_courte_file] > comptoir[i]:
i_plus_courte_file = i
# inscription du client suivant à la plus courte file
comptoir[i_plus_courte_file] = comptoir[i_plus_courte_file] + 1
print(comptoir) # pour observer la répartition
attente = attente - 1 # le nombre de clients en attente diminue de 1
- 3.1 Une exécution du programme dans la console :***
chmod +x solution-0.py
./solution-0.py
***En langage C***
Pour comparaison, voici le même programme exprimé en langage C.
nom du fichier solution.c :
#include <stdio.h>
/*
* fichier : solution.c
* auteur : Pascal Chauvin
*
date : 2021/12/12
*/
#define NOMBRE_COMPTOIRS 4
int main(int argc, char **argv) {
int comptoir[NOMBRE_COMPTOIRS] = {2, 4, 1, 7};
int attente = 8;
int i_plus_courte_file;
while (attente > 0) {
i_plus_courte_file = 0;
for (int i = 0; i < NOMBRE_COMPTOIRS; i++) {
if (comptoir[i_plus_courte_file] > comptoir[i]) {
i_plus_courte_file = i;
}
}
comptoir[i_plus_courte_file]++;
for (int i = 0; i < NOMBRE_COMPTOIRS; i++) {
printf("%d ", comptoir[i]);
}
printf("\n");
attente--;
}
return 0;
}
- 4.1 Mode opératoire : compiler le programme, avant de pouvoir l’utiliser.**
Une exécution du programme dans la console :
gcc -o sol solution.c
./sol
***A la fin de la presentation petite surprise***
Cette carte ludique est un petit ordinateur, conçu par la BBC 1 à partir de l’année 2015, pour permettre
l’apprentissage de la programmation aux écoliers britanniques.
Site officiel de la carte « micro:bit »
Programmer la carte « micro :bit »
Ceci est un résumé de la Journée , très complète et intéressante . MERCI LIVRECINQ