Vous êtes sur la page 1sur 15

Pensée Computationnelle et Programmation Prof : FENNI-S

Les tableaux
Activité 1 :
Nous voulons calculer puis trier dans l'ordre décroissant les moyennes de cinq élèves. A première vue, nous
allons utiliser cinq variables de type réel Moy1, Moy2, Moy3, Moy4 et Moy5. Nous remarquons que ce nombre
de variables deviendra encore beaucoup plus grand si nous avons 30 élèves et dans le tri nous serons amenés à
manipuler autant de variables. Cela rendra les algorithmes très complexes et les tris impossibles. Cependant, ces
variables moyennes ont toutes le même rôle (moyenne d'un élève); nous pouvons les regrouper sous le même
nom MOYENNE, nous les distinguerons avec des indices de 1 à 5.
Ce regroupement formera une nouvelle structure dite tableau ou vecteur de 5 éléments.

MOYENNE
indice 1 2 3 4 5

MOYENNE[1] Correspond au 1er élément du tableau.


MOYENNE[5] Correspond au 5ème élément du tableau.

Définition :
Un tableau (ou encore une variable indicée) est une structure de données permettant de ranger un nombre fini
d'éléments de même type.
Un tableau est caractérisé par :
• Un nom servant d'identificateur
• Une taille
• Le type des éléments qu'il contient

Déclaration d’un tableau à une dimension


Déclaration en Algorithmique :

 1ère méthode :
Tableau de déclaration des objets (T.D.O)
Objet Type/Nature
Nom_Tableau Tableau de taille et de type_éléments
Exemple : T Tableau de 30 réels

 2ème méthode :
Tableau de déclaration des nouveaux types (T.D.N.T)
Nom_Type_Tableau = Tableau de taille et de type_éléments
Exemple : Tab = Tableau de 20 chaînes de caractères

Tableau de déclaration des objets (T.D.O)


Objet Type/Nature
Nom_Tableau Nom_Type_Tableau
Exemple : V Tab

3ème Science & Math (2022/2023) 1


Pensée Computationnelle et Programmation Prof : FENNI-S

Déclaration en Python en utilisant la bibliothèque Numpy :


Déclaration dans le cas général
from numpy import array
Nom_Tableau = array ([Type_élément( )] * N )
Ou bien
Nom_Tableau = array ([Valeur_initiale] * N )

Exemples de déclarations en python


Déclaration Explication
Déclarer un tableau T de 8 entiers

from numpy import array Pour une telle déclaration, on peut prévoir le tableau suivant :
T = array ([int( )] * 8)
T 45 13 -7 0 84 -3 34 2
0 1 2 3 4 5 6 7

from numpy import array


Déclarer un tableau T de 100 réels
T = array ([float( )] * 100)
from numpy import array
Déclarer un tableau T de 50 chaînes de caractères
T = array ([str] * 50)
from numpy import array Déclarer un tableau T de 10 caractères et initialiser ses éléments
T = array ([str()] * 10) par le caractère vide.
from numpy import array Déclarer un tableau T de 10 éléments initialisés par une chaîne
T = array ([""] * 10 , dtype = "U20") vide. Chaque élément peut contenir 20 caractères au maximum.

N.B. :
• L’indice de la 1ère case d’un tableau est, par défaut, égal à Zéro ;
• Pour accéder à un élément d’indice « i » d’un tableau : Nom_Tableau [ i ] ;
• Tous les éléments dans un numpy.array sont de même type (entier, réel, caractère,...) ;
• La taille du tableau est constante (il n’est pas possible d’insérer ou de supprimer un élément).

Application :
Dans l’objectif d’améliorer le travail collectif au sein de la classe, une institutrice à l’école a désigné
un groupe d’élèves composé de six membres pour présenter chacun d’eux une partie de cours dans
un jour différent.
Pour aider l’institutrice à affecter aléatoirement
les élèves aux jours, on se propose d’écrire un
programme en python qui :
• Demande les prénoms de six élèves,
• Remplir un tableau par les six jours de
cours de la semaine,
• Afficher pour chaque élève son jour
aléatoire de présentation de l’exposé.

3ème Science & Math (2022/2023) 2


Pensée Computationnelle et Programmation Prof : FENNI-S

La structure conditionnelle généralisée


Activité 1 :
Soit l’algorithme DECISION suivant :
Algorithme Decision
Début
Ecrire ("Donner la moyenne annuelle d’un élève :") ; Lire(MA)
Si (MA ≥ 10)
Alors DEC ← "Admis"
Sinon DEC ← "Redouble"
FinSi
Ecrire ("La décision est : ", DEC)
Fin

1) Que fait l’algorithme Décision ?


