Author: Vincent ROBERT

NumApps

Colors en python, NumWorks

Colors est un utilitaire conçu pour votre calculatrice, dont l’objectif est de vous fournir une interface simple, ergonomique, et complĂšte, permettant d’afficher des rendus de couleur via le format RGB de cette couleur ! Vous avez besoin de violet pour effectuer votre plus belle rosace avec Turtle ? Vous ne connaissez pas le format RGB du violet ? Parfait ! Lancez Colors !

Fonctionnalités

  • Affichage du format hexadĂ©cimal et RGB de la couleur dĂ©finie
  • Choix de teintes adaptĂ©es proposĂ©es automatiquement
  • Support du pavĂ© numĂ©rique
  • SystĂšme d’impulsion intelligent, pour des dĂ©placements rapides et prĂ©cis

Captures d’Ă©cran

Commandes

△ et ▜◁ et ▷Chiffres
NaviguerModifier / RéglerChoisir / Se déplacer

Pour aller plus loin

Si vous souhaitez en savoir davantage sur le fonctionnement et le dĂ©veloppement de cet utilitaire, vous pouvez lire l’article de prĂ©sentation : Le projet Colors en python sur NumWorks

Télécharger

Nous vous proposons 2 liens distincts, le premier est le lien vers la source du crĂ©ateur de l’application, le deuxiĂšme est un lien alternatif en cas de problĂšme. Seul le premier lien garanti de disposer de la derniĂšre version de l’application.

Tutoriels

Développer une application pour la NumWorks sur un vrai


Vous avez dĂ©cidĂ© de crĂ©er un script python et de porter ce script sur la couche graphique de la calculatrice NumWorks, vous serez vite limitĂ© par my.numworks.com qui ne propose qu’une interface trĂšs limitĂ© de dĂ©veloppement.

Si vous codez un script python qui n’exploite que la console, vous pouvez le dĂ©velopper sur n’importe quel outil puis simplement copier / coller votre script dans votre espace de stockage en ligne proposĂ© par NumWorks sur my.numworks.com/python/

Si vous souhaitez d’exploiter des modules propriĂ©taires de la calculatrice NumWorks, tels que ion (gestion du clavier) ou kandinsky (pour gĂ©rer l’Ă©cran pixel par pixel) alors tout est plus compliquĂ©, enfin tout Ă©tait plus compliquĂ© !

Il Ă©tait une fois le workshop …

Le site officiel de NumWorks qui hĂ©berge les script s’appelle dĂ©sormais my.numworks.com mais au dĂ©part, il y a fort longtemps, on parlait du workshop, il Ă©tait accessible en ligne depuis cette adresse workshop.numworks.com et proposait une interface de programmation primitive, qui n’a malheureusement que peu Ă©voluĂ© depuis 2017.

Si vous aimez les ascenseurs vous allez adorer cette interface de programmation !

Pas pratique, pas collaborative, bogué, bref on y a codé des jeux et ce fut épique.

La révolution Omega et son IDE en ligne

Le dĂ©veloppement de petits jeux sur la NumWorks a Ă©tĂ© rendu possible par la sortie de la version 13 officielle, et lorsque nous avons commencĂ© Ă  faire des jeux, comme le dĂ©mineur nous avons trĂšs vite suggĂ©rĂ© l’idĂ©e de rendre possible de dĂ©veloppement des projets avec Kandinsky sur PC sans passer par l’interface officielle de NumWorks.

En septembre 2020, l’Ă©quipe de Omega (un fork de Epsilon, l’Os de la calculatrice) lançait un IDE en ligne. Il est toujours utilisable Ă  l’adresse https://getomega.dev/ide mais il nĂ©cessite un compte GitHub, car les fichiers .py qui y seront crĂ©es seront enregistrĂ©s sur GitHub.

Pour l’avoir utilisĂ© et exploitĂ© avec les Ă©lĂšves en octobre / novembre 2020 pour leurs projets de spĂ©cialitĂ©s NSI, nous pouvons certifier que c’est un superbe outil et une belle amĂ©lioration du workshop officiel.

Notre jeu Tetris a été développé sans cet IDE, tout aurait été tellement plus simple avec !

Le talent n’attend pas le nombre des annĂ©es

Un développeur du nom de ZetaMap , lycéen en terminale STI2D option SIN au lycée Vauban de Brest a codé deux modules pour nous faciliter la vie :

Il est dĂ©sormais possible d’utiliser un IDE classique (testĂ© uniquement sous Windows) pour dĂ©velopper sur la NumWorks :

Ici le jeu Factors,, il tourne sur un PC alors qu’il exploite des modules spĂ©cifiques de la NumWorks.

Comment installer les modules de la NumWorks sur Thonny

Thonny est un IDE léger, simple et excellent pour débuter en python.

Nous allons voir ici comment installer des modules simplement sur Thonny, c’est-Ă -dire en se passant des traditionnels pip install dans un terminal.

Tout d’abord, il vous faut ouvrir Thonny, cela va de soit, ensuite accĂ©der Ă  l’onglet « Tools » ou « Outils » (selon votre langue), puis Ă  la section « Manage packages… » ou « GĂ©rer les paquets… ». Enfin, il suffit plus que de rechercher les modules « kandinsky » et « ion-Numworks » et de les installer !

Comment installer les modules de la NumWorks sur PyCharm

PyCharm est un IDE un peu lourd, mais trĂšs complet. Il peut ĂȘtre notamment utile si vous gĂ©rez des projets avec Git.

Nous allons donc voir ici comment installer des modules encore une fois simplement sur PyCharm, c’est-Ă -dire en se passant des traditionnels pip install dans un terminal.

Tout d’abord, il vous faut Ă©videmment ouvrir PyCharm, ensuite accĂ©der Ă  l’onglet « File », puis aux options « Settings ». À prĂ©sent, rendez-vous dans la catĂ©gorie « Python Interpreter » dans votre Projet « Project: <project_name> ». DĂ©sormais, pour installer un module, appuyez sur le bouton « + » :

il suffit plus que de rechercher les modules « kandinsky » et « ion-Numworks » et de les installer !

Comment exploiter les modules ainsi installés

Pour exploiter les modules, rien de plus simple, il faut seulement les importer dans votre code :

from kandinsky import *
from ion import *

Votre code sera donc compatible avec votre IDE et la calculatrice, sans aucune modification requise.

Bugs et limite du portage de la premiĂšre version stable 1.9

Évidemment, cette technique n’est pas sans limite. Notamment, si vous utilisez Turtle en plus de kandinsky. En installant ces deux modules et en les utilisant, deux Ă©mulateurs graphiques s’ouvriront, un exploitant kandinsky, et l’autre Turtle. C’est pour ça qu’il est dĂ©conseillĂ© d’utiliser les deux en mĂȘme temps, utiliser soit l’un soit l’autre.

De plus, est Ă  Ă©viter de changer de fenĂȘtre pendant l’exĂ©cution du programme, cela risque de freeze l’Ă©mulateur :

Si vous souhaitez discuter de cet émulateur, faire remonter des bugs ou juste dire merci à son concepteur, tiplanet.org a bien voulu nous créer un salon dédié sur le serveur discord.

Lien direct vers ce salon : https://discord.gg/bBM7mgucjF

Utiliser une version 2.4 dev1 ou ultérieur

Le bug du freeze est corrigé, nous utilisons actuellement la version 2.4dev1 et tout fonctionne trÚs bien.

Depuis le gestionnaire de paquet de Thonny, il suffit de cliquer sur les … pour choisir la version Ă  installer.

Il est possible de choisir la version installée simplement, choisissez la pilule verte !
La « version stable » 1.9 est paradoxalement moins stable que la « version de développement » 2.4dev1.

Un exemple de rendu

NumApps

Factors en python, NumWorks

Un jeu qui mettra vos méninges au défi ! Sur Factors, vous ne devez pas réfléchir à comment vous allez pouvoir faire pour augmenter cette foutue moyenne générale, mais au contraire comment la baisser !

