Concours Blanc 1 - Janvier 2016

Documents pareils
Licence Sciences et Technologies Examen janvier 2010

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

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

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

DM 1 : Montre Autoquartz ETA

Représentation d un entier en base b

Le chiffre est le signe, le nombre est la valeur.

Conversion d un entier. Méthode par soustraction

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

Représentation des Nombres

Raisonnement par récurrence Suites numériques

Les opérations binaires

Initiation à la programmation en Python

I. Introduction aux fonctions : les fonctions standards

Chapitre 11. Séries de Fourier. Nous supposons connues les formules donnant les coefficients de Fourier d une fonction 2 - périodique :

I- Définitions des signaux.

Algorithme. Table des matières

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Recherche dans un tableau

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

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

Vers l'ordinateur quantique

Algorithmique et Programmation, IMA

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

Puissances d un nombre relatif

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

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

Chapitre 1 I:\ Soyez courageux!

Programmation Objet - Cours II

STAGE IREM 0- Premiers pas en Python

I. Ensemble de définition d'une fonction

Informatique Générale

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

Algorithmique avec Algobox

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

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

Calculateur quantique: factorisation des entiers

Fonctions homographiques

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

NOTATIONS PRÉLIMINAIRES

Date : Tangram en carré page

IFT2880 Organisation des ordinateurs et systèmes

Chap17 - CORRECTİON DES EXERCİCES

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Chapitre 6. Fonction réelle d une variable réelle

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

module Introduction aux réseaux DHCP et codage Polytech / 5

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

LES NOMBRES DECIMAUX. I. Les programmes

DOCM Solutions officielles = n 2 10.

1 Recherche en table par balayage

Rappels sur les suites - Algorithme


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

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

Activité 4. Tour de cartes Détection et correction des erreurs. Résumé. Liens pédagogiques. Compétences. Âge. Matériels

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

Correction TD algorithmique

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

Algorithmique avec Algobox

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

LES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES

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

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

Précision d un résultat et calculs d incertitudes

Annexe : La Programmation Informatique

D'UN THÉORÈME NOUVEAU

Compter à Babylone. L écriture des nombres

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

Cours 7 : Utilisation de modules sous python

TP 1. Prise en main du langage Python

chapitre 4 Nombres de Catalan

Capacité Métal-Isolant-Semiconducteur (MIS)

Introduction à NetCDF

Introduction à l'informatique. Vincent Boyer et Jean Méhat

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

Exercices de dénombrement

COMMUNICATION PC/MINITEL

Développements limités. Notion de développement limité

Rappels Entrées -Sorties

Quelques algorithmes simples dont l analyse n est pas si simple

Glossaire des nombres

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)

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

1.6- Génération de nombres aléatoires

Chapitre 2. Eléments pour comprendre un énoncé

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Représentation d un nombre en machine, erreurs d arrondis

Cours Fonctions de deux variables

Si vous décidez d utiliser un autre chemin, c est ce nouveau chemin qu il faudra prendre en compte pour la sauvegarde. Cf. : Chapitre 9 Sauvegarde

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

6. Les différents types de démonstrations

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

Transcription:

NOM : Prénom : Classe : Concours Blanc 1 - Janvier 2016 Les réponses sont à écrire exclusivement sur ce document Les diérentes questions sont indépendantes les unes des autres. Vous accorderez un soin particulier aux justications que vous apporterez à vos réponses, qui auront une grande importance dans votre note. 1 Tracé de courbes représentatives de fonctions et calcul d'intégrales 1.1 Tracé de la courbe représentative d'une fonction Question 1. Créer une fonction f(x) qui prend en argument un ottant x et renvoie le résultat de : f(x) = 1 1 + x 1 + x 4 Question 2. Construire la liste X=[0, 0.02, 0.04, 0.06,..., 1.98, 2]. On pourra utiliser la méthode de son choix. Question 3. Construire la liste Y des images par f des éléments de la liste X Question 4. Quelle(s) commande(s) permettent d'acher la courbe représentative de f sur [0 ;2]? Informatique 1/ 9 Lyc. J. Perrin (13)

