Algorithmique & programmation
Atelier n° 2 2024-2025
Matière
4ème année SI Informatique
a. Les fonctions prédéfinies sur les types numériques
Les fonctions sur les types numériques
En algorithmique En Python Rôle Exemples en Python - Résultat
N abs (X) N = abs (X) Retourne la valeur absolue de X. N = abs (-20) N == 20
N = abs (-5.8) N == 5.8
Retourne l’Entier le plus proche de X. N = round (2.2) N == 2
N arrondi (X) N = round (X) N.B. : En Python, si la partie fractionnaire est N = round (2.8) N == 3
égale à 5, l’entier Pair le plus proche est retourné. N = round (3.5) N == 4
N racinecarrée (X) from math import sqrt Retourne un Réel représentant la racine carrée N = sqrt (9) N == 3.0
N = sqrt (X) de X. N = sqrt (25.0) N == 5.0
Si X < 0, elle provoque une erreur. N = sqrt (-5) Erreur
Naléa (Vi , Vf) from random import Retourne un entier d’une façon aléatoire et N = randint ( 2 , 5 )
randint automatique de l’intervalle [Vi , Vf].
N = randint (Vi,Vf)
b. Les fonctions sur les caractères
Les fonctions sur le type caractère
En algorithmique En Python Rôle Exemples en Python - Résultat
NOrd ( Ca ) N = ord (Ca) Retourne le code ASCII du N = ord ("0") N == 48
caractère Ca. N = ord ("A") N == 65
N = ord ("a") N == 97
CaChr ( X ) Ca = chr (X) Retourne le Caractère Ca = chr (50) Ca == "2"
dont le code ASCII est X. Ca = chr (90) Ca == "Z"
Page 1 sur 4
c. Les fonctions sur les chaînes de caractères
Les fonctions sur le type chaîne de caractères
En algorithmique En Python Rôle Exemples en Python - Résultat
Lolong (Ch) Lo = len (Ch) Retourne un entier représentant le nombre de Lo = len ("Salut") Lo == 5
caractères de la chaîne Ch (la longueur de Ch). Lo = len ("L’élève") Lo == 7
Lo = len ("") Lo == 0
Popos (Ch1, Ch2) Po = Ch2.find (Ch1) Retourne un entier représentant la position de la Ch1 = "Y" Po == 2
1ère occurrence de Ch1 dans Ch2. Elle retourne - Ch2 = "BAYBAY"
1 si Ch1 n’existe pas dans Ch2. Po = Ch2.find (Ch1)
Ch2sous_chaîne(Ch1, Ch2 = Ch1 [Début : Fin] Retourne une copie de la chaîne Ch1 à partir de Ch1 = "BACCALAUREAT"
Début, Fin) l’indice Début à l’indice Fin (position Fin exclu). Ch2 = Ch1 [5 : 12]
Ch2= = "LAUREAT"
Ch2effacer (Ch1, d, f) Ch2= Ch1[ : d]+Ch1 [f: ] Retourne une chaîne Ch2 après avoir effacer, de Ch1 = "INFORMATIQUE"
la chaîne Ch1, les caractères de la position d à la Ch2 = Ch1[:6] + Ch1[11:]
position f (f exclu). Ch2 == "INFORME"
ChMmajus (Ch) ChM = Ch.upper ( ) Retourne la chaîne ChM représentant la Ch = "Bonjour" ChM
conversion en Majuscule de la chaîne Ch. ChM = Ch.upper ( ) =="BONJOUR"
Chconvch (X) Ch = str (X) Retourne la conversion du nombre X en une N = 358 Ch == "358"
chaîne de caractères. Ch = str (N)
Testestnum (Ch) Pas de correspondance. Retourne VRAI si la chaîne Ch est Ch = "489"
Toutefois, on pourra utiliser convertible en une valeur Test = Ch . isdecimal ( ) Test == True
isdecimal ( ) malgré qu’elle numérique et FAUX dans le cas
ne répond pas aux exigences contraire. Ch = "489.56"
ou bien développer un Test = Ch .isdecimal ( ) Test == False
module qui permet de
réaliser cette tâche.
Nvaleur (Ch) N = int (Ch) Retourne la conversion d’une Ch = "489"
ou bien chaîne Ch en une valeur N = int (Ch) N == 489
N = float (Ch) numérique, si c’est possible. Ch = "489"
N = float (Ch) N == 489.0
Page 2 sur 4
Évaluation 2
Une société commerciale cherche à automatiser l’accès à ses services via des cartes à puces. Chaque carte est caractérisée par un identifiant
unique, une date de création et un code d’accès. Pour cela, on propose d’écrire un programme permettant de :
1) Stocker les identifiants de N cartes dans un tableau IDENT (avec 3≤N≤50), sachant que l’identifiant est une chaîne formée de 8 chiffres.
2) Stocker les dates de création de ces N cartes d’accès dans un tableau Date, sachant qu’une date de création est une chaîne de caractère
formée de deux parties : le jour J et le mois M séparés par le caractère ″/″ (On ne tiendra compte que des contrôles suivant : J est un
entier compris entre 1 et 31 et M est un entier compris entre 1 et 12).
3) Déterminer dans un tableau CODE les N codes à partir du tableau DATE en utilisant le principe ci-après, sachant qu’un code est une
chaîne de 4 chiffres :
• Concaténer J et M pour former un nombre de 2, 3 ou 4 chiffres.
• Multiplier ce nombre par un entier aléatoire X compris entre 5 et 64 afin d’obtenir un nouveau nombre Y
• Former le code de quatre chiffres comme suit :
✓ Si Y est un entier de 4 chiffres, déplacer le chiffre des milliers vers la droite de ce nombre.
✓ Si Y est inférieur à 1000, ajouter des zéros(0) à droite de ce nombre pour que sa longueur soit égale à 4.
✓ Si Y est supérieur à 9999, additionner le nombre formé des quatre chiffres de gauche au nombre formé des chiffres
restants à droite jusqu’à ce que sa longueur soit égale à 4.
4) Afficher les informations relatives à chacune des cartes sous la forme suivante :
Identifiant de la carte : Date de sa création correspondante : Code correspondant
Exemple :
Pour N=3 et les deux tableaux IDENT et DATE suivants :
IDENT 12345678 23456789 34567891
1 2 3
Date 8/11 2/1 24/12
1 2 3
❖ On obtient le tableau CODE suivant :
CODE 1108 6720 1314
1 2 3
Page 3 sur 4
En effet, les codes des cartes sont obtenus comme suit :
• Pour la carte N°1, la concaténation de J et M donne le nombre 811. En supposant que l’entier aléatoire X=10, le nombre obtenu est égal
à 8110 (811*10) qui est composé de 4 chiffres. En déplaçant le chiffre des milliers(8) vers la droite, on obtient le code 1108.
• Pour la carte N°2, la concaténation de J et M donne le nombre 21. En supposant que l’entier aléatoire X=32, le nombre obtenu est égal
à 672 (21*32) qui est inférieur à 1000. En ajoutant un zéro à droite pour que sa longueur soit égale à 4, on obtient le code 6720.
• Pour la carte N°3, la concaténation de J et M donne le nombre 2412. En supposant que l’entier aléatoire X=53, le nombre obtenu est
égal à 127836 (2412*53) qui est supérieur à 9999.
Le nombre formé des 4 chiffres de gauche (1278) sera additionné au nombre formé des chiffres restants à droite (36). On obtient le
code 1314 (1278+36).
❖ Le programme affiche :
12345678 : 8/11 : 1108
23456789 : 2/1 : 6720
34567891 : 24/12 : 1314
Je m’évalue
À la fin de cet atelier, je serai capable de :
Excellent Bien Moyen Insuffisant
Déclarer un tableau de chaînes
Utiliser les fonctions prédéfinies sur les chaînes
Utiliser les fonctions prédéfinies sur les types numériques
Page 4 sur 4