Corrigé du DS d'informatique 14 novembre 2015

Documents pareils
UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Cours Informatique 1. Monsieur SADOUNI Salheddine

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Télécom Nancy Année

Recherche dans un tableau

Vers l'ordinateur quantique

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Éléments d'architecture des ordinateurs

Licence Sciences et Technologies Examen janvier 2010

Compte-rendu de projet de Système de gestion de base de données

Initiation à la programmation en Python

1 Recherche en table par balayage

SweetyPix, mode d'emploi

UE Programmation Impérative Licence 2ème Année

Feuille TD n 1 Exercices d algorithmique éléments de correction

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Cours Informatique Master STEP

Programmation C++ (débutant)/instructions for, while et do...while

Représentation d un entier en base b

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Algorithme. Table des matières

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2

L informatique en BCPST

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

STAGE IREM 0- Premiers pas en Python

chapitre 4 Nombres de Catalan

Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

TP2 - Conguration réseau et commandes utiles. 1 Généralités. 2 Conguration de la machine. 2.1 Commande hostname

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Présentation du langage et premières fonctions

Introduction à l informatique en BCPST

Peut-on tout programmer?

IV- Comment fonctionne un ordinateur?

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Cours 3 : Python, les conditions

1 Lecture de fichiers

TP 1. Prise en main du langage Python

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, Cachan Cedex. Resume

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Programmation C. Apprendre à développer des programmes simples dans le langage C

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Codage d information. Codage d information : -Définition-

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Programmation linéaire

Algorithmique avec Algobox

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Propagation sur réseau statique et dynamique

Algorithmique et Programmation, IMA

Démontage d'un ordinateur

Examen Médian - 1 heure 30

Premiers pas sur l ordinateur Support d initiation

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Informatique Générale

Introduction à MATLAB R

Client Kiwi Backup : procédures d'installation et de mise à jour. Gilles Arnoult, Clément Varaldi

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Algorithmique avec Algobox

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Représentation des Nombres

Le simulateur HDLC (High-Level Data Link Control) 1

DM 1 : Montre Autoquartz ETA

Chapitre 2 Devine mon nombre!

1 TD 2 : Construction d'une chier Acrobat et envoi par

C f tracée ci- contre est la représentation graphique d une

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Programmation sous QT

Définitions. Numéro à préciser. (Durée : )

LES TYPES DE DONNÉES DU LANGAGE PASCAL

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

ACTIVITÉ DE PROGRAMMATION

Architecture des ordinateurs Introduction à l informatique

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Certificat Informatique et internet Niveau 1 TD D1. Domaine 1 : Travailler dans un environnement numérique évolutif. 1. Généralités : Filière

Cours d Informatique

1. Structure d'un programme FORTRAN 95

Programmation Objet - Cours II

Cours Langage C/C++ Programmation modulaire

Licence Sciences, Technologies, Santé Mention Informatique Codage de l'information

Cours 7 : Utilisation de modules sous python

Conduite et Gestion de Projet - Cahier des charges

Correction TD algorithmique


Construction de l'intégrale de Lebesgue

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Quelques algorithmes simples dont l analyse n est pas si simple

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Leçon 1 : Les principaux composants d un ordinateur

Chapitre 1 I:\ Soyez courageux!

Traitement de texte : Quelques rappels de quelques notions de base

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

La mémoire. Un ordinateur. L'octet. Le bit

Correction TD Algorithmique 5.3 Pile Liste 5.3 Pile

Algorithmes et mathématiques. 1. Premiers pas avec Python. Exo Hello world!

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Gérer ses fichiers et ses dossiers avec l'explorateur Windows. Février 2013

Comment congurer WinEdt pour L A TEX?

Transcription:

