﻿#=============================================================
#
#   Programme : Manipulation d'une chaîne de caractères
#               Nombres aléatoires
#   Auteur :
#   Date création :
#   Date dernière modification :
#
#=============================================================

# bibliothèques
from random import*

#-------------------------------------------------------------
# fonction titre
#-------------------------------------------------------------

def titre():
    print("*************************************************")
    print("*                                               *")
    print("*   Manipulation d'une chaîne de caractères     *")
    print("*   Nombres aléatoires                          *")
    print("*                                               *")
    print("*************************************************")
    print(" ")
    return 0

#=============================================================
# Programme principal
#=============================================================

# initialisations

# titre
titre()

# saisie des différents textes
texte1 = "Toute la Gaule est divisée en trois parties, "
texte2 = "dont l'une est habitée par les Belges, "
texte3 = "l'autre par les Aquitains, la troisième par ceux qui, "
texte4 = "dans leur langue, se nomment Celtes, et dans la nôtre, Gaulois. "
texte5 = "Ces nations diffèrent entre elles par le langage, les institutions et les lois."
print("-----------------------------------------------------")
print("Affichage des cinq textes")
print("-----------------------------------------------------")
print(texte1)
print(texte2)
print(texte3)
print(texte4)
print(texte5)
print("")

# concaténation des cinq textes
print("-----------------------------------------------------")
print("Concaténation des cinq textes")
print("-----------------------------------------------------")
texte = texte1 + texte2 + texte3 + texte4 + texte5
print(texte)
print(" ")

# calcul de fréquence d'apparition de la lettre e
print("-----------------------------------------------------")
print("Calcul de fréquence d'apparition de la lettre e")
print("-----------------------------------------------------")

nb_e = 0
nb_espace =0
longueur=len(texte)

for car in texte:
    if car == 'e':
        nb_e = nb_e + 1
    elif car == ' ':
        nb_espace = nb_espace + 1
print("Nombre de 'e' : ",nb_e)
print("Nombre d'espace : ",nb_espace)

nb_car = longueur-nb_espace
print("Nombre de caractères : ",nb_car)

f=nb_e*100/nb_car
print("La fréquence d'apparition de la lettre 'e' est f =",f," %")
print(" ")

# détermination d'un nombre entier aléatoire entre 1 et 26
n = randint(1,26)
#n = 3
print("-----------------------------------------------------")
print("Le décalage pour le code César sera n =",n)
print("-----------------------------------------------------")
print(" ")

# ecriture du texte en majuscule
print("-----------------------------------------------------")
print("Ecriture du texte en majuscule")
print("-----------------------------------------------------")
texte=texte.upper()
print(texte)
print(" ")

# codage César du texte complet et affichage
print("-----------------------------------------------------")
print("Codage César du texte complet et affichage")
print("-----------------------------------------------------")
texte_code = ""
longueur=len(texte)
for car in texte:
    code = ord(car) + n
    if code > 90:
        code = code - 26
    car_new = chr(code)
    texte_code = texte_code + car_new
#    print(car," ",car_new)
print("Texte codé :")
print(texte_code)
print(" ")

# ecriture du texte 5 en minuscules
print("-----------------------------------------------------")
print("Ecriture du texte 5 en minuscules")
print("-----------------------------------------------------")
texte5 = texte5.lower()
print(texte5)
print(" ")

# Affichage partiel du texte 5 :
# a) du 4ème caractère au 12ème caractère inclus.
print("Affichage partiel du texte 5 :")
print("a) du 4ème caractère au 12ème caractère inclus.")
print(texte5[3:12])
print(" ")
# b) à partir du 8ème caractère inclus.
print("Affichage partiel du texte 5 :")
print("b) à partir du 8ème caractère inclus.")
print(texte5[7:])
print(" ")
# c) jusqu'au 10ème caractère inclus.
print("Affichage partiel du texte 5 :")
print("c) jusqu'au 10ème caractère inclus.")
print(texte5[:10])
print(" ")

# remplacement des e par des étoiles dans texte5
print("Remplacement des e par des étoiles dans texte5")
texte5_etoiles = ""
for car in texte5:
    if car != 'e':
        texte5_etoiles = texte5_etoiles + car
    else :
        texte5_etoiles = texte5_etoiles + '*'
texte5 = texte5_etoiles
print(texte5)
print(" ")

# suppression des i dans texte 5
print("Suppression des i dans texte5")
texte5_sans_i = ""
for car in texte5:
    if car != 'i':
        texte5_sans_i = texte5_sans_i + car
texte5 = texte5_sans_i
print(texte5)
print(" ")

# insertion de '+' à la 4ième et à la 10ième position du texte
print("Insertion de '+' à la 4ième et à la 10ième position du texte")
texte5 = texte5[:3] + '+' + texte5[3:10] + '+' + texte5[11:]
print(texte5)
print(" ")

#-------------------------------------------------------------
# Fin
#-------------------------------------------------------------