RĂšgles du jeu

Avec une variante des rĂšgles de base de la division, Factors est un jeu de mathĂ©matiques amusant conçu pour ĂȘtre facile Ă  comprendre, mais qui met de plus en plus Ă  l’épreuve vos compĂ©tences mentales en mathĂ©matiques Ă  mesure que vous progressez dans les niveaux.
DĂ©placez votre numĂ©ro vers la droite Ă  travers la grille des numĂ©ros pour vous rapprocher le plus possible de 1. Mais attention, si la division de vos nombres ne forment pas un nombre entier, ils s’additionnent !
Votre objectif est de maintenir votre moyenne globale aussi basse que possible !

Ce jeu est une adaptation du jeu original Factors Game.

Fonctionnalités

  • Support des couleurs des systĂšmes d’exploitations Epsilon et Omega
  • RĂ©initialisation des mouvements pendant un niveau
  • Menu de sĂ©lection du niveau
  • Stockage du meilleur score de chaque niveau
  • Sauvegarde de sa progression
  • Et bien plus


Captures d’Ă©cran du jeu

Commandes

△ et ▜▷◁OKAns
NaviguerAccéder / CalculerRéinitialiser / MenuSauvegarder / ChargerQuitter le programme

Pour aller plus loin

Si vous souhaitez en savoir davantage sur le fonctionnement du jeu, vous pouvez lire l’article de prĂ©sentation : Factors Game en python sur NumWorks

Télécharger

Nous vous proposons 2 liens distincts, le premier est le lien vers la source du crĂ©ateur de l’application, le deuxiĂšme est un lien alternatif en cas de problĂšme. Seul le premier lien garanti de disposer de la derniĂšre version de l’application.

NumApps

Le jeu 2048, sur ta NumWorks !

2048 est un jeu vidéo de type puzzle conçu en mars 2014 par le développeur indépendant italien Gabriele Cirulli et publié en ligne sous licence libre. La version présenté ici est le portage du jeu, réalisé par Eric Schrafstetter et légÚrement modifiée par nos soins pour un rendu sublimé sur la NumWorks.

Portage du jeu, en python, sur NumWorks

Eric Schrafstetter est le premier a voir portĂ© ce jeu sur la calculatrice NumWorks, ce jeu nĂ©cessite une version Epsilon 13 ou supĂ©rieur installĂ© sur la calculatrice. En effet, la version 13 de l’OS de cette calculatrice Ă  permis le dĂ©veloppement de jeux car il Ă©tait dĂ©sormais possible de rĂ©cupĂ©rer les touches du clavier saisies.

PubliĂ© le premier avril 2020, la premiĂšre version de ce programme a Ă©tĂ© suivie par une version amĂ©liorĂ©e proposĂ©e le 30 juillet 2021. Nous avons dĂ©couvert ce jeu fin dĂ©cembre 2021, et avons dĂ©cidĂ© de l’amĂ©liorer afin de proposer une expĂ©rience joueur amĂ©liorĂ©e.

La version 2 de Eric Schrafstetter

La version modifié par nos soins

Modifications réalisées par nos soins

  1. La grille a Ă©tĂ© centrĂ©e et la bordure Ă©paisse rĂ©duite, on conserve l’effet « ombre » sans Ă©craser la grille.
  2. Le score a Ă©tĂ© dĂ©placĂ©, il est moins visible pendant la partie, l’interface prĂ©sente une symĂ©trie visuelle et la modification du score n’attire pas l’Ɠil.
  3. Les micros-lags ont Ă©tĂ© supprimĂ©s. Dans la version d’origine, la grille Ă©tait entiĂšrement effacĂ©e puis reconstruite ce qui gĂ©nĂ©rait un affichage hachĂ© avec un effet de rafraichissement pas agrĂ©able. Le jeu est du coup plus fluide, plus agrĂ©able Ă  utiliser.
  4. Une détection de la fin de partie a été implémentée, si la grille est remplie et que 4 touches sont pressées sans que rien ne se passe, on signale au joueur que la partie est terminée.

Une vidéo de présentation du codage

Si le codage de ce jeu vous intĂ©resse, la vidĂ©o de son auteur est incontournable. 😍

Commandes

Le jeu se joue simplement avec les touches fléchées de la calculatrice.

Télécharger

Des liens vers les version 1 et 2 du jeu, celle de Eric Schrafstetter sont au début de cet article. Nous vous proposons de tester la version modifiée par nos soins :

Tutoriels

Débuter et découvrir python 3

Python est un langage de programmation simple d’usage qui sera utilisĂ© en mathĂ©matiques ainsi qu’en spĂ©cialitĂ© NSI ( NumĂ©rique et Sciences Informatiques ) lors d’activitĂ©s algorithmiques. PrĂ©sentation d’un document exploitĂ© en classe de seconde.

Un triptyque Ă  imprimer en couleur ou N&B

Le dĂ©pliant 3 volets a Ă©tĂ© conçu pour ĂȘtre imprimĂ© en couleur puis pliĂ©. Un trait de pliage discret mais prĂ©sent permet de rĂ©ussir le pliage roulĂ©, c’est Ă  dire que le document se replie sur lui mĂȘme et ce dans un mĂȘme sens.

Document au format natif Google Document,
ils s’ouvrent dans un navigateur web, ont Ă©tĂ© optimisĂ© pour une impression en couleur ou N&B

Si vous avez un compte Google, vous pouvez créer une copie rapidement de ce document pour le modifier.
Fichier > Créer une copie

Pour l’impression, il est conseillĂ© de rĂ©aliser un PDF au prĂ©alable :
Fichier > Télécharger > Document PDF (.pdf)
puis d’ouvrir ce document dans Adobe Acrobat Reader et de l’imprimer avec les paramĂštres suivants :
Page 1-2 | Taille réelle | Recto verso : Retourner sur les bords courts | Paysage

ScĂ©nario d’utilisation du document.

Ce document sera testĂ© une premiĂšre fois Ă  la rentrĂ©e 2021 en classe de seconde. Autant rien ne va marcher 😅
Pour avoir un retour, il vous suffira de consulter ce compte twitter à la rentrée 2021.

Ce document parait incomplet, il y a des trous et l’un des scripts ne semble pas produire le rĂ©sultat attendu.
Ce document sera accompagnĂ© de consignes, il s’inscrira dans le cadre d’un travail de groupe.
Le travail de groupe permet aux Ă©lĂšves de s’entraider, au lieu de gĂ©rer 38 Ă©lĂšves qui ont chacun un problĂšme diffĂ©rent, il y a « juste » 10 groupes Ă  superviser.

Travail préalable :
Les élÚves doivent télécharger les scripts start.py et sapin.py sur leur calculatrice NumWorks.
Les élÚves doivent saisir manuellement le script ce2.py dans leur calculatrice NumWorks.

Travail de groupe :
En cours de création. Ne sera pas rendu accessible via un lien public. Contactez moi si ce document vous intéresse.

  • Leur demander de tester les opĂ©rateurs mathĂ©matiques, d’affectation et de comparaison dans la console python de leur calculatrice puis complĂ©ter les tableaux proposĂ©s.
  • Tester les diffĂ©rentes fonctions proposĂ©es dans start.py, les exĂ©cuter avec diffĂ©rents paramĂštres.
  • Modifier le script sapin pour obtenir le rendu proposĂ©.
  • CrĂ©er un premier script

Contributeurs

Ce document sous licence cc by sa intĂšgre des contributions d’Ă©lĂšves et / ou d’enseignants.

Le script turtle est l’Ɠuvre de Cyril D, Ă©lĂšve de seconde en 2020 – 2021, il a Ă©tĂ© rĂ©alisĂ© dans le cadre d’un devoir maison intitulĂ© « Les mathĂ©matiques sont belles« . Ce script est prĂ©sentĂ© ici : Dessine moi un Open Badge

from turtle import *
liste = ["pink", "red", "orange", "yellow", "green", "blue", "purple"]
for i in range(3*42) :
  color(liste[i%7])
  pensize(12)
  forward(i)
  left(59)