Lycée Jean Bart MPSI 14 novembre 2015 Corrigé du DS d'informatique 14 novembre 2015 Exercice 1 Architecture. 1. La pile bouton est indiquée par la èche : A. 1 B. 3 C. 5 D. 6 2. L'emplacement destiné à accueillir le processeur est plutôt au bout de la èche : A. 2 B. 6 C. 7 D. 8 3. Le disque dur est : A. indiqué par la èche 1 B. indiqué par la èche 3 C. indiqué par la èche 5 D. absent de cette image 4. L'emplacement destiné à accueillir une barette de RAM est plutôt au bout de la èche : A. 4 B. 6 C. 7 D. 8 5. Je suis un composant de l'ordinateur qui exécute les instructions machine des programmes informatiques. Avec la mémoire, je suis l'un des composants qui existent depuis les premiers ordinateurs, et je suis présent dans tous les ordinateurs. Je suis, je suis? A. Le ventilateur B. Le condensateur C. Le processeur D. Le disque dur 6. Je suis un composant de l'ordinateur essentiellement composé de circuits imprimés et de ports de connexion, par le biais desquels j'assure la connexion de tous les composants et périphériques propres à un micro-ordinateur. Je suis, je suis? A. La carte mère B. La carte son C. Le processeur D. Le disque dur 7. Un composant permettant de connecter les diérentes parties fonctionnelles d'un ordinateur entre elles s'appelle : A. Un avion B. Un tramway C. Un bus D. Un paquebot

2 MPSI Devoir d'informatique 14 novembre 2015 Exercice 2 Jouons au Scrabble. Cet exercice a pour thème le jeu de Scrabble (que vous avez étudié en DM). Il porte donc principalement sur les chaînes de caractères ; et rassurez-vous, aucune connaissance relative à ce jeu n'est nécessaire pour traiter les questions de cet exercice. 1. Traitement générique de chaînes de caractères 1-a. (QCM) Considérons les instructions suivantes : Qu'ache le script? A. 1011 B. 21 C. 1110 D. '21' 1-b. (QCM) Parmi les instructions suivantes, laquelle peut permettre d'obtenir le dernier caractère d'une chaîne non vide nommée MOT? A. MOT[ len(mot) ] B. MOT[ len(mot) + 1 ] C. MOT[ len(mot) - 1 ] D. MOT[ n - 1 ] 1-c. (QCM) Considérons les instructions suivantes : Qu'ache le script? A. M MP MPS MPSI (sur plusieurs lignes) B. MPSIMPSIMPSIMPSI C. ISPM D. MPSI 1-d. (QRC) En changeant l'indentation d'une ligne dans le script de la question précédente, son exécution permet d'obtenir une des autres propositions faites ci-dessus. Quelle indentation faut-il modier? Pour quelle ligne? Quel est alors le résultat obtenu? En changeant l'indentation de la ligne 5, c'est-à-dire en alignant le print de la ligne 5 avec le début de la ligne 4, on obtient l'achage proposé dans la réponse A de la question précédente. En eet, la chaîne de caractères RES va être achée à chaque passage dans la boucle, soit à chaque étape de construction de cette chaîne.. C'est-à-dire : quel est l'achage produit par l'exécution de ces lignes de code?

2. Cas particulier du jeu de Scrabble MPSI Devoir d'informatique 14 novembre 2015 3 On cherche à mettre en place des traitements spéciques aux chaînes de caractères dans le but de compter les points au jeu de Scrabble. 2-a. Validité de la saisie Considérons le script suivant : Dans ce script, l'utilisateur sera invité à saisir un mot au clavier (message de la ligne 4). 2-a-i. (QCM) Quel sera le résultat obtenu lors de l'exécution de ce script si l'utilisateur saisit au clavier : 'MPSI'? A. True B. False C. True True True True (sur 4 lignes) D. Test Test Test Test (sur 4 lignes) E. Aucun achage ne sera produit F. Autre réponse 2-a-ii. (QCM) Quel sera le résultat obtenu lors de l'exécution de ce script si l'utilisateur saisit au clavier : 'Info'? A. True False False False (sur 4 lignes) B. False False False (sur 3 lignes) C. Test Test Test (sur 3 lignes) D. Test Test Test Test (sur 4 lignes) E. Aucun achage ne sera produit F. Autre réponse 2-a-iii. (QCM) On souhaite à présent que le script ache eectivement 'True' si l'utilisateur a saisi un mot en majuscules, et 'False' sinon. Quelle(s) éventuelle(s) modication(s) est(sont) à apporter au script précédent? Il sut de désindenter (deux fois) l'instruction de la ligne 11, de telle sorte que la valeur de la variable Test ne soit pas achée à chaque passage dans la boucle (mais seulement une fois que tous les caractères de la chaîne Mot auront été testés). En résumé, on aligne le début de la ligne 11 avec le début de la ligne 8.

