Correction DS n°2¶
Énoncé du DS
Représentation des données¶
Exercice 1
On écriera chaque nombre entier sur 8 bits.
\(42 = 00101010\)
\(~~~~~~~~~~11010101\) (complément à 1)
\(~~~~~~~~~~11010110 = -42\) (après complément à 2)
\(120 = 01111000\)
\(~~~~~~~~~~10000111\) (complément à 1)
\(~~~~~~~~~~10001000 = -120\) (après complément à 2)
Exercice 2
\(32,375 = 100000,011 = 1,00000011 \times 2^5\)
\(s = 1\) (car négatif)
\(e = 5 + 127 = 132_{10} = 10000100_{2}\)
\(f = 00000011000000000000000\)
Donc le résultat est :
\(1~10000100~00000011000000000000000\)
Exercice 3
\(s = 0\) (donc nombre positif)
\(e = 10000101_{2} = 133_{10}\)
Donc \(e' = 133 - 127 = 6\)
\(1,0010111 \times 2^6 = 1001011,1_{2} = 75,5_{10}\)
Exercice 4
Il y a \(2^7 = 128\) caractères possibles en ASCII.
Exercice 5
En hexadécimal : 53 61 6C 75 74 20 21
En binaire : 1010011 1100001 1101100 1110101 1110100 0100000 0100001
Exercice 6
Attention, ord
renvoie une valeur décimale (et non hexadécimale), et chr
prend également en entrée une valeur décimale.
Programmation Python¶
Exercice 1
Il suffit pour cela d'additionner a
et b
et de diviser par 2, en utilisant l'opérateur //
afin d'obtenir un entier :
Exercice 2
def verifier_admission(age, moyenne, formation):
``` Renvoie True si les conditions d'admission sont respectées, False sinon.
:param age: (int) Un âge
:param moyenne: (float) Une moyenne
:param formation: (str) Une formation
:return: (bool) True ou False ```
if age >= 18 and moyenne >= 12 and (formation == "mathématiques" or formation == "informatique" or formation == "physique"):
return True
else:
return False
Exercice 3
def pairs_impairs(nb, choix):
''' Affiche les entiers pairs ou impairs de 0 à nb, selon le choix indiqué.
:param nb: (int) un nombre entier
:param choix: (str) le choix donné, "pairs" ou "impairs"
:return: (None) pas de valeur de retour '''
if choix == "pairs":
for i in range(nb+1, 2):
print(i)
elif choix == "impairs":
for i in range(1, nb+1, 2):
print(i)
else:
print("Choix incorrect")
Exercice 4
Exercice 5
from random import randint
def atteindre_objectif(objectif):
compteur = 0
progression = 0 # initialiser la progression
print("Progression actuelle : 0")
while progression < objectif: # tant que l'on a pas attteint l'objectif
compteur += 1 # incrémenter le compteur
ajout = randint(1, 10) # générer valeur à ajouter aléatoirement
print("Ajouté :", ajout) # afficher valeur d'ajout
progression += ajout # ajouter valeur à progression
print("Progression actuelle :", progression) # afficher la nouvelle progression
print("Objectif atteint en", compteur, "essais !")