Académique Documents
Professionnel Documents
Culture Documents
Les fonctions :
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
………………………………………………………………………………………. ……………………………………………………………………………………….
……………………………………………………………………………………….. ……………………………………………………………………………………….
.
51
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
1) Définition :
Les fonctions sont des sous-programmes qui fournissent un seul résultat de type simple
(entier, réel, caractère, chaine de caractères, booléen) à partir d’une liste de paramètres par
valeur
52
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
Les procédures :
Analysez puis déduisez l’algorithme d’un programme qui permet de remplir un tableau T de N
entiers positif, avec N ∈ [5..20], calcul et affiche la somme des éléments paires du tableau
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
………………………………………………………………………………………. ……………………………………………………………………………………….
……………………………………………………………………………………….. ……………………………………………………………………………………….
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
………………………………………………………………………………………. ……………………………………………………………………………………….
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
……………………………………………………………………………………….. ………………………………………………………………………………………..
………………………………………………………………………………………. ……………………………………………………………………………………….
……………………………………………………………………………………….. ………………………………………………………………………………………..
1) Définition :
Les procédures sont des sous-programmes qui peuvent avoir zéro, un ou plusieurs résultats.
Remarque :
Une astuce à appliquer lors de l’analyse modulaire est de considérer que tous les modules sont
des procédures et si un module accepte (ou bien reçoit) des paramètres sans les modifier et
retourne un seul résultat alors cette procédure sera une fonction.
53
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
Passage par adresse : La valeur du paramètre effectif sera donc modifiée. Les variables de types
tableaux passent par adresse.
En algorithme : on ajoutera le symbole @ avant le nom du paramètre dont le mode de passage est
par adresse.
Remarque :
Les paramètres effectifs et les paramètres formels doivent s’accorder de point de vue,
nombre, ordre et doivent être de mêmes types ou bien de types compatibles.
6) Les variables locales et les variables globales :
Une variable locale :
o définie à l'intérieur d'une fonction,
o inaccessible depuis l'extérieur de la fonction,
o détruite après l'exécution de la fonction.
Une variable globale :
o définie à l'extérieur des fonctions,
o contenu visible depuis l'intérieur des fonctions,
o non modifiable depuis l'intérieur d'une fonction.
54
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
Exemple :
Remarque :
Une variable globale peut devenir modifiable à l'intérieur d'une fonction en indiquant dans la
fonction : global NomDeLaVariable
QCM1 :
Qu’affiche le programme suivant :
3 5
def bonjour (nb) :
def bonjour (nb) : 5 return nb+a 10
return nb+3 a=5
print(bonjour(5)) 8 15
print(bonjour(10))
Erreur Erreur
55
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
6 1
def bonjour (nb) : def bonjour () :
a=1 11 a=1 10
return nb+a print(a)
a=5 15 a=10 11
print(bonjour(10)) bonjour()
Erreur ‘Bonjour’
1 10
def bonjour () : def test (a) :
a=1 10 ‘a’
a=a+10
a=10 print(a)
‘a’ Rien
bonjour() test()
print(a) Erreur
Erreur
11 3
def test (valeur) :
def test (a) :
valeur=12 12 13
a=a+10
print(valeur)
23 print(a) a+10
valeur=11
test(3)
test()
Erreur Erreur
11 11
def test (valeur) : def test () :
valeur=12 12 valeur=12 12
valeur=11 print(valeur)
test() 23 valeur=11 23
print(valeur) test()
Erreur Erreur
def test () : 11 11
def test () :
valeur=12
12 valeur=12 12
return valeur
return valeur
valeur=11 23 23
valeur=test()
valeur=test(11)
print(valeur)
print(valeur) Erreur Erreur
56
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
58
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
x1 ‘’
Pour i de a à (b-1) faire :
x1x1+ch[i] x1……………………………..
Fin Pour
a-1
i0
Répéter
Si (ch[i]=c) alors
ai a……………………………….
Sinon
ii+1
Fin Si
Jusqu’à (i>long(ch)-1) ou (a≠-1)
x1’’
Pour i de 0 à (a-1) faire
x1x1+ch[i]
Fin Pour
x2’’ ch……………………………….
Pour i de b à (long(ch)-1) faire
x2x2+ch[i]
Fin Pour
chx1+x2
rlong(ch)>0
i0
Tant que r et (i<long(ch)) faire
r’0’≤ch[i]≤’9’
r……………………………….
ii+1
Fin Tant que
Application2 :
On donne ci-dessous, l’algorithme d’une fonction inconnue, avec t un tableau de type tab.
tab =Tableau de 100 entier
Foncton inconnue (ta :…, x :…………...) :………
Debut
a0
mta[0]
pour i de 1 à x-1 faire :
Si (ta[i]>m) alors
ai
mta[i]
Fin Si
Fin pour
59
Retourner (a)
Fin
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
11 2 17 4 2 0
t 0 1 2 3 4 5
inconnue(t,6)=……………
Application 3 :
Soit l’algorithme de la fonction inconnue suivante :
Foncton inconnue (x :…………, a :…………...) :………
Debut
Tant que (x mod a =0) faire :
xx div a
Fin Tant que
bx =1
Retourner (b)
Fin
60
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
…………………………………………………………………………………………..
Application 5:
Soit l’algorithme de la fonction inconnue suivante :
Foncton inconnue (ch :………………..) :…………….
Debut
s0
Pour i de 0 à long(ch)-1 faire :
Si (ch[i] ∈ [‘0’..’9]) alors
ss+ord(ch[i])-48
Fin SI
Fin Pour
Retourner (s)
Fin
62
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
Algorithme exercice
Debut
…………………………………………….
…………………………………………….
…………………………………………….
…………………………………………….
Si (r) alors
Ecrire (n1,’,’,n2,’,’,n3,’forment un triplet de Pythagore’)
Fin SI
Fin
……………………………………………………………….
Debut
sa*a+b*b
Si (s=c*c) alors
pVrai
Sinon
pFaux
Fin SI
Retourner (p)
Fin
1) Ecrire l’algorithme du module Saisir qui permet de saisir un réel x>0 :
……………………………………………………………………….
………………………………………………………………………………………………………………………..
……………………………………………………………………….
………………………………………………………………………………………………………………………..
……………………………………………………………………….
………………………………………………………………………………………………………………………..
………………………………………………………………………………….
……………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………
…………………………………………………………………………..
………………………………………………………………………………………………………………………
…………………………………………………………………………..
2) Ajouter l’appel du module Saisir dans l’algorithme du programme principal.
3) Pour chacune des propositions suivantes, mettre dans la case correspondante la réponse
Vrai si l’entête de la fonction Pythagore est correcte ou la réponse Faux dans le cas
contraire :
63
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
64
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
65
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
Application 9:
Soit l’algorithme ci-après, qui permet de vérifier si une chaine de caractère est composée
uniquement par des lettres alphabétiques :
……………………………………………………………………….
………………………………………………………………………………………………………………………..
…………………………………………
……………………………………………………………………….
………………………………………………………………………………………………………………………..
……………………………………………………………………….
………………………………………………………………………………………………………………………..
…………………………………………
……………………………………………………………………….
………………………………………………………………………………………………………………………..
……………………………………………………………………….
………………………………………………………………………………………………………………………..
…………………………………………
……………………………………………………………………….
………………………………………………………………………………………………………………………..
……………………………………………………………………….
………………………………………………………………………………………………………………………..
…………………………………………
2) Pour vérifier si deux chaines de caractères ch1 et ch2 sont simultanément composées
uniquement par des lettres alphabétiques, on propose les trois instructions ci-après. Mettre
dans la case V si l’instruction correspondante est correcte et la lettre F dans le cas contraire :
67
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
68
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
69
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
Ecrire le programme qui permet de vérifier si un entier naturel n (n>0) est un nombre super-
pairplus ou non.
Exercice n°7 : Cryptage1
Dans le but de sécuriser les messages à envoyer, on peut faire appel à une méthode de
cryptage.
Une des méthodes utilisées consiste à remplacer chaque lettre du message à crypter par celle
qui la suit de p positions dans l’alphabet français, ou p désigne le nombre de mot du message.
On suppose que le caractère qui suit la lettre ‘Z’ est le caractère ‘A’ et celui qui suit la lettre
‘z’ est le caractère ‘a’.
Le caractère espace ne subit aucune modification.
Le code ASCII de la lettre ‘a’ est égal à 97 et celui de la lettre ‘A’ est égal à 65.
On se propose d’écrire un programme qui permet de saisir un message M formé uniquement
par lettres et d’espaces puis de l’afficher crypté, en utilisant le principe cité ci-dessus.
Exemple :
Saisir le texte à crypter : Exercice cryptage
Le programme affichera : Le texte crypté :Gzgtekeg etarvcig
Exercice n°8 : Décomposition
On se propose d’écrire un programme qui permet de décomposer une chaine de caractères ch
selon l’exemple donné ci-dessous.
La chaine ch contient une lettre suivie de sa fréquence suivie d’un espace suivie d’une
deuxième lettre suivie d’un espace est ainsi de suite….
Exemple :
Si ch=’a12 b10 C2’
70
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
Soit ch une chaine de caractères contenant un certain nombre des chaines binaires séparées
les uns des autres par deux astérisque ’**’ et qui ne commence pas et ne se termine pas par
un astérisque ‘**’.
Ecrire l’algorithme qui permet de calculer le nombre des chaines équilibrés figurants dans ch.
Exemple :
Pour ch=’101100**0111**11011000**0101**100**0110’
Le programme affichera : le résultat=4
71
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
On se propose d’écrire un programme qui permet de saisir la chaine ch, former et afficher le
code secret X en respectant la démarche décrite auparavant.
Exercice n°13 : Bigramme
Le terme bigramme désigne la combinaison des deux lettres consécutives et distinctes dans un
mot.
On se propose d’écrire un programme qui permet d’afficher le nombre d’occurrences de
chaque bigramme d’une chaine de caractères ch non vide et formé uniquement des lettres
minuscules.
Exemple :
Donner la chaine à tester=’mamapappacma’
Le programme affichera :
Le nombre d’occurrences de ma est :3
Le nombre d’occurrences de am est :1
Le nombre d’occurrences de ap est :2
Le nombre d’occurrences de pa est :2
Le nombre d’occurrences de ac est :1
Le nombre d’occurrences de cm est :1
72
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
On obtient ainsi pour chaque bloc un couple d’entiers (x1, y1), ou x1 est l’entier qui
correspond au premier caractère du bloc et x2 est l’entier qui correspond au deuxième
caractère du bloc.
Etape3 : Transformer le couple (x1, x2) de chaque bloc en un couple (y1, y2) tels que :
y1 est égal au reste de la division entière de 11*x1+3*x2 par 27
y2 est égal au reste de la division entière de 7*x1+4*x2 par 27
Etape4 : Transformer chaque entier des couples (y1, y2) en un caractère, en utilisant le
tableau de correspondance de l’étape n°2 et la chaine obtenue sera le message crypté
correspondant à M.
Exemple :
Saisir le message à crypter=’PYTHON AU LYCEE’
Le programme affichera : le message crypté=’VMO EPQUKWAOCR’
73
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
0 1 2 3 4 5 6 7 8 9
75
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
S1=9 S2=9
t -2 19 -8 -14 4 5 -4 3 -8 9
0 1 2 3 4 5 6 7 8 9
S1=4 S2=4
On désire d’écrire un programme qui permet pour un tableau t de n entiers donnée (2≤n≤100)
de trouver et d’afficher tous les points d’équilibre s’ils existent.
Le message « aucun point d’équilibre » est à afficher dans le cas d’absence d’un point
d’équilibre dans le tableau t.
Exercice n°7: Palindrome
On se propose d’écrire un programme qui permet de :
Remplir le tableau A par n chaines de caractères non vides (2≤n≤100)
Remplir un tableau B à partir de A de sorte que B[i] est la chaine des lettres de A[i] écrites
en majuscules.
Afficher les chaines non vides palindromes de B
Le programme affichera :
B ‘ABELZLE’ ‘TEST’ ‘ABA’ ‘RADAR’ ‘EXE’
0 1 2 3 4
76
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
Exemple :
Saisir un mot à tester : EXEMPLE
Donner la taille de tableau (≥5 et ≤100) :5
t ‘EXAMENS’ ‘NOTOIRE’ ‘PARLANT’ ‘ESPACER ‘VOCATIF’
0 1 2 3 4
Le programme affichera :
Le degré de ressemblance (‘EXEMPLE’,’EXAMENS’)=42,857142857142854
Le degré de ressemblance (‘EXEMPLE’,’NOTOIRE’)=14,285714285714285
Le degré de ressemblance (‘EXEMPLE’,’PARLANT’)=0,0
Le degré de ressemblance (‘EXEMPLE’,’ESPACER’)= 14,285714285714285
Le degré de ressemblance (‘EXEMPLE’,’VOCATIF’)= 0,0
Exercice n°9: Mono_vocalisme en voyelle
Un mot est dit mono-vocalisme en voyelle donnée s’il inclut une seule voyelle, qui est celle
donnée, avec un ou plusieurs occurrences, sans distinction entre majuscule et minuscule.
On se propose d’écrire un programme qui permet d’afficher les mon-vocalismes en une
voyelle donnée dans un tableau t de n chaines de caractères formées uniquement par des
lettres (2≤n≤100).
Exemple :
Donner la taille de tableau (≥5 et ≤100) :6
t ‘autre’ ‘trente’ ‘cours’ ‘HASARD’ ‘Son’ ‘bon’
0 1 2 3 4 5
V= ‘a’
Le programme affichera :
Les mots mono-vocalisme en « a » sont :HASARD’
77
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
Le score final=79-12=67puisque 67≥60 alors le mot de passe est considéré comme Fort.
78
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
Le programme affichera :
79
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
Le programme affichera :
o 21698230 est un numéro magique.
o 20201003 est un numéro magique.
o 24221010 est un numéro magique.
En effet, pour le numéro : 21698230
La somme de six derniers chiffres :6+9+8+2+3+0=28
28 est parfait donc 21698230 est un numéro magique.
80
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
81
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
3 A I L A
82
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
Le programme affichera :
0 figure 3 fois
1 figure 8 fois.
2 figure 3 fois
3 figure 3 fois
4 figure 6 fois.
5 figure 3 fois
6 figure 2 fois
7 figure 0 fois
8 figure 4 fois
9 figure 8 fois.
La fréquence maximale=8
Les chiffres ayant cette fréquence :1,9
83
//Chapitre 5 : Les sous programmes 3éme année Sciences Techniques
Exemple : n=12
0 1 2 3 4 5 6 7 8
malea 0 3 5 4 7 8 6 1 9 2
1 1 5 1 7 8 9 4 7 4
2 7 9 3 2 5 6 8 1 4
3 1 2 6 3 5 4 2 2 7
4 9 1 4 5 8 9 7 4 3
5 9 5 6 8 7 1 2 3 4
6 7 6 3 2 5 4 1 7 9
7 3 2 6 5 1 7 9 8 9
8 5 6 1 2 3 4 7 9 8
9 8 9 1 2 3 6 5 4 7
10 4 7 8 3 5 7 9 1 4
11 1 3 2 5 6 7 9 4 8
84