Le sapin est un grand classique du genre, un dessin en Art ASCII, proposé initialement ainsi :

# sapin.py
ligne = 1
max = 6
while ligne < max:
    n = max - ligne
    s = 2 * ligne - 1
    print(" " * n + "#" * s)
    ligne +=1
print(" " * (max - 1) + "#")

il a été amélioré par un enseignant sur twitter, et la fusion des deux script a donné ceci :

# sapin.py
hauteur = 6
diese = 1
espace = hauteur - diese
 
while espace > 0:
    print(" " * espace + "#" * diese )
    espace -= 1
    diese += 2
 
print(" " * (hauteur - 1) + "#")

Les fonctions hypotenuse() et reponse() ont été imaginée et construite par Kevin Fedyna.

from math import sqrt

def hypothenuse(a, b):
    # ThéorÚme de Pythagore
    c = sqrt(a ** 2 + b ** 2)
    # La fonction renvoie le résultat
    return c
 
def reponse(n):
    return n == 42 

Débogage

Merci pour les erreurs que vous m’avez signalĂ©s, elle ne peuvent pas ĂȘtre corrigĂ©es sur l’image diffusĂ©e ici mais elles sont prise en compte presque en temps rĂ©el dans le document final. N’hĂ©sitez pas Ă  rĂ©pondre Ă  ce message twitter si vous constatez d’autres erreurs.

Tutoriels

Comment exécuter un script python

Que vous soyez en spécialité NSI, un lycéen français ou simplement un curieux désireux de tester un script python, voici quelques solutions simples pour exécuter un script python.

Voici un code python trĂšs simple. Quel est le rĂ©sultat produit par l’exĂ©cution de ce code ?

''' python3 Hello World ! '''
message = [72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33] 
for nb in message:
    print(chr(nb), end="")
print("\n"+" " * 42, ord("*"))
#spé nsi

Thonny, un IDE simple Ă  utiliser.

Sur Windows, Mac ou Linux il existe un IDE trĂšs simple et facile Ă  utiliser. On le tĂ©lĂ©charge depuis le site officiel thonny.org, on peut l’installer sur un compte utilisateur sur Windows et on peut le personnaliser avec des thĂšmes pour obtenir une coloration syntaxique Ă  son goĂ»t.

Thonny avec le thĂšme Clean Dark Blue et la coloration syntaxique Dracula.

Il suffit de copier / coller le script dans l’Ă©diteur de script, de l’enregistrer, puis de cliquer sur le bouton d’exĂ©cution du script (ou sur son raccourci clavier [F5]) pour obtenir le rĂ©sultat de l’exĂ©cution dans la console.

On peut bien évidemment utiliser la console pour tester rapidement du code python ou interroger le contenu des variables.

Thonny est un logiciel libre, gratuit, sous licence MIT.

Basthon, un IDE en ligne respectueux de votre vie privée

Basthon est l’acronyme de « Bac À Sable pour pyTHON« . Il s’agit un IDE en ligne, accessible sans aucune installation prĂ©alable, donc utilisable si vous disposez d’un navigateur internet. Vous pouvez l’utiliser en ligne, en Ă©tant connectĂ© Ă  internet ou simplement en tĂ©lĂ©chargeant et dĂ©compressant une archive zip.

Basthon est :

Tester le mode console de Basthon

Depuis le site officiel ou depuis notre site. Seul le premier lien vous garanti de disposer de la dernier version de Basthon.

NumApps

Des simulateurs web pour la NumWorks

Le logiciel de la NumWorks est sous licence Creative Commons, ce qui autorise la modification du code de la calculatrice et sa redistribution en respectant quelques rĂšgles.

Le simulateur officiel de la NumWorks

Un simulateur web construit sur du HTML, CSS et Javascript est proposĂ© en ligne, gratuitement sur le site officiel de la calculatrice, il est prĂ©sentĂ© comme un outil idĂ©al pour les dĂ©monstrations en classe et c’est une rĂ©alitĂ©.

  • Il est gratuit,
  • Il est accessible en ligne et hors ligne (tĂ©lĂ©chargeable gratuitement),
  • Il gĂšre le mode plein Ă©cran pour un usage au vidĂ©oprojecteur,
  • il est responsive et s’adapte Ă  la taille de votre Ă©cran,
  • il gĂšre l’enregistrement de la session et le partage de celle-ci par lien
    (cette derniĂšre fonctionnalitĂ©s n’est pas encore parfaitement stable Ă  la date du 27 avril 2021)

En ligne : https://www.numworks.com/fr/simulateur/

Les simulateurs modifiés de la NumWorks

Nous vous proposons 3 simulateurs web légÚrement modifiés de la NumWorks.

Pour un usage en ligne, nous les avons hébergé sur des sous domaines de ce site web.

Epsilon simulateurOmega simulateurPsi simulateur
epsilon.nsi.xyzomega.nsi.xyzpsi.nsi.xyz
Image modifiée par nos soins
Patché par Joachim Le Fournis
Simulateur officiel de Omega
https://getomega.dev/releases
Dérivé du projet NSIos
Gabin P. et Raphaël C.

Et parce que vous souhaitez peut-ĂȘtre changer d’ambiance un menu de navigation vous permet de passer de l’un des simulateurs Ă  l’autre.

Patchs sur le simulateur epsilon

Quelques modifications ont été apportées au simulateur epsilon.nsi.xyz par rapport au simulateur officiel du constructeur de la calculatrice.

  1. L’image de la calculatrice a Ă©tĂ© modifiĂ©e pour avoir un rendu plus flat, pas parfait mais suffisant pour nous permettre de faire les captures d’Ă©cran que nous utilisons pour notre sĂ©lection NumApps.
  2. Le fond d’Ă©cran Ă  Ă©tĂ© modifiĂ© pour la mĂȘme raison.
  3. Les scripts natifs ont Ă©tĂ© effacĂ©s, il ne doivent donc pas ĂȘtre dĂ©sactivĂ©s ou supprimĂ©s manuellement Ă  chaque fois
  4. La taille des copiés / collés de scripts python externe à été porté à 16 ko contre environ 8 ko pour la version officielle.

Ces modifications codĂ©es par Jaochim Le Fournis nous permettent d’importer via un simple CTRL + V un script python rapidement et facilement, et ce sans se soucier des scripts python dĂ©jĂ  prĂ©sents, ni de la taille du script.

Design non flat / Design flat

DS

Banque des sujets de spécialité NSI

Les Ă©preuves communes de spĂ©cialitĂ©s NSI, qu’il s’agisse des Ă©preuves Ă©crites et des Ă©preuves pratiques sont publiĂ©es sous une licence libre. Vous pouvez donc librement les tĂ©lĂ©charger pour vous entrainer et prĂ©parer au mieux ses examens.

Le site officiel quandjepasselebac

Vous pouvez trouver les sujets de NSI sur le site officiel du gouvernement :
http://quandjepasselebac.education.fr/revisions-la-banque-nationale-de-sujets/

En date du 26 avril 2021, ce site refuse une connexion HTTPS et il n’est pas possible de faire une lien direct stable vers les sujets d’une matiĂšre en particulier, aussi vous devrez trouver les sujets par vous mĂȘme :

Bac gĂ©nĂ©ral > Sujet de premiĂšre > Enseignements de spĂ©cialitĂ© > …
Bac gĂ©nĂ©ral > Sujet de terminale > Enseignements de spĂ©cialitĂ© > …

Le site officiel Eduscol

Vous y trouverez la banque des sujets des épreuves pratiques de spécialité NSI (Numérique et Sciences Informatiques) de la session 2021.

https://eduscol.education.fr/2661/banque-des-epreuves-pratiques-de-specialite-nsi

Le site ccbac.fr

CCBac.fr est le site gratuit de rĂ©fĂ©rence sur les Ă©preuves de ContrĂŽle Continu E3C du BaccalaurĂ©at, il n’est pas affiliĂ© Ă  l’Éducation Nationale. Il a l’avantage de proposer des adresses web stables et un bouton pour tĂ©lĂ©charger rapidement tous les sujets pour l’annĂ©e 2021.

