PROGRAMMATION LES BASES RAPPEL : une fonction resemble à def func_name(args): code code return result func_name(valeur) Pour executer un programme dans un chier test.py" python test.py Exo 1. Lire : 5.1.3. sur la page http: // docs. python. org/ 2/ tutorial/ datastructures. html puis écrire une fonction pour calculer (1) la somme des entiers (2) la somme de k5 des entiers (3) les carrées des entier Exo 2. k = 1, . . . n k = 1, . . . n k = 1, . . . 16 modulo 17 (1) Ecrire une fonction pour calculer la distance entre 2 points a = (x, y), b = (u, v) d(a, b) = k(x, y) − (u, v)k = p (x − u)2 + (y − v)2 INDICATION : from math import sqrt def d(a,b): return <resultat> (2) Utiliser une boucle for i in range(num): print d(x,y) pour acher la distance entres les points avec 1 2 PROGRAMMATION x = y = 0, u = 1, v = 0, . . . 5 x = y = 0, u = 0, . . . 5, v = 0, . . . 5 x = 0, u = 5, y = 0, . . . 5, v = 0, . . . 5 (3) (a) Utiliser la fonction dir() sur le module math pour trouver toutes les fonctions. Est-ce qu'il y a une façon plus simple à faire la question (1) ? (4) Comparer les résultats de : (5) dir(1) dir(1.1) dir(1J) PROGRAMMATION 3 Exo 3. Lire : http: // www. openbookproject. net/ thinkcs/ python/ english2e/ ch04. html puis utiliser une boucle for" et la commande print" pour realiser les gures : for i in range(num): print <string> pour écrire une fonction dont le résultat est : (1) (2) (3) (4) .*.*.*.*.* *.*.*.*.*. .*.*.*.*.* *.*.*.*.*. .*.*.*.*.* *.*.*.*.*. * ** *** **** ***** ** **** ****** ******** ********** .......... .......... ...*****.. ..***.***. ..**...**. ..*.....*. ..**...**. ..***.***. ...*****.. .......... [Pour le (4) on pourra utiliser 2 boucles imbriquées et la fonction de l'exo precedent.] d(x, y) 4 PROGRAMMATION Exo 4. Ecrire un programme qui demande à l'utilisateur les coordon- nées les coordonées d'un 'points dans le plan et qui calcule ses coordonées polaires. INDICATION :Pour saisir les valeurs : val = input("Enter x:") Penser à charger les fonctions mathématiques avec : from math import * Exo 5. Ecrire un programme qui renverse tous les mots dans un texte (sans ponctuation) : EXAMPLE : "Hello world" 7→ "olleH dlrow" INDICATION : (1) Pour separer en mots : txt.split() (2) Pour renverser une liste L : reversed(L) (3) Tester : print dir("greg") print reversed("greg") print [x for x in reversed("greg")] Exo 6. Ecrire un programme qui enchire un texte (en lettres minis- cules, sans accent, avec ponctuation) utilisant le chire de César [voir http: // fr. wikipedia. org/ wiki/ Chiffre_ de_ César) EXAMPLE : "hello world !" 7→ "uryyb jbeyq !" ]. INDICATION : (1) Pour avoir une liste des lettres miniscule : import string print string.lowercase, type(string.lowercase) #non print "GREG",type("GREG") print dir("GREG") s print "GREG".lower #non plus, fonction en memoire print "GREG".lower() PROGRAMMATION 5 (2) Pour convertir une caractère en code ascii : ord() Pour un code ascii en caractère : chr() Exo 7. Ecrire un programe qui enchire un texte (en lettres miniscules, sans accent, avec ponctuation) en utilisant une permutation aléatoire des lettres stockée dans un dictionnaire : EXAMPLE : {'a': 'f': 'l': 'r': 'x': 'y', 'q', 'z', 'a', 'h', 'c': 'i': 'o': 'u': 'z': 'v', 'n', 'i', 'd', 'm'} 'b': 'h': 'n': 't': 'g', 'b', 'u', 'l', 'e': 'k': 'q': 'w': 'o', 'p', 't', 'w', INDICATION :Pour permuter une liste L : from random import shuffle shuffle(L) 'd': 'j': 'p': 'v': 'x', 'k', 'j', 'f', 'g': 'm': 's': 'y': 'c', 's', 'e', 'r',