4 MPSI Devoir d'informatique 14 novembre 2015 2-a-iv. (QCM) Un cas particulier : en afrikaans, les lettres autorisées sont celles de notre alphabet à l'exception des lettres C, Q, X et Z. Parmi les scripts suivants, lequel permet de déterminer si un mot saisi par l'utilisateur peut être un mot de langue afrikaans ; c'est-à-dire lesquel va acher True si le mot saisi ne contient pas de C, ni de Q, ni de X, ni de Z, et achera False sinon? A. B. C. D.. Qui est l'une des 11 (oui, onze!) langues ocielles de l'afrique du Sud.

MPSI Devoir d'informatique 14 novembre 2015 5 Exercice 3 Binaire Autour du comptage des points. Trois joueurs appelés J1, J2, J3 font une partie de Scrabble. A chaque tour de jeu, ils composent un mot à tour de rôle, ce qui leur donne des points. Ils rassemblent les résultats sous forme de 3 listes L1, L2, L3 contenant chacune les points obtenus à chaque tour. Exemple : après 4 tours de jeu, on pourrait avoir L1=[10, 32, 5, 24] ; L2=[50, 8, 31, 12] ; L3=[12, 65, 5, 13] 1. Que fait l'algorithme suivant? Ce script achera la valeur maximale de la liste L1. 2. On suppose qu'après 8 tours de jeu, les trois personnes entrent dans un ordinateur les listes L1, L2, L3. Ecrire un programme en python calculant les totaux pour chaque joueur et précisant celui qui gagne ; pour simplier le problème, on ne tiendra pas compte des ex-aequo et on supposera donc que les trois joueurs ont des totaux diérents. # Initialisation des variables destinées à recevoir les sommes S1, S2 et S3 des listes L1, L2 et L3 S1 = 0 ; S2 = 0 ; S3 = 0 # Initialisation de la variable destinée à recevoir la somme maximale (parmi S1, S2 et S3) Max = 0 # Initialisation de la variable destinée à recevoir le rang du joueur qui a gagné RgWin = 0 # Calcul de la somme des points de chaque liste. for k in range(8) : S1 = S1 + L1[k] S2 = S2 + L2[k] S3 = S3 + L3[k] # Extraction du maximum Max = S1 RgWin = 1 if (S2 > Max) : Max = S2 RgWin = 2 if (S3 > Max) : Max = S3 RgWin = 3 print('le vainqueur est le joueur J', RgWin,'. Il a obtenu :', Max, 'points.'). Par ailleurs, on ne demande pas de programmer la saisie des listes L1, L2 et L3. On supposera que celles-ci sont déjà construites ; votre algorithme se contentera de calculer les sommes des points de chaque liste, et de déterminer laquelle des trois a le plus grand total.