ClasseExamenannéeLien
1ĂšreEC22020https://ccbac.fr/list.php?session=2&voie=1&mat=26&opt=0&an=2020
1ĂšreEC22021https://ccbac.fr/list.php?session=2&voie=1&mat=26&opt=0&an=2021

Ce site ne contient par contre pas les Ă©preuves pratiques de spĂ© NSI ni les Ă©preuves de bac. Le sujet 0 de l’Ă©preuve de baccalaurĂ©at de spĂ© NSI est ci-dessous au format PDF.

Et les corrigés ?

Des Ă©lĂšves ont rĂ©digĂ© sur ce site le corrigĂ© de l’Ă©preuve 42 des E3C de l’annĂ©e 2020 : Correction du sujet n°42 de la BNS des E3C de NSI, pour le reste il va falloir faire chauffer votre moteur de recherche favoris, quel qu’il soit.

DS

Correction du sujet n°42 de la BNS des E3C


Dans le cadre de l’évaluation en contrĂŽle continu, les Ă©lĂšves Ă©tudiant la spĂ©cialitĂ© NSI passent des Ă©preuves de de contrĂŽle continu lors du troisiĂšme trimestre de leur annĂ©e de premiĂšre. AnnulĂ©e en 2020, les E3C ont Ă©tĂ© renommĂ©es EC en 2021 et Ă©galement annulĂ©es.

Les sujets des années précédentes sont publics

Parmi ces 51 sujets de 42 questions, nous vous proposons la correction du sujet n°42. Cette correction a été entiÚrement préparé et rédigé sur ce site web par nos élÚves de la spécialité NSI du lycée Louis Pasteur.
Les sujets sont sous licence CC BY-NC-SA 3.0 FR, le prĂ©sent corrigĂ© est sous la mĂȘme licence.
Chaque sujet comporte donc 42 questions. (Pourquoi 42 ? Il faut faire spĂ© NSI pour comprendre )

Modalités pratiques

L’épreuve consiste en 42 questions, rangĂ©es en 7 thĂšmes. Le candidat :

  • gagne 3 points s’il choisit la bonne rĂ©ponse, 
  • perd 1 point s’il choisit une rĂ©ponse fausse,
  • ne gagne ni ne perd aucun point s’il ne rĂ©pond pas ou choisit plusieurs rĂ©ponses.

Le total sur chacun des 7 thĂšmes est ramenĂ© Ă  0 s’il est nĂ©gatif.

La note finale s’obtient en divisant le total des points par 6,3 et en arrondissant Ă  l’entier supĂ©rieur.

ThĂšme A : types de base

Question A.1

Olivier visite son site préféré pour relire le programme de NSI.
Il devrait lire le texte ci-dessous :

L’enseignement de spĂ©cialitĂ© de numĂ©rique et sciences informatiques du cycle terminal de la voieRetour ligne automatique
gĂ©nĂ©rale vise l’appropriation des fondements de l’informatique pour prĂ©parer les Ă©lĂšves Ă  uneRetour ligne automatique
poursuite d’études dans l’enseignement supĂ©rieur, en les formant Ă  la pratique d’une dĂ©marcheRetour ligne automatique
scientifique et en développant leur appétence pour des activités de recherche.

Le paramĂ©trage de son navigateur lui donne l’affichage ci-dessous :

Lñ€ℱenseignement de spécialité de numérique et sciences informatiques du cycle terminalRetour ligne automatique
de la voie générale vise lñ€ℱappropriation des fondements de lñ€ℱinformatique pourRetour ligne automatique
préparer les élÚves à une poursuite dĂąâ‚Źâ„ąĂƒÂ©tudes dans lñ€ℱenseignement supérieur, enRetour ligne automatique
les formant à la pratique dñ€ℱune démarche scientifique et en développant leur appétenceRetour ligne automatique
pour des activités de recherche.

Quel type d’encodage Olivier doit-il choisir dans les paramĂštres de son navigateur pour afficher correctement le texte ?

Réponses

A ANSI
B LATIN-1
C UTF-8
D ASCII

Correction : RĂ©ponse C

L’auteur de cette question travaillait peut-ĂȘtre Ă  l’Agence Nationale de la SĂ©curitĂ© des SystĂšmes d’Information (ANSI), il surement du au prĂ©alable Ă©tudier le codage ASCII qui date de 1963 et ne concerne donc pas le codage des caractĂšres d’une page web. Seul les standards ISO 8859-1 (autre nom de LATIN-1) ou UTF-8 sont utilisĂ©s sur le web. C’est dĂ©sormais en UTF-8 que sont dĂ©sormais codĂ©s les pages web.

Question A.2

Quel est le nombre maximal de bits du produit de deux entiers positifs codĂ©s sur 8 bits ?

Réponses

A 8
B 16
C 32
D 64

Correction : RĂ©ponse B

Sachant que sur le maximum codĂ© peut ĂȘtre de 8, 8 x 8 = 64. Ingenious ?
Sur 8 bits, le plus grand entier en base 10 est 2^8-1 = 255.
255 x 255 = 65 025‬
Sur 16 bits, le plus grand entier en base 10 est 2^16-1 = 65 535
Ainsi, 16 bits suffiront.

Question A.3

À quelle affectation sont Ă©quivalentes les instructions suivantes, oĂč a, b sont des variables entiĂšres et c une
variable boolĂ©enne ?

c = False
if a==b:
c = True
if a > b+10:
c = True

Réponses

c = (a==b) or (a > b+10)
c = (a==b) and (a > b+10)
c = not(a==b)
c = not(a > b+10)

Correction : RĂ©ponse A

Car si a est Ă©gal Ă  b, alors le boolĂ©en c devient True et si a est supĂ©rieur Ă  b+10, le boolĂ©en c devient Ă©galement True. Or ces deux conditions ne sont pas dĂ©pendent l’une de l’autre, de plus la porte or est true si les deux condition sont vrai mais si l’une des deux devient fausse, le boolĂ©en aussi.

Question A.4

Quelle est la reprĂ©sentation binaire de l’entier 152 ?

Réponses

A 0001 1001
B 0011 1010
C 0100 0100
D 1001 1000

Correction : RĂ©ponse D

Le premier 1 vaut 128, vous enlevez donc 128 Ă  152, il vous reste donc 24, ensuite il y a 64 et 32 qui sont 0, ensuit un 1 qui vaut 16, 24 – 16 = 8. Pile la valeur du 3Ăšme 1 : magique non ?

Question A.5

Soient P et Q deux formules logiques telles que P est vraie et Q est fausse. Quelle est la valeur de l’expression (P ET Q) OU (NON(P) OU Q) ?

Réponses

A vraie
B fausse
C ni vraie, ni fausse
D vraie et fausse en mĂȘme temps

Correction : RĂ©ponse B

Ici et P est donc True et Q est False, or la premiere porte ET prend le « plus fort », donc False car si l’un des deux est False l’ensemble aussi, pour la troisiĂšme porte qui est OU, elle prend le False comme plus fort et comme NON(P) est False, alors l’ensemble aussi. La deuxiĂšme porte qui est OU on refait le mĂȘme raisonnement. CQFD.

Question A.6

On rappelle que le nombre entier 12 s’écrit 1100 en base 2. Quelle est le codage en complĂ©ment Ă  2 sur un octet du nombre entier −12 ?

Réponses

A -0000 1100
B 1000 1100
C 1111 0100
D 1111 0011

Correction : RĂ©ponse C

Ici nous pouvons dĂ©jĂ  supprimer A car l’ordinateur ne comprend pas les -… Pour un nombre nĂ©gatif, nous devons placer un 1 en premiĂšre positions (Ă  gauche pour les lecteurs de manga), nous pouvons Ă©galement supprimer D car le dernier 1 signifie que c’est un nombre impaire. Il nous reste B et C 
Il est d’ailleurs conseillĂ© par vos professeurs de NSI d’apprendre par coeur les entiers compris entre [-127 ; 127] en binaire pour l’examen de fin d’annĂ©e.
Si vous ne les avez pas appris, il suffit d’appliquer la mĂ©thode : 
0000 1100 = 12
1111 0011 On inverse les bits
1111 0100 Plus 1 !

