TP d'Informatique : Tri par insertion et chiffrement de César
Question 1 : Tri par insertion avec un nombre impair
Objectif : Écrire un programme Python qui trie une liste d'éléments (de taille impaire)
fournie par l'utilisateur à l'aide du tri par insertion.
Pseudo-code :
Début
Répéter
Afficher "Entrez un nombre impair d'éléments : "
Lire N
Jusqu'à ce que N soit impair (N % 2 ≠ 0)
Créer une liste vide appelée LISTE
Pour i allant de 1 à N
Afficher "Entrez l'élément numéro ", i
Lire VALEUR
Ajouter VALEUR à LISTE
Pour i allant de 1 à N-1
CLE ← LISTE[i]
j←i-1
Tant que j ≥ 0 et LISTE[j] > CLE
LISTE[j + 1] ← LISTE[j]
j←j-1
LISTE[j + 1] ← CLE
Afficher "Liste triée : ", LISTE
Fin
Code Python :
def est_impair(n):
return n % 2 != 0
n = int(input("Entrez un nombre impair d’éléments à trier : "))
while not est_impair(n):
print("Ce nombre est pair. Veuillez entrer un nombre impair.")
n = int(input("Entrez un nombre impair d’éléments à trier : "))
liste = []
for i in range(n):
val = int(input(f"Entrez la valeur {i+1} : "))
liste.append(val)
for i in range(1, len(liste)):
cle = liste[i]
j=i-1
while j >= 0 and liste[j] > cle:
liste[j + 1] = liste[j]
j -= 1
liste[j + 1] = cle
print("Liste triée :", liste)
Question 2 : Chiffrement de César
Objectif : Écrire un algorithme et un programme Python qui chiffre un texte en utilisant le
chiffrement de César avec un décalage donné.
Pseudo-code :
Début
Afficher "Entrez le texte à chiffrer :"
Lire TEXTE
Afficher "Entrez le décalage :"
Lire DECALAGE
TEXTE_CHIFFRE ← ""
Pour chaque CARACTERE dans TEXTE
Si CARACTERE est une lettre alphabétique alors
BASE ← 'A' ou 'a' selon le cas
CODE ← (Code ASCII de CARACTERE - BASE + DECALAGE) % 26
NOUVEAU ← BASE + CODE
Ajouter NOUVEAU à TEXTE_CHIFFRE
Sinon
Ajouter CARACTERE à TEXTE_CHIFFRE
Afficher TEXTE_CHIFFRE
Fin
Code Python :
def cesar_chiffrement(texte, decalage):
resultat = ""
for caractere in texte:
if caractere.isalpha():
base = ord('A') if caractere.isupper() else ord('a')
code = (ord(caractere) - base + decalage) % 26 + base
resultat += chr(code)
else:
resultat += caractere
return resultat
message = input("Entrez le texte à chiffrer : ")
decalage = int(input("Entrez le décalage (ex : 3) : "))
texte_chiffre = cesar_chiffrement(message, decalage)
print("Texte chiffré :", texte_chiffre)