6 MPSI Devoir d'informatique 14 novembre 2015 3. Les totaux des points obtenus par les trois joueurs ont été donnés en binaire! On a pour J1 : 11110011 ; pour J2 : 01110101 ; pour J3 : 01000010 Calculer le nombre total de points obtenus par l'ensemble des joueurs au cours de la partie. On fera les calculs en binaire (on posera les opérations) et on vériera les calculs en décimal. Eectuons la somme des points en binaire : 1 1 1 1 0 0 1 1 + 0 1 1 1 0 1 0 1 + 0 1 0 0 0 0 1 0 = 1 1 0 1 0 1 0 1 0 En binaire, on a donc : S1 + S2 + S3 = 110101010 Vérication décimale : D'une part : on a : S1 = 1 2 7 + 1 2 6 + 1 2 5 + 1 2 4 + 0 2 3 + 0 2 2 + 1 2 1 + 1 2 0 soit S1 = 128 + 64 + 32 + 16 + 2 + 1 = 243 on a : S2 = 0 2 7 + 1 2 6 + 1 2 5 + 1 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 1 2 0 soit S2 = 64 + 32 + 16 + 4 + 1 = 117 on a : S3 = 0 2 7 + 1 2 6 + 0 2 5 + 0 2 4 + 0 2 3 + 0 2 2 + 1 2 1 + 0 2 0 soit S3 = 64 + 2 = 66 D'où : S1 + S2 + S3 = 243 + 117 + 66 = 426 D'autre part l'entier ayant pour écriture décimale 110101010 vaut : 1 2 8 +1 2 7 +0 2 6 +1 2 5 +0 2 4 +1 2 3 +0 2 2 +1 2 1 +0 2 0 = 256+128+32+8+2 = 426. Ouf! 4. Réaliser le produit des nombres binaires correspondants aux points obtenus par J1 et J3 (on posera l'opération). Vérier le résultat du calcul en décimal. Eectuons la somme des points en binaire : 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 = 1 1 1 1 1 0 1 0 1 0 0 1 1 0 Vérication décimale : d'une part 66 243 = 16038. Et d'autre part, l'entier ayant pour écriture décimale 11111010100110 vaut : 1 2 13 + 1 2 12 + 1 2 11 + 1 2 10 + 1 2 9 + 1 2 7 + 1 2 5 + 1 2 2 + 1 2 1 = 8192 + 4096 + 2048 + 1024 + 512 + 128 + 32 + 4 + 2 = 16038 (re-ouf!).

MPSI Devoir d'informatique 14 novembre 2015 7 Exercice 4 Sommes de termes d'une suite récurrente. réelle dénie par son premier terme u 0 = 2 et la relation de récurrence : n N, u n+1 = u 2 n + u n 2 1. Ecrire un script prenant un entier n N en entrée et renvoyant n u k (il faut bien mettre en évidence l'indentation). l 1 # Initialisation de la somme, et du terme de la suite l 2 Somme = 0 ; Terme = 2 n # Calcul de la somme l 3 k=0 l 4 for k in range(n+1) : l 5 Somme = Somme + Terme l 6 Terme = Terme * Terme + Terme - 2 l 7 print('la somme des termes vaut', Somme) u k Dans cet exercice, (u n ) n N désigne la suite 2. Déterminer la complexité T (n) de ce script, ie. exprimer le nombre d'opérations élémentaires utilisées en fonction de n ; on appelle opération élémentaire une addition, une division, une multiplication, une aectation. Dans le script de la question précédente : la ligne 2 coûte 2 opérations élémentaires (2 aectations) ; Coût de la boucle (pour un passage) : la ligne 4 coûte 1 opération (1 aectation) la ligne 5 coûte 2 opérations (1 aectation et une somme) la ligne 6 coûte 4 opérations (1 aectation, une multiplication, deux additions) Chaque passage dans la boucle coûte donc 7 opérations élémentaires. Comme elle est parcourue (n + 1) fois, le coût total de cette boucle est 7n + 7 opérations élémentaires. Au nal, le programme nécessite 7n + 9 opérations élémentaires. Sa complexité algorithmique est donc T (n) = 7n + 9. k=0

8 MPSI Devoir d'informatique 14 novembre 2015 Exercice 5 Représentations binaires de listes. Pour un entier naturel non nul n, on note N n l'intervalle d'entiers [ 0, n ]. On peut représenter les sous-ensembles de N n par une liste de 0 et de 1. Explicitement, si E est un sous-ensemble de N n, sa représentation est une liste L E de longueur n + 1 : l'élément i de L E vaut 1 si i E et 0 sinon. Par exemple, le sous-ensemble {1, 3, 6} de N 6 est représenté par la liste [0,1,0,1,0,0,1]. 1. Quelle est la représentation du sous-ensemble {2, 3, 4} de N 5? Et quelle est la représentation de {1, 6} de N 6? En tant que sous-ensemble de N 5, la partie {2, 3, 4} est représentée par la liste [0,0,1,1,1,0]. En tant que sous-ensemble de N 6, la partie {1, 6} est représentée par la liste [0,1,0,0,0,0,1]. 2. On suppose donnés deux sous-ensembles E1 et E2 de N n. On note respectivement L1 et L2 les représentations binaires de E1 et E2. Ecrire un algorithme construisant la représentation binaire de l'union E1 E2. # Initialisation de la liste représentant l'union LU = [] for k in range(n+1) : LU = LU + [ L1[k] + L2[k] - L1[k] * L2[k] ] 3. Mêmes notations que dans 2). Ecrire un algorithme construisant la représentation binaire de E1 E2. # Initialisation de la liste représentant l'intersection LI = [] for k in range(n+1) : LI = LI + [ L1[k] * L2[k] ] 4. Mêmes notations que dans 2). Ecrire un algorithme construisant la représentation binaire du complémentaire de E1 dans N n. # Initialisation de la liste représentant le complémentaire LC = [] for k in range(n+1) : LC = LC + [ 1 - L1[k] ]. Toute ressemblance avec une propriété relative aux fonctions indicatrices ne serait bien entendu que pure coïncidence.. Toute ressemblance avec une propriété relative aux fonctions indicatrices ne serait bien entendu que pure re-coïncidence.. Toute ressemblance avec une propriété relative aux fonctions indicatrices ne serait bien entendu que pure re-re-coïncidence.