• Aucun résultat trouvé

Codage des caract

N/A
N/A
Protected

Academic year: 2022

Partager "Codage des caract"

Copied!
4
0
0

Texte intégral

(1)

PTSI - Travaux Pratiques d’informatique

Codage des caract`eres

Nous utiliserons dans ce TP le langage de programmation Python au moyen de l’environne- ment de d´eveloppementIDLE.

Les caract`eres informatiques sont cod´es par des entiers, il existe diff´erentes normes de codage dont l’ASCII(American Standard Code for Information Interchange) et l’Unicode.

Exemple 1. Codage Ascii en Python : fonctionschr etord

>>> chr(109)

’m’

>>> ord("n") 110

Exercice 1.

– ´Ecrire un programme Python permettant d’afficher la liste des 256 caract`eres Ascii.

– En d´eduire les entiers repr´esentant les 26 lettres de l’alphabet en minuscules, les 26 lettres de l’alphabet en majuscules ainsi que les chiffres de 0 `a 9.

Exercice 2.

– ´Ecrire une fonction Python caractere de param`etre n permettant d’afficher le n-i`eme caract`ere de l’alphabet minuscule.(on num´erote `a partir de 1)

– ´Ecrire une fonction Pythonrangde param`etrecpermettant de calculer le rang du carac- t`ere cdans l’alphabet minuscule.

– ´Ecrire un programme Python permettant d’´ecrire l’alphabet dans l’ordre inverse.

Exercice 3.

– ´Ecrire une fonction Pythonmajusculede param`etrecpermettant de convertir une chaˆıne de caract`eres c de minuscule en majuscule.

– ´Ecrire une fonction Pythonminusculede param`etrecpermettant de convertir une chaˆıne de caract`eres c de majuscule en minuscule.

Exercice 4.

Le chiffrement miroir consiste `a remplacer chaque caract`ere alphab´etique par celui de mˆeme rang dans l’alphabet invers´e.

Ecrire une fonction Python´ miroir de param`etre c permettant de chiffrer suivant cette m´ethode la chaˆıne de caract`eres c.

www.emmanuelmorand.net 1/4 PTSI1516TpInfo04

(2)

PTSI - Travaux Pratiques d’informatique Codage des caract`eres

Exercice 5. On consid`ere le programme suivant : from tkinter import*

# cr´eation de la fen^etre fenetre=Tk()

fenetre.title(’conversion en majuscules’)

# creation d’une variable tkinter de type cha^ıne de caract`eres chaine=StringVar()

# cr´eation de la zone de saisie de la cha^ıne de caract`eres ZoneDeSaisie=Entry(fenetre,width=100,text=chaine)

ZoneDeSaisie.pack()

# cr´eation du bouton de conversion

Bouton=Button(fenetre,text=’conversion’) Bouton.pack()

# d´efinition du gestionnaire de l’´ev`enement click def conversion(self):

l=chaine.get() L=""

for k in range(0,len(l)):

if 97<=ord(l[k])<=122:

L=L+chr(ord(l[k])-32) else:

L=L+l[k]

chaine.set(L)

Bouton.bind(’<ButtonPress-1>’,conversion)

# lancement de la boucle du programme fenetre.mainloop()

– Tester ce programme.

– Analyser le fonctionnement du programme et le modifier pour qu’il r´ealise le chiffrement miroir.

www.emmanuelmorand.net 2/4 PTSI1516TpInfo04

(3)

PTSI - Travaux Pratiques d’informatique Codage des caract`eres

R´ eponses

1) for k in range(0,256):

print(k,chr(k))

Alphabet minuscule : de 97 `a 122 Alphabet majuscule : de 65 `a 90 Chiffres : de 48 `a 57

2) def caractere(n):

’’’affichage du n-i`eme caract`ere de l’alphabet minuscule’’’

print(chr(96+n)) def rang(c):

’’’calcul du rang du caract`ere c dans l’alphabet minuscule’’’

return(ord(c)-96) for k in range(1,27):

print(chr(123-k)) 3) def majuscule(c):

’’’conversion de la cha^ıne de caract`eres c de minuscule en majuscule’’’

C=""

for k in range(0,len(c)):

if 97<=ord(c[k])<=122:

C=C+chr(ord(c[k])-32) else:

C=C+c[k]

return(C) def minuscule(c):

’’’conversion de la cha^ıne de caract`eres c de majuscule en minuscule’’’

C=""

for k in range(0,len(c)):

if 65<=ord(c[k])<=90:

C=C+chr(ord(c[k])+32) else:

C=C+c[k]

return(C) 4) def miroir(c):

’’’chiffrement miroir de la cha^ıne de caract`eres c’’’

C=""

for k in range(0,len(c)):

if 97<=ord(c[k])<=122:

C=C+chr(219-ord(c[k])) else:

if 65<=ord(c[k])<=90:

C=C+chr(155-ord(c[k])) else:

C=C+c[k]

return(C)

www.emmanuelmorand.net 3/4 PTSI1516TpInfo04

(4)

PTSI - Travaux Pratiques d’informatique Codage des caract`eres

5) from tkinter import*

# cr´eation de la fen^etre fenetre=Tk()

fenetre.title(’chiffrement miroir’)

# creation d’une variable tkinter de type cha^ıne de caract`eres chaine=StringVar()

# cr´eation de la zone de saisie de la cha^ıne de caract`eres ZoneDeSaisie=Entry(fenetre,width=100,text=chaine)

ZoneDeSaisie.pack()

# cr´eation du bouton de chiffrement

Bouton=Button(fenetre,text=’chiffrement’) Bouton.pack()

# d´efinition du chiffrement miroir def miroir(c):

’’’chiffrement miroir de la cha^ıne de caract`eres c’’’

C=""

for k in range(0,len(c)):

if 97<=ord(c[k])<=122:

C=C+chr(219-ord(c[k])) else:

if 65<=ord(c[k])<=90:

C=C+chr(155-ord(c[k])) else:

C=C+c[k]

return(C)

# d´efinition du gestionnaire de l’´ev`enement click def chiffrement(self):

l=chaine.get()

chaine.set(miroir(l))

Bouton.bind(’<ButtonPress-1>’,chiffrement)

# lancement de la boucle du programme fenetre.mainloop()

www.emmanuelmorand.net 4/4 PTSI1516TpInfo04

Références

Documents relatifs

Ecrire une fonction Pachinko1 sans argument et en utilisant une boucle for qui simule la descente d'une bille et renvoie le numero du trou dans lequel elle est tombée..4. Ecrire

Ecrire une fonction permettant d’afficher les noeuds d’un Arbre lors d’un parcous pr´ efix´ e2. Ecrire une fonction permettant d’afficher les noeuds d’un Arbre lors d’un

L’objectif de cet « exercice » est de sortir de l’enfermement « écrire pour le maître », « écrire comme il faut », écrire « des choses bien », « écrire sans fautes »,

 Un bloc d’instruction permet de mémoriser un petit algorithme intervenant une ou plusieurs fois dans un algorithme plus élaboré, ce qui facilite la lecture

Ecrire un programme qui lit deux variables de type enti` ´ ere, les affiche, ´ echange leur contenu et les affiche de nouveau.. Exercice

L’ann´ ee courante sera mise dans une variable.. Exercice

(2) ´ Ecrire une fonction traitement qui prend pour arguments une image et une fonction puis applique cette fonction sur la valeur de chacun des pixels de l’image.. (3) Red´

Ecrire un programme qui lit deux variables de type enti` ´ ere, les affiche, ´ echange leur contenu et les affiche de nouveau.. Exercice