Vous êtes sur la page 1sur 5

Lycée secondaire Mourouj1 info.nabiha@gmail.

com

Correction de série n°2


Exercice1
* Algorithme
Algorithme Occurrence
Début
Ecrire ("Saisir une chaine : ")
Lire (ch)
Ecrire ("Saisir un caractère: ") TDO
Lire (c) Objet Type
O0 i, O Entier
Pour i de 0 à long(ch)-1 Faire ch Chaine
Si (ch[i] =c) alors c caractère
O  O+1
Fin si
Fin pour
Ecrire ("Nombre d'occurrence= ", O)
Fin
* Implémentation Python
ch=input("Saisir une chaine: ")
c=input("Saisir un caractère: ")
o=0
for i in range(len(ch)):
if (ch[i]==c):
o=o+1
print("Nombre d'occurrence= ",o)
Exercice3
* Algorithme
Algorithme PGCD * Implémentation Python
Début # Saisie de A
Répéter A=int(input("saisir A: "))
Ecrire ("Saisir A : "), Lire (A) while not(A>0):
Jusqu’à (A>0) A=int(input("saisir A: "))
Répéter # Saisie de B
Ecrire ("Saisir B : "), Lire (B) B=int(input("saisir B: "))
Jusqu’à (B>0) while not(A>0):
Tant que (A≠B) Faire B=int(input("saisir B: "))
Si (A>B) alors #Calcul PGCD
A  A-B TDO while(A!=B):
Sinon Objet Type if (A>B):
B  B-A A, B Entier A=A-B
Fin si else:
Fin Tant que B=B-A
Ecrire ("PGCD= ", A) print ("PGCD= ", A)
Fin

1
Lycée secondaire Mourouj1 info.nabiha@gmail.com

