Votre script ne doit pas ressembler à plus de 70% à un script précédement soumis ou accepté.
Votre script doit respecter intégralement le cahier des charges du défi.
Votre fichier doit être glisser-déposer sur le défi.
Défi P_3_1 : De Fahrenheit à Celsuis(1 pt)
Écrire un programme en python qui demande à l'utilisateur d'entrer une valeur de température en degrés Fahrenheit
puis lui affiche la conversion en degré Celsius sous la forme d'une phrase.
Donnée : `°F=(°Cxx9/5)+32` Il faut inverser l'équation !
Défi P_3_2 : De pouce à cm(1 pt)
Écrire un script python qui vous demande la diagonale de votre écran d’ordinateur en pouce et vous renvoie sa
diagonale en centimètre en affichant le calcul. Exemple de résultat attendu :
Quelle est la diagonale (en pouce) de votre écran ? 10
Une diagonale de 10’’ correspond à 25,4 cm.
Défi P_3_3 : Étoile rouge(2 pts)
Écrire un programme en python qui dessine, grâce au module turtle, une étoile à cinq branches
identiques à celle représentée ci-contre. L'utilisateur doit pouvoir choisir sa taille en pixel et
sa couleur en anglais. La fenêtre d'affichage doit pouvoir être fermée d'un simple clic.
Défi P_3_4 : Cube coloré en perspective(3 pts)
Écrire un script python qui dessine un cube de 100 pixels de côté en perspective à l’aide du module turtle. Le
programme doit demander la couleur de la face avant et l’assombrir pour les deux autres faces visibles. La
fenêtre d’affichage doit pouvoir être fermée d’un simple clic.
Défi P_3_5 : Admis avec mention(2 pts)
Écrire un programme en python qui demande la moyenne obtenue au bac, informe si on est admis (note ≥ 10)
et précise la mention :
entre 10 inclus et 12 exclu : « Sans mention »
entre 12 inclus et 14 exclu : « Assez bien »
entre 14 inclus et 16 exclu : « Bien »
entre 16 inclus et 18 exclu : « Très bien »
entre 18 inclus et 20 inclus : « Très bien, félicitations »
Défi P_3_6 : Année bissextile(3 pts)
Pour qu’une année soit bissextile, elle doit remplir certaines conditions : l’année est bissextile si elle est un multiple de 4
mais pas un multiple de 100. Toutefois, toutes les années multiples de 400 font exception et sont bissextiles.
Écrire en python la fonction est_bissextile(a) qui prend en paramètre un entier correspondant à l'année
et retourne le booléen True si l’année est bissextile et False sinon.
Exemples : Années bissextiles : 2012, 2000 Années non bissextiles : 2013, 2030, 2100
Défi P_3_7 : Calcul mental(4 pts)
Écrire un programme en python qui demande à l'utilisateur de réaliser une addition, une soustraction ou une multiplication entre deux entiers aléatoires
compris chacun entre 1 et 10 inclus. Si l’utilisateur donne la bonne réponse, le programme doit tracer un smiley souriant avec le module turtle,
sinon un smiley triste. Vos smileys doivent être au moins aussi beaux que ceux ci-contre.
La fenêtre d’affichage doit pouvoir être fermée d’un simple clic.
Défi P_3_8 : Qualité d’un triangle(2 pts)
Écrire un programme en python qui demande la longueur des trois côtés a, b, c d'un triangle
et répond par la chaîne de caractère "isocèlé" , "equilatéral", "rectangle" ou "quelconque"
selon la nature du triangle.
Défi P_3_9 : Année bissextile en une ligne(4 pts)
Réaliser le avec une seule ligne de code dans la fonction.
Attention : Le point-virgule n'est pas autorisé puisque il est assimilable à un saut de ligne.
Défi P_3_10 : Factorielle(2 pts)
Écrire un programme en python qui demande un entier à l’utilisateur et renvoie son factoriel.
L’utilisation d’une fonction prédéfinie est interdite. Vous devez utiliser une structure en boucle.
Défi P_3_11 : Jeu du plus ou moins(3 pts)
Écrire un script python qui choisit aléatoirement un entier entre 1 et 20 sans
l'afficher. Le script propose ensuite à l'utilisateur de le deviner.
À chaque proposition de l'utilisateur,
il indique si l'entier à deviner est supérieure ou inférieure.
Quand l'entier est trouvé,
le programme indique le nombre d'essais ainsi que la valeur qui a été trouvée.
À tout moment si l'utilisateur
entre la lettre « q », le programme doit le remercier d'avoir joué et indiquer quel était
l'entier à trouver avant de s'arrêter.
Défi P_3_12 : Générateur d’étoiles(4 pts)
Écrire un script python qui demande à l’utilisateur d’entrer un nombre entier 𝑛. Il tracera alors avec
le module turtle n étoiles (similaires au
défi 3.3) de position, d’orientation et de couleur aléatoire. La position sera incluse dans un espace compris entre -100 et
+100 pixels de hauteur et de largeur. La taille des étoiles devra être comprise entre 10 et 40 pixels. Le nombre de couleurs
possibles doit être supérieur à 5. Une fois le dessin terminer le script s’arrête et l’utilisateur doit pouvoir fermer la fenêtre
de dessin en cliquant dessus.
Exemple : Voici ce que l’on pourrait obtenir avec les entrées : 6, 15 ou 50
Défi P_3_13 : Carré incliné(1 pt)
Écrire en python la fonction carre(n, alpha) qui trace sous turtle un carré de n pixels de côté incliné avec un angle alpha.
Si la fonction est appelée sans argument, par défaut il faut tracer un carré de 100 pixels de côté, incliné à 45°.
La fenêtre d’affichage doit pouvoir être fermée d’un simple clic.
Défi P_3_14 : Puissance(2 pts)
Écrire en python la fonction récursive puissance(x, n) qui calcule x à
la puissance n de manière récursive.
Défi P_3_15 : Triangle étoilé(2 pts)
Écrire en python la fonction triangle_etoiles(n) prenant en argument un nombre entier n impair
et affichant, dans la console, un triangle
ayant une base de n étoiles selon les modèles représentés ci-dessous.
Défi P_3_16 : Fibonacci(2 pts)
La suite de Fibonacci s’obtient en additionnant les deux termes précédents :
0 ; 1 ; 1 ; 2 ; 3 ; 5 ; 8 ; 13 ; …
Le deux premiers termes (de rang 0 et 1) vaut fib(0) = 0, fib(1) = 1 … .
Écrire en python la fonction récursive fibonacci(n) qui renvoie
le terme de rang n dans la suite de Fibonacci.
Défi P_3_17 : Equation du second dégré(3 pts)
Une équation du second degré peut s’écrire sous la forme : `ax²+bx+c=0`.
Rechercher dans les
cours de math les
formules des racines et créer en python la fonction eq2(a, b, c), affichant l’équation
ainsi que ses deux racines réelles lorsqu’elles existent.
Dans le cas où il existe une racine unique, la fonction devra l'indiquer et l’afficher.
Dans le cas où il n’y en a pas de racine réelle, la fonction devra l'indiquer.
Défi P_3_18 : Flocon de Von Koch (8 pts)
On définit une fractale en mathématique comme un objet construit à partir d’une série de règles qui se répètent jusqu’à un
certain niveau d’itération. En physique, un miroir placé devant un autre miroir réalise une image fractale. Le flocon de Koch
est un exemple de fractale et peut être obtenu à partir d’un segment, de façon récursive :
Au premier tiers du segment, tourner de 60° à gauche et avancer d’un tiers de la longueur.
Tourner de 120° à droite et avancer d’un tiers de la longueur.
Tourner de 60° à gauche et avancer d’un tiers de la longueur.
On répète les trois actions précédentes jusqu’au niveau de profondeur n souhaité.
Écrire un script python contenant la fonction flocon(n) permettant de tracer sous turtle un flocon de Koch de niveau n
ayant toujours la même taille (300 pixels) quelque soit le niveau demandé. La fenêtre d’affichage doit pouvoir être fermée d’un simple clic.
Étape 1 : Écrire une fonction qui trace sous turtle le niveau 1 de la fractale, avec des segments de 10px de longueur.
Étape 2 : Modifier cette fonction afin qu’elle permette d’obtenir le niveau 2 de la fractale.
Étape 3 : Modifier le script afin qu’il permette d’obtenir n’importe quel niveau de la fractale, défini en paramètre.
Étape 4 : En réalisant la fractale précédente sur les trois côtés d’un triangle équilatéral, on obtient le flocon de Koch.
Cela revient à exécuter la même fonction sur trois segments inclinés de 120° les uns par rapport aux autres :
Écrire en python la fonction sapin(h, b) permettant de dessiner
en Art ASCII un sapin
de h lignes de haut avec b boules réparties au hasard.
Le tronc doit toujours être d'environ 1/4 de la hauteur du sapin.
Exemple : Les appels sapin(11, 6), sapin(5, 56)
et sapin(9, 4) doivent
dessiner dans la console python :
Écrire en python une fonction cesar_simple(mot, n) qui prend en argument un mot, uniquement en majuscule
sans lettre accentuée, ni espace ou caractère spécial, et retourne ce mot chiffré selon le Code
César avec pour clé l'entier n donné en argument.
Exemples : cesar_simple('EUROPE', 1) doit répondre FVSPQF cesar_simple('ZEBRE', 5) doit répondre EJGWJ
Écrire en python la fonction dechiffrer_cesar(phrase, n) qui déchiffre une phrase qui a été chiffrée avec la clé n donnée en argument par la fonction du défi précédent P_4_2.
Exemple d'appel : dechiffrer_cesar(".P{zzq¨9y{u,£z,|{uz¢,p3m||£u8,q¢,vq,¡{£xô¤q~mu,xq,y{zpq:.,M~otuyôpq", 12)'
Remarque : On parle de déchiffrement quand on possède la clé de chiffrement et de décryptage lorsqu'on ne la connaît pas.
Défi P_4_4 : Analyse fréquentielle(2 pts)
Écrire en python la fonction analyse_freq(texte)qui dénombre chaque caractère d’un texte en ignorant la casse, les accents et la ponctuation.
Cette fonction prend un seul argument de type chaîne de caractère et renvoi un dictionnaire. Chaque clé du dictionnaire est un caractère minuscule et sa valeur associée est
le nombre d’occurrence de ce caractère dans le texte.
La casse n’est pas discriminante : ainsi "a" et "A" compteront pour la même lettre "a".
Les accents ne sont pas discriminants : ainsi "e", "é" ou "É" compteront pour la même lettre "e".
Exemple d'appel :
analyse_freq('Alphabet !') doit retourner le dictionnaire {'a': 2, 'l': 1, 'p': 1, 'h': 1, 'b': 1, 'e': 1, 't': 1}
Allitération en "s" :
analyse_freq('Qui sont ces serpents qui sifflent sur vos têtes ?') doit répondre entre autres qu'il y a 8 "s".
Extrait du roman de 139 pages de Georges Perec, écrit sans la lettre "e" pourtant la plus fréquente en français :
Son pouls battait trop fort. Il avait chaud. Il ouvrit son vasistas, scruta la nuit. Il faisait doux. Un bruit indistinct montait du faubourg.
Un carillon, plus lourd qu'un glas, plus sourd qu'un tocsin, plus profond qu'un bourdon, non loin, sonna trois coups.
Du canal Saint-Martin, un clapotis plaintif signalait un chaland qui passait.
Défi P_4_5 : Décryptage d'un Code César(6 pts)
Écrire en python la fonction decrypter_cesar(phrase) qui décrypte une phrase donnée
en argument qui a été chiffrée par un programme du défi P_4_2 sans connaître la clé qui a été utilisée.
Pour réussir ce défi, vous pouvez consulter l’article
de Wikipédia sur l’analyse fréquentielle.
Exemple d'appel : decrypter_cesar("q¬;¢£²;²£¡±£³²;¢´;~®¬¦£´±;£²³;¢£;¢£«}¬¢£±;~£}´¡®´¯;ü;²®BI«&«£;£³;¯£´;}´·;}´³±£²J")
Remarque : On parle de déchiffrement quand on possède la clé de chiffrement et de décryptage lorsqu'on ne la connaît pas.
Défi P_4_6 : Jeu du Scrabble - Calcul du score v1(4 pts)
Au scrabble, le score d’un mot dépend des lettres qui le
compose et de sa position sur le plateau de jeu. Certaines cases
doublent ou triplent le score de la lettre et d’autres doublent
ou triplent le score total du mot. Voir les règles du jeu. Écrire en python la fonction score(mot, coord) qui retourne le score total d'un mot (entier) et qui prend pour argument :
le mot choisi par le joueur : chaîne de caractères,
les coordonnées des lettres sur le plateau : liste(tuples) Exemple : [(0, 0), (0, 1), (0, 2)] pour un mot de
trois lettres écrit horizontalement tout en haut à gauche du plateau de jeu. Attention l’origine est en haut à gauche !
Exemple : score('FIOLE', [(7,7), (7,8), (7,9), (7,10), (7,11)])
doit retourner l'entier `(4+1+1+1+1xx2)xx2 = 18` car la lettre E compte
double grâce à la case (7, 11) et le mot entier compte double grâce à la case (7, 7).
Défi P_4_7 : Jeu du Scrabble - Calcul du score v2(3 pts)
Reprendre, adapter et compléter la fonction score du défi précédent (P_4_6) qui devra désormais prendre comme argument :
les lettres disponibles du joueur : chaine de caractère. Exemple : "ALIPN"
le mot choisi par le joueur : chaîne de caractère
les coordonnées de la première lettre (x, y) et l’orientation du mot sur le plateau (0 pour horizontal et 1 pour vertical) :
tuple de 3 valeurs. Exemple : (0, 0, 0) pour un mot horizontal tout en haut à gauche du plateau de jeu.
Si les lettres disponibles ne permettent pas de constituer le mot, la fonction doit retourner un tuple avec l'entier -1 et une phrase
explicative pour le joueur (chaîne de caractère) qui indique les lettres qui lui manquent.
Si les coordonnées conduisent à sortir du plateau de jeu, la fonction doit retourner un tuple avec l'entier -1 et une phrase explicative pour le joueur
(chaîne de caractère).
Sinon, la fonction renvoie un tuple avec le score obtenu et une phrase à l'adresse du joueur.
Exemples :
score("STOTIPN", "SPIN", (0, 0, 1)) doit retourner le tuple (21, "votre phrase explicative") score("ABOEQINES", "BANQUISE", (5, 5, 0)) doit retourner le tuple (-1, "votre phrase explicative") car il manque une lettre.
score("UOSRND", "SOURD", (12, 9, 0)) doit retourner le tuple (-1, "votre phrase explicative") car le mot sort du plateau.
Défi P_6_1 : Recherche dans un csv(3 pts)
people.csv contient des informations sur 20 000 personnes.
Écrire la fonction compter(table, critere) qui permet d'obtenir le nombre d'enregistrements
qui dans un fichier CSV remplissent les critères demandés.
table : est le chemin du fichier csv utilisé
critere : est un dictionnaire associant les attributs (cle) aux valeurs recherchées. Exemple : {"job": "Baker"} Ce
dictionnaire peut contenir un ou plusieurs critères de recherche.
Défi P_6_2 : Fusion des tables 'villes' et 'aires_urbaines'(3 pts)
75villes.csv contient les 75 plus grandes villes françaises en termes de population.
Ses attributs sont 'nom' et 'population'.
50aires_urbaines.csv contient les 50 plus grandes aires urbaines en termes de
populations. Ses attributs sont 'ville_centre', 'population_aire_urbaine’ et 'nombre_communes'.
Réaliser un script python avec la fonction jointure_interne(tabA, tabB, tabRes)
qui fusionne deux tables A et B par une jointure interne.
Les arguments de la fonction sont les chemins relatifs des fichiers csv :
tabA et tabB contiennent les tables à fusionner et tabRes est le fichier qui contiendra la table
résultat de la jointure interne.
La fonction doit créer ce troisième fichier contenant la table demandée avec les attributs :
ville_centre
population
population_aire_urbaine
nombre_communes
Exemple d'appel :jointure_interne('50aires_urbaines.csv', '75villes.csv', 'resultats.csv')
Défi P_7_1 : CSS Lorem Ipsum(8 pts)
Récupérer le fichier lorem-ipsum.html (qui ne doit pas être modifié) et écrire un fichier CSS afin que cette page se présente
comme le modèle modele.jpg.
Faites bien attention au moindre détail :
arrondie du titre,
soulignage des boutons de navigation,
position de l'image,
traitement différent des liens dans la barre de navigation (avec mise en forme au survol du curseur) et dans le texte, ...
Le fichier a déposé doit repecter la nomenclature defi_P_7_1.css.
Défi P_7_2 : HTML Olympiades(8 pts)
Vous devez écrire et déposer le fichier defi_P_7_2.html permettant d'obtenir le résultat suivant
modele_P72.jpg.
Pour cela vous devez récupérer les fichiers suivants :
styleP72.css - Fichier CSS non-modifiable (à placer dans le
même dossier que defi_P_7_2.html).
README.txt - Texte à inclure dans votre fichier ainsi que quelques explications.
images.zip - Dossier contenant toutes les images inclues dans la page à créer
(dossier images à placer dans le même dossier que defi_P_7_2.html).
Défi P_8_1 : Site Marathon en HTML + JS(5 pts)
Créer un site internet permettant de s'inscrire au Marathon de TOULOUSE 2022 en remplissant
un formulaire demandant le nom, le prénom, une adresse courrielle
et un bouton d’envoi.
Les données devront être transmises par la méthode GET et l'utilisateur devra recevoir
la réponse suivante en remplaçant chaque champ repéré par des crochets par leurs valeurs :
Bonjour [Prénom] [NOM],
Votre inscription au Marathon de Toulouse 2020 a bien été reçue aujourd’hui à [..h..].
Vous recevrez toutes les informations nécessaires pour réaliser votre course dans les
meilleures conditions à l’adresse : [adresse email].
Bien cordialement,
[Logo du marathon de Toulouse]
Pour réaliser ce défi, vous devez écrire deux fichiers : formulaire.html qui contiendra le formulaire et
reponse.html pour la réponse.
Vous ne devez utiliser que du langage HTML et JAVASCRIPT. Vos fichiers devront être regroupés dans un seul fichier compréssé au format .zip et
respectant la nomenclature habituelle des défis.
Défi P_8_2 : Site Marathon en HTML + PHP(10 pts)
Réaliser le défi P_8_1 en un seul fichier .php. Vous ne devez utiliser que du langage HTML et PHP. Le fichier a déposé doit repecter la nomenclature habituelle avec l'extension .php.
Défi P_8_3 : Site Marathon en HTML + PHP avec validation des données(8 pts)
Réaliser le défi P_8_1 en un seul fichier .php en y ajoutant du code javascript permettant de
valider et mettre en forme les données que l'utilisateur a entré dans le formulaire avant leur envoi et qui donne le cas échéant les indications
nécessaire à l'utilisateur pour remplir correctement le formulaire.
Le nom et le prénom doivent être composé uniquement de caractères alphabétiques (pas de caractère spécial ou de chiffre).
Ils seront automatiquement mit totalement en majuscules pour le NOM et en majuscule seulement pour la première lettre pour le Prénom.
L'adresse courrielle doit être une adresse valide.
Il doit être impossible d'envoyer le formulaire si les données ne sont pas valides. Le fichier à déposer doit repecter la nomenclature habituelle avec l'extension .php.
Défi P_8_4 : Site Marathon Complet(5 pts)
Réaliser le défi P_8_1 en trois fichiers :
inscription.php permettant de remplir le formulaire et d'envoyer la réponse.
validation.js assurant la validation des données du formulaire et leur mise en forme avant leur envoi.
Il doit être impossible d'envoyer le formulaire si les données ne sont pas valides.
style.css assurant une belle interface graphique pour l'utilisateur.
Vos fichiers devront être regroupés dans une seule archive compréssée au format .zip et
respectant la nomenclature habituelle des défis.
Défi P_10_1 : IP en binaire(2 pts)
Une adresse IP est une suite de quatre nombres décimaux allant de 0 à 255 séparé par un point : X.X.X.X.
Écrire en python la fonction ip_to_bin(ip) qui accepte en argument une chaîne de caractère
représentant l’adresse IP (exemple : "192.168.0.1") à
convertir et qui renvoie sa conversion en binaire sous la forme d'une chaîne de caractères.
Exemple : L'appel ip_to_bin("255.255.0.0") renvoie la valeur
"11111111111111110000000000000000".
Défi P_10_2 : IP du sous-réseau(4 pts)
Une adresse IP contient l’identifiant réseau et l’identifiant machine. Toute machine connaît son IP (ex : 192.168.1.1)
et son masque de sous réseau (ex : 255.255.255.0). Pour déterminer l’identifiant réseau, il faut réaliser un ET
logique entre l’IP de la machine (en binaire) et le masque de sous réseau (en binaire).
Écrire en python la fonction sous_reseau(ip, masque) qui accepte en argument l’IP de la machine (chaîne de caractère)
et le masque de sous-réseau (chaîne de caractère) et renvoie l’identifiant réseau (chaîne de caractère).
Exemple : sous_reseau("192.168.1.1", "255.255.255.0") doit retourner "192.168.1.0".
Défi P_12_1 : Conversion python vers javascript(10 pts)
Pour convertir un programme simple écrit en python vers le javascript, on peut suivre les étapes suivantes :
remplacer le mot clé def par function,
remplacer les deux points qui indiquent le début d'un bloc par une accolade ouvrante,
ajouter une accolade fermante à la fin d'un bloc,
encadrer les conditions des instructions if et while par des parenthèses,
ajouter des points-virgules à la fin de chaque insruction,
remplacer le mot-clé not par !,
remplacer le mot-clé and par &&,
remplacer le mot-clé or par ||,
remplacer le mot-clé True par true,
remplacer le mot-clé False par false,
remplacer le mot-clé elif par else if,
remplacer le symbole de commantaire # par //,
remplacer les triples guillements """...""" par /* ... */,
Créer une fonction py2js(texte) en python qui prend une chaîne de caractère correspondant à du code python
et qui retourne une chaîne de caractère correspondant à sa conversion en langage javascript.
Remarques : Le caractère saut de ligne est "\n" et les indentations sont faites de quatre espaces.
Défi P_14_1 : Combien de bougies ?(2 pts)
Combien de bougies a soufflé une personne ayant 36 ans au cours de tous ses anniversaires ?
Écrire en python la fonction bougies(n) qui retourne un entier correspondant au nombre de bougies soufflées par une personne ayant n ans.
L'algorithme utilisé doit avoir une complexité en `O(1)`.
Défi T_1_0 : Tours de Hanoï - Nombre de coups(4 pts)
Se renseigner sur le jeu des «Tours de Hanoï».
Vous trouverez un simulateur de ce jeu sur : championmath.free.fr.
Créer la fonction hanoi_minimum(n) en python qui donne le nombre
minimum de déplacements nécessaires pour déplacer la tour quelque soit le
nombre n de disque à déplacer.
Défi T_1_1 : Tours de Hanoï - Résolution(8 pts)
Se renseigner sur le jeu des «Tours de Hanoï».
Vous trouverez un simulateur de ce jeu sur : championmath.free.fr.
Créer la fonction resoudre_hanoi(n) en python qui donne la suite des étapes à effectuer pour résoudre
ce problème quelque soit le nombre n de disque à déplacer.
Exemples des instructions que la fonction doit afficher pour l'utilisateur :
Déplacer un disque de la tour n°1 à la tour n°3.
Déplacer un disque de la tour n°1 à la tour n°2.
etc ...
Défi T_1_2 : Jeu de la bataille(6 pts)
Implémenter en python le jeu de la bataille d'après les règles détaillées sur Wikipédia.
Votre jeu devra :
définir une classe Carte ayant les attributs hauteur et couleur,
ranger ces cartes dans une liste jeu,
mélanger le jeu avec les fonction du module random,
les distribuer aux deux joueurs (listes joueur1 et joueur2),
et surtout programmer le déroulement du jeu pour l'afficher à l'écran.
Défi T_2_1 : Vérifier un ABR(4 pts)
Rechercher puis implémenter en python une méthode test(self) qui vérifie que l'arbre est bien un ABR.
Vous devrez partir de la classe Arbre() construite au cours du chapitre.
Voir le cours associé
Défi T_2_2 : Supprimer une feuille d'un ABR(8 pts)
Implémenter en python la méthode supprimer(self, x) permettant de supprimer la feuille de valeur x si elle existe,
dans un arbre binaire de recherche. Si la feuille n'existe pas, la méthode ne doit rien faire (pas d'erreur).
Vous devrez partir de la classe Arbre() construite au cours du chapitre.
Voir le cours associé
Défi T_2_3 : Équilibrer un ABR(6 pts)
Rechercher puis implémenter en python la méthode equilibrer(self) permettant d'équilibrer un arbre binaire de recherche.
Vous devrez partir de la classe Arbre() construite au cours du chapitre.
Voir le cours associé
Défi T_5_1 : Génération de requêtes SQL(8 pts)
D'après l'exercice 4 du chapitre 5 sur le langage SQL.
Écrire un programme en python qui génére les requêtes SQL permettant de remplir les
trois tables à partir des fichiers CSV fournis.
Implémenter en python l'algorithme du tourniquet en créant la fonction ord_tourniquet(liste) qui prend en paramètre une
liste de processus telle que celle ci-dessous et qui renvoie la liste ordonnancée des instructions selon l'algorithme du tourniquet.
liste_processus = [
["P1_1", "P1_2", "P1_3", "P1_4", "P1_5"], # Instructions du processus 1
["P2_1", "P2_2"], # Instructions du processus 2
["P3_1", "P3_2", "P3_3", "P3_4"] ] # Instructions du processus 3
Défi T_6_2 : Algorithme SJB(2 pts)
Implémenter en python l'algorithme SJB en créant la fonction ord_SJB(liste) qui prend en paramètre une
liste de processus telle que celle ci-dessous et qui renvoie la liste ordonnancée des instructions selon l'algorithme SJB.
liste_processus = [
["P1_1", "P1_2", "P1_3", "P1_4", "P1_5"], # Instructions du processus 1
["P2_1", "P2_2"], # Instructions du processus 2
["P3_1", "P3_2", "P3_3", "P3_4"] ] # Instructions du processus 3
Défi T_9_1 : Machine de Turing(10 pts)
Implémenter en python une classe Turing modélisant une machine de
Turing pouvant fonctionner.
Conseils :
Le ruban peut être modélisé par une liste infinie dans les 2 sens,
c'est-à-dire pouvant être étendue au fur et à mesure des déplacements de la tête de
lecture.
On peut s'inspirer de la classe Graphe pour la partie automate.