ThĂšme B : types construits

Question B.1

On considĂšre le code suivant :
D = ["a" : "1", "2" : "a", "b" : "a", "c" : "3"]
Que vaut D["a"] Ă  la fin de l’exĂ©cution ?

Réponses

"1"
2
["2", "b"]
["1", "3"]

Correction : RĂ©ponse A

ici nous faisons une recherche dans le tableau grùce à la clé « a » qui est associé à « 1 ».

Question B.2
Quelle expression Python a pour valeur la liste [1,3,5,7,9,11] ?
Réponses
 
[2*i - 1 for i in range(6)]
[2*i + 1 for i in range(6)]
[2*i + 1 for i in range(5)]
[2*i - 1 for i in range(7)]
 
Correction : RĂ©ponse B
 
Question sĂ©rieuse ! On gĂ©nĂšre un tableau contenant 6 valeurs, donnĂ©es par 2*i + 1 avec i un entier entre 0 et 5 ! Oui oui, entre 0 et 5 il y a 6 valeurs.

Question B.3
 
On exĂ©cute l’instruction suivante :

T = [ [12,13,14,15], [24,25,26,27],[35,36,49,33], [61,53,55,58] ]

Quelle expression parmi les quatre suivantes a pour valeur 26 ?
 
Réponses
 
T[1][2]
T[2][1]
T[2][3]
T[3][2]
 
Correction : RĂ©ponse A
 
En premier temps nous cherchons la valeur 26 dans le tableau. Une fois trouvĂ©, nous constatons qu’il se trouve dans le deuxiĂšme « sous tableau », et qu’il est en troisiĂšme position, comme la Croatie en 98… Or les tableau indexĂ©s commencent par le valeur 0, donc deuxiĂšme position devient la premiĂšre et la troisiĂšme position devient 2Ăšme, comme cette fois ci en 2018 pour nos Kockasti… la rĂ©ponse est donc T[1][2].

Question B.4
 
Quelle expression permet d’accĂ©der Ă  la valeur 'hello' aprĂšs qu’on a dĂ©fini L = [['a','b','c'],['bonjour','hello']]
 
Réponses
 
L[5]
L[1][1]
L[2][2]
L['hello']
 
Correction : RĂ©ponse B
 
Idem question prĂ©cĂ©dente, le « hello » – Ă  prononcer absolument avec l’accent British sinon vous ne progresserez jamais en NSI – se trouve dans le deuxiĂšme tableau en deuxiĂšme position, sachant qu’il est indexĂ© Ă  partir de 0, l’expression pour retrouver « hello » est L[1][1].

Question B.5

On exĂ©cute le script suivant :

inventaire = {'pommes': 430, 'bananes': 312,
 'oranges' : 274, 'poires' : 137}
stock = 0
for fruit in inventaire.keys():
 if fruit != 'bananes':
 stock = stock + inventaire[fruit]

Que contient la variable stock Ă  la fin de cette exĂ©cution ?

Réponses

{430, 274, 137}
312
841
{ 'pommes', 'oranges', 'poires' }

Correction : RĂ©ponse C

Dans le dictionnaire inventaire, le script va rĂ©cupĂ©rer les valeurs, c’est a dire les Ă©lĂ©ments attitrĂ©s aux clĂ©s (soit ici 430, 312, 274 et 137). Il va ensuite les « analyser » une par une grĂące Ă  la boucle for. Si l’élĂ©ment pris est diffĂ©rent (par l’opĂ©rateur != ) est diffĂ©rent de banane, il est stockĂ© dans stock. Donc, dans les Ă©lĂ©ment pris seul 312 n’et pas comptĂ©, en effet il correspond a la valeur banane (la lĂ©gende dis que l’éducation nationale nous transmet grĂące a ce script la vĂ©ritable longueur de la coupe de cheveux du fameux Elvis Presley). On a donc, dans stock, l’addition de 430 + 274 + 137 = 42 (non je dĂ©conne ça fait bien 841 mĂȘme si 42 est la rĂ©ponse a tout).

Question B.6

On dĂ©finit : T = [7*n for n in range(10)].
Quelle est la valeur de l’expression T[7] ?

Réponses

A 42
B 49
C 56
D 70

Correction : RĂ©ponse B

T va faire une simple multiplication (7*n) de n=0 Ă  n=9 (for n inrange(10)). Donc quand T = T[7], n = 7 donc on a 7 * 7 = 49, soit le numĂ©ro du magnifique dĂ©partement de la Maine-et-Loire. Donc on Ă©tait a 2 doigt d’avoir 42….Les crĂ©ateur de ce QCM sont vraiment des tortionnaires !

ThĂšme C : traitement de donnĂ©es en tables

Question C.1

On dĂ©finit :

contacts = { 'Toto': 'toto@nsi.fr', 'Chloé': 'chloe@nsi.com',
'Paul': 'paul@nsi.net', 'Clémence': 'clemence@nsi.org' }

Parmi les propositions suivantes, laquelle est exacte ?

Réponses

A ’Chloé’ est une valeur de la variable contacts
B ’Chloé’ est une clĂ© de la variable contacts
C ’Chloé’ est un attribut de la variable contacts
D ’Chloé’ est un champ de la variable contacts

Correction : RĂ©ponse B

Ici, il faut procĂ©der par Ă©limination. Comme le dirait un grand sage : « Ce soir, il n’en restera qu’un ! ». Donc je pense que nous sommes d’accord pour dire que ’Chloé’ n’est ni un champs (j’ai vu auprĂšs d’agriculteurs pro et aucun ne donne de nom a ses champs, sauf une fois au chalet) ni un attribut. En effet ces 2 Ă©lĂ©ments ne peuvent pas se retrouver dans le dictionnaire contacts. La variable contacts possĂšde donc des clĂ©s et des valeurs, comme tout les dictionnaire. Ça tombe bien, c’est les 2 rĂ©ponses qu’il reste ! Or on voit ici que ’Chloé’ est bien une clĂ© de la variable contacts, et par consĂ©quent, si c’est un clĂ©, ce n’est pas un valeur. Tout est bien qui finit bien. La rĂ©ponse B a gagnĂ© Koh-Lanta.

Question C.2

Qu’est-ce que le format de fichier CSV ?

Réponses

A un format de fichier mis au point par Microsoft pour Excel
B un format de fichier pour décrire une base de données
C un format de fichier oĂč les donnĂ©es sont sĂ©parĂ©es par un caractĂšre tel qu’une virgule
D un format de fichier décrivant une page Web

Correction : RĂ©ponse C

Un fichier CSV signifie Comma-Separated Values (les bilingues ont dĂ©jĂ  la rĂ©ponse). Il est de type tableur et ses valeurs (pour ceux qui ne l’aurai pas devinĂ©) sont sĂ©parĂ©s par une virgule.

Question C.3

On dĂ©finit ainsi une liste t :

t = [ {'id':1, 'age':23, 'sejour':'PEKIN'},
 {'id':2, 'age':27, 'sejour':'ISTANBUL'},
 {'id':3, 'age':53, 'sejour':'LONDRES'},
 {'id':4, 'age':41, 'sejour':'ISTANBUL'},
 {'id':5, 'age':62, 'sejour':'RIO'},
 {'id':6, 'age':28, 'sejour':'ALGER'}]

Quelle expression vaut-elle ’RIO’ parmi les suivantes ?

Réponses

A t[4][’sejour’]
B t[5][’sejour’]
C t(’id’=5)
D t.[’id’=5].[’sejour’]

Correction : RĂ©ponse A

