TD 8 - Manipulation de Fichiers. Informatique MPSI/PCSI - Lycée Thiers

Documents pareils
STAGE IREM 0- Premiers pas en Python

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Chapitre 2 Devine mon nombre!

1 Lecture de fichiers

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Exercices Types Algorithmique et simulation numérique Oral Mathématiques et Algorithmique Banque PT Propositions de réponses

Cours 7 : Utilisation de modules sous python

TP 1. Prise en main du langage Python

Découverte de Python

Initiation à la programmation en Python

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Présentation du langage et premières fonctions

Licence Sciences et Technologies Examen janvier 2010

Programmation Web. Madalina Croitoru IUT Montpellier

7. Le Service de certification déchiffre le document avec sa clé privée de déchiffrement.

TD3: tableaux avancées, première classe et chaînes

Installation du transfert de fichier sécurisé sur le serveur orphanet

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

L informatique en BCPST

Plan du cours. Historique du langage Nouveautés de Java 7

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

AWS avancé. Surveiller votre utilisation d EC2

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Initiation à la Programmation en Logique avec SISCtus Prolog

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Procédure d installation de mexi backup

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

Documentation Cobian

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Introduction à MATLAB R

DM 1 : Montre Autoquartz ETA

Procédure d'utilisation de Password Gorilla

Le langage C. Séance n 4

PRISE EN MAIN D UN TABLEUR. Version OPEN OFFICE

OUTIL DE CRYPTAGE ET DE COMPRESSION

Programmation impérative

Conventions d écriture et outils de mise au point

Netstorage et Netdrive pour accéder à ses données par Internet

I/ Se connecter sur le réseau Scribe :

Utilisez Toucan portable pour vos sauvegardes

Exonet : sauvegarde automatisée d une base de données

1 Démarrage de Marionnet

Programmation C. Apprendre à développer des programmes simples dans le langage C

td3a correction session7az

Stockage du fichier dans une table mysql:

Algorithmique et programmation : les bases (VBA) Corrigé

Dans la série LES TUTORIELS LIBRES présentés par le site FRAMASOFT. Premiers pas avec WinPT (cryptographie sous Win) EITIC

TP : Gestion d une image au format PGM

Comment déposer les comptes annuels des associations, fondations et fonds de dotation.

Configurer la supervision pour une base MS SQL Server Viadéis Services


Bernard HAMM, Évelyne LAVOISIER

Cours 14 Les fichiers

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

INF 321 : mémento de la syntaxe de Java

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

2 Comment fonctionne un ordinateur, dans les grandes lignes

Java Licence Professionnelle CISII,

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Fiche Pratique. Présentation du problème. Installation du logiciel. Etape 1. MAJ le 17/10/2011

Document d accompagnement pour l utilisation du Cartable en ligne Lycée des Métiers Fernand LÉGER 2013/2014

Algorithmique I. Algorithmique I p.1/??

pyensae StockPrices September 1, Manipulation de séries financières avec la classe StockPrices

Mon aide mémoire traitement de texte (Microsoft Word)

< Atelier 1 /> Démarrer une application web

Activités pour la maternelle PS MS GS

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

TP Codage numérique des caractères. Un ordinateur ne manipule que des 0 et des 1 : Comment alors code-t-il du texte?

Cours de Systèmes d Exploitation

Solutions du chapitre 4

Les bases du langage Python

TRAVAUX DIRIGES D'INFORMATIQUE INITIATION A LA MANIPULATION DE WINDOWS 98

1 Recherche en table par balayage

TP1 - Prise en main de l environnement Unix.

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

INITIATION AU LOGICIEL SAS

Développement d'un projet informatique

Utilisation d objets : String et ArrayList

UltraBackup NetStation 4. Guide de démarrage rapide

LES TROUBLES DU GRAPHISME LA RÉÉDUCATION: QUAND ET COMMENT PASSER PAR L ORDINATEUR?

R, Bonnes pratiques. Christophe Genolini

Procédure de sauvegarde - Cobian Backup

Initiation à l algorithmique

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

IV- Comment fonctionne un ordinateur?

1. Structure d'un programme FORTRAN 95

MANUEL D INSTALLATION Sous WINDOWS

Guide de l Administrateur

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

Programmer en JAVA. par Tama

Chapitre 3 : outil «Documents»

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Transcription:

TD 8 - Manipulation de Fichiers Informatique MPSI/PCSI - Lycée Thiers

Exercice 1 /

/ Exercice 1 : / En python, créer un fichier essai.txt (à l aide de la commande f = open( essai.txt, w ), dans lequel on écrira quelques lignes. Retrouver ce fichier sur votre ordinateur, et l ouvrir (en double-cliquant sur son icône) pour vérifier son contenu. Solution : f = open( essai.txt, w ) f.write( une première ligne\n ) f.write( une deuxième ligne ) f.close()

Exercice 2 : Copier le fichier FichierNumerique.txt sur votre ordinateur. Le sauvegarder dans le répertoire utilisateur (celui portant votre nom de login). Il s agit d un fichier texte de données numériques. Chaque ligne comporte deux valeurs séparées par un point virgule ; représentant l abscisse et l ordonnée d un point du plan, selon le schéma suivant : 1.0;0.0 0.994207555394;0.0797868464861 0.976963690375;0.15782242334

Exercice 2 : 1. Ecrire un script permettant de récupérer les abscisses dans une liste LX et les ordonnées dans une liste LY. Ainsi on aura : >>> LX [1.0, 0.994207555394, 0.976963690375,...] >>> LY [0.0, 0.0797868464861, 0.15782242334,...] 2. On pourra alors tracer la courbe joignant tous les points en saisissant le code suivant : import matplotlib.pyplot as plt plt.plot(lx,ly) plt.axis( equal ) plt.show()

Exercice 2 : 1) file = open( FichierNumerique.txt, r ) LX, LY = [], [] for ligne in file: Lxy = ligne.split( ; ) LX.append(float(Lxy[0])) LY.append(float(Lxy[1])) file.close() 2) import matplotlib.pyplot as plt plt.axis( equal ) plt.plot(lx,ly) plt.show()

