Académique Documents
Professionnel Documents
Culture Documents
Projet 1:
Un jeu de devinette consiste à générer un nombre
x(Aléatoire entre 1 et 100) puis essayer de le deviner .
(Ajouter perdu, si le nombre n’est pas trouvé dans 10
essais)
Poi Aléa Permet de générer un entier au hasard. Poi Pour affecter une valeur à une variable, on utilise le
nt Algorithme Python symbole d’affectation.
nt
d'inxAléa(0,10) from random import * Algorithme Python
d'in
for x=randint(0,10) x=10
for x10
ma ma Attention : ne pas confondre avec le test d’égalité
tio tio Algorithme Python
n n Si x=10 alors if x==10 :
Poi Pour afficher une variable ou un message : Poi Pour saisir une variable :
nt Algorithme Python nt Algorithme Python
d'in Ecrire("Message",x) print('Message',x) d'in lire(n) n=input()
for En Python on peut délimiter un texte avec ' ' ou " " for En Python : saisir une chaîne (str) : n=input()
ma Exemple : print("C'est un texte") ma saisir un entier (int): n=int(input())
tio Pour rester sur la même ligne et empêcher un tio saisir un réel (float) : n=float(input())
n retour à la ligne suivante avec print, on pourra utiliser n Pour lire une variable en affichant un message:
l’instruction suivante : print('___',end=' ') n=input('Message=')
Objectif 3 : On veut afficher un message suivant la valeur entrée : « Bravo » si la réponse est
juste et « plus grand » ou « plus petit » sinon .
Algorithme
Poi Structure conditionnelle si
Algorithme multiplication from random import *
nt Algorithme Python
Début x=randint(1,100)
xAléa(1,100) y=int(input('Donner un entier d'in Si condition alors if condition :
Ecrire("Donner un entier (entre 1-100) = ')) for Traitement1 traitement1
entre 1 et 100:") if y==x : ma Sinon Traitement 2 else :
Lire(y) print('Bravo') tion FinSi traitement2
Si x=y alors elif y>x: En Python on doit utiliser la tabulation pour
Ecrire("Bravo") print('plus petit !') exprimer un bloc d’instructions
Sinon si y>x alors else: Pour rester sur la même ligne et empêcher un
Ecrire("Plus petit") print('Plus grand :') retour à la ligne suivante avec print, on pourra
Sinon utiliser l’instruction suivante : print('___',end=' ')
Ecrire("Plus grand")
Fin
Début
Projet 1 : (bis)
On va réaliser un jeu pour apprendre la table
de multiplication. Générer 2 entiers x et y
Référez-vous à l’algorigramme ci-contre pour, au hasard entre 0 et 10
Ecrire un algorithme puis une implémentation
Python permettant de réaliser ce jeu.
Affichage de la question x * y = ?
Oui Si Non
n=x*y
Prof:N.DHIFALLAH Page 3 / 33
Afficher Bravo Afficher Erreur
Année scolaire 2022-2023
Année 2022-2023-3ème Maths, Sciences et Techniques version 26 avril 2023 Matière : Informatique
Poi Aléa Permet de générer un entier au hasard. Poi Pour affecter une valeur à une variable, on utilise le
nt Algorithme Python symbole d’affectation.
nt
d'inxAléa(0,10) from random import * Algorithme Python
d'in
for x=randint(0,10) x=10
for x10
ma ma Attention : ne pas confondre avec le test d’égalité
tio tio Algorithme Python
n n Si x=10 alors if x==10 :
On veut maintenant afficher un message contenant la question x * y = ? et demander de l’utilisateur une réponse.
Poi Pour afficher une variable ou un message : Poi Pour saisir une variable :
nt Algorithme Python nt Algorithme Python
d'in Ecrire("Message",x) print('Message',x) d'in lire(n) n=input()
for En Python on peut délimiter un texte avec ' ' ou " " for En Python : saisir une chaîne (str) : n=input()
ma Exemple : print("C'est un texte") ma saisir un entier (int): n=int(input())
tio Pour rester sur la même ligne et empêcher un tio saisir un réel (float) : n=float(input())
n retour à la ligne suivante avec print, on pourra utiliser n Pour lire une variable en affichant un message:
l’instruction suivante : print('___',end=' ') n=input('Message=')
On veut afficher un message suivant la valeur entrée : « Bravo » si la réponse est juste et « erreur » sinon :
Structure conditionnelle si
Poi
Algorithme Python
nt
d'in Si condition alors if condition :
for Traitement1 traitement1
ma Sinon Traitement 2 else :
tio FinSi traitement2
n En Python on doit utiliser la tabulation
pour exprimer un bloc d’instructions
Pour rester sur la même ligne et empêcher
un retour à la ligne suivante avec print, on
pourra utiliser l’instruction suivante :
print('___',end=' ')
Algorithme
Algorithme multiplication from random import *
Début for i in range(5) :
Pour i de 0 à 4 faire x=randint(0,10)
xAléa(0,10) y=randint(0,10)
yAléa(0,10) print(x, ' * ' , y , ' = ', end=' ')
Ecrire(x, " * " , y , " = ") n=int(input())
Lire(n) if n==x*y :
Si n=x*y alors print('Bravo')
Ecrire("Bravo") else :
Sinon Ecrire("Erreur") print('Erreur')
FinSi
FinPour
Fin
Algorithme
Algorithme multiplication from random import *
Début for i in range(1,6) :
Pour i de 1 à 5 faire print('Essai : ',i)
Ecrire("Essai",i) x=randint(0,10)
xAléa(0,10) y=randint(0,10)
yAléa(0,10) print(x, ' * ' , y , ' = ', end=' ')
Ecrire(x, " * " , y , " = ") n=int(input())
Lire(n) if n==x*y :
Si n=x*y alors print('Bravo')
Ecrire("Bravo") else :
Sinon Ecrire("Erreur") print('Erreur')
FinSi
FinPour
Fin
Algorithme
Algorithme multiplication from random import *
Début score=0
Score=0 for i in range(1,6) :
Pour i de 1 à 5 faire print('Essai : ',i)
Ecrire("Essai",i) x=randint(0,10)
xAléa(0,10) y=randint(0,10)
yAléa(0,10) print(x, ' * ' , y , ' = ', end=' ')
Ecrire(x, " * " , y , " = ") n=int(input())
Lire(n) if n==x*y :
Si n=x*y alors print('Bravo')
Ecrire("Bravo") score=score+1
Scorescore+1 else :
Sinon Ecrire("Erreur") print('Erreur')
Scorescore-1 score=score-1
FinSi print('score= ',score)
Ecrire("Score=",score) print('score final= ',score)
FinPour
Ecrire("Score final=",score)
Fin
Jeu Chilaformi
"Pair-Impair" est une version plus simple de jeu « mourre » appelé en Tunisie Chilaformi
1- L'ordinateur saisit aléatoirement un nombre x compris entre 0 et 5.
2- L'utilisateur saisit un nombre y compris entre 0 et 5.
3- Calculer la somme de x et y.
4- Si la somme est paire, alors afficher « Ordinateur gagnant ». Si la somme est impaire, alors afficher « Utilisateur gagnant
».
Attribuer un score à l'ordinateur (score1) et un score à l'utilisateur (score2) initialisés par 0, incrémentés à chaque partie gagnée.
Répéter les étapes 1-4 , 5 fois et afficher à la fin le score final : score utilisateur = .. score ordinateur =...
Exemple d'exécution:
Ordinateur: j'ai choisi un nombre entre 0 et 5= *
Utilisateur :Saisir un nombre entre 0 et 5=2
Chilaformi
La somme de ordinateur( 3) et utilisateur (2)=5 est impaire
Utilisateur gagnant
Algorithme Chilaformi
Début
Score10
Score20
Pour i de 0 à 4 faire
XAléa(0,5)
Ecrire("Ordinateur: J’ai choisi un nombre entre 0 et 5=*")
Poi
Ecrire("Utilisateur: J’ai choisi un nombre entre 0 et 5=")
nt
Lire(y) Division entière
d'in
Sx + y Algorithme Python
for
Ecrire("Chilaformi") a // b
ma a div b
Si S mod 2=0 alors A mod b a % b
tio
Ecrire("La somme de ordinateur(",x,”) et l’utilisateur(",y,”)=”,s,” est paire”)
n
Ecrire("Ordinateur gagnant") 7 2
Score1Score1+1
3 Quotient
Sinon
7 mod 2=1 Reste 1 7 div 2=3
Ecrire("Utilisateur gagnant")
Ecrire("La somme de ordinateur(",x,”) et l’utilisateur(",y,”)=”,s,” est impaire”)
Score2 score2+1
FinSi
Finpour
Objectif 1 : Saisir le nombre d’élèves, puis la note de chaque élève, enfin afficher la moyenne de la classe.
Algorithme
Algorithme Moyenne
Début
Ecrire("Nbre d’élèves="),Lire(n) Déclaration des objets
S0 Objets Types/Nature
Pour i de 0 à n-1 faire i,n Entier
Ecrire("Note ",i+1,"="), Lire(x) x,S, moy réel
SS+x
Finpour
MoyS/n
Ecrire("moy classe=",Moy)
Fin
Solution :
Algorithme
si moy >=12 alors if moy>=12 :
Ecrire("Bien") print('Bien')
Sinon si moy>=10 : elif moy>=10 :
Ecrire("Passable") print('passable')
Sinon else :
Ecrire("Faible") print('Faible')
FinSi
Ajouter un contrôle de saisie sur les notes pour être entre 0 et 20 et sur le nombre des élèves
pour être entre 2 et 25.
Objectif 1 : Saisir le nombre d’élèves, puis la note de chaque élève, enfin afficher la moyenne de la classe.
1ère solution :
Algorithme
Algorithme Moyenne
Début
Ecrire("Nbre d’élèves="),Lire(n) Déclaration des objets
S0 Objets Types/Nature
Pour i de 0 à n-1 faire i,n Entier
Ecrire("Note ",i+1,"="), Lire(x) x,S, moy réel
Point d'information
SS+x On utilisera la bibliothèque
Finpour numpy pour implémenter les
MoyS/n tableaux
Ecrire("moy classe=",Moy) Un tableau numpy est :
Fin Homogène : constitué
d’éléments de même type,
Statique : sa taille est fixée
lors de la création
Exemples :
from numpy import array
T=array([float()]*10)
Remarques : Déclarations
Tableau de chaines :
T=array([str]*25)
Tableau de caractères :
T=array([str()]*25)
Reprendre l’exercice de la moyenne des notes d’une classe,
en utilisant la structure tableau.
2ère solution : (en utilisant les tableaux)
On va avoir la solution suivante :
Algorithme
Algorithme classe from numpy import *
Début T=array([float()]*25)
Répéter n=0
Ecrire("Nbre d’élèves=") while n not in range(2,26):
Lire(n) n=int(input('N='))
Jusqu’à 2<=n<=25 for i in range(n):
Pour i de 0 à n-1 faire T[i]=-1
Répéter while not(0<=T[i]<=20):
Ecrire("Note ",i+1,"=") T[i]=float(input('Note'+ str(i+1)+'='))
Lire(T[i]) s=0
Jusqu’à 0<=T[i]<=20 for i in range(n):
Prof:N.DHIFALLAH Page 12 / 33 Année scolaire 2022-
2023
Année 2022-2023-3ème Maths, Sciences et Techniques version 26 avril 2023 Matière : Informatique
Finpour s=s+T[i]
S0 moy=s/n
Pour i de 0 à n-1 faire print('moy classe=',moy) )
SS+T[i]
Finpour
MoyS/n
Ecrire("moy classe=",Moy )
Fin Déclaration des objets
Objets Types/Nature
i,n Entier
T Tableau de 25 réels
S, moy réel
Ecrire un algorithme puis un script python permettant de saisir un entier n entre 1 et 15 puis remplir un tableau T par
n entiers au hasard (entre 10 et 50), enfin afficher T .
Objectif 2 : Ajouter le calcul puis l’affichage de nombre des entiers pairs dans le tableau T
Algorithme
Algorithme pairs from numpy import *
Début from random import *
Répéter T=array([int()]*15)
Ecrire("n="),Lire(n) n=0
Jusqu’à 1<=n<=15 while n not in range(1,16):
Pour i de 0 à n-1 faire n=int(input('N='))
T[i]=Aléa(10,50)
Finpour for i in range(n):
Pour i de 0 à n-1 faire T[i]=randint(10,50)
Ecrire('T[',i,']=',T[i])
Finpour for i in range(n):
nb0 print('T[',i,']=',T[i])
Pour i de 0 à n-1 faire nb=0
Si T[i] mod 2=0 alors nbnb+1 for i in range(n):
Finsi if T[i] % 2==0:
Finpour nb=nb+1
print('Nbre des pairs=',nb)
Ecrire("Nbre des pairs=",nb)
Fin
ok=False
from numpy import * nb=0
from random import * while (ok==False) and (nb<n-1):
ok=True
n=0 nb=nb+1
while n not in range(2,11): print('\nEssai ',nb,' :')
n=int(input("Donner le nbre des entiers=")) for i in range(n):
T1[i]=int(input('Entier '+str(i+1)+'='))
T=array([int()]*n)
T1=array([int()]*n) for i in range(n):
if T[i]==T1[i] :
for i in range(n): print(T[i],end=',')
T[i]=randint(1,100) else :
print('X',end=',')
for i in range(n): ok=False
if i!=n-1: if ok:
print(T[i],end=' , ') print('Bravo !')
else: else:
print(T[i]) print('Perdu!, le bon ordre est:')
for i in range(n):
shuffle(T) if i!=n-1:
print(T[i],end=' , ')
print('Deviner l’ordre de ces chiffres:') else:
print(T[i])
Implémentations en python
Méthode 1 Méthode 2
from numpy import * from numpy import *
T1=array([float()]*25) T1=array([float()]*25)
Exercice 4 :
On se propose d’écrire un algorithme en utilisant la décomposition modulaire permettant de saisir le nombre de ville n
(entre 3 et 9), puis le nom de chaque ville (chaîne de longueur <20) suivi par La quantité de pluies enregistrée en
millimètres (entre 0 et 150.5), ensuite d’afficher chaque ville et sa pluviométrie, enfin le nom de la ville ayant un maximum
pluviométrique.
Exemple : Donner le nombre des villes=3
Ville 1=Sousse
Qté pluies 1=24.8
Ville 2=Monastir
Qté pluies 2=59.8
Ville 3=Gabes
Qté pluies 3=19.6
Pluviométrie :
Sousse : 24.8
Monastir :59.8
Gabes :19.6
Pluviométrie max dans la ville = Monastir
Exercice 5: Ecrire un algorithme puis un script python permettant de saisir un entier n entre (5 et 15) puis remplir un
tableau T par des entiers aléatoires (entre 10 et 50), ensuite afficher le tableau T, enfin calculer et afficher nb ( le nombre
des entiers pairs).
Algorithme pairs: Paramètre effectif T.D.O.Globaux from numpy import *
DEBUT Objet Type/nature from random import *
Saisir(n) n, nb Entier T=array([int()]*15)
Appel d’une
Remplir(T, n) T Tab
procédure def saisir():
Afficher(T, n) Saisir procédure
nb calculer(T,n) remplir procédure n=-1
Ecrire("nbre des pairs=",nb) Afficher procédure while not(5<=n<=15):
FIN calculer fonction n=int(input('nbre de personnes='))
return n
Nouveaux Types
TAB= tableau de 15 entiers
def remplir (T,n):
Algorithme de la procédure saisir : for i in range(n):
Procédure saisir(@ n :entier) Passage
T[i]=randint(10,50)
Début par variable
Répéter
Ecrire("Donner le nombre de personnes"), Lire(n) def afficher(T,n):
Jusqu’a n ∈[5..15] for i in range(n):
Fin print(T[i], end=" ")
Algorithme de la procédure remplir : print()
Procédure remplir(@T :TAB, n :entier)
Début T.D.O.Locaux def calculer(T,n):
Pour i de 0 à n-1 faire Objet T/N nb=0
T[i]Aléa(10,50) for i in range(n) :
i Entier
Finpour if T[i] % 2==0 :
Paramètre formel nb=nb+1
Fin
Prof:N.DHIFALLAH Page 23 / 33 Année scolaire 2022-
2023
Année 2022-2023-3ème Maths, Sciences et Techniques version 26 avril 2023 Matière : Informatique
Algorithme de la procédure Afficher: return nb
Procédure Afficher(T :TAB, n :entier) #programme principal
Début T.D.O.Locaux n=saisir()
Pour i de 0 à n-1 faire Passage Objet T/N remplir(T,n)
Ecrire(T[i]) par valeur i Entier afficher(T,n)
Finpour print('le nombre des pairs=',calculer(T,n))
Fin n
Algorithme de la fonction calculer: PP
fonction calculer(T :TAB, n :entier):entier nb
Début T.D.O.Locaux saisir T
nb0 Objet T/N n T,n
Pour i de 0 à n-1 faire i,nb Entier T,n
si T[i] mod 2=0 alors nbnb+1 FinSi calculer
Finpour remplir
retourner nb Afficher
Fin
La recherche séquentielle : Pour un tableau T de taille n. par exemple n=5 x=10
La méthode de recherche séquentielle d'un élément x dans un tableau T consiste à parcourir le tableau élément par
élément progressivement de début vers la fin en les comparants avec l'élément à chercher jusqu'à trouver ce dernier ou
achever le tableau.
Algorithme de la fonction Chercher : def chercher(x,T,n):
Fonction chercher(x : entier , T :Tab, n :entier) :booléen trouve=False
Début i=-1
TrouveFaux while (trouve==False) and (i!=n-1):
i-1 i=i+1
Répéter if T[i]==x:
ii+1 trouve=True
Si T[i]=x alors trouvevrai FinSi
return trouve
Jusqu’à (trouve=vrai) ou (i=n-1)
Retourner trouve
Fin T.D.O.Locaux
Objet Type/Nature
i Entier
trouve booléen
Le tri d’un tableau: Le tri d’un tableau consiste à le mettre en ordre (croissant ou décroissant). Tri à bulles
Principe : pour un tableau d’entiers de taille n:
Faire remonter le plus grand élément du tableau en Procédure tri_bulle(@T:TAB,n:Entier)
comparant les éléments successifs. Début
Déroulement de l’algorithme : Répéter
-On commence par i=0, on compare le 1er(T[0]) et le 2éme Echange faux
élément(T[1]) du tableau, s'il ne sont pas dans le bon Pour i de 0 à n-2 faire
ordre, on les permute, on passe ensuite au 2ème (T[1])et Si ( T[i] > T[i+1])Alors auxT[i]
3ème (T[2]), puis 3ème et 4ème et ainsi de suite jusqu'au T[i]T[i+1]
(T[n-2])et (T[n-1]). T[i+1]aux
→À la fin du premier parcours, on aura poussé le plus Echange vrai
grand élément du tableau vers sa place finale qui est le FinSi
nième élément du tableau. FinPour
-On recommence cette opération en parcourant de 0 à n-2 n n-1
puis de 0 à n-3 et ainsi de suite. Jusqu'à (Echange = Faux) ou (n=1)
→On arrête quand la partie à trier est réduite à un seul Fin T.D.O.Locaux
élément ou que le tableau est devenu trié (c.à.d aucune Objet Type/Nature
permutation n'a été faite lors du dernier parcours à vérifier i Entier
par un indicateur) echange Booléen
aux Même type que les éléments du tableau
Exercice 7: Ecrire un script python permettant de saisir un entier n entre 1 et 15 puis remplir un tableau T par des entiers
au hasard (entre 10 et 50), ensuite afficher T, puis trier T en ordre croissant enfin afficher le résultat (le contenu de T).
(reprendre l’exercice 4 et ajouter le tri et l’affichage)
from numpy import * def tri_bulles(T,n):
Prof:N.DHIFALLAH Page 24 / 33 Année scolaire 2022-
2023
Année 2022-2023-3ème Maths, Sciences et Techniques version 26 avril 2023 Matière : Informatique
from random import * echange=True
T=array([int()]*15) while (echange) and (n!=1):
def saisir(): echange=False
n=0 for i in range(n-1):
while not(1<=n<=15): if (T[i]>T[i+1]):
n=int(input("n=")) echange=True
return n aux=T[i]
def remplir (T,n): T[i]=T[i+1]
for i in range(n): T[i+1]=aux
T[i]=randint(10,50) n=n-1
#programme principal
def afficher(T,n): n=saisir()
for i in range(n): remplir(T,n)
print(T[i], end=" ") afficher(T,n)
print() tri_bulles(T,n)
afficher(T,n)
Remarque: En Python return T :est facultatif puisque le module tri_bulles modifie directement le tableau T(T par défaut passé
par référence).
Reprendre l’exercice de la moyenne : Algorithme classe.
Ch[i] Long(ch) Sous_chaîne Ch1+ch2 Ecrire un programme qui permet de saisir une chaine ch
Ecrire un algorithme puis un programme en langage Python, qui : ch=input('Donner une chaine=') de longueur < =10 caractères puis l’inverse, enfin indique
Demande à l’utilisateur de saisir une chaîne de caractère ch L=len(ch) si c'est un palindrome. (S’écrivant de la même façon de
Permet d’afficher le nombre de caractère de cette chaîne print('Le nbre de caractère de ', ch, '=',L) gauche à droite et de droite à gauche . Exemples : radar,
Échange le premier et le dernier caractère de cette chaîne ch=ch[L-1]+ch[1:L-1]+ch[0]
Algorithme ex1 print('Chaine résultat=',ch) elle,...) .
Objet Type/Nature
Début Algorithme palindrome Ch, ch2 Chaîne
Ecrire("Donner une chaine="), lire(ch) Début i Entier
Llong(ch) Répéter
Ecrire("le nbre de caractère de ", ch, "=",L) c=input('Donner un caractère =')
Ecrire("ch="), lire(ch)
Chch[L-1]+sous_chaine(ch,1,L-1)+ch[0] if 'A'<=c.upper()<='Z':
Jusqu’à 2<=long(ch)<=10
Ecrire("Chaine résultat=",ch) Objet print('Lettre')
Type/Nature Ch2""
Fin if c.upper() in {'A','E','I', 'O', 'U','Y'}: Pour i de long(ch)-1 à 0 (pas=-1) faire
ch Chaîne
print('Voyelle') Ch2ch2+ch[i]
L entier
else: FinPour
Majus Caractère print('Consonne') Ch"" Ch[i]
Si ch2=ch alors Ecrire("Palindrome")
elif '0'<= c <='9':
c["A".."Z"] c["0".."9"]
Ecrire c{"Y","O","U"}
un algorithme puis un programme
en langage Python, qui permet de, saisir print('Chiffre') Sinon Ecrire("Non palindrome")
FinSi
Long(ch) Ch1+ch2
Ecrire un programme qui permet de saisir une ch=input('Donner une chaine=') Exercice 9 : Ecrire un script python permettant de saisir n entre2 et 10
chaine Ch puis une lettre L ensuite calcul et L=input('Donner une lettre=') puis remplir un tableau T par des entiers entre 5 et 20 puis saisir un
affiche le nombre d’occurrence de L dans ch dans if ch.find(L)==-1: autre entier x enfin afficher si x existe dans T ou non. Pour N=5 et
le cas où L existe dans ch et affiche n’existe pas print(L,"n'existe pas dans ", ch) X=11 => N’existe pas
dans le cas contraire. else: 0 1 2 3 4
Parcours chaîne Ch[i]
Algorithme occurrence nb=0 T 15 20 10 1 7
Début Long(ch) Caractère Pos(c,ch) for i in range(len(ch)): from numpy import *
Ecrire("Donner une chaine="), lire(ch) if ch[i]==L: T=array([int()]*15)
Ecrire("Donner une lettre="), lire(L) nb=nb+1 def saisir():
Si pos(L,ch)=-1 alors Ecrire (L,"n’existe pas dans ",ch) print(L,' existe ', nb ,' fois dans ',ch) n=0
Sinon while not(2<=n<=10):
Nb0 n=int(input('n='))
Objet Type/Nature
Pour i de 0 à long(ch)-1 faire Convch Valeur
n,S Entier
return n
def remplir (T,n):
Si ch[i]=L alors nbnb+1 FinSi Parcours chaîne ch Chaîne
Ecrire (L,"existe ", nb ,"fois dans ",ch) for i in range(n):
Ch[i]Algorithme
Long(ch) chiffres2
FinSi Objet Type/Nature T[i]=0
Début
Fin ch chaîne while not(5<=T[i]<=20):
Ecrire("Donner un entier=")
L Caractère T[i]=int(input('T['+ str(i+1)+']='))
lire(n)
def chercher(x,T,n):
I,nb entier chconvch(n) trouve=False
s0
i=-1
Pour i de 0 à long(ch)-1
Ecrire un algorithme puis un script Python while (trouve==False) and (i!=n-1):
faire
permettant de saisir un entier n (composé i=i+1
ss+valeur(ch[i])
de 3 chiffres) puis afficher la somme de ces if T[i]==x:
Ecrire("La somme des
chiffres. trouve=True Selon code
chiffres=",s)
Exemple : Donner un entier de 3 chiffres =123 return trouve 619 : Message "Tunisie"
Fin
La somme des chiffres=6 #programme principal 600,601: Message "Afrique de sud"
Rq :Modifier le programme pour afficher la somme n=saisir()
n=int(input('Donner un entier =')) 450..459,490:Message "Japon"
des chiffres d’un entier composé d’un nombre remplir(T,n)
ch=str(n)
x=int(input('x='))
sinon Message "Autres"
quelconque de chiffres.
s=0
Algorithme chiffres
for i in range(len(ch)):
if chercher(x,T,n): FinSelon
Début print('existe') match code:
s=s+int(ch[i])
Ecrire("Donner un entier de 3 chiffres ="), else: case 619:
print('La somme des chiffres=',s)
lire(n) print("n'existe pas") message='Tunisie'
cn div 100 case 600 | 601:
d(n mod 100 ) div 10 n=int(input('Donner un entier de 3 chiffres=')) message='Afrique de sud'
un mod 10 c=n//100 case code if 450<=code<=459 |490:
sc+d+u d=n % 100 //10 message='japon'
Ecrire("La somme des chiffres=",s) u=n%10
Fin case _ :
Objet Type/Nature s=c+d+u
print('La somme des
message=’autre’
Prof:N.DHIFALLAH n,c,d,u,s Entier Pagechiffres=',s)
28 / 33 Année scolaire 2022-
2023
Année 2022-2023-3ème Maths, Sciences et Techniques version 26 avril 2023 Matière : Informatique
FinPour
Fin T.D.O.Locaux
Objet T/N
i Entier
Objectif 7 : Ajouter un contrôle de saisie sur les noms des élèves pour être composés par des lettres et des
espaces seulement.
Algorithme
Algorithme du programme principal : from numpy import *
Algorithme Classe: T1=array([float()]*25)
DEBUT T2=array([str]*25)
Saisir(n) def saisir():
Remplir(T1,T2, n) n=0
while n not in range(2,26):
Moymoyenne(T1,n)
n=int(input('Nombres élèves='))
Mmaximum(T1,n) return n
Tri_bulles(T1,T2,n) def remplir(T1,T2,n):
Afficher(T1,T2,n) for i in range(n):
Ecrire("moy classe=",Moy, "Meilleure note=",M) T2[i]='-'
while verif(T2[i])==False:
FIN
T2[i]=input('Nom '+str(i+1)+'=')
Nouveaux Types
TAB= tableau de 25 réels T1[i]=-1
TAB2=Tableau de 25 chaînes while not((0<=T1[i]<=20)) :
T.D.O.globaux T1[i]=float(input("Note"+str(i+1)+'='))
Objet Type/Nature
n Entier def moyenne(T,n): def maximum(T,n): def afficher (T1,T2,n):
moy, M réel s=0 X=T[0] for i in range(n):
T1 TAB for i in range(n): for i in range(1,n) : print(i+1,'-',T2[i],':',T1[i])
s=s+T[i] if T[i]>X :
T2 TAB2
moy=s/n X=T[i]
Saisir, remplir, Tri_bulles Procédures return moy return X
Moyenne,maximum fonctions def verif(ch):
Algorithme de la fonction verif: ok=True
Fonction verif(ch:chaine):booléen i=-1
Début while (ok==True) and (i<len(ch)-1):
i← -1, ok←vrai i=i+1
Répéter if not(('A'<=ch[i].upper()<='Z')or (ch[i]==' ')):
i←i+1 ok=False
si NON(Majus(ch[i]) ["A".."Z"] ou ch[i]=" ") return ok
alors ok ←Faux def tri_bulles(T1,T2,n):
Finsi echange=True
Jusqu'a (i=long(ch)-1) ou (ok=faux) while (echange) and (n!=1):
Retourner ok echang=False
Fin Objet T/N for i in range(n-1):
T.D.O.Locaux i Entier if (T1[i]<T1[i+1]):
ok booléen echange=True
aux1=T1[i]
T1[i]=T1[i+1]
Algorithme de la procédure remplir :
T1[i+1]=aux1
Procédure Remplir(@T:tab,@T2:tab2,n :entier)
aux2=T2[i]
Début
T2[i]=T2[i+1]
Pour i de 0 à n-1 faire
T2[i+1]= aux2
Répéter n=n-1
Ecrire("Nom ",i+1,"="), Lire(T2[i]) #programme principal
Jusqu’à vérif(T2[i])=vrai n=saisir()
Répéter remplir(T1,T2,n)
Ecrire("Note ",i+1,"="), Lire(T[i]) moy=moyenne(T1,n)
Jusqu’à 0<=T[i]<=20 M=maximum(T1,n)
Finpour tri_bulles(T1,T2,n)
Fin T.D.O.Locaux print('Liste triée:')
Objets Types/Nature afficher(T1,T2,n)
i Entier print('moy de la classe=',moy,'\nMeilleure note=',M)
Algorithme
Algorithme du programme principal : from numpy import *
Algorithme Décomposition: Paramètre effectif T=array([int()]*10)
DEBUT def afficher_fact(T,j):
for i in range(j):
Saisir(n) print(T[i],'x',end=' ')
Remplir_fact(T, i , n) Appel d’une
procédure print(T[j])
Afficher_fact(T,i) def remplir_fact(T,x):
FIN global j
Nouveaux Types i=2
TAB= tableau de 10 entiers j=-1
while x!=1:
T.D.O.globaux
if x % i==0:
Objet Type/Nature j=j+1
i,n Entier T[j]=i
T TAB x=x//i
Saisir, remplir_fact,afficher_fact Procédures else:
Algorithme de la procédure saisir : i=i+1
Procédure saisir(@n :entier) def saisir():
n=0
DEBUT
while not(10<=n<=1000) :
Répéter n=int(input('n à décomposer ?='))
Ecrire("Donner un entier (entre 10 et 1000)=") return n
lire(n) #programme principal
Jusqu’à n>=10 et n<=1000 n=saisir()
FIN remplir_fact(T,n)
Algorithme de la procédure rempli_fact : afficher_fact(T,j)
Procédure Remplir_fact(@T:tab, @ j:entier , x:entier)
DEBUT Passage Autre méthode :
from numpy import *
i2 j-1 par variable T=array([int()]*10)
Tantque x≠1 faire
Paramètre def afficher_fact(T,j):
si x mod i = 0 alors for i in range(j):
formel
jj+1 print(T[i],'x',end=' ')
T[j]i print(T[j])
def remplir_fact(T,x):
xx div i i=2
sinon i i+1 j=-1
Finsi while x!=1:
FinTantque if x % i==0:
Fin. j=j+1
T.D.O.Locaux T[j]=i
x=x//i
Objets Types/Nature else:
i Entier i=i+1
Algorithme de la procédure Afficher_fact : return j
Procédure afficher_fact(T :tab,j :entier) def saisir():
n=0
DEBUT
while not(10<=n<=1000) :
Pour i de 0 à j-1 faire
n=int(input('n à décomposer ?='))
Ecrire(T[i], "x") Passage return n
Finpour par valeur
Ecrire(T[j]) #programme principal
FIN n=saisir()
T.D.O.Locaux j=remplir_fact(T,n)
Objets Types/Nature afficher_fact(T,j)