Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% ont trouvé ce document utile (0 vote)
23 vues7 pages

DS1 22 23 Nsi

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1/ 7

N.S.

I - 1ire: DST 1 2022/2023

CLASSES : 106 - 109

SPECIALITE : Numérique et Sciences Informatiques


Devoir Surveillé 1 - Sur 40 points

Sujet à rendre avec la copie

Classe :
Prénom : Nom :

DURÉE DE L’ÉPREUVE : 02 h 00

CALCULATRICE NON AUTORISÉE

V.MULARD -1-
N.S.I - 1ire: DST 1 2022/2023

1 Exercice : Code ASCII (3 points)


On rappelle que les codes ASCII des lettres majuscules vont de 65 (pour A) à 90 (pour Z), que
ceux des lettres minuscules vont de 97 à 122, que la fonction donnant le code d’un caractère
est ord, et la fonction donnant le caractère associé à un nombre est chr.

1. Écrire la fonction commence_par_une_majuscule(ma_chaine) qui renvoie True si la chaîne


passée en paramètre commence par une majuscule, et False sinon. (On ne se posera pas
le problème de la chaîne vide)

2. Écrire la fonction en_majuscules(ma_chaine) qui renvoie True si tous les caractères de la


chaîne passée en paramètre sont des majuscules, et False sinon. (On ne se posera pas le
problème de la chaine vide)

3. Écrire la fonction nombre_chaines_commence_par_majuscule(ma_liste) qui renvoie le nom


bre de chaîne commençant par une majuscule dans la liste de chaînes passée en paramètre.

2 Exercice : Binaire de base (5 points)


Les questions sont indépendantes. On laissera les calculs apparents sur la

copie 1. Donner la valeur binaire du nombre décimal 77

2. Donner la valeur décimale du nombre binaire 1100101

3. Que peut-on dire d’un nombre binaire qui se termine par 00 ?

4. Réaliser l’addition binaire 11001+10011

5. Donner la valeur décimale du nombre hexadécimal 8B

6. Quel est le nombre hexadécimal qui suit A9 ?

7. Donner la valeur hexadécimale du nombre binaire 110100101010

8. Sur 16 bits combien existe-t-il de codes binaires différents ?

9. En déduire le plus grand entier naturel (positif) que l’on puisse coder sur 16 bits (on
donnera sa valeur sous forme de puissance) ?

10. Combien faut-il de bits pour représenter le nombre décimal 1025 ?


V.MULARD -2-

N.S.I - 1ire: DST 1 2022/2023

3 Exercice : Flottants (4 points)


Tous les calculs devront rester sur la copie.

1. On considère le nombre décimal 143,40625

(a) Donner l’écriture binaire de 143


(b) Donner l’écriture binaire de 0,40625
(c) En déduire la représentation binaire de 143,40625

2. En TP de physique, on mesure une tension de 5,15V à la sortie d’un convertisseur


analogique numérique. Cette valeur pourra-t-elle être représentée de manière exacte dans
la mémoire de l’ordinateur?

4 Exercice : Nombres relatifs (5 points)


1. Donnez en binaire les entiers relatifs suivants sur 8 bits avec la méthode du complément à
2 : -10, -56, -128.

2. Que valent en base dix les deux entiers relatifs binaires codés sur 1 octet

suivants : (a) (01101100)c2 (b) (11101101)c2

3. Quelle est l’étendue sur 2 octets en complément à 2? (on donnera le résultat en puissance
de 2)

4. Donnez en binaire les nombres 20 et -15 sur 8 bits en complément à 2 puis calculer 20-15
en complément à 2.

5 Exercice : Chaîne de caractères (3 points)


Une chaîne de caractères est bien parenthésée si elle contient autant de parenthèses
ouvrantes que de parenthèses fermantes, et qu’en la lisant de gauche à droite, il y a toujours au
moins autant de parenthèses ouvrantes que de parenthèses fermantes.

1. Parmi les chaînes suivantes, lesquelles sont bien parenthésées ?


t=’abcd’ , u=’(abc(d(ef))’ , v=’()a()b’ , w=” , x=’(ab))c(‘ , y=’((abc(d)))’, z=’(abc))’

