Page: 1/8 Année universitaire : 2019/2020 Département d’informatique Trimestre
Page: 1/8 Année universitaire : 2019/2020 Département d’informatique Trimestre 1 Master GLP Programmation Python TP n°3 Exercice1 : Occurrences des lettres Ecrire un programme Python qui lit une chaîne de caractères CH au clavier et qui compte les occurrences des lettres de l'alphabet en ne distinguant pas les majuscules et les minuscules. Utiliser un tableau ABC de dimension 26 pour mémoriser le résultat et une variable PCH pour parcourir la chaîne CH et une variable PABC pour parcourir ABC. Afficher seulement le nombre des lettres qui apparaissent au moins une fois dans le texte. Exemple: Entrez une ligne de texte (max. 100 caractères) : master La chaîne "master" contient : 1 fois la lettre 'a' 1 fois la lettre 'e' 1 fois la lettre 'm' 1 fois la lettre 'r' 1 fois la lettre 's' 1 fois la lettre 't' Exercice 2 : Conjugaison Ecrire un programme python qui lit un verbe du premier groupe (simple) et qui en affiche la conjugaison au présent de l’indicatif, sous la forme : Je programme Tu programmes Il/elle programme Nous programmons Vous programmez Ils/elles programment Problème1 : Autour de l’ADN L’acide désoxyribonucléique, ou ADN, est une molécule, présente dans toutes les cellules vivantes, qui renferment l’ensemble des informations nécessaires au développement et au fonctionnement d’un organisme.L’ADN est composé de deux brins d’ADN se faisant face, et formant une double hélice. Un brin d’ADN est composé d’une Page: 2/8 séquence de nucléotides. Chaque nucléotide est constitué de trois éléments liés entre eux, dont une base azotée. Il existe quatre bases azotées différentes : l’adénine (notée A), la thymine (notée T), la cytosine (notée C) et la guanine (notée G). Ce sont ces quatre bases azotées qui assurent la variabilité de la molécule d’ADN, ainsi que la complémentarité des deux brins : en face d’une adénine (A), il y a toujours une thymine (T) ; en face d’une cytosine(C), il y a toujours une guanine (G). On dit que les bases A et T sont complémentaires et que les bases G et C sont complémentaires. La figure ci- dessous montre un morceau d’ADN avec ses bases complémentaires. Pour un brin d’ADN, on peut retrouver la séquence du brin complémentaire et reconstituer la double séquence de la double hélice : -ATTGCCGTATGTATTGCGCT- -TAACGGCATACATAACGCGA Dans la suite de cet exercice, on appellera Base le type représentant une base azotée. Celles-ci seront représentées par les chaînes de caractères "A", "T", "G" et "C".Un brin d’ADN sera représenté par une liste de bases azotées. Question1-1: Donnez en langage Python une définition de la fonction liste-base- compl(b) qui construit la liste d’associations qui associe à chaque base sa base complémentaire. Page: 3/8 Question1-2: Donnez en langage Python une définition de la fonction base-compl qui étant donnée une base b rend la base complémentaire de b. Votre définition devra utiliser la liste d’associations résultat de la fonction liste-base-comp( ). Question1-3: Donnez en langage Python une définition de la fonction brin-compl? qui étant donnés deux brins d’ADN B1 et B2 teste si ces deux brins sont complémentaires. Question1-4: Donnez en langage Python une définition de la fonction brin-compl qui étant donné un brin d’ADN B rend le brin d’ADN complémentaire correspondant. Question1-5: On dit que le brin B1 est préfixe du brin B2 si B2 commence par la même séquence de bases que celle contenue dans B1. Donnez en langage Python une définition de la fonction brin-prefixe? qui étant donnés deux brins d’ADN B1 et B2 teste si B1 est préfixe de B2. Question1-6: On dit qu’un brin B1 est une sous-séquence du brin B2 si la séquence des bases de B1 apparaît dans B2. Donnez en langage python une définition de la fonction sous-brin? qui étant donnés deux brins d’ADN B1 et B2 teste si la séquence représentée par B1 est une sous-séquence du brin B2. Question1-7: Donnez en langage Python une définition de la fonction nb-occ-brin qui étant donnés deux brins B1et B2 rend le nombre d’occurrences du brin B1 dans le brin B2, c’est-à-dire le nombre de fois que la séquence des bases de B1 apparaît dans B2. On supposera que B1 n’est pas un brin vide. Problème2 : code de Ave Cesar (zud bdrzq) : 1- On cherche à crypter un texte t de longueur n composé de caractères en minuscules (soit 26 lettres différentes) représentés par des entiers compris entre 0 et 25 (0 <-> a, 1 <->b, . . . 25 <-> z). Nous ne tenons pas compte des éventuels espaces. Ainsi, le texte mastercloud est représenté par le tableau suivant où la première ligne représente le texte, la seconde les entiers correspondants, et la troisième les indices dans le tableau t. e c o l e c p g e t e c h 4 2 14 11 4 2 15 6 4 19 4 2 7 0 1 2 3 4 5 6 7 8 9 10 11 12 Page: 4/8 Codage de César 2- Ce codage est le plus rudimentaire que l’on puisse imaginer. Il a été utilisé par Jules César (et même auparavant) pour certaines de ses correspondances. Le principe est de décaler les lettres de l’alphabet vers la gauche de 1 ou plusieurs positions. Par exemple, en décalant les lettres de 1 position, le caractère a se transforme en z, le b en a, ... le z en y. Le texte avecesar devient donc zudbdrzq. Question 1.1:Que donne le codage du texte cpgeiurrabatmpsi en utilisant un décalage de 5 ? Question 1.2 : Écrire en langage Python la fonction codageCesar(t, n, d) qui prend en arguments la liste t, sa longueur n et un entier d ; et qui retourne une liste de même taille que t contenant le texte t décalé de d positions. Question 1.3 :Écrire de même la fonction decodageCesar(t, n, d) prenant les mêmes arguments mais qui réalise le décalage dans l’autre sens. 3- Pour réaliser ce décodage, il faut connaître la valeur du décalage. Une manière de la déterminer automatiquement est d’essayer de deviner cette valeur. L’approche la plus couramment employée est de regarder la fréquence d’apparition de chaque lettre dans le texte crypté. En effet, la lettre la plus fréquente dans un texte suffisamment long en français est la lettre e. Question 1.4 : Écrire en langage Python la fonction frequences(t0, n) qui prend en argument une liste t0 de taille n représentant le texte crypté ; et qui retourne une liste de taille 26 dont la case d’indice i contient le nombre d’apparitions du nombre i dans t (0 <= i < 26). Question 1.5 : Écrire en langage Python la fonction decodageAuto(t0, n) qui prend en argument la liste t0 de taille n représentant le texte crypté ; et qui retourne le texte t d’origine (en calculant la clé pour que la lettre e soit la plus fréquente dans le texte décrypté). Page: 5/8 Problème3 Les réponses doivent être exprimées en langage Python Page: 6/8 Page: 7/8 Page: 8/8 Problème 4 : Cryptographie et messages Le but est d'écrire un programme python permettant de coder (et de décoder) des messages cryptés. Trois principes de cryptage seront obligatoirement intégrés dans le programme: { le Chiffrement de César, voir https://fr.wikipedia.org/wiki/Chiffrement par décalage { le Chiffrement de Vigénère, voir https://fr.wikipedia.org/wiki/Chiffre de Vigenère { la machine Enigma, voir https://fr.wikipedia.org/wiki/Enigma (machine) Le programme devra permettre de choisir une opération (codage, décodage), un principe de codage, une clef de chiffrage et un texte. Il devra fournir le texte crypté (décrypté) correspondant. Facultativement, il pourra tenter de décrypter une message crypté sans clé (combinatoire, analyse de fréquences, indices de coïncidence). Facultativement, étant donné un message crypté, il pourra essayer de retrouver la conjuration de la machine et le décrypte. uploads/Religion/ tp3.pdf
Documents similaires
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/4dzYv6552q37UTT67ZA0Ai7CsHsusFCYryq2RSj4AN3vhpH2b0jhpA3xMKALgVA2GorbT88a4YOOCOw2JzzVuq4k.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/VmFjb9vQtnMy0QUBu0J2G3agKUDDCIDNI1rQQAZdeT7apR7X0AM8yag6h5zasOTcviyev9l7OaYqwDn1l8644tRs.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/9jegltf8dsfgep0moDSRxAle3ZV2EtzxEaIiroEROldfS8ENUOaQUH3JNOzztvZhmiii9SLL5037xLrZ4IF2CFdj.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/5QDxqjoinqQ1qyppSPE6AxbTvtS1QlO0fTzRAag5nV1mUt0sfMyPICMnpVC7Nm1tpR63T3HMkCimxofs7dxNYWGX.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/BlRYMRVI6SjgtsSE0DjOzrRQ6LGRpzioiQgMAskqJQi0aGr52DKL2r71zw24D11dBL1EvkqrsQbOQtJ5SzOOV1co.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/inPGtsewpSUh7Hxk4tbuHLXfWeVcYnPBvqRQJwSkLJPRA9fb2QASbBYid1BOkxJe7aJnKCGTHh7tdCypPbkVIqV7.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/EE38IlL9E5AsPcIEbNtnZcIciYdc1gMUI7ClK7TDyJ92kffctNLqeweYsM1CRbYk6PKSUM2vI7Js6veDWrA6kJ7T.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/H0GhkMEU9hQkfZI997tboxutxoDFt6b51iYQfYdaAd51eB6G3UYfBespfJ6fF4w7njpSs61fxGpuhe8MOzIRFqfQ.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/knHDKzpMz5qyE8P8DytC10n2cIjQukgFu6UYh54r3oYxQqgTy8Ot4cBJmQXivI5LrW4dlzpsaR3P0sjbEKa01BKY.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/xFRBCfjALJeuxwiN4LElwA3D9i9W0MguZHAmWSbUpKYTM9VQerJt45ZzQJzq593Zg9vCZ51500Bmddwylwe0HGRM.png)
-
18
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 02, 2022
- Catégorie Religion
- Langue French
- Taille du fichier 0.5081MB