1.2 Méthodes des trapèzes Question 5. Écrire une fonction Trapeze(a,b,f,n) qui prend en argument deux ottants a et b représentant les bornes d'intégration ; une fonction f et un entier strictement positif n représentant le nombre de pas d'intégration, et qui renvoie la valeur approchée de l'intégrale de f sur [a; b] avec n pas, calculée par la méthode des trapèzes. Question 6. Calculer avec la méthode des trapèzes, en utilisant n = 10 4 points l'intégrale suivante : 2 0 1 1 + x 1 + x 4 dx On pourra utiliser toutes les fonctions de l'exercice ; y compris celles de la partie 1.1. 2 Autour du codage des ottants On rappelle que le codage des ottants en double précision, c'est à dire sur 64 bits, d'un réel x utilise l'écriture x = ( 1) s 2 e (1 + m) où s est codé sur 1 bit, e est codé sur 11 bits et est décalé de -1023 (ainsi le codage 100 0000 0001 correspond à l'exposant 1025-1023=2) et que e appartient à l'intervalle [-1022 ; +1023]. Enn m est codé sur 52 bits. 2.1 Deux exemples Question 7. Coder à la main -19,75 ; on prendra soin de regrouper les bits quatre par quatre. Informatique 2/ 9 Lyc. J. Perrin (13)

Question 8. Décoder à la main le nombre ottant codé en double précision par : 0100 0000 0100 1010 1110 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 2.2 Intégrité des données binaires La suite de ce problème est dédiée à l'étude de la conversion de nombres décimaux en nombres ottants et vice-versa. Nous utiliserons la variable x pour désigner le ottant écrit en base décimale. Pour nos représentations de données sous formes binaires nous utiliserons trois variables : s qui sera un entier, représentant le signe en codage ottant double précision. E qui sera une liste de longueur 11, ne contenant que des 0 et des 1 et représentant l'exposant tel que codé en double précision, lue de gauche à droite. L qui sera une liste de longueur 52, ne contenant que des 0 et des 1 et représentant la mantisse tel que codée en double précision, lue de gauche à droite. Question 9. Quelles seraient les valeur de s, E et L pour le nombre ottant 1. ; on prendra gare au décalage de 1023 dans l'exposant. Question 10. Écrire une fonction test01(l) qui prend en argument une liste L et qui retourne le booléen True si L n'a que des 0 ou des 1 et le booléen False sinon. Informatique 3/ 9 Lyc. J. Perrin (13)

Question 11. Écrire une fonction test(s,e,m) d'arguments un entier s, et deux listes E et M, qui vérient si les variables s, E et M sont susceptibles de représenter un codage de nombre ottant dans notre convention. On prendra garde aux longueurs de E et L et on se servira de la fonction précédente. 2.3 Conversion binaire décimal Dans cette partie l'objectif est de convertir une représentation s,e,m en ottant x. Question 12. Écrire une fonction sommebin(l) d'argument L une liste de longueur n qui calcule la quantité suivante : k=n 1 k=0 L[k] 2 n 1 k On pourra se servir de cette fonction même si on n'a pas su la coder dans la suite, et elle sera supposée juste par le correcteur pour les questions suivantes. Reprogrammer de manière inexacte une variante de cette fonction sera par contre pénalisé. Question 13. Écrire une fonction exposant(e) qui prend en argument une liste E valide et représentant l'écriture binaire de l'exposant d'un nombre codé en double précision et qui renvoie l'entier correspondant à e dans l'écriture x = ( 1) s 2 e (1 + m) Informatique 4/ 9 Lyc. J. Perrin (13)

Question 14. Écrire une fonction mantisse(m) qui prend en argument une liste M valide et représentant l'écriture binaire de la mantisse d'un nombre codé en double précision et qui renvoie le ottant m dans l'écriture x = ( 1) s 2 e (1 + m) Question 15. Écrire une fonction semtofloat(s,e,m) qui prend en arguments les variables s,e et M, dénies plus haut, supposées valides, et qui renvoie le ottant x qu'elles codent. 2.4 Conversion décimal binaire sans problème d'arrondi Cette sous-partie s'intéresse au codage d'un décimal x non nul écrit en base 10 comme un ottant double précision, codé à l'aide des variables s, E et M. On ne s'intéresse pas pour le moment au problème d'arrondi de la mantisse. 1. La première étape consiste à chercher la valeur de la variable s. Pour cela on regarde le signe de x. On travaille à partir de là sur y la valeur absolue de x, qui peut être obtenue en Python à l'aide de abs(x). 2. La seconde étape consiste à chercher la valeur de l'exposant e, puis à la transformer en liste E. Pour cela, on pourra utiliser la formule suivante : e = 1023 + log 2 (y) La fonction log 2 désigne le logarithme en base 2, elle peut être obtenue en Python avec la fonction log de la bibliothèque numpy puis en utilisant log(y,2) (on prendra garde à la syntaxe utilisée pour importer des fonctions depuis un module). a désigne la partie entière du nombre a. L'entier e ainsi obtenu est converti en une liste représentant ses bits codés dans une liste de 11 éléments et correspondant à son écriture en binaire non signé sur 11 bits. y 3. Dans la dernière étape on travaille sur le décimal z = 2 log. On a nécessairement 1 z < 2. 2 (y) L'algorithme suivant permet ensuite d'obtenir les éléments de M : aecter z-1 à z créer une liste M vide pour i allant de 1 à 52 faire : multiplier z par 2 si z 1 ajouter 1 à la n de M et aecter z-1 à z ; sinon ajouter 0 à la n de M n du pour renvoyer M Informatique 5/ 9 Lyc. J. Perrin (13)

Question 16. Écrire une fonction variable_s(x) d'argument un décimal x qui renvoie la valeur de s, comme décrit dans la première étape de cet algorithme. Question 17. Écrire une fonction exposant(x) d'argument un décimal x de signe quelconque, qui calcule y = x et renvoie la valeur de e calculée à l'aide de la formule donnée dans la deuxième partie de cet algorithme. Question 18. En se servant de la fonction exposant codée à la question précédente, qu'on pourra utiliser même si on a pas su répondre à cette question, écrire une fonction listee qui prend en argument un décimal x, et qui renvoie la liste E comme décrite à la seconde étape de l'algorithme. Question 19. Écrire une fonction listem d'argument un décimal x qui renvoie la liste M, telle que décrite dans la troisième étape de l'algorithme. Informatique 6/ 9 Lyc. J. Perrin (13)

3 Bits de parité et codes de Hamming (extrait banque PT 2015) Un signal transmis peut comporter des erreurs dans les données transmises ; il est indispensable de détecter ces erreurs, et, dans la mesure du possible, de les corriger sans nécessiter une nouvelle transmission. 3.1 Bits de parité Une technique très simple pour s'assurer qu'une donnée binaire sera correctement lue par son récepteur est de lui adjoindre un bit de parité, égal, par dénition, à : 0 si la donnée comporte un nombre pair de 1 (et donc si ses bits sont de somme paire) ; 1 si la donnée comporte un nombre impair de 1 (et donc si ses bits sont de somme impaire) Après réception de la donnée, le récepteur recalcule le bit de parité, et le compare à celui que l'émetteur lui a adressé. Si la donnée n'a pas été altérée lors de la transmission, alors les deux bits de parité sont forcément identiques. Question 20. Donner les bits de parité associés aux représentations binaires des entiers 5, 16 et 37. Question 21. Écrire une fonction parite(bits) qui prend en argument une liste bits, constituée d'entiers valant 0 ou 1, et retournant l'entier 0 ou 1 correspondant à son bit de parité. 3.2 Code de Hamming Le code de Hamming est un exemple d'utilisation de bits de parité pour détecter et corriger des erreurs. Nous nous intéressons ici au code (7,4), ainsi appelé car il consiste à joindre trois bits de parité à quatre bits de données, ce qui donne un message de longueur totale de sept bits. Ces trois bits de parité sont ainsi dénis : si la donnée s'écrit (d 1, d 2, d 3, d 4 ) avec d i = 0 ou 1 alors : p 1 est le bit de parité du triplet (d 1, d 2, d 4 ) p 2 est le bit de parité du triplet (d 1, d 3, d 4 ) p 3 est le bit de parité du triplet (d 2, d 3, d 4 ) Le message encodé, que l'on transmet, s'écrit (p 1, p 2, d 1, p 3, d 2, d 3, d 4 ) Informatique 7/ 9 Lyc. J. Perrin (13)

Question 22. Écrire une fonction encode_hamming(donnees) qui prend en argument une liste donnees de quatre bits (constitués d'entiers 0 ou 1) et qui retourne une liste de bits contenant le message encodé. On utilisera la fonction précédente. Le contrôle après réception d'un message ainsi encodé est relativement simple. On pourrait naturellement recalculer les trois bits de parité de la donnée et les comparer aux valeurs transmises, mais la technique proposée par Hamming est de calculer les trois bits de contrôle suivants, notés (c 1, c 2, c 3 ) à partir du message complet (données et bits supplémentaires) noté (m 1,..., m 7 ) : c 1 est le bit de parité de l'ensemble (m 4, m 5, m 6, m 7 ) c 2 est le bit de parité de l'ensemble (m 2, m 3, m 6, m 7 ) c 3 est le bit de parité de l'ensemble (m 1, m 3, m 5, m 7 ) On montre que si le message a été bien encodé selon les règles précédentes et n'a pas été altéré, alors les trois bits de contrôle doivent être nuls ; si ce n'est pas le cas, il y a eu une erreur. L'intérêt de la technique de Hamming est que, dans le cas particulier où l'erreur est unique, le mot de contrôle donne la représentation binaire de la position de cette erreur en numérotant à partir de 1. Par exemple, si (c 1, c 2, c 3 ) = (0, 1, 1) alors l'erreur porte sur le troisième bit du message. Il sut ainsi d'inverser ce bit (le mettre à 1 si il est à 0 et inversement) pour corriger l'erreur. La donnée décodée est alors constituée des quatre bits (d 1, d 2, d 3, d 4 ) qui se trouvent respectivement en positions 3, 5, 6 et 7 (toujours numérotés à partir de 1) conformément à la description de l'encodage donnée ci-dessus. Question 23. Écrire une fonction decode_hamming(message) qui prend en argument une liste message de sept bits (constitués d'entiers 0 ou 1) et retournant une liste de quatre bits contenant la donnée décodée. En cas d'erreur, on achera à l'écran un avertissement indiquant la position du bit aecté et on eectuera la correction. On supposera dans cette question que s'il y a une erreur, alors elle est unique. Informatique 8/ 9 Lyc. J. Perrin (13)

Question 24. Déterminer le codage de Hamming de la donnée 1011, puis la donnée décodée par l'algorithme dans l'hypothèse où les deux premiers bits du message codé ont été incorrectement transmis. Quel a été l'eet de la correction sur la donnée dans ce cas? Question 25. Sans coder, proposer un moyen simple de diérencier une erreur double d'une erreur unique au moyen d'un bit de parité supplémentaire, et expliquer comment cela permet d'éviter le problème mis en évidence à la question précédente. On s'appuiera sur les méthodes introduites dans cette partie. On ne demande pas d'essayer de corriger la double erreur. Informatique 9/ 9 Lyc. J. Perrin (13)