2. On veut coder la fonction BienParenthesee(machaine), qui revoie True si la chaîne est bien
parenthésée, False sinon.

(a) Préparer un jeu de tests pour cette fonction


(b) Coder la fonction en créant un compteur qui commence à 0, qui augmente de 1 à
chaque parenthèse ouvrante et diminue de 1 à chaque parenthèse fermante

V.MULARD -3-

N.S.I - 1ire: DST 1 2022/2023

6 Exercice : Python (8 points)


Les questions sont indépendantes
1. Donnez de deux manières différentes un programme permettant de construire la liste des
50 premiers nombres pairs
2. Que donne les instructions suivantes :

A=[[1,2,3] , [4,5,6] , [7,8,9] , [10,11,12]]


print(A[1][2], len(A))

3. On définie la fonction mystère(x) suivante :

def nombre_chiffres(x):
"""x est un entier strictement positif
renvoie ............................"""
t=0
while x != 0:
x = x // 2
t=t+1
return t

(a) Que fait cette fonction ?


(b) Si on utilise la fonction avec le paramètre x égal à 32, combien de divisions sont

effectuées? 4. On a écrit les lignes

a='bonjour'
a[0]='B'

(a) Pourquoi a-t-on obtenu un message d’erreur ?


(b) Comment peut-on mettre en majuscules la première lettre ?

5. On considère le programme suivante :


def Transform(n):
'''La fonction suivante prend en entrée un entier naturel
et renvoie son écriture binaire.
Entrée : int
Sortie : str
'''
resultat=""
while n!=0:
........
........
return resultat

V.MULARD -4-

N.S.I - 1ire: DST 1 2022/2023

(a) Compléter les deux lignes manquantes.


(b) Modifier ce programme précédent pour obtenir une écriture en hexadécimale à partir
d’un entier naturel sans passer par le binaire.

7 Exercice : Booleens (4 points)


1. Rappeler la table de vérité de « a ou b »
2. Montrer que l’on peut représenter l’opérateur A et B en utilisant seulement les opérateurs
non et ou.

3. Construire la table de vérité de « a et (b ou c) »

4. On donne la table de vérité suivante :


a b c x
a b c x
1 0 0 1
0 0 0 1
1 0 1 0
0 0 1 1
1 1 0 0
0 1 0 1
1 1 1 0
0 1 1 1

Exprimer x à l’aide de a, b, c, non, et, ou.

8 Exercice : Assembleur (8 points) 1.


Expliquez les instructions suivantes :
(a) ADD R0, R1, #42 (b) LDR R5,98 (c) STR R0,15 (d) B 100
(e) CMP R4, #18 BGT 77

2. Écrire les instructions en assembleur correspondant aux phrases suivantes :

(a) Additionner la valeur stockée dans le registre R0 et la valeur stockée dans le registre
R1, le résultat est stocké dans le registre R5
(b) Placer la valeur stockée à l’adresse mémoire 878 dans le registre R0
(c) Placer le contenu du registre R0 en mémoire vive à l’adresse 124
(d) Si la valeur stockée dans le registre R0 est égale 42 alors la prochaine instruction à
exécuter se situe à l’adresse mémoire 85 , sinon la prochaine instruction à exécuter se
situe en mémoire vive à l’adresse 478

3. Des entiers sont stockés aux adresses 7,8,9,10 dans la mémoire vive. Écrire une suite
d’instructions en assembleur qui additionne le contenu de ces mémoires et le stocke à
l’adresse 11. Pour cela, vous n’avez le droit d’utiliser que deux registres : R0 et R1
Attention : TOURNER LA PAGE !!! Encore une question

V.MULARD -5-

N.S.I - 1ire: DST 1 2022/2023

4. Les cases mémoires 11, 12, 13, de la mémoire vive contiennent des entiers. Que fait le pro
gramme suivant :
1
1 2
0
0 1
1
1 4
0
2 1
1
1 6
0
4
LDR
1
R0,11
0
CMP
6
R0,#2
1 BEQ
0 112
8 LDR
R2,13
1 STR
1 R2,30 B
0 116
LDR
1 R2,12
STR HALT S
R2, 30

V.MULARD -6-

Vous aimerez peut-être aussi