Cet algorithme permet d’afficher la décision du conseil des classes en fonction de la
moyenne annuelle d’un élève

2) On se propose maintenant d’utiliser cet algorithme pour afficher, en plus de la décision du


conseil des classes, la mention dans le cas où l’élève est admis. La représentation suivante va
vous aider à déduire les intervalles de calcul de la mention.

L’un de vos camarades a proposé la solution suivante :


1) Si (MA >=10) et (MA < 12) alors Mention ← “Passable” FinSi
2) Si (MA >=12) et ( MA < 14) alors Mention ← “Assez bien” FinSi
3) Si (MA >=14) et (MA < 16) alors Mention ← “Bien” FinSi
4) Si (MA >=16) alors Mention ← “Très bien” FinSi

Constatation :
Cette solution est un peu laborieuse. Les conditions se ressemblent plus ou moins, et surtout on
oblige la machine à examiner 4 tests successifs alors qu’ils portent tous sur un même objet, la
moyenne annuelle MA. Il serait intéressant de disposer les tests de la manière suivante :
Si (MA < 12)
Alors Mention ← “Passable”
Sinon Si (MA < 14)
Alors Mention ← “Assez bien”
Sinon Si (MA < 16)
Alors Mention ← “Bien”
Sinon Mention ← “Tres bien”
FinSi

3ème Science & Math (2022/2023) 1


Pensée Computationnelle et Programmation Prof : FENNI-S
Nous avons fait des économies de tests : au lieu de devoir taper quatre conditions, dont trois sont
composées, nous n’avons plus que deux conditions simples. Cette économie sur les tests se
répercute sur le temps d’exécution. Si la moyenne est inferieure à 12, la variable Mention reçoit la
valeur “Passable” et l’exécution du programme passe directement à la fin, sans être ralentie par
l’évaluation des autres cas qui suivent et qui sont forcément fausses.
Cette deuxième version est donc non seulement plus simple à écrire et à lire mais est également
plus performante lors de l’exécution. Cette forme conditionnelle s’appelle : structure
conditionnelle généralisée.

Qu’est-ce qu’une structure conditionnelle généralisée ?


La forme généralisée de la structure conditionnelle correspond à la situation dans laquelle
plusieurs alternatives sont envisageables.

Syntaxe en Algorithmique Syntaxe en Python

Si condition1 if condition1 :
Alors Traitement 1 Traitement 1
Sinon Si condition2 # Seul le traitement qui correspond elif condition2 :
Alors Traitement 2 à la première condition vraie Traitement 2
Sinon Si condition3 rencontrée sera exécuté. elif condition3 :
Alors Traitement 3 Si les (n-1) premières conditions Traitement 3
… sont fausses, c'est le traitement n …
Sinon Traitement n qui sera exécuté. else :
Fin Si Traitement n

Activité 2 :
Utiliser la syntaxe de la structure conditionnelle généralisée pour rédiger un algorithme solution
de la question2 de l’activite1.

Algorithme Decision_Mention
Début
Ecrire ("Donner la moyenne annuelle d’un élève :") ; Lire(MA)
Si (MA < 10)
Alors DEC ← "Redouble"
ME ← ""
Sinon DEC ←"Admis"
Si (MA < 12)
Alors ME ← "Passable"
Sinon Si (MA < 14)
Alors ME ← "Assez Bien"
Sinon Si (MA < 16)
Alors ME ← "Bien"
Sinon ME ← "Très Bien"
FinSi
FinSi
Ecrire ("La décision est : ", DEC, "La mention est : ", ME )
Fin

