0% ont trouvé ce document utile (0 vote)
23 vues73 pages

Exercices d'Algorithmique et Solutions

Le document présente une série d'exercices d'algorithmique, incluant des algorithmes pour calculer des cubes, résoudre des équations quadratiques, déterminer des saisons, et calculer des sommes. Chaque exercice est accompagné de pseudocode détaillé et d'explications sur son fonctionnement. Les exercices couvrent également des concepts tels que les diviseurs, les nombres parfaits et la conversion entre binaire et décimal.

Transféré par

YOUNESS AILAL
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
23 vues73 pages

Exercices d'Algorithmique et Solutions

Le document présente une série d'exercices d'algorithmique, incluant des algorithmes pour calculer des cubes, résoudre des équations quadratiques, déterminer des saisons, et calculer des sommes. Chaque exercice est accompagné de pseudocode détaillé et d'explications sur son fonctionnement. Les exercices couvrent également des concepts tels que les diviseurs, les nombres parfaits et la conversion entre binaire et décimal.

Transféré par

YOUNESS AILAL
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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”)

Vous aimerez peut-être aussi