Vous êtes sur la page 1sur 8

Exercice 6

Algorithme tri
Début
Répéter
Écrire("donnez la taille :"),lire(n)
Jusqu’à n ∈ [5..20] #contrôle sur la saisie de taille
Pour i de 0 à n-1 faire #parcourir et remplir le tableau T1
Répéter
Ecrire(‘un entier positif ’’),lire(T1[i])
Jusqu’à T1[i] ∈ ['A'.. 'Z'] #contrôle sur la saisie des élèments du tableau
Fin pour
Pour j de 0 à n-1 faire #parcourir et remplir le tableau B par les élèments de T1
#chercher le maximum dans T1
pmin  0
pour i de 1 à n-1 faire
si ord(T1[i]) < ord( T1[pmax]) alors
pmax  i
finsi
fin pour
T2[j]  T1[pmin]
T1[pmax]  ‘|’
Finpour
fin

Exercice 7

Algorithme salaire
Début
Ecrire(‘taux horaire de payement’’),lire(PH)
Ecrire(‘ nombre d’heures travaillées par jours’’),lire(NBH)
Somme  0
Pour j de 1 à 5 faire
Thsemaine  Thsemaine + PH * NBH
finpour
Écrire (‘le montant à payer est :’, Thsemaine)

SERIE 3 PART II
Exercice 1
La différence c'est le moment où la condition est testée.

"tant que(condition) .... fin tan que" : La condition est testée avant d'exécuter le code de la boucle.

"repeter ... tant que(condition)" : La condition est testée après avoir exécuté le code de la boucle.

Exercice 2

nous n’avons pas une idée sur l’itérations dans laquelle l’utilisateur va remplir la variable par une valeur valide ,