3ème Science & Math (2022/2023) 2


Pensée Computationnelle et Programmation Prof : FENNI-S

T.D.O.
Objet Type/Nature
MA Réel
ME Chaîne de caractères
DEC Chaîne de caractères

Applications :
1) Ecrire un algorithme puis un programme Python permettant de chercher puis d’afficher le
plus grand (ou le maximum) de trois réels donnés.
2) Ecrire un algorithme puis un programme Python permettant de résoudre une équation au
premier degré de la forme ax + b = 0.
3) Ecrire un algorithme puis un programme Python qui, à partir du numéro d’un mois, permet
d’afficher la saison.

Algorithme Saisons
Début
Ecrire ("Donner le numéro du mois") ; Lire (mois)
Si (mois ∈ [3..5])
Alors Saison  "Printemps"
Sinon Si (mois ∈[6..8])
Alors Saison  "Eté"
Sinon Si ( mois ∈ [9..11])
Alors Saison  "Automne"
Sinon Si ( mois ∈ [12,1,2])
Alors Saison  "Hiver"
Sinon Saison  "Numéro du mois invalide"
FinSi
Ecrire (Saison)
Fin

3ème Science & Math (2022/2023) 3


Pensée Computationnelle et Programmation Prof : FENNI-S

La structure conditionnelle à choix


Une structure de contrôle conditionnelle est dite à choix lorsque le traitement dépend de la valeur
que prendra un sélecteur (le choix).
Cette structure évite l'utilisation d'une trop longue structure conditionnelle généralisée et permet
une meilleure lisibilité de la solution.

Syntaxe en Algorithmique Syntaxe en Python


Selon selecteur match selecteur :
val1 : traitement1 case val1 : traitement1
val2, val3, val4 : traitement2 case val2|val3|val4 : traitement2
val5..val20 : traitement3 case selecteur if val5<=selecteur<=val20 :
... traitement3
… …
Sinon traitement n …
FinSelon case _ : traitement n

N.B. :
• Le sélecteur (soit une variable soit une expression) doit être de type scalaire (entier, caractère, booléen).
• L’ensemble des valeurs doit être des constantes de même type que le sélecteur.
• La partie sinon est facultative.

Activité 3 :
Reprenez l’application3 de la structure conditionnelle généralisée. Utiliser la syntaxe de la
structure conditionnelle à choix pour rédiger un algorithme solution de l’activite3.
Algorithme Saisons mois=int(input("Donner le numéro du mois"))
Début match mois :
Ecrire ("Donner le numéro du mois") ; Lire (mois) case 3|4|5 : Saison = "Printemps"
Selon mois case 6|7|8 : Saison = "Eté"
3,4,5 : Saison  "Printemps" case 9|10|11 : Saison = "Automne"
6,7,8 : Saison  "Eté" case 12|1|2 : Saison = "Hiver"
9,10,11 : Saison  "Automne" case _ : Saison = "Numéro du mois invalide"
12,1,2 : Saison  "Hiver"
Sinon Saison  "Numéro du mois invalide" print (Saison)
Fin Selon
Ecrire (Saison)
Fin

Applications :
1) Ecrire un algorithme et un programme en Python qui affiche selon le cas, la nature d’un
caractère (consonne, voyelle, chiffre, opérateur ou symbole) correspondant à une touche
saisie.
2) Ecrire un algorithme et un programme en Python qui saisit le numéro du mois et affiche le
nombre de jours de ce mois. Pour le cas de février, on lit l'année, si l'année est bissextile, le
nombre de jours est 29, sinon c'est 28 jours.

3ème Science & Math (2022/2023) 4


Pensée Computationnelle et Programmation Prof : FENNI-S

Les structures de contrôle itératives à condition d’arrêt


Introduction :
Nous revenons dans cette leçon à une structure de contrôle permettant à l'ordinateur de répéter
un traitement donné. Nous avons vu le cas des répétitions dont le nombre est connu d'avance.
Nous l'avons appelé : structure itérative complète (la boucle Pour). Cependant, plusieurs
problèmes nécessitent les répétitions d'un traitement dont on ne connaît pas le nombre. C'est une
condition qui doit gérer l'arrêt des répétitions.
Le tableau ci-dessous présente des exemples de la vie courante, étudiez bien son contenu et
proposez d’autres exemples.

