Une question par chapitre, 9 en tout, tirées des exercices corrigés du cours. Réponds à celles que tu sais faire et passe celles d'un chapitre que tu n'as pas encore vu : chaque réponse se vérifie tout de suite, et la correction s'ouvre après.
Avec ton espace gratuit, chaque réponse est gardée et ton tableau de bord range chaque chapitre : réussi au test, ou à travailler. Ce sont les mêmes questions que sur les pages des séries : une réponse donnée ici compte là-bas.
Seulement les chapitres de ton examen. Tout afficher
Ce que le cours suppose
Ces chapitres viennent d'une année précédente, et le cours s'appuie dessus dès les premières semaines.
Mathématiques · Seconde · Algorithmique et Python
On considère la liste des notes d'un élève : notes = [12, 8, 15, 9, 18, 11].
a) Donnez les valeurs de len(notes), notes[0], notes[2] et notes[len(notes) - 1].
Voir la correction
Réponse
a)6, 12, 15, 11
a) len(notes) vaut 6, notes[0] vaut 12, notes[2] vaut 15 et notes[len(notes) - 1] vaut 11. Les indices commencent à ZÉRO, donc le dernier indice est 5 et non 6 : écrire notes[6] provoquerait une erreur d'indice. L'écriture notes[len(notes) - 1] est la façon standard de désigner le dernier élément sans connaître la taille.
SNT · Seconde · Internet et le Web : protocoles, adressage, HTML et HTTP
Les débits s'expriment en bits par seconde, les tailles de fichiers en octets. Confondre les deux fait des erreurs d'un facteur 8, et c'est l'erreur la plus fréquente de tout le programme. On prendra 1 Mo = 1000 ko et 1 Go = 1000 Mo.
c) Une page web pèse 2,5 Mo. Combien de temps met-elle à se charger sur une connexion à 8 Mbit/s ? Et sur une connexion mobile dégradée à 500 kbit/s ?
Voir la correction
Réponse
c)2,5 s à 8 Mbit/s, 40 s à 500 kbit/s
c) La page pèse 2,5 Mo, soit 20 Mbit. À 8 Mbit/s cela donne 820=2,5 secondes. À 500 kbit/s, c'est-à-dire 0,5 Mbit/s, cela donne 0,520=40 secondes, ce qui est insupportable en usage réel. D'où l'importance d'alléger les pages pour les visiteurs en mobilité.
Chapitre 1 · Python : types, contrôle, fonctions et tableaux
Toutes les questions demandent la valeur ET le type du résultat. Répondez sans machine : l'épreuve se passe sans interpréteur, et savoir prévoir ce que Python va faire est précisément la compétence évaluée.
b) Donnez la valeur de -7 // 2 et de -7 % 2. Le résultat de la division entière vous surprend-il ? Expliquez la règle utilisée par Python.
Voir la correction
Réponse
b)-4 et 1 : arrondi vers moins l'infini
b) -7 // 2 vaut -4, et non -3. Python arrondit le quotient vers le bas (vers moins l'infini), pas vers zéro. Et -7 % 2 vaut 1, un reste positif. Les deux sont cohérents : la relation a=b×(a//b)+(a%b) doit rester vraie, et en effet −7=2×(−4)+1. En Python, le reste a toujours le signe du diviseur.
Chapitre 2 · Représentation des données : réels et texte
Le code ASCII associe à chaque caractère un nombre entier compris entre 0 et 127, codé sur 7 bits. Il couvre les lettres non accentuées, les chiffres, la ponctuation et quelques caractères de commande.
Repères à connaître : le caractère A vaut 65, le caractère a vaut 97, le chiffre 0 vaut 48 et l'espace vaut 32. La droite ci-dessous place ces repères parmi les 128 codes.
a) Donnez le code ASCII des caractères C, c et 5, en justifiant chaque calcul.
Voir la correction
Réponse
a)67, 99, 53
a) Les lettres se suivent dans l'ordre alphabétique : C est la troisième lettre, donc 65+2=67. De même c vaut 97+2=99. Le chiffre 5 vaut 48+5=53. On ne mémorise que les points de départ, jamais la table entière.
Chapitre 3 · Algorithmique : preuve, terminaison et coût
On ne devine pas le coût d'un algorithme, on le constate. Le test du doublement consiste à doubler la taille des données et à regarder ce que devient le temps : inchangé pour un coût constant, doublé pour un coût linéaire, quadruplé pour un coût quadratique.
Quatre programmes A, B, C et D ont été chronométrés sur les mêmes données, pour quatre tailles qui doublent à chaque ligne. Les temps sont en millisecondes.
b) Prédisez le temps de B et celui de C pour n=16000, puis pour n=64000. Donnez le temps de C à 64000 en secondes, au dixième.
Voir la correction
Réponse
b)B : 24,6 ms puis 98,4 ms. C : 6216 ms puis 99456 ms, soit 99,5 s
b) Pour B, chaque doublement multiplie par 2 : 12,3×2=24,6 ms à 16000, puis 24,6×2×2=98,4 ms à 64000, deux doublements plus loin. Pour C, chaque doublement multiplie par 4 : 1554×4=6216 ms à 16000, puis 6216×16=99456 ms à 64000, soit environ 99,5 secondes. On passe donc de moins de deux secondes à plus d'une minute et demie pour huit fois plus de données. Le piège est de multiplier par 8 au lieu de 4×4 : trois doublements se traduisent par 23 pour un linéaire et par 43 pour un quadratique, jamais par la même valeur.
Chapitre 4 · Traitement de données en tables et types construits
Le schéma oppose deux situations qui s'écrivent presque de la même façon et ne font pas du tout la même chose. C'est l'erreur la plus coûteuse du chapitre, parce qu'elle ne provoque aucun message : le programme donne simplement un résultat faux.
c) Une table est une liste de dictionnaires. On écrit copie = list(table) puis copie[0]['nom'] = 'X'. La table d'origine est-elle modifiée ? Justifiez précisément.
Voir la correction
Réponse
c)Copie de surface : table modifiée
c) Oui, la table d'origine EST modifiée. list(table) construit bien une nouvelle liste, mais ses cases contiennent les MÊMES dictionnaires que l'original : on a copié le contenant, pas les contenus. copie[0] et table[0] désignent donc le même dictionnaire, et lui ajouter ou changer une clé se voit des deux côtés. C'est précisément le piège : le programmeur croit avoir protégé ses données parce qu'il a écrit une copie, alors qu'il n'a dupliqué qu'un niveau.
Un producteur veut trier automatiquement des fruits. Chaque fruit est décrit par un couple (largeur, hauteur) mesuré en millimètres. La table d'exemples contient cinq fruits dont on connaît la nature : trois pommes A, D, E et deux poires B, C. Un nouveau fruit N, de largeur 70 mm et de hauteur 75 mm, arrive sur le tapis.
Coordonnées : A (76;75), B (67;79), C (64;83), D (82;70), E (70;67). On compare deux distances entre deux points (x;y) et (x′;y′) : la distance euclidienne (x−x′)2+(y−y′)2, « à vol d'oiseau », et la distance de Manhattan ∣x−x′∣+∣y−y′∣, celle d'un trajet qui suit le quadrillage.
b) Calculez la distance de Manhattan de N à chacun des cinq fruits.
Voir la correction
Réponse
b)A : 6, B : 7, C : 14, D : 17, E : 8
b) La distance de Manhattan additionne les valeurs absolues des écarts : A 6+0=6, B 3+4=7, C 6+8=14, D 12+5=17, E 0+8=8. Le nom vient des rues à angle droit d'une ville quadrillée : pour aller d'un carrefour à un autre, on ne traverse pas les pâtés de maisons en diagonale, on suit les rues. La valeur absolue est indispensable ; sans elle, les écarts de B, −3 et +4, se compenseraient et donneraient 1, une distance absurdement petite. Ce piège revient en Python à l'exercice 2.
Chapitre 6 · Interactions homme-machine sur le Web
Une page web n'est pas un texte : c'est un ARBRE de balises, que le navigateur construit à la lecture et que le script manipule ensuite. Tout le chapitre découle de cette structure.
b) Donnez la racine de l'arbre, les feuilles, la profondeur de l'élément button, et le nombre de frères et soeurs de l'élément form.
Voir la correction
Réponse
b)4 feuilles, profondeur 3, un frère
b) La racine est html. Les feuilles, c'est-à-dire les éléments sans fils, sont title, h1, input et button. La profondeur de button est 3 si l'on compte la racine au niveau 0 : html, puis body, puis form, puis button. L'élément form a un seul frère, h1, puisque body a deux fils.
Chapitre 7 · Architectures matérielles, systèmes et réseaux
Un ordinateur ne connaît que des suites de bits. Tout le reste, entiers positifs, entiers négatifs, adresses, couleurs, est une CONVENTION d'interprétation de ces suites, et c'est la convention qu'il faut connaître. Le schéma ci-dessous représente l'octet et les deux programmes qui le lisent.
b) La suite 11010011 est lue par deux programmes différents, l'un qui l'interprète comme un entier naturel, l'autre comme un entier relatif en complément à deux. Donnez les deux valeurs.
Voir la correction
Réponse
b)211 ou −45 selon la convention
b) Comme entier naturel, 11010011 vaut 128+64+16+2+1=211. Comme entier relatif en complément à deux, le bit de poids fort valant 1, le nombre est négatif : sa valeur est 211−256=−45. On peut aussi le retrouver en inversant tous les bits, ce qui donne 00101100 soit 44, puis en ajoutant 1 pour obtenir 45, et en mettant le signe moins. La même suite de huit bits vaut donc 211 ou moins 45 selon la seule convention retenue, et rien dans la mémoire ne dit laquelle est la bonne.
Ton tableau de bord range chaque chapitre selon tes réponses et te dit par où commencer. Une date d'examen en tête ? Note-la sur la carte du cours : il en tire un plan, jour après jour.