C4.1 : Les chaines de caractères
Prendre connaissance
Prendre connaissance de Mémo : Les chaines de caractères.
Application : Création des chaines de caractères
Application II_app1 : Ascii art
Créer une variable qui contiennent l'ascii-art suivants :
^
|
+
|
|
|
|
|
A
=== ________
/EEE\ |______|
//EEE\\ |*( )*|
___//_____\\_____________|O| |O|_______
Application II_app2 : Un peut de politesse
Sur feuille
1) Indiquer la valeur de la variable chaine en fin d'exécution du code ci dessous.
chaine = "Bonjour"
prenom = "Aline"
chaine = prenom + chaine
2) Modifier la troisième ligne de ce code pour que la variable chaine contienne "Bonjour Aline".
Application II_app3
Compléter le code ci-dessous pour créer la variable phrase uniquement à partir des variables disponibles.
mot1 = "Bonjour"
mot2 = "Hector"
mot3 = "!"
mot4 = " "
phrase = ... # Phrase doit contenir "Bonjour Hector !"
Application II_app4
Compléter le code ci-dessous pour créer la variable phrase à partir des variables qui lui précèdent.
prénom = "Hector"
age = 16
phrase = ... # "Bonjour. Je m'appelle Hector et j'ai 16 ans !"
Application II_app5
1) Indiquer comment on obtient le nombre de caractères d'une chaine de caractères.
2) Écrire une fonction qui prend deux chaines en paramètre et renvoie la chaine dont la longueur est la plus grande.
3) Compléter avec le programme principal qui permet de créer deux variables contenant des chaines et de tester la fonction avec ces deux variables.
Application II_app6 : Immatriculation d'un véhicule
1) Écrire la fonction immatriculation(c1:str, nb:int, c2:str) -> str pour qu'elle renvoie une chaine correspondant à l'immatriculation d'un véhicule sous la forme cc-nnn-cc.
2) Vérifier que immatriculation('LC', 546, 'GB') renvoie bien 'LC-546-GB'
Applications : Récupération d'un caractères d'une chaine
Application III_app1
Sans tester le code, indiquer ce que contiennent les variables lettre1 et lettre2 à la fin de l'exécution.
alphabet = "abcdefghijklmnopqrstuvwxyz"
lettre1 = alphabet[0]
lettre2 = alphabet[-1]
Application III_app2 : La bonne lettre de l'alphabet
On dispose de la variable alphabet.
alphabet = "abcdefghijklmnopqrstuvwxyz"
Écrire la fonction lettre(i:int) -> str qui prend un nombre entre 1 et 26 en paramètre et renvoie la lettre correspondante de l'alphabet.
Ainsi lettre(1) doit renvoyer a et lettre(26) doit renvoyer z.
Application III_app3 : Une consonne au hasard
Écrire une fonction qui renvoie une consonne au hasard. Pour cela, on pourra utiliser une chaine de caractères qui ne contient que les consonnes.
Applications : Test d'appartenance
Application IV_app1
Sans tester le code, indiquer le contenu des différentes variables presence_ à la fin de l'exécution.
demi_alphabet = "abcdefghijklm"
presence1 = 'a' in demi_alphabet
presence2 = 'o' in demi_alphabet
presence3 = 'ab' in demi_alphabet
chaine = 'ab'
presence4 = chaine in demi_alphabet
presence5 = 'mn' in demi_alphabet
Application IV_app2 : Un prénom qui contient la lettre a
1) Écrire une fonction prédicat contient_a(prenom:str) -> bool qui teste la présence de la lettre a dans une chaine de caractères ne contenant que des minuscules.
2) Améliorer la fonction pour que la chaine de caractères puisse contenir des minuscules comme des majuscules.
Si vous avez tout fini : Autres actions possibles sur les chaines
Application V_app1
Voici un extrait du roman "La disparition" de George Perec :
Anton Voyl n'arrivait pas à dormir. Il alluma. Son Jaz marquait minuit vingt. Il poussa un profond soupir, s'assit dans son lit, s'appuyant sur son polochon. Il prit un roman, il l'ouvrit, il lut; mais il n'y saisissait qu'un imbroglio confus, il butait à tout instant sur un mot dont il ignorait la signification.
Il abandonna son roman sur son lit. Il alla à son lavabo ; il mouilla un gant qu'il passa sur son front, sur son cou.
Son pouls battait trop fort. Il avait chaud. Il ouvrit son vasistas, scruta la nuit. Il faisait doux. Un bruit indistinct montait du faubourg. Un carillon, plus lourd qu'un glas, plus sourd qu'un tocsin, plus profond qu'un bourdon, non loin, sonna trois coups. Du canal Saint-Martin, un clapotis plaintif signalait un chaland qui passait.
Sur l'abattant du vasistas, un animal au thorax indigo, à l'aiguillon safran, ni un cafard, ni un charançon, mais plutôt un artison, s'avançait, traînant un brin d'alfa. Il s'approcha, voulant l'aplatir d'un coup vif, mais l'animal prit son vol, disparaissant dans la nuit avant qu'il ait pu l'assaillir.
Écrire un programme qui permet de déterminer le nombre de 'e' dans cet extrait.
Application V_app2
Écrire une fonction qui prend une chaine de caractères en paramètre et renvoie le nombre de voyelles de cette chaine.