Exercice 3 Exercice 5
Algorithme recherche Algorithme comptage_mots
Début Début
Écrire("donnez la valeur à rechercher :"),lire(x)
Écrire("donnez une phrase"),lire(phrase)
i0
Tantque (t[i] ≠ x) et ( i<n-1) faire cpt0
i i+1 Pour i de 0 à long(phrase)-1 faire
Fin tantque si phrase[i] = ‘ ‘ alors
Si (t[i] ≠ x) alors cpt cpt+1
Écrire(x, " n’existe pas dans le tableau " ) finsi
Sinon Fin pour
Écrire(x," existe pas dans le tableau dans la position " ,i) Écrire(" le nombre de mots de cette phrase est « ,cpt )
finsi finsi

24
Exercice 6

Algorithme PGCD Algorithme PGCD


Début Début
Écrire("donnez deux entiers "),lire(a) Écrire("donnez deux entiers "),lire(a)
lire(b) lire(b)
x ←a tantque b ≠ 0 faire
y←b aux ← a
tantque x≠ y faire a←b
si x>y laors x ← x-y b ← aux mod b
sinon y ← y-x fintantque
finsi écrire (" le PGCD ",a)
fintantque fin
écrire (" le PGCD de ,",a,"et ",b, "=",x)
fin

Exercice 8

Algorithme PGCD a=int(input('donnez le 1er entier'))


Début b=int(input('donnez le 2ème entier'))
Répéter
x=a
Écrire("donnez le 1er entier "),lire(a)
Jusqu’à a ≠0 y=b
Répéter while x!= y:
Écrire("donnez le 2ème entier "),lire(b) if x>y:
Jusqu’à b ≠0
x=x-y
x ←a
y←b else:
tantque x≠ y faire y=y-x
si x>y laors x ← x-y if x != 1 :
sinon y ← y-x
print(a,"et ",b, " sont premier entre eux")
finsi
fintantque else:
si x = 1 alors (a,"et ",b, " ne sont pas premier entre eux")
écrire (a,"et ",b, " sont premier entre eux")
sinon
écrire (a,"et ",b, " ne sont pas premier entre eux")
finsi

25
Les modules
Objectifs :
- Découvrir la décomposition modulaire
- Déclarer et définir une fonction
- Déclarer et définir une procédure
A- Introduction :
Recherche internet
C’est quoi la décomposition modulaire ?
……………………………………………………………………………………………….
……………………………………………………………………………………………….
Pourquoi ?
……………………………………………………………………………………………….
……………………………………………………………………………………………….
B- Applications
Activité 1 :
Un entier naturel est dit parfait s’il est égal à la somme de tous ses diviseurs autres que lui-même.
Exemple :
6 est dit un nombre parfait car il vérifie 6 = 1 + 2 + 3 où 1,2 et 3 sont les diviseurs de 6 autres que 6.
On se propose de chercher tous les entiers parfaits compris entre deux valeurs données m et n telles que
2mn.

programme principal module


Algorithme chercher_parfait …………………………………………………
Début
…………………………………………………….. …………………………………………………
……………………………………………………..
…………………………………………………….. …………………………………………………
……………………………………..
………………
………………
………………
……………………………………..
……….

fin

Remarque :

26
Activité 2 :

Ecrire un programme qui saisit une phrase et l’affiche renversée. La phrase commence, obligatoirement,
par une lettre et ne se termine pas par un espace.
Exemple :
Votre phrase:"RESOLUTION DE PROBLEMES"
Résultat:"SEMELBORP ED NOITULOSER"

programme principal module


Algorithme phrase_inverse …………………………………………………
Début …………
…………………………………………………….. …………
…………………………………………………….. …………………………………………………
…………………………………………………….. ……………………………………
…………………………………………………….. …………
fin …………………..
…………
Activité 3 :
Soit la suite (Pi) i impair définie par :

 P1  2

 i-1 i  1
 Pi  Pi-2x x (i  1 et i impair)
i i
Ecrire un programme qui permet de calculer et d’afficher les termes de la suite P jusqu’à ce que la
différence entre deux termes consécutifs devienne inférieure ou égale à 10-4.

programme principal module


Algorithme suite …………………………………………………
Début …………
………… …………………………………………………
………… …………………..
…………………………………………………….. …………
……………………………………………………..
……………………………………………………..
……………………………………………………..
……………………………………………………..
……………………………………………………..
fin

27
Activité 4 :

Ecrire un algorithme intitulé PROD_SCALAIRE qui permet de calculer et d’afficher le produit scalaire de
deux tableaux A et B de n entiers positifs ( n étant un entier compris entre 5 et 50).

N.B : Le produit scalaire de deux tableaux A et B est donné par la formule suivante :
n
PS   A[i] * B[i]
i 0

programme principal module


Algorithme suite …………………………………………………
Début …………
…………………………………………………….. …………………………………………………
…………………………………………………….. …………………..
…………………………………………………….. …………
…………………………………………………….. …………………………………………………
fin …………
…………………………………………………
…………………..
…………

…………………………………………………
…………
…………………………………………………
…………………..
…………

Décomposition modulaire

28
Activité 5 :

On appelle moyenne olympique d’un ensemble de nombres la moyenne arithmétique de tous les nombres
de cet ensemble sauf le plus petit et le plus grand.
Ecrire un programme Python permettant de saisir un tableau de N réels (5≤ N ≤20) distincts et d’afficher
leur moyenne olympique.
Décomposition modulaire

………………………………………………… …………………………………………………
………………………………………………… …………………………………………………
………………………………………………… …………………………………………………
………………………………………………… …………………………………………………
………………………………………………… …………………………………………………
………………………………………………… …………………………………………………
………………………………………………… …………………………………………………
………………………………………………… …………………………………………………
………………………………………………… …………………………………………………
………………………………………………… …………………………………………………
…………………………………………………
………………………………………………… Algorithme olympiade
………………………………………………… Début
………………………………………………… ……………………………………………………..
………………………………………………… ……………………………………………………..
………………………………………………… ……………………………………………………..
fin

Break de savoir :

Fonction Procédure
La Valeur à chercher dans le bloc du Remplir ou modifier un(des ) objet(s) ou afficher sur
module et retourner doit être de type l’écran des résultats .
simple (entier, réel, caractère, booléen,
chaine de caractère). procédure nom_proc ( ……………………)
Syntaxe algorithmique : Début
Fonction nom_fn ( ……………………) :type Trt1
Début Trt2
Trt1 Fin
Trt2 Syntaxe python :
Retourner ……… Def nom_proc ( ……………………) :
Fin Trt1
Syntaxe python : Trt2
Def nom_fn ( ……………………) :
Trt1 Remarque :………………………………………………………………………
Trt2 ……………………………………………………………………………………..…
return ……… …………………………………………………………………………………….....
29
Situation 1

Pour trouver le nombre porte bonheur B ,qui est un entier de deux chiffres ,on procède comme suit :
1/ Remplir ,de façon aléatoire un tableau T1 par n entiers non nuls inférieurs à 1000 (8≤n≤100).
2/Afficher le contenu du tableau T1
3/remplir un 2ème tableau T2 contenant les fréquences des chiffres des entiers de T1
4/Trouver les 2 chiffres de B (c1,c2)qui sont les plus utilisés ;avec C1 comme chiffre des dizaines et C2
comme chiffre des unités
5/afficher B

Décomposition modulaire

30
Situation 2

Ecrire une analyse et un algorithme intitulé "Annuaire" qui permet de remplir 2


tableaux Tnom et Ttel en parallèle en respectant que à chaque nom de Tnom correspond
le numéro du téléphone de même indice
Exemple:

Tnom WALID KAIS MOHAMMED RAMZI ABDELAZIZ


Ttel 92765324 27895312 75650222 90456032 29034598
i 0 1 2 3 4
Questions:
1. écrire un module "Remplir_Contact" qui permet de remplir le tableau Tnom en
respectant qu’un nom est composé seulement de lettres majuscules et le tableau Ttel
en respectant qu'un numéro de téléphone est composé exactement de 8 chiffres et
commence obligatoirement par 7(tel fixe) ou 9(GSM Tuntel) ou 2(GSM Tunisiana) ou 5(GSM
Orange)
2. écrire un module "Tri_nom" qui permet de trier les deux tableaux en parallèle
suivant l'ordre croissant des noms
3. écrire un module "Tri_tel" qui permet de trier les deux tableaux en parallèle
suivant l'ordre croissant des numéros
4. écrire le programme principal qui permet d'appeler les modules ci-dessus et saisir
un nom pour déterminer son numéro de téléphone s'il existe ou saisir un numéro de
téléphone pour connaître le nom de son propriétaire en utilisant la recherche
dichotomique.
NB : 5≤Nombre de contact≤50

Décomposition modulaire

31

Vous aimerez peut-être aussi