COURS : lien : resume-theorique-m102-631f07f3ca472.
pdf
TD N°01 : lien : TD01_Algorithme.pdf
Exercice 01 :
A B
10 15
5 15
Exercice 02 :
Algo_cube
var :
a,c : entier
Début
Ecrire(“Donner un nombre a”)
lire (a)
c:= a^3
Ecrire (“ Cube de votre nombre est : “ , c)
FIN
Exercice 03 :
Algo_Equation
var:
a,b,c,x1, x2, d: reel
Début:
Repeter
Ecrire(“ Entrer les coefficients a et b et c : ”)
lire (a,b,c)
jusqu’a (a # 0 et b # 0)
d:= (b^2) - (4 *a*c)
si (d>0) alors
x1 = (-b+(d^(½))) / 2*a
x2 = (-b-(d^(½))) / 2*a
Ecrire (“Deux Solution trouvées : “ , x1 , x2 )
sinon si (d=0) alors
x1= -b/(2*a)
Ecrire(“Une solution trouve : “ ,x1)
sinon
Ecrire (“pas de solution”)
FINSI
FINSI
FIN
Algo_Equation
VAR:
a, b, c, x1, x2, d: reel
DÉBUT:
ECRIRE("Entrer les coefficients a, b et c : ")
LIRE(a, b, c)
SI (a # 0 ) alors
d := (b^2) - (4 * a * c)
SI (d > 0) alors
x1 := (-b + d^(1/2)) / (2 * a)
x2 := (-b - d^(1/2)) / (2 * a)
ÉCRIRE("Deux solutions trouvées : ", x1, x2)
SINON SI (d = 0) alors
x1 := -b / (2 * a)
ECRIRE("Une solution trouvée : ", x1)
SINON
ECRIRE("Pas de solution")
FINSI
FINSI
SINON
SI (b=0) alors
ECRIRE(“pas de solution”)
SINON
x1 := -c / b
ECRIRE(“la solution est :“,x1)
FINSI
FINSI
FIN
Exercice 04 :
Algorithme_Facture
Var:
N,T: reel
Debut
Repeter
Ecrire (“Entrer le nombre N de photocopies demander : “ )
Lire (N)
jusqu’a (N>0)
Si ( N<=10) alors
T:= 2*N
sinon Si (N>10 et N<=30) alors
T:= (2*10) + 1.5*(N-10)
sinon Si (N>30) alors
T:= (2*10)+(1.5*20)+(N-30)
FINSI
FINSI
FINSI
Ecrire (“Le totale est : “ T)
FIN
Exercice 05 :
Algorithme_season
Var:
M:Entier
Debut
Ecrire(“Entrez le mois “)
lire ( M)
tantque ( M<12 et M>=1 ) faire
Cas M de:
12 : Ecrire (“Hiver”)
1 : Ecrire (“Hiver”)
2 : Ecrire (“Hiver”)
3 : Ecrire (“Printemps”)
4 : Ecrire (“Printemps”)
5 : Ecrire (“Printemps”)
6 : Ecrire (“ete”)
7 : Ecrire (“ete”)
8 : Ecrire (“ete”)
9 : Ecrire (“Automne”)
10 : Ecrire (“Automne”)
11 : Ecrire (“Automne”)
Sinon : Ecrire(“Mois invalide !!”)
FINCAS
FIN
Exercice 06 :
Algorithme_minimum
var:
a,b,c,min:entier
Début:
Répéter
Ecrire(“Entrez 3 entiers naturels: ”)
lire(a,b,c)
jusqu’a(a>=0 et b>=0 et c>=0)
SI(a<b) alors
min:=a
SINON
min:=b
FINSI
SIi (c<min) alors
min:=c
FINSI
Ecrire (“Le plus Petit number est : ”, Min)
FIN
method2
Var: A , B, C, Min: Entier
Debut:
Ecrire (“ Veuillez entrez 3 Numbers : ” )
Lire (A , B, C )
SI (A <= B et A <= C) Alors
Min := A
SINON SI (B <= A et B <= C) Alors
Min := B
SINON SI (C <= A et C <= B) Alors
Min := C
Ecrire (“Le plus Petit number est : ”, Min)
FINSI
Fin
TD N°02 : lien : TD02_AlgorithmeDevDigital1.pdf
TD 02:
Exercice 01 :
d1 s i
5 675 0
5 575 1
5 475 2
5 375 3
5 275 4
5 175 5
5 75 6
Exercice 02 :
j s i
0 0 0
1 2 1
3 7 2
6 16 3
Exercice 03 :
j s i
5 0 0
4 5 1
3 10 2
2 15 3
1 20 4
0 25 5
Exercice 04 :
Q1:
algo_somme:
var:
N,s,i:entiers
Début:
Répéter
Ecrire(“Entrez un nombre entier: ”)
lire (N)
jusqu’à (N>0)
s:=0
pour i de 1 à N faire
s:=s+i
Finpour
Ecrire(“La sommes des”, N,” premier nombres est”,s)
FIN
Q2:
Algo_min_max
var:
N,min,max,i,x: Entiers
Répéter
Ecrire(“Entrez un nombre entier: ”)
lire (N)
jusqu’à (N>0)
Ecrire(“Entrez le 1er nombre: ”)
lire (x)
min:=x
max:=x
Pour i de 2 à N faire
Ecrire(“Entrez le nombre suivant: ”)
lire (x)
si (x<=min) alors
min:= x
sinon si (x>=max) alors
max:=x
FINSI
FINSI
FINPOUR
Ecrire(“Le maximum est ”,max,”Le minimum est”,min)
FIN
Q3:
Algo_9isma_bla_9isma
var:
A,B,q,r,: Entiers
Répéter
Ecrire(“Entrez deux nombres entier A et B: ”)
lire (A,B)
jusqu’à (A>0 et B>0)
q:=0
r:=A
tantque r>=B faire
q:=q+1
r:=r-B
fin tantque
Ecrire(“le quotient est “,q,”et le reste est “,r)
Q4:
Algo_Darb_Bla_Darb
var:
A,B,P,i:entiers
Début:
Répéter
Ecrire(“Entrez deux nombres A et B: ”)
lire (A,B)
jusqu’à (A>=0 et B>=0)
P:=0
SI (A=0 ou B=0) alors
P:=0
FINSI
Pour i de 1 à B faire
P:= P+A
FINPOUR
Ecrire (“ Le produit est”,P)
FIN
Q5:
Algo_Devisor
var:
A,B:entiers
Début:
Répéter
Ecrire(“Entrez deux nombres A et B: ”)
lire (A,B)
jusqu’à (A>=0 et B>0)
SI (A mod B = 0) alors
Ecrire(“A est divisible par B”)
SINON
Ecrire(“ N’ est Pas divisible par B”)
FINSI
FIN 😀
Q6:
Algo_diviseurs
var: X,i:entiers
Début:
Répéter
Ecrire(“Entrer un nombre entier: ”)
lire (X)
jusqu’à (X>0)
Pour i de 1 à X/2 faire
si (X mod i =0) alors
Ecrire(i,” est un diviseur de “,X)
Finsi
Finpour
FIN
Q7:
Algo_diviseurs
var: X,i,nd:entiers
Début:
Répéter
Ecrire(“Entrer un nombre entier: ”)
lire (X)
jusqu’à (X>0)
nd := 1
Pour i de 1 à X/2 faire
si (X mod i =0) alors
nd := nd + 1
Finsi
Finpour
SI ( nd = 2 ) alors
Ecrire(X , “ est un number premier!”)
SINON
Ecrire(X , “ n’est un number premier!”)
FINSI
FIN
Q8:
Algo_somme_chiffres*
var:
N,chiffre,S:entiers
Début:
Répéter
Ecrire(“Entrez un nombre entier: ”)
lire (N)
jusqu’à (N>0)
S:=0
Tantque (N>0) faire
chiffre:= N mod 10
S:= S+chiffre
N:=N div 10
Fintantque
Ecrire(“ la somme des chiffre de”,N,”est”,S)
FIN
Exercice 05 :
VAR
char : character
count : entier
DÉBUT
count := 0
RÉPÉTER
ECRIRE(“Donner un caractère ( tapez * pour terminer)”)
LIRE(char)
SI ( char = “A” ) alors
count := count + 1
JUSQU'À ( char = “*” )
ECRIRE(“character ‘A’ has been typed ” , count , “ fois”)
FIN
Exercice 06 :
ALGO_CALC_E_1+2+3…
VAR
S,E,i,N:entier
DÉBUT:
RÉPÉTER
ECRIRE(“donner un nombre (N≥2) ”)
LIRE(N)
JUSQU À ( N >= 2 )
S:=0
E:=1
POUR i de 1 à N FAIRE
S:=S+i
E:=E*S
FINPOUR
ECRIRE(“ La somme E : ” , E )
FIN
Exercice 07 :
ALGO_CALC_E_1/(1+2+3)…
VAR
S,E,i,N:entier
DÉBUT:
RÉPÉTER
ECRIRE(“donner un nombre (N≥2) ”)
LIRE(N)
JUSQU À ( N >= 2 )
S:=0
E:=1
POUR i de 1 à N FAIRE
S:=S+i
E:= E + (1/S)
FINPOUR
ECRIRE(“ La somme E : ” , E )
FIN
Exercice 08 :
VAR
A , B , N , i, U: ENTIER
DÉBUT
RÉPÉTER
ECRIRE (“Donnez N : ”)
LIRE(N)
JUSQU À (N>=0 et N<100)
SI (N=0) ALORS
U=2
SINON SI (N=1) ALORS
U=3
SINON
A:=3
B:=2
POUR i de 2 à N FAIRE
U:= ( 2/3 ) * A - ( 1/4 ) * B
B:=A
A:=U
FINPOUR
FINSI
FINSI
Ecrire(“la valeur de terme U”,N,”est”,U)
FIN
Exercice 09 :
var
binaire, décimal, i, dernier chiffre : entier
début
écrire("Donnez un nombre binaire : ")
lire(binaire)
décimal := 0
i := 0
tant que (binaire > 0) faire
dernier chiffre:= binaire mod 10
décimal := décimal + ( 2^i * dernier chiffre )
binaire := binaire div 10
i := i + 1
fin Tantque
écrire("Le décimal de ce nombre binaire est = ", décimal)
FIN
Exercice 10 :
VAR
X, N , Sn , i , Top, Bottom: Entier
RÉPÉTER
ECRIRE(“Donnez N>=0 : ”)
LIRE(N)
JUSQU'À N>=0
RÉPÉTER
ECRIRE(“Donnez X != 0 : ”)
LIRE(X)
JUSQU'À ( X != 0 )
SI (N=0) alors
Sn=-1
SINON
Sn := -1
TOP := -1
Bottom:= 1
POUR i de 1 à N FAIRE
Top:= Top* - 1
Bottom:= Bottom* X
Sn := Sn + ( Top / Bottom)
FINPOUR
FINSI
ECRIRE(“SN est : ”, Sn)
FIN
Exercice 11 :
Fonction UNIT(N:entier):entier
Var
dernier : entier
Début
dernier := N mod 10
return dernier
Fonction CUBE(number:entier):entier
Var
cube: entier
Début
cube:= number ^ 3
return cube
VAR
i , dernier ,temp, somme: entier
Début
pour i de 1 à 499 FAIRE
somme := 0
temp := i
Tantque ( i > 0 ) FAIRE
dernier := UNIT(i)
somme := somme + CUBE(dernier)
i := i div 10
Fin Tantque
SI (somme = temp):
Ecrire(“chiffre valid : ”, temp)
Exercice 12 :
Function PARFAIT(N:entier):booléen
Var
somme , i : entier
Début
somme := 0
POUR i de 1 à N/2 FAIRE
SI (N mod i = 0):
somme := somme + i
FInsi
FINPOUR
SI (somme = N) alors
return True
SINON
return False
VAR
i : entier
DÉBUT
POUR i de 1 à 9,999 FAIRE
SI (PARFAIT(i) = True )
ECRIRE(“Nombre parfait : ”, i)
FINSI
FINPOUR
FIN
Code Link Click here ☜(゚ヮ゚☜)
Exercice 13 :
method 2
Function BIN(Décimal:entier):chaine de caractère
Var
result: chaine de caractère
rest : entier
DÉBUT
result:= “”
Tanque (Décimal > 0) FAIRE
rest := Decimal mod 2
SI (rest = 0) alors
result := “0” + result
SINON SI (rest = 1) alors
result := “1” + result
FINSI
Decimal := Decimal div 2
FINTANTQUE
return result
CODE LINK CLICK ME ☜(゚ヮ゚☜)
METHOD 2
Copyright Asmaajer - 2025 جميع الحقوق غير محفوطة
(☜ اظغط هنا゚ヮ゚☜)
TD N°03 : lien : [Link]
TD 03
Exercice 1 :
Q1
CALC_SUM(A:entier , B:entier):entier
Var
Sum: entier
Début
Sum := A + B
return Sum
Q2
FACT(A:entier):entier
Var
result: entier
Début
SI ( A = 0 ou A = 1 ) alors
result := 1
SINON
result := A * FACT(A - 1)
FINSI
Return result
Q3
EST_DIVISIBLE(A:entier , B:entier)
Début
SI ( A mod B = 0 ) alors
Ecrire(“A est divisible”)
SINON
Ecrire(“A N est divisible”)
FINSI
Q4
Quotient_Rest(A:entier , B:entier)
Var
Rest , Quo : entier
Début
Rest := A mod B
Quo := A div B
Ecrire(“Rest est : ”, Rest , “Quotient est : ”,Quo )
FIN
Q5
Est_Voyelle(A:caractère):Booléen
Var
Result : Boolean
Début
cas A de
“a”: Result := True
“e”: Result := True
“i”: Result := True
“o”: Result := True
“u”: Result := True
“y”: Result := True
SINON : Result := False
Fin cas
RETURN Result
Fin
Q6
Switch(A:réel , B:réel)
Var
temp : reel
Début
temp := A
A := B
B := temp
Ecrire(“A : ”, A , “B : “, B)
Q7
Absolue(A:entier):entier
Début
SI (A < 0):
A := A * -1
FINSI
Return A
Exercice 2 :
Q1:
AP_CARRE(X:entier):Boolean
VAR
i : entier
trouve : boolean
DÉBUT
trouve = False
Pour i de 1 a X FAIRE
SI ( X = i * i et trouve = False) alors
ECRIRE(“X est carré parfait, son racine “, i)
trouve := True
return trouve
FINSI
FINPOUR
SI (trouve = False) alors
ECRIRE(“X est N’ est pas un carré parfait”)
return trouve
FINSI
Q2:
VAR
N , X , somme , produit , i , j : entier
trouve : Boolean
DÉBUT
Répéter
Ecrire(“Entrez N : ”)
Lire(N)
Jusqu'à( N > 0)
somme := 0
produit := 1
Pour i de 1 à N FAIRE
Ecrire(“Donnez X : ”)
Lire(X)
trouve := False
Pour j de 1 a X FAIRE
SI ( X = j * j et trouve = False) alors
somme := somme + j
produit := produit * j
trouve := True
FINPOUR
FINPOUR
Code Link Click heree
Pour i de 1 à somme FAIRE
SI ( somme = i * i) alors
Ecrire(“La somme est carré parfait”)
Pour i de 1 à produit FAIRE
SI ( produit = i * i) alors
Ecrire(“Le Produit est carré parfait”)
exercice 03
CODE LINK CLICK HEREREE
TD Tableau
TD N° 04 - tableau : lien : [Link]
Exercice 1:
tableau_une_dimension
VAR
T : Tableau[1..N]:entier
i, N MIN, MAX, MOYEN, Somme, Produit , Nbpositive : entier
DÉBUT
Répéter
Ecrire(“Donnez la taille N de table : ”)
Lire(N)
Jusqu'à ( N > 0 et N <= 10 )
Q1
POUR i de 1 à N FAIRE
Ecrire(“Donnez valeur de ”, i)
Lire ( T [ i ] )
FINPOUR
Q2 + Q3
MIN := T[1]
MAX := T[1]
Somme := 0
Produit := 1
Nbpositive:=0
POUR i de 1 à N FAIRE
SI ( T [i] < MIN ) alors
MIN := T[i]
FINSI
SI ( T [i] > MAX ) alors
MAX:= T[i]
FINSI
SI ( T [i] > 0):
Nbpositive := Nbpositive + 1
FINSI
Somme := Somme +T[ i]
Produit:= Produit *T[ i]
FINPOUR
MOYEN := Somme / N
ECRIRE(“MAX est ”, MAX)
ECRIRE(“MIN est ”, MIN)
ECRIRE(“MOYEN est ”, MOYEN)
ECRIRE(“Produit est ”, Produit)
ECRIRE(“NB Positives est ”, Nbpositive )
FIN
CODE LINK CLICK HERE
Q4
4- Calcule la somme et le produit scalaire de deux vecteurs (T1 et T2).
VAR
T1 , T2 : Tableau[1..N]:entier
i, produit , somme , N: entier
DÉBUT
Répéter
Ecrire(“Donnez la taille N de table : ”)
Lire(N)
Jusqu'à ( N > 0 et N <= 10 )
produit := 0
somme := 0
POUR i de 1 à N FAIRE
Ecrire(“Donnez valeur de ”, i)
Lire ( T1 [ i ] )
FINPOUR
POUR i de 1 à N FAIRE
Ecrire(“Donnez valeur de ”, i)
Lire ( T2 [ i ] )
FINPOUR
POUR i de 1 à N FAIRE
somme := somme + T1[i] + T2[i]
produit := produit + ( T1[i] * T2[i] )
FINPOUR
ECRIRE(“Somme est : ”, somme)
ECRIRE(“Produit scalaire est : ”, produit)
FIN
Q5 + Q6
VAR
T : Tableau[1..N]:entier
i, N, valeur, temp: entier
DÉBUT
Répéter
Ecrire(“Donnez la taille N de table : ”)
Lire(N)
Jusqu'à ( N > 0 et N <= 10 )
POUR i de 1 à N FAIRE
Ecrire(“Donnez valeur de ”, i)
Lire ( T [ i ] )
FINPOUR
ECRIRE(“Donnez valeur à rechercher”)
Lire(Valeur)
POUR i de 1 à N FAIRE
SI ( T[i] = Valeur) alors
Ecrire(“Valeur trouvée position : ”, i)
FINSI
FINPOUR
POUR i de 1 à N // 2 FAIRE
temp := T[i]
T[i] := T[N - i + 1]
T[N - i + 1] = temp
FINPOUR
Q7
VAR
T : Tableau[1..N]:entier
i, j, N: entier
DÉBUT
Répéter
Ecrire(“Donnez la taille N de table : ”)
Lire(N)
Jusqu'à ( N > 0 et N <= 10 )
POUR i de 1 à N FAIRE
Ecrire(“Donnez valeur de ”, i)
Lire ( T [ i ] )
FINPOUR
j:= 1
POUR i de 1 à N FAIRE
SI (T [i] # 0) alors
T [j] := T [i]
j := j + 1
FINSI
FINPOUR
POUR i de 1 à j FAIRE
ECRIRE ( T [i] )
FINPOUR
FIN
Exercice 02 :
Q1 :
VAR
T : Tableau[1..N] : Entier
i ,valeur,position, nbrapa : entier
><
DÉBUT
Répéter
Ecrire(“Donner La taille N “ )
Lire(N)
jusqu'à N <= 10 et N > 0
Pour i de 1 à N faire :
Ecrire(“Donner le nombre” , )
Lire(T[i])
Fin pour
Ecrire (“Donne la valeur à chercher “ )
Lire(valeur)
nbrapa := 0
Pour i de 1 à N faire :
Si (T[i] = valeur ) alors
position := i
nbrapa := nbrapa + 1
Fin si
Fin pour
😀👍
Ecrire (“ La dernière position est “ , position , “ et nombre d’apparition est “ , nbrapa)
Fin
LINK HERE
Q2:
var
T:tableau[1..N+1]
N,pos,valeur,i: entiers
Debut
Répéter
Ecrire(“donner la taille: ”)
lire(N)
jusqu a N>0 ET N<=10
pour i de 1 a N faire
Ecrire(“donner la valeur: ”)
Lire(T[i])
FINPOUR
ECRIRE(“Donnez valeur et position ou insérer : ”)
Lire(valeur,pos)
SI (pos<1 ou pos>N+1) alors
Ecrire(“position invalide”)
SINON
pour i de N+1 a pos [-1] FAIRE
T[i]=T[i-1]
FINPOUR
T[pos]=valeur
FINSI
Ecrire(T)
N=int(input("Entrer la taille compris entre 1 et 10 : "))
T=[0] * (N+1)
for i in range(N):
T[i]=int(input(f"Entrer la valeur de l'element {i+1} :"))
valeur=int(input("Entrer la valeur que vous voulez insérer: "))
pos=int(input("Entrer la position dont vous voulez l'insérer: "))
if pos<1 or pos>N+1:
print("position invalide")
else:
pos = pos - 1
for i in range(N, pos,-1):
T[i]=T[i-1]
T[pos]=valeur
N=N+1
print("le tableau après l'insértion: ")
for i in range(N):
print(T[i])
N=int(input("donner la taille"))
tableau=[0]*(N+1)
for i in range(N):
tableau[i]=int(input("donner une valeur"))
valeur = int(input("Entrez la valeur à insérer : "))
position = int(input("Entrez la position à laquelle insérer la valeur
: "))
if position < 0 or position > len(tableau):
print("Position invalide")
else:
for i in range(len(tableau)-1, position, -1):
tableau[i] = tableau[i - 1]
tableau[position] = valeur
print("Tableau après insertion :", tableau)
Exercice 3:
VAR
N, i , j : entier
T : Tableau[1..N]
POUR i de 1 à N FAIRE
Ecrire(“Donnez valeur de ”, i)
Lire ( T [ i ] )
FINPOUR
j:= 1
POUR i de 1 à N FAIRE
SI (T [i] # 0) alors
T [j] := T [i]
j := j + 1
FINSI
FINPOUR
POUR i de 1 à j FAIRE
ECRIRE ( T [i] )
FINPOUR
FIN
Exercice 4:
T = [0] * 20
TCount = [0] * 10
for i in range(10):
T[i] = int(input("donner un nombre svp : "))
TCount[T[i]] += 1
print(TCount)
HADI HIYA LMETHODE SHIHA MYA F LMYAAAA
T = [0] * 20
compteur = [0] * 10
print("Entrer 10 entiers compris entre 0 et 9 :")
for i in range(10):
while True:
valeur = int(input(f"Entrer la valeur {i+1} : "))
if valeur >= 0 and valeur <= 9:
T[i] = valeur
compteur[valeur] += 1
break
else:
print("Valeur invalide. entrer un entier entre 0 et 9.")
print("Occurrences des chiffres de 0 à 9 :")
for i in range(10):
print(f"Nombre de {i} : {compteur[i]}")
Exercice 5:
while True:
N = int(input("donnez la taille: "))
if N <= 20 and N > 0:
break
T = [0] * N
T1 = [0]*N
T2 = [0]*N
pair_taille = 0
impair_taille = 0
for i in range(N):
n = int(input("entrez number : "))
T[i] = n
if n % 2 == 0:
T1[pair_taille] = n
pair_taille += 1
else:
T2[impair_taille] = n
impair_taille += 1
print("pair ***********")
for i in range(pair_taille):
print(T1[i])
print(" impair ***********")
for i in range(impair_taille):
print(T2[i])
exercice 06
T = [0, 1, 2, 3, 4, 5 ,6, 7, 8, 9]
taille = len(T) # 10
last_index = taille-1
rotation = int(input("entrez rotation: "))
rotation = rotation % taille
print(T)
for i in range(rotation):
temp = T[last_index]
for j in range(last_index, 0,-1):
T[j] = T[j-1]
T[0] = temp
print(T)
exercice 07
N=int(input(f"Entrez la taille du tableau:"))
T=[0]*N
while N<1:
N=int(input(f"Entrez la taille positive:"))
print("Entrez les valeurs du tableau trié par ordre croissant:")
for i in range(N):
T[i]=int(input(f"Entrez la valeur du {i+1}:"))
x=int(input("Entrez la valeur a chercher:")) # 5
Max = N-1
Min = 0
while Min<=Max:
i = (Max+Min) // 2
if T[i]==x:
break
if x>T[i]:
Min=i+1
else:
Max=i-1
if T[i]==x:
print(f"Le valeur {x} se trouve dans la position {i+1}")
else:
print(f"Le valeur {x} n'existe pas")
exercice 08
M = 2
N = 2
T = [[0]*N for _ in range(M)]
somme = 0
# Q1 Q2
for i in range(M):
for j in range(N):
T[i][j] = int(input(f"entre valeur pour index {i,j} "))
somme = somme + T[i][j]
print(f"Somme: ",somme)
for i in range(M):
print(T[i])
# Q3
MAX = T[0][0]
MIN = T[0][0]
pos_min = (0,0)
pos_max = (0,0)
for i in range(M):
for j in range(N):
if T[i][j] < MIN:
MIN = T[i][j]
pos_min = (i,j)
if MAX < T[i][j]:
MAX = T[i][j]
pos_max = (i,j)
print(f"MAX: {MAX}, position {pos_max}")
print(f"MIN: {MIN}, position {pos_min}")
# Q4
value = int(input("entre la valeur a rechercher: "))
trouve = False
position = (0,0)
for i in range(M):
for j in range(N):
if T[i][j] == value and trouve == False:
position = (i,j)
trouve = True
if (trouve):
print("value trouve position ",position)
else:
print("value not trouve!")
# Q5
trace = 0
for i in range(M):
trace += T[i][i]
print(f"La trace est {trace}")
# Afficher la transposée de la matrice
# Q6
T = [[0]*N for _ in range(M)]
transpose = [[0]*M for _ in range(N)]
for i in range(M):
for j in range(N):
transpose[j][i] = T[i][j]
for i in range(N):
print(transpose[i])
exercice 10
N = 5
T = [[0]*N for _ in range(N)]
for i in range(N):
for j in range(N):
if i == j:
T[i][j] = 1
for i in range(N):
print(T[i])
exercice 11
N = 3
T = [[0]*N for _ in range(N)]
Table = [0]*(N*N)
index = 0
for i in range(N):
for j in range(N):
T[i][j] = int(input("entrez valeur: "))
for i in range(N):
for j in range(N):
Table[index] = T[i][j]
index += 1
for i in range(N):
print(T[i])
print("********")
print(Table)
TDs PYTHON
-> TD Python 01 : [Link]
exercice 01:
n=int(input("Entrez un nombre: "))
s=0
for i in range(1,n+1):
s=s + 1/i
print(f"la somme est {s}")
exercice 02:
n=int(input("entrer la valeur de n :"))
somme = 0
for i in range(1 ,n+1 ):
somme += 1/ (i ** 2)
resultat = (1/n) * somme
print(f"le resultat de l'expression est :
{resultat}")
exercice 03:
while True:
number = int(input("entrez number compris entre 10 et
20: "))
if number > 20:
print("Plus petit !")
elif number < 10:
print("Donnez Plus Grand !")
else:
print("Number correct !")
break
exercice 04
N = int(input("entrez un number: "))
for i in range(N+1, N+11):
print(i)
exercice 05
while True:
number = int(input("Donner un nombre : "))
if number >= 0:
break
calcule = 1
if number == 0:
print("1")
else:
for i in range(1,number+1):
calcule = calcule * i
print(f"Result is {calcule} ")
exercice 06
total=0
while True:
p=int(input("donner les prix (0 pour quitter):
"))
if p==0:
break
total+=p
print("total est ",total)
raslmal=int(input("dkhl ch7al ghadi tkhles"))
if raslmal<total:
print("sir ak i3awn rbi")
else:
srf=raslmal-total
b10=srf//10
srf=srf%10
b5=srf//5
srf=srf%5
print(f"b10 :{b10} / b5:{b5} / b1:{srf}")
exercice 07
import math
n = int(input("cheveaux partants: ")) # Total
while True:
p = int(input("cheveaux joues par toi: "))
#9mer 3lihom
if p > n:
print("3awd 9mer a9mar ijan")
else:
break
n_fac = [Link](n)
n_p_fac = [Link](n - p)
X = n_fac / n_p_fac
Y = n_fac / ([Link](p) * n_p_fac)
print("Order X ",X)
print("Order Y ",Y)
exercice 08
def Longeur_chaine(ch):
taille = 0
for i in ch:
taille += 1
print(taille)
Longeur_chaine("jusev") #5
exercice 09
def saisir_liste_chaine(n):
list = [0]*n
for i in range(n) :
value = input("Entrez chi hj : ")
list[i] = value
return list
print(saisir_liste_chaine(2))
def get Indice(ch,e):
index=-1
for i in range(len(ch)):
if ch[i]== e :
index= i
break
return index
print(getIndice("ajermoune","i"))
exercice 10
def compare_chaine(ch1,ch2):
if ch1>ch2:
return 1
elif ch1==ch2:
return 0
else:
return -1
ch1="dahmad botfonast"
ch2="oskay"
print(compare_chaine(ch1,ch2))
exercice 11
def saisir_liste_chaine(n):
list = [0]*n
for i in range(n) :
value = input("Entrez chi hj : ")
list[i] = value
return list
print(saisir_liste_chaine(2))
exercice 12
def trier_liste_chaine(L,n):
for i in range(n):
for j in range(i+1,n):
if L[j] < L[i]:
L[j],L[i]= L[i] , L[j]
return L
liste=["youness","meriem","asma","sara","mohamed","ahmed"]
n=len(liste)
print(trier_liste_chaine(liste,n))
exercice 13
def Inverser_chaine(mot):
nv_mot=""
for i in range(len(mot)-1,-1,-1):
nv_mot+=mot[i]
return nv_mot
list="youness"
print(Inverser_chaine(list))
exercice 15
voyelles = ["A","E", "I", "O", "U" , "Y"]
def est Voyelle(ch):
return [Link]() in voyelles # True or False
print(estVoyelle("a"))
phrase = input("entrez une phrase : ")
count = 0
for ch in phrase:
if (estVoyelle(ch) == True):
count += 1
print("voyelles total: ",count)
exercice 16
chiffres_chaine = "0123456789"
def chaine_chiffres(chaine):
for ch in chaine:
if (ch < "0" or ch > "9"):
return False
return True
exercice 17
def supp_espace(chaine):
nv_mot = ""
index = 0
while chaine[index] == " ":
index += 1
#for i in range(len(chaine)):
#if chaine[index] == " ":
#index +=1
for j in range(index, len(chaine)):
nv_mot += chaine[j]
return nv_mot
DICTIONARIES
youness = {
"name":"Youness",
"birth":"03/03/2003",
"address":"Youness",
}
#access name for example
youness["name"]
# youness["sss"] = "Mohamed" # ajouter si n est pas existé ou
modifier si existe
# [Link]({"sss":"123456"}) # nafs el haja
print(youness)
# [Link]() # supprime dernier item
# [Link]("name") # supprime selon key
# for key,value in [Link](): #
# print(key,value)
# for item in [Link](): # ("name","Youness")
# print(item)
# for key in [Link]():
# print(key)
# for value in [Link]():
# print(value)
ahmed = dict(name="ahmed",address="Agadir")
PRACTICE
products = {
"Laptop": 800,
"Iphone": 500,
"Lezecotor": 100,
"Telfaza": 300,
"PC Gamer": 2000,
}
# 1 input = entrez product name: Phone
while True:
produit = input("Donner le produit chercher: ")
if produit == "0":
print("Bye ")
break
elif produit in [Link]():
print(f"Le prix de produit {produit} est ",
products[produit])
else:
print("Not found")
# Example Output:
# The price of Phone is $500.
# exist when name = 0
# 2 get total price of all products
# total = 0
# for value in [Link]():
# total = total + value
total = sum([Link]())
print(total)
# 3 get cheapest and most expensive product
min=list([Link]())[0]
max=list([Link]())[0]
min_name=list([Link]())[0]
max_name=list([Link]())[0]
for key,value in [Link]():
if value <= min:
min=value
min_name=key
if value>= max:
max= value
max_name=key
print(f"arkhas produit howa {min_name} taman dyalo {min}")
print(f"aghla produit howa {max_name} taman dyalo {max}")
# 4 3la hssab l budget
😔
# user va donner son budget , et afficher les produit that
he can buy, if price cannot buy anny, print "Fa9ir "
# example budget: 500
# result :
# Affordable products:
# - Iphone: $500
# - Lezecotor: $100
# - Telfaza: $300
😔
# example budget: 10
# result : Fa9ir
budget = int(input("Entrez ur bdgt : "))
affrodable = []
for key,value in [Link]():
if value <= budget :
[Link]({"name":key,"price":value})
if len(affrodable) > 0 :
for product in affrodable:
name=product["name"]
price=product["price"]
print(f"- {name} : {price}")
😔
else:
print("Fa9ir ")
TD 05 Dictionnaire [Link]
exercice 01
A/
# example
# {"name":"Youness", "address":"Drarga"}
# [("name","Youness"),("address","Drarga")]
def get_list(dictio):
list = []
# for key,value in [Link]():
# [Link]((key,value))
for item in [Link]():
[Link](item)
return list
print(get_list({"name":"Youness", "address":"Drarga"}))
B/
# example
# input : "Hello there Hello".split(" ")
# => ["Hello", "there", "Hello"]
# {"Hello" : 2, "there" : 1}
def count_mots(chaine):
liste mots = [Link](" ")
dictio = {}
for mot in list mots:
if mot in dictio:
dictio[mot] = dictio[mot] + 1
else:
dictio[mot] = 1
return dictio
print(count_mots("Hello there Hello"))
exercice 02
chaine_etudiant="""100;RAMI;AHMED
101;KAMALI;ALI
102;FIKRI;KAMAL
103;IBRAHOMI;KHALID"""
# {100 : " RAMI AHMED",101 : "KAMALI ALI"}
def text_to_dictio(chaine):
lignes=[Link]("\n")
#[100;RAMI;AHMED,101;KAMALI;ALI]
dictio={}
for ligne in lignes:
etudiant=[Link](";")
#[100,"Rami","ahmd"]
numero=int(etudiant[0])
nom=etudiant[1]+" "+etudiant[2]
dictio[numero]=nom
return dictio
print(text_to_dictio(chaine_etudiant))
exercice 03
notes = {"CHAHI": [8, 10, 12], "ALAMI": [10, 9,15], "RAMI":
[12,17,13], "MARIEME": [12, 10, 8]}
moyenne_max = 0
for name,no9at in [Link]():
#total = 0
moyenne = sum(no9at) / len(no9at)
# for no9ta in no9at:
# total = no9ta + total
# moyenne = total / len(no9at)
if moyenne > moyenne_max:
moyenne_max = moyenne
moyenne_name = name
print(f"{moyenne_name} a eu la bonne moyenne
{moyenne_max}")
exercice 05
dictMath={"RAMI":12,"FAHMI":13,"MARIEM":17,"KAMALI":18,
"CHAOUKI":11}
dictPhysique={"RAMI":15,"FAHMI":12,"MARIEM":13,"KAMALI"
:15,"Alami":10}
def fusion(dict1,dict2):
# result = copy(dict1)
result = {}
for key,value in [Link]():
result[key] = [value]
for key,value in [Link]():
if key in result:
result[key] = [ dict1[key] , value ]
else:
result[key] = [value]
return result
print(fusion(dictMath,dictPhysique))
EFM CORRECTION
EFM PDF -> EFm
I - Partie Theorique
exercice 1
Avantages :
Éviter la répétition de code
réduction des erreurs
Rendant le code plus clair
facilitation du débogage -> s7i7a 100%
exercice 2
Différence, c' est que Tableau composer (regroupe) des
valeurs de même type, tandis que Structure composer
(regroupe) des valeurs de différent type.
exercice 3
A/
● Pour N= 52
Q S i
0 52
2 2 5
5 25 0
pour N= 52 -> S= 25
● Pour N= 123
Q S i
0 123
3 3 12
2 32 1
1 321 0
pour N= 123 -> S= 321
B/
ce algorithme inverse le nombre N
Partie II : [Link]
Question 1 (6pts)
N = int(input("Donner la langeur : "))
Tableau = [0] * N
for i in range(N):
Tableau[i] = int(input(f"Donner la valeur {i} : "))
conteur = 0
j = 0
for i in range(N):
if Tableau[i] % 2 != 0:
Tableau[j] = Tableau[i]
j += 1
else:
conteur += 1
Tableau = Tableau[0:j]
# for i in range(0,j):
# print(Tableau[i])
print(f"{Tableau} et le conteur est : {conteur}")
Question 2 (7pts)
total=0
produit=1
result="("
while True:
entier=int(input("donner un entier positif (tapez 0 pour
quitter): "))
if entier==0:
break
if entier <0:
print("Réessayer")
else:
total=1
produit= produit * entier
result= result + f"{entier} *"
if total==0:
print("Erreur")
else:
moyenne=produit//total
result= result + f") / {total}= {moyenne}"
print(result)
Question 03
1/
Algo_Devisor
var:
A,B:entiers
Début:
Répéter
Ecrire(“Entrez deux nombres A et B: ”)
lire (A,B)
jusqu’à (A>=0 et B>0)
SI (A mod B = 0) alors
Ecrire(“A est divisible par B”)
SINON
Ecrire(“ N’ est Pas divisible par B”)
2/
Algo_diviseurs
var: X,i:entiers
Début:
Répéter
Ecrire(“Entrer un nombre entier: ”)
lire (X)
jusqu’à (X>0)
Pour i de 1 à X/2 faire
si (X mod i =0) alors
Ecrire(i,” est un diviseur de “,X)
Finsi
Finpour
FIN
3/
Algo_premier
var: X,i ,nd:entiers
Début:
Répéter
Ecrire(“Entrer un nombre entier: ”)
lire (X)
jusqu’à (X>0)
nd := 1
Pour i de 1 à X/2 faire
si (X mod i =0) alors
nd := nd + 1
Finsi
Finpour
SI ( nd = 2 ) alors
Ecrire(X , “ est un number premier!”)
SINON
Ecrire(X , “ n’est un number premier!”)
FINSI
FIN
4/
Algo_somme_chiffres*
var:
N,chiffre,S:entiers
Début:
Répéter
Ecrire(“Entrez un nombre entier: ”)
lire (N)
jusqu’à (N>0)
S:=0
Tantque (N>0) faire
chiffre:= N mod 10
S:= S+chiffre
N:=N div 10
Fintantque
Ecrire(“ la somme des chiffre de”,N,”est”,S)
FIN
Question 5 (14 pts)
N=int(input("entrer le nombre des lignes: "))
M=int(input("entrer le nombre des colonnes: "))
A=[[0]*M for _ in range(N)]
S=0
for i in range(N):
for j in range(M):
A[i][j]=int(input(f"donner la valeur de {(i,j)}: "))
S=S+A[i][j]
print(A)
max=A[0][0]
min=A[0][0]
pos_min=(0,0)
pos_max=(0,0)
for i in range(N):
for j in range(M):
if A[i][j] < min:
min=A[i][j]
pos_min=(i,j)
if A[i][j]>max:
max=A[i][j]
pos_max=(i,j)
valeur=int(input("donner la valeur recherché: "))
position=-1
trouve=False
for i in range(N):
for j in range(M):
if A[i][j]==valeur and trouve== False:
position=(i,j)
trouve=True
break
if trouve==False:
print("la valeur n'existe pas")
else:
print(f"la valeur se trouve à la position {position}")
print(f"la somme est {S}")
print(f"le maximum est {max} sa position est {pos_max}")
print(f"le minimum est {min} sa position est {pos_min}")
T=[[0]*N for _ in range(M)]
for i in range(N):
for j in range(M):
T[j][i]=A[i][j]
print(T)
Question (9 pts)
L=int(input("donner le nbr de ligne"))
C=int(input("donner le nbr de colonne"))
M=[[0]*C for _ in range(L)]
for i in range(L):
for j in range(C):
M[i][j]=int(input(f"donner la valeur ({i},{j})"))
print(M)
for ligne in M:
print(ligne)
sommediag=0
for i in range(L):
sommediag+=M[i][i]
print("la somme des élément de la diag est ", somme diag)
trouver=True
for i in range(1,L):
for j in range(i):
if M[i][j] != 0:
trouver=False
if trouver ==False:
print("la matrice n'est pas triangulaire sup")
else:
print("la matrice est triangulaire sup")
exercice EFM parfait:
def est parfait(number):
somme = 0
for i in range(1,number):
if number % i == 0:
somme += i
if somme == number:
return True
else:
return False
def calc_parfait(num1,num2):
parfait _count = 0
for i in range(num1,num2+1):
if (est parfait(i)):
parfait count += 1
return parfait count
printf"total nums parfait between 1 et 10000:
{calc_parfait(1,100)}")
Ga3 les Tris
T = [4,5,8,0,2,-1]
print(T)
# 1 - Trie a Bulles
def tri_bulle(T):
taille = len(T)
while True:
echange = False
for i in range(taille-1):
if T[i]>T[i+1]:
T[i],T[i+1] = T[i+1],T[i]
echange = True
if echange == False:
break
return T
print( "tri a bull : ", tri_bulle(T))
# *************************************** #
T2 = [4,5,8,0,2,-1]
# 2 - Trie par selection (li dima tandiroh f
td)
def tri_selection(T):
for i in range(len(T)):
for j in range(i+1,len(T)):
if T[i]>T[j]:
T[i],T[j] = T[j],T[i]
return T
print( "tri selection : ", tri_bulle(T))
# 3 - Trie par insertion
def tri_insertion(T):
for i in range(1,len(T)): # Skip premier
element
key = T[i]
j = i - 1
while j >= 0 and key < T[j]:
T[j+1] = T[j]
j -= 1
array[j + 1] = key
return T
Passage de paramètres par valeur
ajoute_un( A : entier)
Debut
a := a+1
Fin
Appel :
Programme Principal
var
x : entier
Debut
x := 9
ajoute_un(x)
ecrire(x) # result : 9
Fin
Passage de paramètres par Address
(Reference)
ajoute_un(var A: entier)
Debut
a := a+1
Fin
Appel :
Programme Principal
var
x : entier
Debut
x := 9
ajoute_un(x)
ecrire(x) # result : 10
Fin
→ diffrence address et valeur:
- Pour le passage par valeur, lorsque on appelle la
fonction dans le program principal, la valeur passe ne
change pas, par contre passage par address la
valeur passé se modifer
- Passage par valeur envoie une copie de variable,
donc le variable dans le program principal ne se
modifier pas, par contre passage par address envoie
l’address de ce valeur, dont la valeur se modifier
- passage par valeur n effecte pas la valeur dans le
program principal, par contre passage par address
effecte la valeur dans le program principal.
Q1 efm
# Sn = 1 + 1/2! +...+ 1/N!
while True:
N = int(input("donner la valeur n : "))
if N > 0:
break
Sn = 0
for i in range(1,N+1):
factos_ma9am = 1
for j in range(i+1):
if j == 0:
factos_ma9am = 1
else:
factos_ma9am = factos_ma9am * j
Sn = Sn + 1 / factos_ma9am
print(Sn)
print(1 + 1/2 + 1/6)
Dichotomique (binary search) VS Normal
(Séquentiel)
[1,2,3,4,5,6,7,8,9,10]
1- Dichotomique :
●Facilite la recherche d' une valeur dans un
tableau de taille N tiré de petit a grand!
●utile et tres tres tres rapide pour large data
●lors de la recherche, pour chaque itération; il
éliminer un moitie, au lieu de parcourir
chaque valeur individuellement
with open("[Link]","w",newline="") as file:
kateb = [Link](file,delimiter=",")
[Link](["nom" , "note"])
while True:
name = input("ENTREZ NOM :(0 pour quitter) :
")
if name == "0":
break
note = input("entrez note: ")
[Link]([name,note])
with open("[Link]") as file:
while True:
name = input("ENTREZ NOM :(0 pour quitter) :
")
if name == "0":
break
note = input("entrez note: ")
[Link](name+ “ ” +note + “\n”)