Exemples de la vie courante Comment traduire cet exemple ? Remarques


POUR Exercice de 1 à 6 FAIRE
Un élève a une série de 6 exercices Lire (énoncé) Le nombre des exercices est connu
à faire. Résoudre (problème) à l’avance
FIN POUR
• L’élève doit lire au moins une
fois son cours.
Avant de faire cette série, l’élève REPETER • Le nombre de lectures est
doit lire et relire son cours jusqu’à Lire (cours)
inconnu à l’avance.
ce qu’il assimile son contenu. JUSQU’A comprendre le cours
• L’élève arrête de lire son cours
lorsqu’il assimile son contenu.
• L’élève peut ne pas poser de
En classe, l’élève peut poser des TANT QUE Notions non claires FAIRE question.
questions à son professeur en cas Poser (question)
• Le nombre de questions est
de notions non claires. FIN TANT QUE
inconnu à l’avance.

D’après ces exemples, vous pouvez remarquer l’existence de deux types de structures itératives :
1) La structure itérative complète où le nombre d’itérations est connu à l’avance.
2) Les structures itératives à condition d’arrêt où le nombre d’itérations est inconnu à l’avance.

La structure Tant que … Faire …


Syntaxe en algorithmique Syntaxe en Python
Initialisation Initialisation
Tant que Condition Faire while Condition :
Traitement Traitement
Fin tant que
Exemple Exemple
som  0 som = 0
Tant que som < 100 Faire while som < 100 :
Ecrire ("Donner un entier"), Lire (x) x = int (input ('Donner un entier'))
Som  som + x som = som + x
Fin tant que
Remarque : Le nombre de répétitions n’est pas connu à l’avance et le traitement peut ne pas se faire.

3ème Science & Math (2022/2023) 1


Pensée Computationnelle et Programmation Prof : FENNI-S

Activité 1 :
Soit l’algorithme suivant :

Algorithme Premier
Début
Ecrire ("Introduire un entier naturel strictement supérieur à 1 "), Lire (n)
d←0
Pour i de 1 à n Faire
Si n mod i = 0
Alors d←d + 1
FinSi
FinPour
Si d = 2
Alors Ecrire ("Le nombre", n, "est premier")
Sinon Ecrire ("Le nombre", n, "n’est pas premier")
FinSi
Fin

1) Quel est le rôle de la variable d ?


La variable d représente le nombre des diviseurs d'un entier n.
2) La boucle POUR itère n fois. Afin d’optimiser la solution, remplacer la boucle POUR par la
boucle TANT QUE .
d←2
i2
Tant que (n mod i = 0) and (i<=n div 2) and (d=2) Faire
i  i+1
d←d+1
Fin Tant que

Activité 2 :
On se propose de déterminer le PGCD de deux entiers naturels A et B en utilisant la méthode
de la différence :
PGCD (a, b) = a ou b si a = b
PGCD (a, b) = PGCD (a-b, b) si a > b
PGCD (a, b) = PGCD (a, b-a) si b > a

Ecrire un algorithme et son implémentation en Python.

3ème Science & Math (2022/2023) 2


Pensée Computationnelle et Programmation Prof : FENNI-S

La structure Répéter … Jusqu’à …


Syntaxe en algorithmique Syntaxe en Python
Pas de correspondance. Toutefois, on peut utiliser :
Répéter valide= False
Traitement while not valide : # while valide==False :
Jusqu’à Condition d’arrêt Traitement
valide = Condition d’arrêt
Exemple Exemple
Répéter valide = False
Ecrire ("Donner un entier positif ") while not valide :
Lire(x) x = int (input ('Donner un entier positif'))
Jusqu’à x>0 valide = x>0
Remarque : Le nombre de répétitions n’est pas connu à l’avance et le traitement se fait au moins une fois.

