Академический Документы
Профессиональный Документы
Культура Документы
d'Ingénieur de Bizerte
EXAMEN PARTIEL
D’INFORMATIQUE
DURÉE : 2H
DATE : MAI 2018
CLASSES : 1ére ANNÉE. (MP1+PC1)
Un administrateur d’un site web veut assurer un maximum de sécurité pour les
utilisateurs du site. Pour ceci il décide de réaliser une application qui évalue la force
des mots de passe des différents utilisateurs, sachant qu’un mot de passe est une
chaine de caractères qui ne comporte pas d’espaces.
La force d’un mot de passe varie, selon la valeur d’un score calculé, de "Très faible"
jusqu’à "Très fort" :
Si le score < 20, la force du mot de passe est "Très faible"
Sinon si le score < 40, la force du mot de passe est "Faible"
Sinon si le score < 60, la force du mot de passe est "Moyen"
Sinon si le score < 80, la force du mot de passe est "Fort"
Sinon la force du mot de passe est "Très fort"
1
La somme des pénalités =3*2+2*2
car : - la longueur de la plus longue séquence de lettres minuscules("cnc")=3
- la longueur de la plus longue séquence de lettres majuscules("IB")=2
Le score final = 118-10= 108 ; puisque 118 > 80 alors le mot de passe est considéré
comme "Très fort"
Def saisipassword(n) :
F=open(‘password.txt ‘,’w’)
For i in range(n):
P=input(‘donner le mot de passe’)
f.write(p+’,’)
f.close()
2
Def NB_Min_Maj_Nalpha(ch) :
Nbmin=0
Nbmaj=0
Nbnalpha=0
For i in ch :
If i. isnumeric()==False:
If i.isupper() :
Nbmaj= Nbmaj+1
Else :
Nbmin= Nbmin+1
Elif i. isalpha()==False :
Nbnalpha= Nbnalpha+1
Return(Nbmin,Nbmaj,Nbnapha)
3
Lseq.append(seq)
I=i+1
Seqmax=L[0]
For i in lseq :
If len(i)>len(seqmax) :
Seqmax=i
Return(seqmax)
4
PROBLÈME 2 : CALCUL MATRICIEL
[ ]
3 5 7 9
4 6 8 10
5 7 9 11
6 8 10 12
Définir la fonction f qui reçoit en argument une matrice d'ordre 5 initialiser a zéro et
retourne comme sortie la matrice A.
Def f(a) :
For i in range(1,6) :
For j in range(1,6) :
A[i-1,j-1]=i+j*2
3. écrire la commande numpy qui permet de déterminer la transposé de A
np.transpose(A)
4. écrire la commande numpy qui permet de déterminer l’inverse de A.
from numpy.linalg import inv
inv(A)
5
for i in range(5) :
for j in range(5):
if A[i,j] in dictocc:
dictocc[a[i,j]]= dictocc[a[i,j]]+1
else:
dictocc[a[i,j]]= 1
6
DICTB[l[i]]=LB[i]
Return(DICTB)