Programmation avec Xcas ou Python G. Aldon - J. Germoni - J.-M. M´ eny IREM de
Programmation avec Xcas ou Python G. Aldon - J. Germoni - J.-M. M´ eny IREM de Lyon Mars 2012 GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 1 / 20 Environnement ´ Editeur Xcas Le texte d’un programme s’´ ecrit dans l’´ editeur de programmes de Xcas. GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 2 / 20 Environnement ´ Editeur Xcas Le texte d’un programme s’´ ecrit dans l’´ editeur de programmes de Xcas. Cet ´ editeur s’ouvre par le raccourci alt+P (ou en passant par les menus). GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 2 / 20 Environnement ´ Editeur Xcas Le texte d’un programme s’´ ecrit dans l’´ editeur de programmes de Xcas. Cet ´ editeur s’ouvre par le raccourci alt+P (ou en passant par les menus). Lorsque le texte du programme est tap´ e, on le valide/compile en cliquant sur la touche OK. GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 2 / 20 Environnement ´ Editeur Python Il existe plusieurs ´ editeurs de texte d´ edi´ es ` a Python. GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 3 / 20 Environnement ´ Editeur Python Il existe plusieurs ´ editeurs de texte d´ edi´ es ` a Python. Un bon choix sous windows : pythonxy avec l’´ editeur spyder. Sous Linux, spyder. GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 3 / 20 Environnement ´ Editeur Python Il existe plusieurs ´ editeurs de texte d´ edi´ es ` a Python. Un bon choix sous windows : pythonxy avec l’´ editeur spyder. Sous Linux, spyder. Ou pythonner avec SAGE. GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 3 / 20 Environnement Commenter ses programmes Une bonne habitude : commenter abondamment ses programmes. GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 4 / 20 Environnement Commenter ses programmes Une bonne habitude : commenter abondamment ses programmes. Avec XCAS : ligne commen¸ cant par // commentaires longs : ouverture par /∗et fermeture par ∗/. GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 4 / 20 Environnement Commenter ses programmes Une bonne habitude : commenter abondamment ses programmes. Avec XCAS : ligne commen¸ cant par // commentaires longs : ouverture par /∗et fermeture par ∗/. Avec Python : commencer la ligne par # : commentaire long commen¸ cant par ””” et termin´ e par ”””. GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 4 / 20 Structures de contrˆ ole Boucles et tests Structures POUR et SI avec XCAS Entrer et tester le programme qui suit : Xcas saisir(a,b) ; d :=1 ; pour k de 2 jusque min(a,b) faire si irem(a,k)==0 et irem(b,k)==0 alors d :=k ;fsi ; fpour ; afficher(d) ; If´ ekoi ? GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 5 / 20 Structures de contrˆ ole Boucles et tests Structures POUR et SI avec Python Entrer et tester le programme qui suit : Python a=input(”Entrer un entier positif a ”) b=input(”Entrer un entier positif b ”) d=1 for k in range(2,min(a,b)+1) : if a%k==0 and b%k==0 : d=k print d If´ ekoi ? GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 6 / 20 Structures de contrˆ ole Fonctions et modularit´ e Conception comme fonction, it’s better – XCAS Entrer : Xcas pgcd(a,b) :={ local d,k ; d :=1 ; pour k de 2 jusque min(a,b) faire si irem(a,k)==0 et irem(b,k)==0 alors d :=k ;fsi ; fpour ; retourne d ;} : ; • On l’utilise en entrant par exemple en ligne de commandes : pgcd(12,8). GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 7 / 20 Structures de contrˆ ole Fonctions et modularit´ e Conception comme fonction, it’s better – XCAS Entrer : Xcas pgcd(a,b) :={ local d,k ; d :=1 ; pour k de 2 jusque min(a,b) faire si irem(a,k)==0 et irem(b,k)==0 alors d :=k ;fsi ; fpour ; retourne d ;} : ; • On l’utilise en entrant par exemple en ligne de commandes : pgcd(12,8). • local : variables connues uniquement dans le ”champ de calcul” de la fonction. GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 7 / 20 Structures de contrˆ ole Fonctions et modularit´ e Conception comme fonction, it’s better – XCAS Entrer : Xcas pgcd(a,b) :={ local d,k ; d :=1 ; pour k de 2 jusque min(a,b) faire si irem(a,k)==0 et irem(b,k)==0 alors d :=k ;fsi ; fpour ; retourne d ;} : ; • On l’utilise en entrant par exemple en ligne de commandes : pgcd(12,8). • local : variables connues uniquement dans le ”champ de calcul” de la fonction. • Diff´ erence entre retourne et afficher. GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 7 / 20 Structures de contrˆ ole Fonctions et modularit´ e Conception comme fonction, it’s better – Python Entrer : Python def pgcd(a,b) : d=1 for k in range(2,min(a,b)+1) : if a%k==0 and b%k==0 : d=k return d On l’utilise par exemple en ex´ ecutant : print pgcd(132,8) D = pgcd(132,8) (int´ erˆ et : r´ eutiliser le r´ esultat !) GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 8 / 20 Structures de contrˆ ole Fonctions et modularit´ e Conception comme fonction, it’s better – Python Entrer : Python def pgcd(a,b) : d=1 for k in range(2,min(a,b)+1) : if a%k==0 and b%k==0 : d=k return d On l’utilise par exemple en ex´ ecutant : print pgcd(132,8) D = pgcd(132,8) (int´ erˆ et : r´ eutiliser le r´ esultat !) Localit´ e : une variable affect´ ee dans une fonction est locale. GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 8 / 20 Structures de contrˆ ole Fonctions et modularit´ e Conception comme fonction, it’s better – Python Entrer : Python def pgcd(a,b) : d=1 for k in range(2,min(a,b)+1) : if a%k==0 and b%k==0 : d=k return d On l’utilise par exemple en ex´ ecutant : print pgcd(132,8) D = pgcd(132,8) (int´ erˆ et : r´ eutiliser le r´ esultat !) Localit´ e : une variable affect´ ee dans une fonction est locale. Diff´ erence entre return et print. GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 8 / 20 Structures de contrˆ ole Boucles (suites) Bogue, Structure ”TANT QUE” – Xcas Pour d´ etecter un bug dans un programme, on affiche en g´ en´ eral des valeurs interm´ ediaires des variables. Exemple. Tester : Xcas ifekoi2(a,b) :={ tantque b !=0 faire si a>b alors a :=a-b ; sinon b :=b-a ; fsi ; afficher(a,b) ; ftantque ; retourne a ;} : ; GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 9 / 20 Structures de contrˆ ole Boucles (suites) Bogue, Structure ”TANT QUE” – Python Pour d´ etecter un bug dans un programme, on affiche en g´ en´ eral des valeurs interm´ ediaires des variables. Exemple. Tester : Python def ifekoi2(a,b) : while b !=0 : if a>b : a -= b else : b -= a print a,b return a GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 10 / 20 Structures de contrˆ ole Listes Les listes avec Xcas. Tester : Xcas ifekoi3(a,b) :={ local R,r ; R :=[ ] ; // R est une liste vide tantque b !=0 faire r :=irem(a,b) ; R :=append(R,r) ; // on ajoute r ` a la liste R a :=b ;b :=r ; ftantque ; retourne R ;} : ; GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 11 / 20 Structures de contrˆ ole Listes Les listes avec Python. Tester : Python def ifekoi3(a,b) : R=[ ] while b !=0 : r=a%b R.append(r) a,b=b,r return R GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 12 / 20 Structures de contrˆ ole Listes Et avec une liste de listes – Xcas ´ Ecrire une fonction Euclide(a,b) (a et b entiers naturels non nuls) renvoyant une liste T dont les ´ el´ ements sont des listes contenant les valeurs [ a, b, quotient, reste] de chaque ´ etape de l’algorithme. GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 13 / 20 Structures de contrˆ ole Listes Et avec une liste de listes – Xcas ´ Ecrire une fonction Euclide(a,b) (a et b entiers naturels non nuls) renvoyant une liste T dont les ´ el´ ements sont des listes contenant les valeurs [ a, b, quotient, reste] de chaque ´ etape de l’algorithme. Xcas euclide(a,b) :={ local q,r,T ; T :=[[”a”,”b”,”q”,”r”]] ; tantque b !=0 faire (q,r) :=iquorem(a,b) ; T :=append(T,[a,b,q,r]) ; a :=b ;b :=r ; ftantque ; retourne T ;} : ; GA, JG, JMM (IREM de Lyon) programmer xcas python Mars 2012 13 / 20 Structures de contrˆ ole Listes Et avec une liste de listes – uploads/Geographie/ 02-programmation-xcas-python.pdf
Documents similaires










-
32
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 30, 2022
- Catégorie Geography / Geogra...
- Langue French
- Taille du fichier 0.3800MB