Exercice4
• 1ère méthode TDO
Algorithme Amis Objet Type
Début A, B, SA, SB, i Entier
Répéter
Ecrire ("Saisir A : "), Lire (A) * Implémentation Python
Jusqu’à (A>0) A=int(input("saisir A: "))
Répéter while not(A>0):
Ecrire ("Saisir B : "), Lire (B) A=int(input("saisir A: "))
Jusqu’à (B>0)
SA 0 B=int(input("saisir B: "))
Pour i de 1 à (A div 2) Faire while not(A>0):
Si (A mod i =0) alors B=int(input("saisir B: "))
SA  SA + i
Fin si SA=0
Fin pour for i in range(1,(A//2)+1):
SB 0 if (A % i==0):
Pour i de 1 à (B div 2) Faire SA=SA+i
Si (B mod i =0) alors
SB  SB + i SB=0
Fin si for i in range(1,(B//2)+1):
Fin pour if (B % i==0):
Si (SA=B) ET (SB=A) alors SB=SB+i
Ecrire ("Nombres amis")
Sinon if (SA==B) and (SB==A):
Ecrire ("Nombres non amis") print("Nombres amis")
Finsi else:
Fin print("Nombres non amis")

• 2ème méthode (en utilisant les modules)


* Algorithme du programme principal
Algorithme Amis
Début TDOG
Saisie(A) Objet Type
Saisie(B) A, B, SA, SB Entier
SA  Somdiv(A) Saisie Procédure
SB  Somdiv(B) Somdiv Fonction/entier
Si (SA=B) ET (SB=A) alors
Ecrire ("Nombres amis")
Sinon Ecrire ("Nombres non amis")
Fin si
Fin
* Algorithme de procédure Saisie
Procédure Saisie (@ x : entier)
Début
Répéter
Ecrire ("Saisir un entier : "), Lire (x)
Jusqu’à (x>0)
Fin
2
Lycée secondaire Mourouj1 info.nabiha@gmail.com

* Algorithme de fonction Somdiv


Fonction Somdiv (x : entier) : entier
Début TDOL
S 0 Objet Type
Pour i de 1 à (x div 2) Faire S, i Entier
Si (x mod i =0) alors
S S+i
Fin si
Fin pour
Retourner S
Fin
* Implémentation Python
def saisie():
x=int(input("saisir un entier: "))
while not(x>0):
A=int(input("saisir un entier: "))
return x
def somdiv(x):
S=0
for i in range(1,(x//2)+1):
if (x % i==0):
S=S+i
return S
# programme principal
A=saisie()
B=saisie()
SA=somdiv(A)
SB=somdiv(B)
if (SA==B) and (SB==A):
print("Nombres amis")
else:
print("Nombres non amis")
Exercice5
* Algorithme du programme principal
Algorithme Traitement
TDOG
Début TDNT
Objet Type
Saisie(n) Type
n Entier
Remplir1 (n, T) T, A Tab Tab= Tableau de 20 entiers
Remplir2 (n, T, A) Saisie, Remplir1, Remplir2 Procédure
Fin
* Algorithme de procédure Saisie
Procédure Saisie (@ n : entier)
Début
Répéter
Ecrire ("Saisir n : "), Lire (n)
Jusqu’à (4≤n≤20)
Fin
* Algorithme de procédure Remplir1
Procédure Remplir1 (n : entier ; @ T : Tab)
3
Lycée secondaire Mourouj1 info.nabiha@gmail.com

Début
Pour i de 0 à (n-1) Faire TDOL
Répéter Objet Type
Ecrire ("Saisir un entier : "), Lire (T[i]) i Entier
Jusqu’à (T[i]>0)
Fin pour
Fin
* Algorithme de procédure Remplir2
Procédure Remplir1 (n : entier; T :Tab; @ A: Tab)
Début
m 0 TDOL
Pour i de 0 à (n-1) Faire Objet Type
Si (Abondant(T[i])) ET (Symetrique(T[i])) alors i Entier
A[m]  T[i] Symetrique, Abondant Fonction/booléen
m  m+1
Fin si
Fin pour
Ecrire ("Les éléments symétriques et abondants sont : ")
Pour i de 0 à (m-1) Faire
Ecrire (A[i])
Fin pour
Fin
* Algorithme de fonction Abondant
Fonction Abondant (x : entier) : booléen
Début TDOL
S 0 Objet Type
Pour i de 1 à (x div 2) Faire S, i Entier
Si (x mod i =0) alors R Booléen
S S+i
Fin si
Fin pour
R  Faux
Si (S<x) alors
R  vrai
Fin si
Retourner R
Fin
* Algorithme de fonction Symetrique
1ère méthode on compare le premier caractère avec le dernier, le deuxième avec l’avant dernier, et ainsi de
suite jusqu’à la moitié de la chaine.
Fonction Symetrique (x : entier) : booléen
Début TDOL
ch convch(x) Objet Type
R  vrai j Entier
j 0 R Booléen
Tant que (R=vrai) ET (j ≤ long(ch) div 2) Faire
Si (ch[j]=ch[long(ch)-1-j]) alors
j j+1
Sinon R  Faux
4
Lycée secondaire Mourouj1 info.nabiha@gmail.com

Fin si
Fin Tant que
Retourner R
Fin
2ème méthode on définit ch1 l’inverse de la chaine équivalente ch de x puis on les compare, si elles sont
égales alors x est symétrique
Fonction Symetrique (x : entier) : booléen TDOL
Début Objet Type
ch convch(x) j Entier
R  Faux R Booléen
ch1 "" ch, ch1 chaine
Pour j de 0 à long(ch)-1 Faire
ch1  ch[j] + ch1
Fin pour
Si (ch=ch1) alors
R  vrai
Fin si
Retourner R
Fin
Remarque : pour déterminer l’inverse, on peut exprimer autrement
ch1 ""
Pour j de long(ch)-1 à 0 Faire
ch1  ch1 + ch[j]
Fin pour
* Implémentation Python
from numpy import* def abondant(x):
def saisie(): v=False
n=int(input("Saisir n: ")) s=0
while not(4<=n<=20): for j in range (1,(x//2)+1):
n=int(input("Saisir n: ")) if (x%j==0):
return n s=s+j
if (s<x):
def remplir1(n,t):
v=True
for i in range (0,n):
return v
t[i]=int(input("Saisir T["+str(i)+"]= "))
while not(t[i]>=0): def remplir2(n,t,a):
t[i]=int(input("Saisir T["+str(i)+"]= ")) m=0
for i in range(n):
def symetrique(x):
if symetrique(t[i]) and abondant(t[i]):
r=True
a[m]=t[i]
ch=str(x)
m=m+1
j=0
#affichage des éléments de a
while(r==True)and(j<=len(ch)//2):
for i in range(m):
if (ch[j]==ch[len(ch)-1-j]):
print(a[i],end=" ")
j=j+1
else: #programme principal
r=False n=saisie()
return r t=array([int]*20)
a=array([int]*20)
remplir1(n,t)
remplir2(n,t,a)

Vous aimerez peut-être aussi