Menu


1NSI

Les exercices python à connaître

programme de première
E1 : listes
E2 : listes
E3 : listes
E4 : tri par insertion
E5 : tri par séléction
E6 : dictionnaires / string
E7 : tuple
E8 : boucle / booléen / liste
E9 : string
E10 : dictionnaire / fonctions
E11 : booléens / listes
récursivité
E1 : somme d'entiers
E2 : chiffres romains
E3 : factorielle
E4 : rendu de monnaie
POO
E1 : la classe Chien
E2 : carrés semi-magiques
E3 : filtre sur une pile
E4 : durées en POO
Arbres
E1: Hauteur et taille d'un arbre
E2: parcours 1
E3: parcours 2
E4: Recherche dans un ABR
E5: Arbre binaire additif
E6: Arbre binaire de recherche
Diviser pour régner
E1 : sommet d'un tableau
E2 : Indice d'une panne
E3 : calcul d'une puissance
Sécurisation des communications
E1 : code César
E2 : Vigenre

Indice d'une panne

Une sonde interroge à intervalles réguliers l'état de fonctionnement d'un système électronique. Celui-ci peut être en marche ou en panne.
La sonde est programmée pour enregistrer les résultats de ses requêtes dans un log. Il s'agit d'un tableau de booléens (une list Python) dans lequel les valeurs True précèdent les False. La valeur True indique que le système est en marche, False qu'il est en panne.
Une panne nécessite une intervention humaine et ne peut donc pas disparaître seule : elle persiste jusqu'à la fin de l'enregistrement.
Par exemple, log = [True, True, False, False, False]

Lors d'une vérification on constate que le système est en panne : le log contient au moins une valeur False en dernière position. On se demande à quel moment a débuté cette panne.
Dans l'exemple précédent, le premier False est à l'indice 2 : la panne a débuté à l'instant 2.

Compléter la fonction indice_panne qui prend en paramètre le tableau de booléens log et renvoie l'instant du démarrage de la panne.
On garantit que le log n'est pas vide et que, au moment de la vérification, le système est en panne (la dernière valeur du tableau est False).

Attention
La panne du système a aussi corrompu le fichier de log. Vous ne pouvez pas lire plus de 500 valeurs dans celui-ci. Passé ce nombre de lectures, tout nouvel accès lèvera une erreur.
Il est donc important de bien concevoir votre algorithme car les logs utilisés dans les tests secrets peuvent être très longs : un milliard de valeurs !

Exemples

>>> indice_panne([True, False])
1
>>> indice_panne([False, False, False])
0
>>> indice_panne([True] * 10 + [False] * 100)
10
>>> indice_panne([True, True, False, False, False])
2