Licence Sciences et Technologies Examen janvier 2010



Documents pareils
Représentation d un entier en base b

Représentation des Nombres

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 1 : Introduction Ordinateurs - Langages de haut niveau - Application

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

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

Complément d information concernant la fiche de concordance

La fonction exponentielle

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

EXERCICE 4 (7 points ) (Commun à tous les candidats)

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

Fonctions homographiques

STAGE IREM 0- Premiers pas en Python

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Conversion d un entier. Méthode par soustraction

Logiciel de Base. I. Représentation des nombres

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Algorithme. Table des matières

Informatique Générale

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

Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007

Introduction à MATLAB R

V- Manipulations de nombres en binaire

avec des nombres entiers

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

3 Approximation de solutions d équations

Présentation du langage et premières fonctions

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

Développements limités, équivalents et calculs de limites

Les opérations binaires

IV- Comment fonctionne un ordinateur?

Nombre dérivé et tangente

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

Dérivation : cours. Dérivation dans R

Rappels sur les suites - Algorithme

Image d un intervalle par une fonction continue

Initiation à la programmation en Python

Cours d Analyse. Fonctions de plusieurs variables

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

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

Algorithmique et Programmation, IMA

1 Recherche en table par balayage

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

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

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

CCP PSI Mathématiques 1 : un corrigé

L informatique en BCPST

Université Paris-Dauphine DUMI2E 1ère année, Applications

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

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)

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

IFT2880 Organisation des ordinateurs et systèmes

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Chapitre 1 I:\ Soyez courageux!

Introduction à l informatique en BCPST

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Vous revisiterez tous les nombres rencontrés au collège, en commençant par les nombres entiers pour finir par les nombres réels.

Les équations différentielles

Glossaire des nombres

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Par combien de zéros se termine N!?

THEME : CLES DE CONTROLE. Division euclidienne

Raisonnement par récurrence Suites numériques

I. Ensemble de définition d'une fonction

Comparaison de fonctions Développements limités. Chapitre 10

Chap17 - CORRECTİON DES EXERCİCES

Continuité et dérivabilité d une fonction

Commun à tous les candidats

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Cours d algorithmique pour la classe de 2nde

PROJET ALGORITHMIQUE ET PROGRAMMATION II

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

Cours 7 : Utilisation de modules sous python

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

Fonction inverse Fonctions homographiques

Dérivation : Résumé de cours et méthodes

Continuité en un point

Chapitre 10 Arithmétique réelle

Chapitre 1 : Évolution COURS

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Intégration et probabilités TD1 Espaces mesurés Corrigé

Compter à Babylone. L écriture des nombres

TP 1. Prise en main du langage Python

IV- Equations, inéquations dans R, Systèmes d équations

Théorème du point fixe - Théorème de l inversion locale

L ALGORITHMIQUE. Algorithme

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

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

I. Polynômes de Tchebychev

DM 1 : Montre Autoquartz ETA

Correction du Baccalauréat S Amérique du Nord mai 2007

Initiation à l algorithmique

Architecture de l ordinateur

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

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

Transcription:

Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre. Le barème n est donné qu à titre indicatif et pourra être modifié. Exercice 1 : Questions de cours (2 points) 1. UNIX est un système d exploitation multi-tâches et multi-utilisateurs : qu est-ce que cela signifie? 2. Expliquer ce qu est un mot-mémoire. Donner la taille des mots mémoires utilisés dans les ordinateurs actuels. Si on considère une RAM de 256 Mo constituée de mots mémoires de 2 octets, quelle sera la taille des adresses utilisées? (en bits, puis en octets). 1. (1 point) UNIX est un système d exploitation multi-tâches : il est capable d exécuter plusieurs programmes en concurrence (simultanément). UNIX est un système d exploitation multi-utilisateurs : plusieurs utilisateurs peuvent être connectés simultanément au système par le biais de terminaux (ensemble écran/clavier). 2. (1 point) La mémoire est constituée de bits. Cependant, ces bits sont regroupés de sorte que l unité élémentaire manipulée par l ordinateur n est pas le bit, mais le mot-mémoire. Actuellement, les ordinateurs utilisent des mots-mémoires de 32 ou 64 bits, soit 4 ou 8 octets. Une RAM de 256 Mo compte 256 2 10 2 10 = 2 28 octets. Divisée en motsmémoires de 2 octets, elle comporte donc 2 27 mots mémoires. Les adresses seront donc formées de 27 bits, ce qui nécessitera 27 8 = 4 octets. Exercice 2 : Unix (3 points) On considère l arborescence de répertoires et de fichiers représentée sur la Figure 1. Dans vos réponses, vous donnerez les commandes complètes permettant de répondre aux questions. Initialement, le répertoire courant est le répertoire dupont01. 1. Donner une série de deux commandes permettant de vous déplacer dans le répertoire docs puis d afficher la liste des fichiers et répertoires situés dans ce répertoire, en donnant les détails sur leurs propriétaires, droits d accès, dates de modification... 2. L utilisateur se trouve à présent dans le dossier docs. Il souhaite déplacer tous les fichiers dont le nom se termine par.c dans le dossier prog. Donnez la commande complète permettant de réaliser cette opération en une seule commande. 1

