Académique Documents
Professionnel Documents
Culture Documents
ED
March 14, 2024
M
1 Partie I - Tests de code de sécurité sociale
H
1.1 Q1.
1.1.1 Méthode 1
IA
[50]: def num_secu(code):
code_m = ''
for c in code:
if c != ' ':
N
code_m = code_m + c
return int(code_m)
LA
[51]: # A ne pas inclure dans la feuille des réponses
# Juste pour tester
num_secu("2 91 01 75 018 002")
AW
[51]: 2910175018002
1.1.2 Méthode 2
[52]: def num_secu(code):
KH
code_m = ''
for c in code:
if c.isnumeric():
code_m = code_m + c
return int(code_m)
L
[53]: 2910175018002
PR
ED
if c in '0123456789':
code_m = code_m + c
return int(code_m)
M
[55]: # A ne pas inclure dans la feuille des réponses
# Juste pour tester
num_secu("2 91 01 75 018 002")
H
[55]: 2910175018002
IA
1.1.4 Méthode 4
[56]: def num_secu(code):
code_m = ''
N
for c in code:
if '0' <= c <= '9':
code_m = code_m + c
LA
return int(code_m)
[57]: 2910175018002
1.2 Q2.
KH
clef(2910175018002)
.E
[59]: 68
1.3 Q3.
PR
1.3.1 Méthode 1
[60]: def num_secu_complet(code):
cle = clef(code)
return code * 100 + cle
ED
[61]: 291017501800268
1.3.2 Méthode 2
[62]: def num_secu_complet(code):
M
cle = str(clef(code))
code_c = str(code) + cle
return int(code_c)
H
[63]: # A ne pas inclure dans la feuille des réponses
IA
# Juste pour tester
num_secu_complet(2910175018002)
[63]: 291017501800268
N
1.4 Q4.
LA
[64]: def test_num_secu(code):
cle = int(code[-2:])
code_i = num_secu(code[:-3])
return cle == clef(code_i)
AW
[65]: True
KH
[66]: False
L
.E
2.1.1 Méthode 1
[67]: def num_en_liste(code):
L = []
code_s = str(code)
for x in code_s:
ED
# Juste pour tester
num_en_liste(4532015112830465)
[68]: [4, 5, 3, 2, 0, 1, 5, 1, 1, 2, 8, 3, 0, 4, 6, 5]
M
2.1.2 Méthode 2
[69]: def num_en_liste(code):
H
L = []
while code != 0:
IA
L.append(code % 10)
code = code // 10
L.reverse()
return L
N
[70]: # A ne pas inclure dans la feuille des réponses
# Juste pour tester
LA
num_en_liste(4532015112830465)
[70]: [4, 5, 3, 2, 0, 1, 5, 1, 1, 2, 8, 3, 0, 4, 6, 5]
AW
2.2 Q6.
2.2.1 Méthode 1
[71]: def tuple_pairs_impairs(code):
L = num_en_liste(code)
KH
L0 = L[-2::-2]
L1 = L[::-2]
return L0, L1
tuple_pairs_impairs(4532015112830465)
.E
2.2.2 Méthode 2
PR
ED
# Juste pour tester
tuple_pairs_impairs(4532015112830465)
M
2.2.3 Méthode 3
[75]: def tuple_pairs_impairs(code):
H
L = num_en_liste(code)
L0 = []
IA
L1 = []
for i in range(len(L) - 1, -1, -1):
if i % 2 == 0:
L0.append(L[i])
N
else:
L1.append(L[i])
return L0, L1
LA
[76]: # A ne pas inclure dans la feuille des réponses
# Juste pour tester
tuple_pairs_impairs(4532015112830465)
AW
2.3 Q7.
[77]: def cree_dico(code):
KH
t = tuple_pairs_impairs(code)
return {'pair': t[0], 'impair': t[1]}
cree_dico(4532015112830465)
.E
2.4 Q8.
PR
ED
[80]: # A ne pas inclure dans la feuille des réponses
# Juste pour tester
traitement_nb_pairs({'pair': [6, 0, 8, 1, 5, 0, 3, 4], 'impair': [5, 4, 3, 2,␣
↪1, 1, 2, 5]})
M
[80]: {'pair': [3, 0, 7, 2, 1, 0, 6, 8], 'impair': [5, 4, 3, 2, 1, 1, 2, 5]}
H
2.5 Q9.
[81]: def test_num_carte_credit(code):
IA
dico = cree_dico(code)
dico = traitement_nb_pairs(dico)
x = sum(dico['pair']) + sum(dico['impair'])
return (x % 10) == 0
N
[82]: # A ne pas inclure dans la feuille des réponses
# Juste pour tester
LA
test_num_carte_credit(4532015112830465)
[82]: True
AW
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0]]
ED
[86]: # A ne pas inclure dans la feuille des réponses
# Juste pour tester
init(4)
M
3.2 Q11.
H
[87]: def charge_valeur(QR): # QR est de type image
QR_new = init(21)
IA
for x in range(21):
for y in range(21):
QR_new[x][y] = QR.getpixel(x * 20, y * 20)
return QR_new
N
3.3 Q12.
LA
[88]: def cree_bloc():
bloc = init(7)
for i in range(1, 6):
AW
bloc[1][i] = 1
bloc[-2][i] = 1
bloc[i][1] = 1
bloc[i][-2] = 1
return bloc
KH
[0, 1, 0, 0, 0, 1, 0],
.E
[0, 1, 0, 0, 0, 1, 0],
[0, 1, 0, 0, 0, 1, 0],
[0, 1, 1, 1, 1, 1, 0],
[0, 0, 0, 0, 0, 0, 0]]
PR
ED
for j in range(7):
bloc[i][j] = QR[x + i][y + j]
return bloc == test_bloc()
M
3.5 Q14.
[91]: def test_QRcode(QR): # QR est une matrice
H
return test_bloc(0, 0, QR) and test_bloc(0, 14, QR) and test_bloc(14, 0, QR)
IA
3.6 Q15.
[92]: def tourHoraire(x, y, QR): # QR est une matrice
n = 20
N
C = QR[x][y]
QR[x][y] = QR[n - y][x]
QR[n - y][x] = QR[n - x][n - y]
LA
QR[n - x][n - y] = QR[y][n - x]
QR[y][n - x] = C
3.7 Q16.
AW
for j in range(limite_y):
tourHoraire(i, j, QR)
3.8 Q17.
[94]: def QRcode_posi(QR): # QR est une matrice
L
ED
M
H
IA
N
LA
4.2 Q19.
La valeur du plus cours chemin entre A et F est 4.
AW
5.1 Q20.
Puisque les numéros des cartes bancaires sont composés de 16 chiffres, on doit mettre 16 ‘#’ dans
format.
L
5.2 Q21.
PR
5.2.1 Méthode 1
SELECT DISTINCT nom, prenom
FROM clients c, ventes v
WHERE c.id = v.num_client
ED
JOIN ventes v
ON c.id = v.num_client
5.2.3 Méthode 3
M
SELECT DISTINCT nom, prenom
FROM clients
H
WHERE id in (SELECT num_client FROM ventes)
IA
5.3 Q23.
5.3.1 Méthode 1
SELECT num_CB, p.id
N
FROM clients c, produits p, ventes v
LA
WHERE c.id = v.num_client AND v.ref_produit = p.ref_produit
5.3.2 Méthode 2
AW
10