Ici nous avons affaire a une « matrice-dictionnaire » (il doit y avoir un nom et je pense que le prof va me le donner quand il va faire un AVC en lisant ceci). Ayant parfaitement suivi les cours de NSI vous saurez effectuer les code ci-dessus. Nous savons donc que si on met l’expression  t[5]['sejour'], cela va nous renvoyer ALGER, si on met  t('id'=5), votre estime envers Spyder va chuter gravement et ce dernier va vous sermonner d’un SyntaxError: keyword can't be an expression, si on rentre t.['id'=5].['sejour'] ,ça sera la mĂȘme chose mais vous vous prendrez un sale SyntaxError: invalid syntax qui fait toujours plaisir. Seul la rĂ©ponse a qui ira chercher la valeurs de ’sejour’ dans le « dico numĂ©ro » 4 (soit le 5e car on part de 0) vous octroiera le plaisir de voir ce magnifique RIO apparaĂźtre.

Question C.4 Picasso, la question explosive (j’assume pas cette blague alors je la cache (edit du migreur : c’est plus cachĂ© 😁)

On utilise habituellement un fichier d’extension csv pour quel type de donnĂ©es ?

Réponses

A des données structurées graphiquement
B des données sonores
C des données compressées
D des données structurées en tableau

Correction : RĂ©ponse D

On a vu plus haut que le fichier csv est de type tableur. Tableur Ă©tant issu du latin tabula (qui signifie planche), il est de la mĂȘme famille que tableau (je met a contribution mes acquis de français que je ne pourrait malheureusement pas ressortir pour le BAC de Français cette annĂ©e…). Un fichier csv de type TABLEUR va donc ĂȘtre utilisĂ© pour des donnĂ©es structurĂ©es en TABLEAU.

Question C.5

Soit la table de donnĂ©es suivante :

nom prenom date_naissance
Dupont Pierre 17/05/1987
Dupond Catherine 18/07/1981
Haddock Archibald 23/04/1998

Quels sont les descripteurs de ce tableau ?

Réponses

A nom, prenom et date_naissance
B Dupont, Pierre et 17/05/1987
C Dupont, Dupond et Haddock
D il n’y en a pas

Correction : RĂ©ponse A

Les proposition A sont des descripteur et les autres propositions sont des valeurs des descripteurs. Je n’ai vraiment pas de quoi argumenter plus, il fallait apprendre sa leçon les loulous.

Question C.6

Qu’est-ce qu’un fichier CSV ?

Réponses

A une librairie Python permettant l’affichage des images
B un utilitaire de traitement d’image
C un format d’image
D un format de données

Correction : RĂ©ponse D

Bon la, clairement, si j ai encore des choses a vous apprendre sur le format csv aprĂšs les rĂ©ponses prĂ©cĂ©dentes, c’est vraiment que je dois me reconvertir totalement dans le sauvetage des ours polaire… Mai bon reprenons ! Donc un fichier CSV est un fichier qui reprĂ©sente des donnĂ©es sous forme de tableau. Donc pas des images. Vraiment pas. Non.

ThĂšme D : interactions entre l’homme et la machine sur le Web

Question D.1

Un Ă©lĂ©ment form (un formulaire) d’une page HTML contient un Ă©lĂ©ment button de type submit. Un clic sur ce bouton :

Réponses

A envoie les donnĂ©es du formulaire vers la page dĂ©finie par l’attribut action de l’élĂ©ment formRetour ligne automatique
B efface les donnĂ©es entrĂ©es par l’utilisateur dans le formulaireRetour ligne automatique
C envoie les donnĂ©es du formulaire vers la page dĂ©finie par l’attribut method de l’élĂ©ment formRetour ligne automatique
D ne fait rien du tout si un script javascript n’est pas associĂ© au bouton

Correction : RĂ©ponse A

Si un bouton possĂšde le type submit, cela veut dire que lorsque le bouton sera sollicitĂ©, le formulaire va ĂȘtre soumis au serveur en utilisant l’attribut action (qui sert a indiquer une action a exĂ©cuter lors de l’envoi de donnĂ©es). Du coup c’est un peu comme si vous rendiez un devoir sauf qu’il n’y a aucun risque que vos parents sortent de l’ordinateur si ça ne va pas.

Question D.2

Quelle mĂ©thode est utilisĂ©e via une requĂȘte HTTP pour envoyer une image via un formulaire HTML ?

Réponses
 
A HEAD
B PUT
C POST
D GET

Correction : RĂ©ponse C

Reprenons chaque requĂȘte proposĂ© ici : 

  • HEAD sert notamment a Ă©conomiser de la bande passant en demandant seulement les en-tĂȘtes de la mĂȘme maniĂšre que la mĂ©thode GET. C’est comme si vous commandiez seulement le capuchon d’un stylo au lieu du stylo sur Internet pour payer moins. Si c’est le cas vous ĂȘtes non seulement radin, mais Ă©galement trĂšs bizarre. 
  • PUT remplace une reprĂ©sentation de la ressource ciblĂ©e par le contenu de la requĂȘte. Pour imager, on va faire un carrĂ© sur le sol et dire « Ici il y aura Thierry Beccaro ». Notre pote PUT va alors nous chercher Thierry Beccaro et le mettre dans le carrĂ© (Note : la spĂ©cialitĂ© NSI de Louis Pasteur rejette toute responsabilitĂ© dans le cas ou des Ă©lĂšves tenterai de faire des invocation sataniste de Thierry Beccaro). 
  • POST envoie des donnĂ©es au serveur. Il est important que POST ne soit pas un forceur sinon le serveur peut faire un Burn-Out. 
  • GET demande une reprĂ©sentation de la ressource spĂ©cifiĂ©e. Ils servent donc a rĂ©cupĂ©rer des donnĂ©es ( Note : aucun serveur n’est maltraitĂ© pendant l’interrogatoire de GET).
  • La requĂȘte la plus couramment utilisĂ© pour un envoi d’image est donc la requĂȘte POST car il effectue un envoi de donnĂ©s.

Question D.3

Les pages HTML sont affichées par 


Réponses

A le compilateur 
B le serveur 
C l’interprĂ©teur
D le navigateur Web

Correction : RĂ©ponse D

Votre navigateur web, qui est probablement Google Chrome (Safari si vous ĂȘtes riche et Yahoo si vous ĂȘtes un vieillard), affichera les pages HTML qui sont stockĂ© sur un serveur.

Question D.4

Dans le code HTML les dĂ©limiteurs tels que <body> et </body> s’appellent ?

Réponses

A des bornes
B des balises
C des paragraphes
D des liens

Correction : RĂ©ponse B

Si vous avez suivi les cours d’NSI vous aurait eu juste à cette question.

Question D.5

Un fichier HTML contient la ligne suivante.
<p>Coucou ! Ca va?</p>
Quelle commande CSS Ă©crire pour que le texte apparaisse en rose sur fond jaune ?

Réponses

A p { couleur: rose ; fond: jaune;}
<p> { color = pink background-color = yellow}
C <p> { color = pink ; background-color: yellow} </p>
p { color: pink ; background-color: yellow ;}

Correction : RĂ©ponse D
Si on respecte la syntaxe du css on peut dĂ©duire que c’est la rĂ©ponse D.

Question D.6

Un Ă©lĂšve a Ă©crit une fonction javascript qui dĂ©termine la moyenne des valeurs entrĂ©es par l’utilisateur dans un formulaire de sa page HTML.
Il place sa fonction javascript

Réponses

A entre la balise <js> et la balise </js>
B entre la balise <code> et la balise 
C entre la balise <script> et la balise </script>
D entre la balise <javascript> et la balise </javascript>

Correction : RĂ©ponse C
Encore une question en rapport avec la syntaxe d’un language de programmation. Si tu avais rĂ©pondu autre chose que la C ce n’est pas grave puisque le JavaScript c’est PAS(Ă©dit du migreur) nul !

ThĂšme E : architectures matĂ©rielles et systĂšmes d’exploitation

Question E.1

Le rĂ©pertoire personnel de l’utilisateur contient deux rĂ©pertoires tempo et sauve.
On souhaite déplacer le fichier bac.txt du repertoire tempo vers le répertoire sauve.
Quelle commande permet de rĂ©aliser ce dĂ©placement ?

Réponses

A mkdir /tempo/bac.txt /sauve
B mkdir /sauve /tempo/bac.txt
C mv /tempo/bac.txt /sauve
D mv /sauve /tempo/bac.txt

Correction : RĂ©ponse C
La commande mv qui veut dire move (« bouger », pour ceux qui sont nul en anglais). On déplace le fichier bac.txt qui était dans le repertoire tempo dans le repertoire sauve.

Question E.2

Dans la console Linux, quelle commande faut-il exĂ©cuter pour effacer le fichier test0.csv ?

Réponses

A rm test0.cvs
B cp test0.csv
C ls test0.csv
D mv test0.csv

Correction : RĂ©ponse A
rm —>remove
cp —>copy
ls—>list
mv —>move
Si vous etes nul en anglais copier coller ces mots dans Google traduction.

Question E.3

Quel est le rĂŽle de la commande shell ls ?

Réponses

A basculer en mode administrateur
B lister le contenu du répertoire courant
C donner un accĂšs complet Ă  un fichier
D effacer le contenu du répertoire courant

Correction : RĂ©ponse B
ls est une abreviation de « lister » en anglais. Vous l’auriez si vous avez eu une bonne note aux EC3.

Question E.4

L’adresse IP du site www.education.gouv.fr est 185.75.143.24.
Quel dispositif permet d’associer l’adresse IP et l’URL www.education.gouv.fr ?

Réponses

A un routeur
B un serveur DNS
C un serveur de temps
D un serveur Web

Correction : RĂ©ponse B
Le serveur DNS (Domain Name System, ou SystĂšme de noms de domaine en français) est un service dont la principale fonction est de traduire un nom de domaine en adresse IP. Maintenant que vous avez l’adresse IP du serveur du ministĂšre vous pouvez surement le hacker et modifier les notes du BAC !

Question E.5

Que peut-on dire du systĂšme de fichiers, suite Ă  l’exĂ©cution des commandes suivantes ?
% ls
entier.py flottant.py readme.md
% mkdir foo
% mv *.py foo

Réponses

A les fichiers entier.py, flottant.py, et foo ont Ă©tĂ© dĂ©placĂ©s dans le rĂ©pertoire de l’utilisateur
B l’utilisateur foo est propriĂ©taire des fichiers entier.py et flottant.py
C le rĂ©pertoire foo contient le rĂ©sultat de l’exĂ©cution des deux fichiers entier.py et flottant.py
D le rĂ©pertoire foo contient deux fichiers d’extension .py

Correction : RĂ©ponse D
Le *.py reprĂ©sente tous les fichiers python qu’on dĂ©place (commande mv) vers le rĂ©pertoire foo.

Question E.6

Dans un terminal sous Linux, Ă  quoi sert la commande traceroute ?

Réponses

A à afficher un itinéraire routier entre deux villes
B c’est un synonyme pour la commande ping
C Ă  afficher le chemin suivi par des paquets Ă  travers un protocole IP
D Ă  suivre pas Ă  pas l’exĂ©cution d’un programme

Correction : RĂ©ponse C
Y’a vraiement trop de mots anglais… Ce QCM est plus un cours d’anglais que d’NSI.
Si vous avez choisi la réponse A je crois que vous devriez retourner en section L.

ThĂšme F : Langages et Programmation

Question F.1
 
La fonction Python suivante ne calcule pas toujours correctement le rĂ©sultat de đ‘„^y pour des arguments entiers.

def puissance (x,y):
 p = x
 for i in range (y - 1):
 p = p * x
 return p

Parmi les tests suivants, lequel va permettre de dĂ©tecter l’erreur ?
 
Réponses
 
puissance(2,0)
puissance(2,1)
puissance(2,2)
puissance(2,10)
 
Correction : RĂ©ponse A
 
C’est reparti pour du Python ! Ce programme est censĂ© calculer l’exposant d’un nombre : x est le nombre, et y est l’exposant. 
Comme on le sait depuis la quatriÚme, un nombre exposant 0 est TOUJOURS égal à 1.
Sauf, que il y a un problĂšme, car si on entre puissance(2,0), le programme va nous renvoyer 0. Pourquoi ?

La ligne 4 du programme, p = p * x, revient Ă  faire 2*2, dans le cas de la rĂ©ponse A.

Et devinez quoi, 2*2 n’est pas Ă©gal Ă  1, mais bien Ă  4. Il faudrait donc rajouter une ligne Ă  ce programme, permettant de renvoyer automatiquement 1 quand y=0.

Question F.2
 
On considĂšre le code suivant :

def puiss(y,x):
 res = y
 for i in range(x):
 res = res*y
 return res

Quelles sont les prĂ©conditions sur les arguments ?
 
Réponses
 
A Les arguments doivent ĂȘtre obligatoirement de type entier
B Les arguments peuvent ĂȘtre de type entier ou flottant
C Le type des arguments n’a pas d’importance
D Il n’y a pas de prĂ©conditions dans ce cas
 
Correction : RĂ©ponse A 

Pour rĂ©pondre Ă  cette question, il faut bien comprendre le programme :

Ce programme est le mĂȘme que le prĂ©cĂ©dent, sauf que 1 est ajoutĂ© Ă  l’exposant (Par exemple, si vous entrez puiss(2,3), le programme ne vous donnera pas 2^3, mais 2^4)

Ce code ne fonctionne donc pas avec du texte, mais marche parfaitement avec des entier.

Question F.3
 
On considĂšre l’instruction suivante :

  1. resultat=[0]*7

Que contient la variable resultat aprĂšs son exĂ©cution ?
 
Réponses
 
0
[0]
[[0],[0],[0],[0],[0],[0],[0]]
[0,0,0,0,0,0,0]
 
Correction : RĂ©ponse D

Cette question, toute droit sortie des enfers, est infĂąme.

Tout d’abord, la rĂ©ponse A et B sont fausses : La A car ce n’est pas une liste, et la B car il n’y a qu’un seul 0, alors qu’il devrait en avoir sept.

La rĂ©ponse C est assez bizarre. C’est une liste de liste, mais elle n’a rien a faire lĂ , car on veut juste une liste simple

La réponse D est donc la bonne réponse.

Question F.4
 
On dĂ©finit une fonction f de la façon suivante :

def f(L,m):
R = []
for i in range(len(L)):
if L[i] > m:
R.append(L[i])
return R

On dĂ©finit L = [1, 7, 3, 4, 8, 2, 0, 3, 5].
Que vaut f(L,4) ?
 
Réponses
 
[0, 7, 0, 0, 8, 0, 0, 0, 5]
[0, 0, 0, 5]
[7, 8, 5]
[]
 
Correction : RĂ©ponse C

Enfin une question simple !

Le programme sert a relever les Ă©lĂ©ments d’une liste qui sont plus grands que m.
Ici, m=4, donc le programme doit renvoyer tous les éléments de L qui sont plus grands que 4, soit 7,8 et 5.

Question F.5
 
Un programme Python commence par la ligne :

import os

À quoi sert cette ligne ?
 
Réponses
 
A C’est le dĂ©but du squelette de tout programme Python
B C’est la dĂ©claration du systĂšme d’exploitation (operating system)
C Python 3.6 exige cette ligne au début de tout programme
D C’est la dĂ©claration d’une bibliothĂšque (ou module) que le programme compte utiliser
 
Correction : RĂ©ponse D

Quand une ligne de code commence par « import », c’est que une bibliothĂšque va ĂȘtre utilisĂ©e.

C’est un peu court comme explication, mais il y a Affaire Conclue sur France 2 qui vient de commencer, et c’est vraiment trĂšs IMPORTant pour moi (humour).

Question F.6
 
On exĂ©cute le script Python suivant :

def cube(a):
a = a*a*a
return a
a = 2
b = cube(a)

Que vaut le couple (a, b) Ă  la fin de l’exĂ©cution
 
Réponses
 
A  (8, 8)
B  (8, 2)
C  (2, 2)
D  (2, 8)


Correction : RĂ©ponse D

Dans cette question, l’acadĂ©mie a dĂ©cidĂ© de nous faire voyager.
Nous avons, dans l’ordre, les Vosges, le Tarn et Garonne, les Cotes d’Armor, et l’Eure-et-Loire, avec son fameux musĂ©e du caoutchouc.

PremiĂšrement, on sait que dans tout les cas, a=2.
Pour b, on sait que b=cube(a).
Le nom de la fonction est assez explicite, et il n’y a pas de piĂšge, mĂȘme la porte parole du gouvernement pourrait y arriver.

2 au cube est Ă©gale Ă  8, c’est donc le couple (2,8) et l’Eure-et-Loire qui remporte cette question.

ThĂšme G : Algorithmique

Question G.1
 
On dispose en quantité illimité de piÚces de 1 euro, 2 euros et 5 euros. On veut totaliser une somme de 18 euros.
Quelle est la solution donnĂ©e par l’algorithme glouton ?

Réponses
 
A  [5, 5, 5, 2, 1]
B  [5, 5, 5, 2, 2, 1]
C  [5, 5, 2, 2, 2, 1, 1]
D  [5, 2, 2, 2, 2, 1, 1, 1, 1, 1]

Correction : RĂ©ponse A

Ah, le tri. Comme dans la vraie vie, le tri c’est dur à faire, mais c’est bien utile.
La solution donnĂ©e par l’algorithme glouton doit ĂȘtre la plus optimisĂ©e possible :
Ici, la rĂ©ponse la plus optimisĂ©e est celle ou le moins de piĂšces possible sont utilisĂ©es pour former 18€ en tout.Retour ligne automatique
La bonne réponse est donc la A.

Question G.2
 
Quel est l’ordre de grandeur du coĂ»t du tri par insertion (dans le pire des cas) ?

Réponses
 
A L’ordre de grandeur du coĂ»t dĂ©pend de l’ordinateur utilisĂ©
B Linéaire en la taille du tableau à trier
C Quadratique en la taille du tableau Ă  trier
D Indépendant de la taille du tableau à trier

Correction : RĂ©ponse C

Dans le meilleur des cas, l’ordre de grandeur sera linĂ©aire, dans le pire des cas quadratiques. Cette question est…. bizarre.
Et surtout, c »est Ă  la frontiĂšre du programme de PremiĂšre …

Décidément, ce sujet 42 nous réserve des surprises.

Question G.3
 
Quelle est la valeur de « element » Ă  la fin de l’exĂ©cution du code suivant :

L = [1,2,3,4,1,2,3,4,0,2]
element = L[0]
for k in L:
if k > element:
element = k

Réponses
 
A 0
B 1
C 4
D 10

Correction : RĂ©ponse C

Ce type de question, on commence a avoir l’habitude. Ici, element va toujours prendre la valeur de l’élĂ©ment le plus grand de la liste. C’est du tri par insertion.
La bonne réponse est donc la C, car 4 est le plus grand nombre de la liste.

Question G.4
 
La fonction ci-dessous permet d’effectuer une recherche par dichotomie de l’index m de l’élĂ©ment x dans un tableau L de valeurs distinctes et triĂ©es.

L = [1,2,3,4,1,2,3,4,0,2]
def dicho(x,L):
g = 0
d = len(L)-1
while g <= d:
m = (g+d)//2
if L[m] == x:
return m
elif L[m] < x:
g = m+1
else:
d = m-1
return None

Combien de fois la cinquiĂšme ligne du code de la fonction (m = (g+d)//2) sera-t-elle exĂ©cutĂ©e dans l’appelRetour ligne automatique
dicho(32, [4, 5, 7, 25, 32, 50, 51, 60] ?

Réponses
 
A 1 fois
B 2 fois
C 3 fois
D 4 fois

Correction : RĂ©ponse C

Pour rĂ©pondre Ă  cette question, j’avoue que j’ai du recopier le script, et le modifier un peu, pour trouver le rĂ©sultat.Retour ligne automatique
Pour trouver la solution, on a qu’a rajouter une variable compteur=0 Ă  la ligne 2, et rajouter compteur=compteur+1 dans la boucle qui nous intĂ©resse. On rajoute un return compteur aprĂ©s le return m, et le tour est jouĂ© ! Ma variable compteur=3, donc la bonne rĂ©ponse est la C.

Non, ce n’est pas de la triche. C’est une aide, comme dirait une famille cĂ©lĂšbre de 
Levallois Perret.

Question G.5
 
Quelle est la valeur de c Ă  la fin de l’exĂ©cution du code suivant :

L = [1,2,3,4,1,2,3,4,0,2]
c = 0
for k in L:
 if k == L[1]:
  c = c+1

Réponses
 
A 0
B 2
C 3
D 10

Correction : RĂ©ponse C

Courage, c’est la derniĂšre ligne droite ! Pour souffler un peu, voila une question faisable : ce programme renvoie le nombre de fois qu’un nombre est dans une liste. Ici, il faut trouver le nombre de fois que L[1], ou 2, est dans la liste L.

Je pense que vous l’avez compris, pour rĂ©pondre Ă  cette question, il va falloir COMPTER.

Si on compte le nombre de fois ou 2 apparait dans la liste L, on trouve le chiffre 666, qui correspond Ă  la rĂ©ponse… Hein ? 
Oups, je me suis surement trompé dans le compte. En fait, on compte 3 deux, ce qui correspond à la réponse C

Question G.6
 
La fonction suivante doit dĂ©terminer la valeur maximale d’un tableau de nombres passĂ© en argument. Avec quelles expressions faut-il remplacer les pointillĂ©s du script suivant pour que la fonction soit correcte ?

def maximum(T):
 maxi = T[0]
 n = len(T)
 for i in range(i, .....):
 	if T[i] > maxi:
      maxi = ......
 return maxi

Réponses
 
A n puis T[i]
B n puis T[i-1]
C n-1 puis T[i]
D n-1 puis T[i-1]

Correction : RĂ©ponse C

On y est. La question 42. La rĂ©ponse de la vie. Ce doit surement ĂȘtre une question incroyable, unique, sensationnelle…

Et bien non, c’est encore du Python et des listes. Dommage.

C’est encore un programme qui permet de trouver le maximum d’une liste qu’il faut dĂ©cortiquer.Retour ligne automatique
PremiĂšrement, le premier blanc se complĂšte obligatoirement par n-1, sinon, la boucle ne s’arrĂȘterait jamais, et ferait planter le logiciel (ça sent le vĂ©cu). Ensuite, la variable maxi est Ă©gale au plus grand Ă©lĂ©ment de la liste, donc si T[i ]> maxi, alors maxi = T[i]

La bonne réponse est donc la C.

Outro

Voici donc la fin de ce sujet 42. Si vous lisez ses lignes, vous n’ĂȘtes peut ĂȘtre pas prĂȘt pour hacker la NASA, ni pour coder Google, mais vous pouvez vous vanter d’avoir compris le sujet 42.

Et ça, c’est inestimable.

Mission accomplished, jeune padawan.

Vous pouvez rĂ©agir ici :

NumApps

Treasure en python, NumWorks

Un trĂ©sor a Ă©tĂ© cachĂ©. DĂ©place-toi et pars Ă  sa recherche. Évite les rochers et les trous. Il te suffit d’appuyer sur OK pour creuser un trou. Un sonar peut t’aider, enfin uniquement si tu sais l’utiliser !

Captures d’écran du jeux

Commandes

FlĂšchesOK
Se déplacer sur la grille du jeuCreuser un trou pour trouver le trésor

Télécharger

Nous vous proposons 2 liens distincts, le premier est le lien vers la source du crĂ©ateur de l’application, le deuxiĂšme est un lien alternatif en cas de problĂšme. Seul le premier lien garanti de disposer de la derniĂšre version de l’application.