/ home usr dupont01 bin local lib prog docs Figure 1 Un exemple d arborescence 3. Lors de l opération précédente, il reçoit le message d erreur suivant : transform.c: Permission denied Expliquez ce qui s est passé. L utilisateur pouvait-il le prévoir d après les commandes qu il a tapées auparavant? Expliquez votre réponse. En supposant que ce fichier lui appartient, donnez la commande lui permettant de résoudre ce problème. 1. On tape successivement les commandes suivantes : cd docs (0,5 point) ls -l (0,5 point) 2. Il s agit de la commande suivante : (1 point) mv *.c../prog 3. L utilisateur ne dispose pas des droits nécessaires (écriture) pour déplacer le fichier transform.c. (0,25 point) Il aurait pu s en rendre compte grâce à la commande ls -l qui lui a donné ses droits pour ce fichier. (0,25 point) Pour corriger le problème, il doit se donner le droit d écriture sur ce fichier, ce qu il peut faire à l aide de la commande suivante : chmod u+w transform.c (0,5 point) Exercice 3 : Représentation des nombres (5 points) 1. Représentation des entiers positifs. (a) On considère l écriture 110. Que vaut cette écriture en base 2? en base 4? en base 8? (b) Ecrire 60 (10) et 103 (10) en base 16, puis poser l addition de ces deux nombres en base 16. 2. Représentation des entiers relatifs. On considère la représentation des entiers relatifs par complément à 2, sur 5 bits. 2

(a) Ecrire dans cette représentation les nombres 11 et 8 et détailler l addition de ces nombres. (b) Pour les deux additions suivantes, détaillez les calculs et indiquez si le résultat est valable ou non, en justifiant votre réponse (il est inutile de convertir les nombres en base 10) : 10100 + 11010 11001 + 01100 3. Représentation des nombre réels. La représentation IEEE sur 32 bits donne un bit pour le signe, 8 bits à l exposant (qui est biaisé à 127) et 23 bits à la mantisse. Calculez la représentation selon cette convention du nombre réel x = 8,75. Vous détaillerez les différentes étapes de votre calcul. Expliquez comment en déduire la représentation de 2 x. 1. Représentation des entiers positifs. (a) (0,5 point) En base 2, l écriture 110 vaut : (110) 2 = 1 2 2 +1 2 1 +0 2 0 = 6 (0,25 point) En base 4, on obtient (110) 4 = 1 4 2 +1 4 1 +0 4 0 = 20. (0,25 point) En base 8, on obtient (110) 8 = 1 8 2 +1 8 1 +0 8 0 = 72. (b) Pour calculer l écriture en base 16, on pose les divisions euclidiennes successives par 16, et on trouve l écriture comme la suite des restes dans l ordre inverse. Pour (60) 10, on a 60 = 3 16+12. Comme 12 est représenté en base 16 par la lettre C, on obtient finalement (60) 10 = (3C) 16. (0,5 point) On procède de la même façon pour le nombre 103 (10) et on obtient 103 (10) = (67) 16. (0,25 point) On pose l addition comme suit : (1) 3 C + 6 7 A 3 En effet, comme C représente le nombre 12, la somme de C et de 7 donne 19 qui se décompose en 19 = 1 16+3, d où la retenue de 1. La seconde somme donne 1+3+6 = 10, qui est représenté par la lettre A en base 16. (0,25 point) 2. Représentation des entiers relatifs. (a) Pour calculer la représentation de 11 en complément à 2, on calcule la représentation en base 2 de ( 11+1) = 10 sur 5 bits. On obtient (10) 10 = (01010) 2. On inverse 3