Activité 3 :
Ecrire un algorithme puis son implémentation en python qui cherche si une valeur V existe dans un
tableau T. T est composé de N réels. V est une valeur réelle donnée. Le programme affichera un
message de la forme :
"V existe dans T"
ou "V n'existe pas dans T".
Application1 :
Ecrire un programme en Python qui permet de jouer contre l’ordinateur le jeu de devinette.
Le principe du jeu est le suivant :
• L’ordinateur choisit au hasard un entier entre 1 et 100.
• L’utilisateur propose un entier.
• Le programme affiche le message « plus grand » ou « plus petit ».
• Le jeu s’arrête lorsque l’utilisateur devine le nombre ou il atteint 7 essais.

Application2 :
Tout nombre positif de deux chiffres ab, tel que a≠b, possède une liste appelée "liste vers 9".
Le principe est le suivant : on calcule la différence entre ab et son symétrique ba ; le résultat trouvé
subit le même traitement ; on répète ce processus jusqu’à obtenir une différence = 9. L’ensemble
constitué par le nombre initial et les résultats des différences est appelé "liste vers 9".
Exemple :
Soit X = 18 ; |18-81|=63 ; |63-36|=27 ; |27-72|=45 ; |45-54|=9  fin du traitement
La liste vers 9 est : 18 63 27 45 9

Ecrire un programme en Python qui permet de saisir un nombre positif composé de deux chiffres
différents, de générer sa "liste vers 9" et enfin de l’afficher.

3ème Science & Math (2022/2023) 3


Pensée Computationnelle et Programmation Prof : FENNI-S

LES SOUS-PROGRAMMES

Activité 1 :
Soit à saisir un entier naturel N (avec 0 ≤ n ≤ 99). On se propose de calculer et d’afficher la somme
des factorielles des chiffres de N.
Exemples :
Soit n = 30
→ 3! + 0! = 7
Soit n=5
→ 5! = 120

 En voici deux programmes en Python, proposés par deux élèves de vos camarades :

Proposition élève1 Proposition élève2


n=int(input("Introduire un entier entre 0 et 99")) def factorielle(x):
f=1
if (0<=n<=9) : for i in range(1, x+1) :
fn=1 f=f*i
for i in range(1,n+1) : return f
fn=fn*i
print(n, "! = ", fn) n=int(input("Introduire un entier entre 0 et 99"))
else :
d = n// 10 if (0<=n<=9) :
fd=1 print(n, "! = ", factorielle(n))
for i in range(1,d+1) : else :
fd=fd*i d = n// 10
u = n % 10 u = n % 10
fu=1 print(d, "! + ", u, "! = ", factorielle(d)+factorielle(u))
for i in range(1,u+1) :
fu=fu*i
print(d, "! + ", u ,"! = ", fd+fu)

En comparant ces deux propositions, que remarquez-vous ?


• Au niveau la solution1, on remarque la redondance de la partie calcul de la factorielle.
Elle est plus longue et plus compliquée.
• Au niveau la solution2, on a évité une telle redondance en définissant une fonction
permettant de calculer la factorielle de n’importe quel entier naturel. En utilisant la
fonction Factorielle, le programme devient plus concis et plus simple.

3ème Science & Math (2022/2023) Page 1


Pensée Computationnelle et Programmation Prof : FENNI-S

Constatations :
Pour résoudre des problèmes complexes, il est souvent préférable de les décomposer en sous
problèmes. Ces derniers sont à leur tour décomposés selon le besoin. La décomposition s'arrête
aux sous problèmes relativement simples à résoudre. Par la suite, on associe à chaque sous
problème un module assurant sa résolution. Un module peut être une fonction ou une procédure.
L'algorithme résolvant le problème initial présentera un ensemble d'appels aux modules
envisagés.
Une telle approche s'appelle analyse modulaire. Elle repose sur le vieil adage "Diviser pour
régner".

Programme
principal

Niveau 1 de
décomposition SP1 SP2 SP3

Niveau 2 de
SP3_2 décomposition
SP3_1

