• Aucun résultat trouvé

Recherche des bugs Mise au point de programmes

N/A
N/A
Protected

Academic year: 2022

Partager "Recherche des bugs Mise au point de programmes"

Copied!
2
0
0

Texte intégral

(1)

LGT Saint-Exupéry, Mantes-la-Jolie

Activité Terminale NSI – Mise au point de programmes – Recherche de bugs 1/2

Objectifs pédagogiques :

✓ Connaître les principales règles de conception de programmes

✓ Savoir détecter les bugs dans son code

✓ Savoir répondre aux causes typiques de bugs : problèmes liés au typage, effets de bord non désirés, débordements dans les tableaux, instruction conditionnelle non exhaustive, choix des inégalités, comparaisons et calculs entre flottants, mauvais nommage des variables, etc

✓ Mettre en œuvre des protocoles et des garde-fous permettant d’éviter des bugs liés à des saisies utilisateurs

D'où vient le mot “bug” ? Du mot anglais qui signifie « insecte ». La légende date au 9 septembre 1947 jour du soi-disant premier bug de l'histoire informatique : un papillon de nuit se serait bloqué dans le calculateur Mark II de l'université Harvard aux Etats-Unis entrainant une défaillance de la machine... L’informaticienne Grace Hopper, quand elle l’a retrouvé, l’a scotché dans son carnet de bord.

Il semblerait cependant que cette histoire cache une réalité toute autre… Le terme était vraisemblablement déjà utilisé depuis plusieurs années…

Activité 1 – Rechercher et éviter les bugs

1. Regarder la capsule vidéo sur la mise au point de programme et la détection de bugs sur le site nsi4noobs.fr 2. Indiquer la structure complète d’une levée d’exception sous Python avec un try/except

3. Quelle syntaxe Python permet d’effectuer des jeux de tests avec affichage d’informations aidant à la détection de bugs ? Donner un exemple d’utilisation

4. Comment s’appelle le processus d’utilisation des variables globales conduisant à des bugs et problèmes de débogage ?

Activité 2 – Ajout de sécurité dans vos codes

1. Écrire une fonction demandant à l’utilisateur la saisie d’un entier. La fonction saisie_entier(question) devra :

✓ Demander à l’utilisateur la saisie d’un entier grâce au texte contenu dans question

✓ Contrôler que l’utilisateur a bien saisi un entier. Tant que l’utilisateur n’a pas saisi un entier, la fonction repose la même question et affiche le message d’erreur correspond au problème rencontré.

✓ Renvoyer l’entier saisi en retour

Langages et programmation

Mise au point de programmes Recherche des bugs

(2)

LGT Saint-Exupéry, Mantes-la-Jolie

Activité Terminale NSI – Mise au point de programmes – Recherche de bugs 2/2

2. Améliorer votre fonction précédente, en ajoutant deux paramètres, début et fin.

La fonction devient alors saisie_entier_controle(question, début, fin) et doit :

✓ Contrôler que la saisie est bien un entier (comme dans la fonction précédente)

✓ Vérifier que cet entier est bien dans l’intervalle [début, fin]

✓ Si début est prend la valeur None, alors cela signifie qu’il n’y a pas de borne inférieure. n  ] -  ; fin ]

✓ Si fin, paramètre optionnel est omis ou prend la valeur None, cela signifie que l’intervalle n’a pas de borne positive : n  [début ; + [

3. Reprendre la base de données sur les villes en France (voir sur l’ENT). A partir de vos scripts d’interrogation de la base de données, réaliser un mini éditeur de requêtes SQL. Celui-ci posera 3 questions :

✓ Question 1 : sur quelle table effectuer la requête de sélection

✓ Question 2 : quels champs devront être affichés

✓ Question 3 : quelle condition booléenne sera appliquée à cette requête.

Vous mettrez tout en œuvre afin que quelque soit la saisie de l’utilisateur votre programme ne se s’arrête pas, impose la saisie de caractères à chaque question (fonction de contrôle) et affiche correctement les éventuels messages par suite d’erreurs de syntaxe dans la requête SQL.

Votre script affichera les données sous forme de tableau.

Sauvegardez vos scripts de fonctions de contrôle dans un fichier Python que vous

pourrez réutiliser dans l’ensemble de vos travaux, et tout particulièrement dans vos

projets collectifs.

Références

Documents relatifs

R ÉSUMÉ : Gramsci avertissait qu’entre une ancienne forme de société qui se meurt et une nouvelle forme qui tarde à naître, une « variété de phénomènes morbides »

Laval (Québec), est titulaire de la Chaire de recherche du Canada en Antiquité Critique et Modernité Émergente (ACMÉ, 2015-2022), directeur du projet Partenariat international

Je porterai une attention particulière sur le rôle des experts et je le mettrai en contraste avec une stratégie alternative régulièrement mise en avant, par exemple pour faire face

pandémie actuelle comme un point de rupture du productivisme, du capitalisme ou de la mondialisation contemporaine, mais aussi, à l’autre bout du spectre, comme l’occasion d’une

Or cette situation a suscité deux réactions symétriques et également fausses: la dénonciation d’un état d’exception ne reposant sur aucune réalité observable (et ne

lorsque la Commission des transports du Québec (CTQ) a émis une interdiction de mettre en circulation ou d’exploiter un véhicule lourd à l’endroit d’un propriétaire ou

Le dossier est sur le statut « en cours de création », il suffit de cliquer sur le crayon pour reprendre votre demande en cours là où vous vous êtes arrêté.. Si vous vous

6 Le dossier est sur le statut « en cours de création », il suffit de cliquer sur le crayon pour reprendre votre demande en cours là où vous vous êtes arrêté.. Si vous vous