ensuite les bits un à un, et obtient finalement que la représentation complément à 2 sur 5 bits de 11 est 10101. (0,5 point) Pour le nombre 8 qui est positif, il suffit de calculer sa représentation habituelle et de la compléter par des 0. On obtient l écriture 01000. (0,25 point) L addition est posée de la façon suivante. Elle est correcte puisqu un nombre est négatif et l autre positif. On vérifie par exemple que l on obtient un résultat négatif, ce qui est cohérent avec 11+8 < 0. (0,25 point) 10101 + 01000 11101 (b) On pose les additions suivantes : (2 0,5 point) 10100 + 11010 (1) 01110 11001 + 01100 (1) 00101 La première addition n est pas correcte car la somme de deux nombres négatifs doit être négative. La seconde addition est correcte car elle concerne un nombre positif et un nombre négatif. 3. Représentation des nombre réels. On cherche la décomposition de x selon le signe s, l exposant e et la mantisse m. x est positif, ce qui nous donne le signe s = 1, représenté par un 0. (0,25 point) Pourobtenirl exposantetlamantisse,commex > 2,ondivisexjusqu àappartenir à l intervalle [1,2[. On obtient ici x = 2 3 1,09375. L exposant vaut donc e = 3 et la mantisse m = 1,09375. (0,25 point) Pour obtenir la représentation de l exposant, on calcule l exposant biaisé à 127, soit e = e+127 = 130. Son écriture en base 2 vaut (130) 10 = (10000010) 2. (0,25 point) Pour la mantisse, on doit la décomposer selon les puissances négatives de 2. On obtient m = 1+0.0625+0.03125 = 2 0 +2 4 +2 5. Le bit correspondant à 2 0 n est pas représenté. (0,25 point) On obtient finalement l écriture suivante : 0 10000010 00011000000000000000000 Exercice 4 : Algorithmique (3 points) On considère la fonction d une variable réelle définie par f(x) = x(2 x). 1. Ecrivez le programme Python correspondant : il devra demander à l utilisateur de saisir un entier n, calculer s et l afficher. 2. Que calcule l algorithme 1 pour n = 2? Montrez sur un dessin ce que calcule cet algorithme pour n = 4. Vers quoi tend la valeur retournée par l algorithme lorsque n tend vers l infini? 4

Algorithme 1 Inconnu(n) Entrée : Un entier n > 0 Sortie : Un réel s 1: s = 0 2: i = 1 3: Tant Que i n Faire 4: s = s+f( i n ) 1 n 5: i=i+1 6: Fin Tant Que 7: Retourner s 1. 1,5 point. n=input("entrez un entier n > 0 : ") s=0 i=1.0 # pour que i soit reconnu comme un nombre réel while i<=n: x=i/n # comme i est un nombre réel, la division retourne un décimal s=s+x*((2-x)/n)*x i=i+1 print s 2. Pour n = 2, l algorithme retourne 7/8 (0,5 point). 3. Le dessin (0,5 point). 4. L algorithme calcule, par valeurs supérieures, la surface comprise sous la courbe d équation y = x(2 x) et limitée par les abscisses x = 0 et x = 1. Lorsque n tend vers l infini, la valeur retournée tends vers 2/3 (0,5 point). Exercice 5 : Python (4 points) On considère la fonction d une variable réelle définie par f(x) = x 3 + x 1. Elle est strictement croissante et s annule entre 0 et 1. Sa dérivée est égale à f (x) = 3x 2 + 1. On cherche une valeur approchée de sa racine par la méthode de Newton. Pour cela, on considère la suite définie par récurrence par : x 0 = 0 et x n+1 = x n f(x n )/f (x n ). 1. ÉcrivezenPythonunefonctionf quiprendenentréeunréelxpuisretournex 3 +x 1. 2. Écrivez en Python une fonction df qui prend en entrée un réel x puis retourne 3x 2 +1. 3. Écrivez en Python une fonction test qui prend en entrée deux nombres réels x et ǫ et retourne 1 si f(x) [ ǫ,ǫ] et 0 sinon. 4. Écrivez en Python un programme qui saisit un nombre réel ǫ et retourne le premier terme x n qui vérifie f(x n ) [ ǫ,ǫ]. 5

1. (0,5 point) def f(x): return x**3+x-1 2. (0,5 point) def df(x): return 3*x*x+1 3. (1 point) def test(x,e): if (f(x)>=-e) and (f(x)<=e): return 1 else: return 0 4. (2 point) e=input("entrez un nombre réel positif e = ") x=0.0 while test(f(x),e)==0: x=x-f(x)/df(x) print x Exercice 6 : Architecture (3 points) On suppose que la mémoire RAM d un ordinateur contient 16 mots-mémoire d un octet chacun. Chaque mot mémoire peut donc être désigné par un entier de 0 à 15, représentable sur 4 bits (son adresse). L Unité Centrale (UC) de cet ordinateur contient : un registre CO (compteur ordinal) de 4 bits qui contient l adresse de la prochaine instruction à exécuter, un registre RI (registre instruction) de 4 bits qui contient l instruction en cours d exécution, un registre ACC (accumulateur) d un octet pouvant contenir n importe quel mot mémoire. On considère les instructions suivantes, chacune étant codée sur un mot mémoire : LOAD x 1 x 2 x 3 x 4 : codée par 0000x 1 x 2 x 3 x 4, cette instruction charge la valeur contenue à l adresse x 1 x 2 x 3 x 4 de la mémoire RAM dans le registre ACC. STO x 1 x 2 x 3 x 4 : codée par 0010x 1 x 2 x 3 x 4, cette instruction stocke la valeur contenue dans le registre ACC à l adresse x 1 x 2 x 3 x 4 de la mémoire RAM. ADD x 1 x 2 x 3 x 4 : codée par 0011x 1 x 2 x 3 x 4, cette instruction ajoute la valeur contenue à l adresse x 1 x 2 x 3 x 4 au contenu du registre ACC et stocke le résultat dans le registre ACC. 6

SUB x 1 x 2 x 3 x 4 : codée par 0101x 1 x 2 x 3 x 4, cette instruction soustrait la valeur contenue à l adresse x 1 x 2 x 3 x 4 du contenu du registre ACC et stocke le résultat dans le registre ACC. SHL : codée par 01100000, cette instruction décale les bits du registre accumulateur d une position vers la gauche, le bit le plus à droite devenant 0. SHR : codée par 01110000, cette instruction décale les bits du registre accumulateur d une position vers la droite, le bit le plus à gauche devenant 0. STOP : codée par 11111111, cette instruction arrête le déroulement du programme. On rappelle que le déroulement d un programme se fait de la manière suivante : (a) Charger le contenu du CO dans le RI (b) Modifier le CO pour qu il désigne l instruction suivante (c) Analyser et décoder l instruction figurant dans le RI (d) Localiser en mémoire d éventuelles données nécessaires à cette instruction (e) Exécuter l instruction (f) Reprendre à l étape (a) si la dernière instruction exécutée est différente de STOP. 1. On suppose que le registre CO est initialement nul, et on considère le contenu initial de la RAM suivant : Adr RAM Adr RAM 0000 00001010 1000 00000000 0001 01110000 1001 00000000 0010 01100000 1010 00100101 0011 00101011 1011 00000000 0100 00001010 1100 00000000 0101 01011011 1101 00000000 0110 00101011 1110 00000000 0111 11111111 1111 00000000 Donnez les instructions correspondant aux 8 premiers mots-mémoire de la RAM. 2. En supposant que le registre CO est initialement nul, détaillez l effet sur le contenu de la mémoire de l exécution de ces instructions. Quel est l algorithme implémenté par ces instructions? 3. Soit n le nombre codé en binaire par le mot-mémoire à l adresse 1010. Comment modifier le programme pour qu à l issue de l exécution, le mot-mémoire à l adresse 1011 soit égal à n si n est pair à n+1 si n est impair? 1. (1 point) 7

0000 LOAD 1010 0001 SHR 0010 SHL 0011 STO 1011 0100 LOAD 1010 0101 SUB 1011 0110 STO 1011 0111 STOP 2. (1 point) LOAD 1010 : charge la valeur 00100101 dans ACC SHR : ACC contient 00010010 SHL : ACC contient 00100100 STO 1011 : stocke 00010010 à l adresse 1011 LOAD 1010 : charge la valeur 00100101 dans ACC SUB 1011 : ACC contient 00000001 STO 1011 : stocke 00000001 à l adresse 1011 STOP : arrêt du programme. Commentaires : l instruction SHR revient à calculer le quotient de la division entière de ACC par 2; l instruction SHL revient à multiplier le contenu de ACC par 2; la valeur contenue dans ACC est donc inchangée si le nombre initial n était pair; elle est égale à n-1 sinon. Ce nombre est stocké à l adresse 1011 puis soustrait de n : on obtient donc 0 si n est pair et 1 sinon. A la fin du programme, le mot-mémoire d adresse 1011 est égal à 0 si n était pair et à 1 sinon. 3. (1 point) Il suffit d ajouter n à ce résultat pour obtenir ce qu on souhaite. Le programme est modifié comme suit : 0000 LOAD 1010 0001 SHR 0010 SHL 0011 STO 1010 0100 LOAD 1010 0101 SUB 1011 0110 ADD 1010 0111 STO 1011 1000 STOP 8