Exercice 2 :

Exercice 3 : Copier le fichier TexteCrypte.txt sur votre ordinateur. Le sauvegarder dans le répertoire utilisateur (celui portant votre nom de login). Il s agit d un fichier texte contenant un texte célèbre qui a été crypté à l aide d un chiffrement de César (dont on ne connait pas la clé). On souhaite le décrypter, le lire, et sauvegarder le texte déchiffré dans un fichier texte. Pour cela on procèdera en écrivant un script qui réalise les actions suivantes :

Exercice 3 : 0. Recopier en début de programme les fonctions écrites au TD7 sur le chiffrement de César. 1. Ouvrir le fichier TexteCrypte.txt en mode d accès lecture ( r ). 2. Récupérer dans une variable phrase sa première ligne. 3. Dans une boucle for faire varier une variable cle de 1 à 25. 4. Au sein de la boucle : a. Afficher à l écran phrase décryptée à l aide de la clé de chiffrement cle. b. Attendre la saisie de l utilisateur d une chaine de caractère (à l aide de saisie = input()). c. Si saisie n est pas la chaine vide (""), arrêter le déroulement de la boucle (à l aide de l instruction break). 5. En sortie de boucle : a. Récupérer dans une variable texte l intégralité du texte crypté. b. Le décrypter à l aide de la clé obtenue. c. Sauvegarder le texte décrypté dans un nouveau fichier TexteDecrypte.txt. d. Penser à refermer tous les fichier ouverts.

Exercice 3 : On commence par copier/coller les fonctions écrites au TD7 pour le chiffrement de César : def Crypt(c,n): if ord( A ) <= ord(c) <= ord( Z ): return chr(ord( A )+(ord(c)-ord( A )+n)%26) elif ord( a ) <= ord(c) <= ord( z ): return chr(ord( a )+(ord(c)-ord( a )+n)%26) else : return c def CesarCrypt(S,n): Scrypt = for char in S: Scrypt += Crypt(char,n) return Scrypt def CesarDeCrypt(S,n): return CesarCrypt(S,-n)

Exercice 3 : txt = open( TexteCrypte.txt, r ) # Ouverture en lecture seule ligne = txt.readline() # Lecture premiere ligne for cle in range(1,26): print(cesardecrypt(ligne,cle)) r = input() if r!= : break texte = ligne + txt.read() # Ne pas oublier la premiere ligne textedecrypte = CesarDeCrypt(texte,cle) # Decryptage print("decryptage :") print("------------") print(textedecrypte) file = open( TexteDecrypte, w ) # Création nouveau fichier file.write(textedecrypte) # Ecriture texte decrypté file.close() txt.close()

Exercice 3 : Decryptage : ------------ Ce qui fut cause que je pensai qu il fallait chercher quelque autre methode, [...] j aurais assez des quatre suivants, pourvu que je prisse une ferme et constante resolution de ne manquer pas une seule fois a les observer. Le premier etait de ne recevoir jamais aucune chose pour vraie, que je ne la connusse evidemment etre telle : c est-a-dire, d eviter soigneusement la precipitation et la prevention; et de ne comprendre rien de plus en mes jugements, que ce qui se presenterait si clairement et si distinctement a mon esprit, que je n eusse aucune occasion de le mettre en doute. Le second, de diviser chacune des difficultes que j examinerais, en autant de parcelles qu il se pourrait, et qu il serait requis pour les mieux resoudre. Le troisieme, de conduire par ordre mes pensees, en commencant par les objets les plus simples et les plus aises a connaitre, pour monter peu a peu, comme par degres, jusques a la connaissance des plus composes; et supposant meme de l ordre entre ceux qui ne se precedent point naturellement les uns les autres. Et le dernier, de faire partout des denombrements si entiers, et des revues si generales, que je fusse assure de ne rien omettre. Rene Descartes, Discours de la Methode.

Exercice 4 : Ecrire un éditeur de texte minimaliste : à l appel de edt() le programmera attendra la saisie de texte par l utilisateur, dont il écrira toutes les lignes dans un fichier texte. Dès que l utilisateur saisira une ligne vide (en appuyant sur ENTREE), la saisie de texte s achèvera et le programme demandera le nom du fichier à sauvegarder.

Exercice 4 : Editeur de texte def edt(): liste = [] while True: ligne = input() if ligne == "": break else: liste.append(ligne + \n ) if len(liste) > 0: nom = input("nom du fichier à sauvegarder : ") f = open(nom, w ) f.writelines(liste) f.close()

Exercice 4 : Editeur de texte

Exercice 5 : Pourriez-vous écrire un script qui compte dans le fichier TexteDecrypte.txt le nombre de mots, ainsi que le nombre de caractères contenus dans le texte : les mots seront définis comme toute suite de lettres minuscules ou majuscules non accentuées. les caractères blancs ( ) et de fin de ligne ne seront pas comptabilisés.

Exercice 5 : f = open( TexteDecrypte, r ) texte = f.read() mots = 0 caracteres = 0 flag = False for car in texte: if car!= and car!= \n : caracteres += 1 if a <= car <= z or A <= car <= Z : if flag == False: flag = True mots += 1 else: flag = False print("nombre de mots :",mots) print("nombre de caractères :",caracteres) f.close()

Exercice 5 : Nombre de mots : 216 Nombre de caractères : 1017