Le recours à cette méthode de résolution présente des avantages indéniables tels que :
• Présenter des solutions claires en évitant la redondance des codes dans un programme.
• Simplifier la résolution du problème initial en supposant que les différents modules
prévus sont déjà résolus.
• Se concentrer sur la résolution d'un sous problème à la fois.
• Détecter facilement les parties à consulter ou à modifier.

LES FONCTIONS
• Définition :
Une fonction est un sous-programme qui permet la résolution d’un sous-problème précis et retourne
(renvoie) un seul résultat de type simple (entier, caractère, réel, booléen, chaîne de caractères)
au programme appelant.

• Syntaxe :
En algorithmique En Python
FONCTION Nom_fonction (pf1:type1, …, pfn:typen) : Type_Résultat def Nom_fonction ( pf1 , … , pfn ) :
DEBUT Instruction 1
Instruction 1 Instruction 2
Instruction 2 Instruction N
Instruction N return Résultat
Retourner Résultat
FIN

3ème Science & Math (2022/2023) Page 2


Pensée Computationnelle et Programmation Prof : FENNI-S

• L’appel d’une fonction : doit être intégré dans une expression (affectation, calcul, affichage,
comparaison).

En Algorithmique En Python
Objet  Nom_fonction (pe1, …, pen) Objet = Nom_fonction (pe1, …, pen)
Exemples, pour de fonctions prédéfinies
• Ch2  Majus(ch) • Ch2 = ch.upper()
• Si Pos (ch1, ch2) ≠ 0 Alors ............ • if ch2.find(ch1) !=0 : …………………
• y  5 * RacineCarré(x+3) • y = 5 * sqrt (x+3)
• Ecrire (Long(ch)) • print ( len(ch))

N.B.
Les paramètres effectifs (pe1,…, pen) et les paramètres formels (pf1, …, pfn) doivent
s’accorder de point de vue ordre, nombre et type.

LES PROCEDURES
• Définition :
Une procédure est un sous-programme qui permet la résolution d’un sous-problème précis et qui
peut transmettre de zéro à plusieurs résultats au programme appelant.
• Syntaxe :
En algorithmique En Python
PROCEDURE Nom_procédure (pf1 : type1, …, pf2 : typen) def Nom_procédure (pf1, …, pfn) :
Début Instruction 1
Instruction 1 Instruction 2
Instruction 2 Instruction N
Instruction N
Fin

• L’appel d'une procédure : Pour appeler une procédure, il suffit d’écrire son nom suivi des
paramètres effectifs, dans une instruction et non pas dans une expression.

En algorithmique En Python
Nom_procédure (pe1, …, pen) Nom_procédure (pe1, …, pen)
Exemples, pour de procédures prédéfinies
Lire (x) x = input()
Ecrire (a, b) print(a, b)

3ème Science & Math (2022/2023) Page 3


Pensée Computationnelle et Programmation Prof : FENNI-S

N.B. :
 Le passage de paramètres par adresse (par référence) permet au programme appelant (PP) de
transmettre une valeur à la procédure appelée (SP) et vice versa. Dans ce cas, le paramètre formel est
précédé par le symbole « @ ». Par exemple : PROCEDURE TRAITEMENT( c : Réel ; @ a, b :Entier).
 Toute modification d'un paramètre formel dans le sous-programme appelé entraîne (automatiquement)
au moment du retour à l'appelant une modification de la valeur du paramètre effectif correspondant.
 En python, le paramètre de type tableau est par défaut passé par référence.
 La portée des variables en python :
• Toute variable déclarée au sein d’un module a une portée locale.
• Toute variable déclarée au sein d’un module précédée par le mot clé global a une portée globale.
Par conséquent, elle ne devra pas figurer parmi les paramètres de ce module.

Activité 2 :
Deux nombres entiers strictement positifs M et N sont dits amis, si chacun des deux nombres est
égal à la somme des diviseurs propres de l'autre. On se propose d’écrire un programme qui permet
de déterminer puis d’afficher si deux entiers donnés m et n sont amis ou non.
Travail demandé :
1. Ecrire un algorithme du programme principal, solution à ce problème, en le
décomposant en modules.
2. Ecrire un algorithme pour chaque module envisagé.

Exemple d’une solution modulaire à compléter


En Algorithmique En Python

# Algorithme du programme principal

ALGORITHME Nombres_Amis
DEBUT
Saisie(m)
Saisie(n)
sdm  Som_diviseurs(m)
sdn  Som_diviseurs(n)
Affichage (m, n, sdm, sdn)
FIN
Tableau de déclaration des objets globaux
Objet Type/nature
m Entier
n Entier
sdm Entier
sdn Entier
Affichage Procédure
Saisie Procédure
Som_Diviseurs Fonction

3ème Science & Math (2022/2023) Page 4


Pensée Computationnelle et Programmation Prof : FENNI-S

# Algorithme de la procédure Saisie


PROCEDURE Saisie (@ x : Entier) def Saisie () :
Début valide = False
Répéter
while not valide :
Ecrire ("Donner un entier >0")
Lire (x) x = int (input ("Donner un entier >0") )
Jusqu’à x > 0 valide = x>0
Fin
return x
# Algorithme de la fonction Som_Diviseurs

FONCTION Som_diviseurs (y : Entier) : Entier def Som_diviseurs (y ) :


Début sdy = 0
sdy0
for i in range(1, (y//2)+1) :
Pour i de 1 à (y div 2) Faire
Si (y mod i) = 0 if (y % i) == 0 :
Alors sdy  sdy + i sdy = sdy + i
Fin Si return sdy
Fin pour
Retourner sdy
Fin
Tableau de déclaration des objets locaux
Objet Type/Nature
i Entier
sdy Entier

# Algorithme de la procédure Affichage


def Affichage (a, b, sda, sdb ) :
PROCEDURE Affichage (a, b, sda, sdb : Entier)
Début if (sda == b) and (sdb == a) :
Si (sda = b) ET (sdb = a) print (a, " et ", b, " sont amis")
Alors Ecrire (a, " et ", b, " sont amis")
else :
Sinon Ecrire (a, " et ", b, " ne sont pas amis")
Fin Si print (a, " et ", b, " ne sont pas amis")
Fin # Programme Principal
m = Saisie()
n = Saisie()
sdm = Som_diviseurs(m)
sdn = Som_diviseurs(n)
Affichage (m, n, sdm, sdn)

3ème Science & Math (2022/2023) Page 5


Pensée Computationnelle et Programmation Prof : FENNI-S

Applications :
1) Ecrire en Python :
• une fonction MAX2 qui détermine le maximum de deux entiers ;
• une procédure MAX_MIN3 qui détermine le maximum et le minimum de trois
entiers, en faisant appel à la fonction MAX2.

2) Soit à saisir les moyennes de n élèves (5 < n ≤ 35) dans un tableau. Il s'agit de trouver puis
d'afficher:
• Le nombre d'élèves qui ont réussi.
• La plus basse moyenne.

3) Soit à saisir les moyennes de n élèves (5 < n ≤ 35) dans un tableau T et leurs noms dans un
tableau Nom. Il s'agit d'afficher le nom de chaque élève accompagné de son rang en classe.
Exemple :
Soit n=10
T 10.5 9.75 12.25 14.33 12
1 2 3 4 5

Nom Gabtni Sarray Faleh Chedly Chmengui


1 2 3 4 5
Le programme doit afficher :
Gabtni a le rang : 4
Sarray a le rang : 5
Faleh a le rang : 2
Chedly a le rang : 1
Chmengui a le rang : 3

4) Soit à remplir un tableau T par n caractères (avec 6 ≤ n ≤ 30). Il s’agit de repartir ces n
caractères sur trois tableaux et les afficher :
• TL : un tableau de lettres
• TC : un tableau de chiffres
• TS : un tableau de symboles
Exemple :
Soit n=10
T h 4 ! K } 2 r $ 8 d
0 1 2 3 4 5 6 7 8 9
On doit obtenir les tableaux suivants :
TL h K r d
0 1 2 3

TC 4 2 8
0 1 2

TS ! } $
0 1 2

3ème Science & Math (2022/2023) Page 6

Vous aimerez peut-être aussi