23 janvier 2014 Association Philotechnique, Paris Cours de programmation Bertrand Roehner: ROEHNER@LPTHE.JUSSIEU.FR http://www.lpthe/jussieu/~roehner/teaching4.html PAW: PRESENTATION EN FRANCAIS PAW=Physics Analysis Workstation= Poste de travail pour l'analyse des experiences en physique Ce logiciel fut concu au CERN (Conseil Europeen pour la Recherche Nucleaire, Geneve) dans les annees 1990s en vue de l'analyse des resultats du LEP (un accelerateur de particules appele ``Large Electron-Proton Collider''). *** TABLE DES MATIERES *** Ch 1: Prise de contact avec PAW Ch 2: Representation d'un motif enregistre par VLOCATE Ch 3: Exemples d'animations: ARIANE 5, Mathieu ************************************ CHAPITRE 1: PRISE DE CONTACT AVEC PAW Pour pouvoir travailler avec PAW vous devez avoir sur votre ecran deux choses: 1) une fenetre de commande ou vous allez taper des instructions 2) une fenetre graphique ou vous verrez apparaitre les graphiques. Dans la suite de cette seance (et dans toutes les seances ulterieures) vous aurez aussi besoin d'une 3e chose: un fichier texte (c'est-a-dire un fichier qui contrairement a un fichier Word ou Excel est non formatte) ou vous ecrirez des instructions. Ce point est explique plus longuement plus bas. *** Section 1(a) Instructions tapees dans la zone de commande Dans la zone de commande tapez les instructions suivantes: PAW > NULL 0 10 0 10 PAW > KEY 1 5 PAW > KEY 2 5 PAW > KEY 3 5 PAW > CLR Remarque: Le mot anglais KEY signifie clef mais aussi touche (comme dans l'expression ``keyboard''). Dans votre fenetre graphique il va apparaitre successivement un repere avec des axes gradues de 0 a 10, puis 3 ronds places aux positions (x=1,y=5),(x=2,y=5),(x=3,y=5). Enfin, la commande CLR (=clear=effacer) fait tout disparaitre. *** Section 1(b) Instructions figurant dans un fichier separe Tout d'abord il vous faut ouvrir dans Windows un fichier de type ``txt'' (c'est-a-dire de type texte). Pourquoi un tel fichier? Un fichier Word de type doc contient des instructions de formattage, par exemple: ``saut de paragraphe'' ou bien ``police de caractere en italique'', etc. Bien que ces formattages ne soient pas visibles a l'ecran, ils existent dans le fichier et quand PAW voudra executer ligne par ligne les commandes de ce fichier, les instructions de formattage seront incomprehensibles pour lui et il produira une avalanche de messages d'erreur. Pour expliquer comment ouvrir un fichier Windows de type txt il faut montrer des images de l'ecran et indiquer ou il faut cliquer. Nous ferons cela en cours et dans un fichier separe. Une fois que vous aurez ouvert un fichier de type txt tapez les instructions suivantes, puis enregistrez le fichier sous le nom: s1b.kumac En effet, il est d'usage que les fichiers executables par paw s'appellent s1b.kumac, truc.kumac, machin.kumac. Cependant ce label .kumac ne change pas la nature reelle du fichier qui reste essentiellement un fichier texte (txt). Ce fichier doit etre dans le meme dossier que le module d'execution de PAW (pawNT.exe). Parece que c'est l'usage vous donnerez Conseils complementaires sur les rapports entre Windows et PAW 1) Pour fabriquer un fichier purement texte (sans formattage donc) il est conseille d'utiliser l'editeur NotePad++. Pour le trouver vous pouvez utiliser la fonction ``recherche'' a laquelle vous acceder en cliquant sur l'icone (utilisee aussi pour arreter l'ordinateur) situee en bas a gauche de l'ecran. Pour rechercher tapez ``NotePad'' dans la lucarne de recherche. Puis cliquez sur le dossier ``NotePad++'' qui apparait. 2) Lorsque vous faites ``Enregistrer sous'' sur un fichier kumac il faut vous assurer que le fichier sera bien enregistre dans le meme dossier que celui ou se trouve le module d'execution de PAW (pawNT.exe). 3) Comme dit plus haut, parce que c'est l'usage vous donnerez a ces fichiers un nom se terminant par kumac: truc.kumac, machin.kumac. etc (utilisez plutot des lettres minuscules et non des majuscules). 4) Lorsque vous avez enregistre le fichier il apparait tout en haut de l'ecran, le chemin menant a ce fichier. Verifiez que le fichier est bien dans le meme dossier que le module d'execution de PAW. Autrement au moment de l'execution PAW ne trouvera pas le fichier et donnera un message d'erreur pour s'en plaindre. Concretement, si ce dossier s'appelle PAW, il faut que ce nom apparaisse juste a gauche du nom de votre fichier. 5) L'un des menus en haut du fichier s'appelle ``Encodage''. Ouvrez-le et verifiez que que c'est bien ``ANSI'' qui est choisi (le choix est materialise par un point en face de la ligne). En particulier il faut eviter le choix ``UTF-8'' (3e ligne) car dans cette option un ``BOM'' (Byte Order Mark) est rajoute au debut du fichier ce qui serait pour PAW une instruction incomprehensible. 6) Pour ouvrir un fichier de type kumac (par ex s1b.kumac) deja existant il ne faut pas cliquer avec le bouton gauche mais avec le bouton droit car cela vous donne le choix du logiciel qui va ouvrir le fichier. Parmi ceux-ci vous choisirez NotePad++. -------- MACRO S1B * MACRO SIMPLE -> DESSIN DE SYMBOLES * TRACE ON WAIT * * DEFINITION ET DESSIN DU REPERE X1=0 ; X2=10 ; Y1=0 ; Y2=10 NULL [X1] [X2] [Y1] [Y2] * * ON PLACE LES SYMBOLES XP=1 ; YP=5 ; KEY [XP] [YP] XP=2 ; YP=5 ; KEY [XP] [YP] XP=3 ; YP=5 ; KEY [XP] [YP] * TRACE OFF * RETURN ------- Vous remarquez que ces instructions sont en gros les memes que precedemment mais qu'il y a quelques lignes supplementaires, et quelques petites modifications. Voyons tout d'abord les lignes supplementaires: * Les lignes commencant par une etoile * sont des commentaires qui vous permettront de comprendre ce programme quand vous le reprendrez dans 3 mois. * La premiere ligne declare que ce qui suit appartient a la macro (aussi appele sous-programme ou script) de nom S1 (pour programme Simple no 1). La fin de cette macro est marquee par l'instruction RETURN dans la derniere ligne. * Par la ligne TRACE ON WAIT vous souhaitez qu'avant d'executer chaque instruction le programme demande votre assentiment. Par la ligne TRACE OFF vous annulez ce mode. Voyons maintenant les modifications. * Au lieu d'ecrire NULL 0 10 0 10 on a d'abord defini des variables ayant ces valeurs, puis pour utiliser ces variables avec la valeur qu'on leur a donne on les met entre crochets. Ces crochets sont necessaires car pour PAW les objets principaux sont les vecteurs (c'est-a-dire des suites de nombres, voir plus loin). Les vecteurs ne se mettent PAS entre crochets. Pour indiquer a PAW qu'une variable n'est pas un vecteur il faut donc la mettre entre crochets. C'est la meme philosophie pour les lignes avec KEY. Remarquez que des instructions successives sont separees par des points-virgules. Pour executer cette macro, retournez dans la zone de commande et tapez (en majuscules ou minuscules, ca n'a pas d'importance): exec s1b Dans la zone de commande vous verrez apparaitre une suite de lignes dont la derniere est une question a laquelle vous devrez repondre. 2.120: * 2.121: * DEFINITION ET DESSIN DU REPERE 2.122: X1=0 ; X2=10 ; Y1=0 ; Y2=10 >>>>>> X1 = 0 >>>>>> X2 = 10 >>>>>> Y1 = 0 >>>>>> Y2 = 10 2.123: NULL [X1] [X2] [Y1] [Y2] Execute "NULL 0 10 0 10" (Yes/No/Quit/Go) ? Vous voyez que PAW repete tout ce qui n'est pas une veritable commande (les commentaires ou les valeurs donnees a une variable), mais pour les vraies commandes comme NULL il vous demande votre accord avant de continuer. Vous pouvez repondre ``y'' ou bien juste frapper la touche ``entree'', c'est equivalent. Incidemment, cette execution pas a pas est tres utile quand on cherche a reperer une erreur car elle permet de savoir a quelle ligne l'erreur se produit. *** Section 1(c) Execution da la macro sans arrets en cours de route. Si voulez que la macro s'execute sans vous demander votre accord a chaque etape, il suffit de neutraliser la ligne comportant TRACE ON WAIT en mettant une etoile au debut, c'est-a-dire: *TRACE ON WAIT *** Section 2 Utiliser une boucle DO Dans la programmation une des ressources les plus utiles consiste a pouvoir faire repeter une instruction en utilisant ce qu'on appelle une boucle, ou de facon plus specifique, une boucle DO (verbe anglais ``to do''=faire). En utilisant cette possibilite la macro precedente devient: --------- MACRO S2 * MACRO SIMPLE -> DESSIN DE SYMBOLES AVEC BOUCLE * * DEFINITION ET DESSIN DU REPERE X1=0 ; X2=10 ; Y1=0 ; Y2=10 NULL [X1] [X2] [Y1] [Y2] * * ON PLACE LES N SYMBOLES N=3 DO I=1,[N] XP=[I] ; YP=5 ; KEY [XP] [YP] ENDDO * RETURN --------- Le grand avantage de cette formulation consiste dans le fait qu'il n'est pas plus fatigant de placer 20 points que d'en placer 3. Il suffit de changer la valeur de N. Essayez. Vous voyez apparaitre seulements 10 points car les 10 autres sont en dehors du graphique. *** Section 3(a) Utiliser des vecteurs Voici une troisieme facon de faire le meme dessin. cette methode utilise des vecteurs. Le sens du mot ``vecteur'' est ici legerement different de celui qu'on apprend en classe de 3e. Ici, un vecteur ne designe pas une fleche mais uniquement les composantes de ce vecteur dans un repere. Autrement dit, ici un vecteur n'est rien d'autre qu'une suite de nombres. Voici la formulation avec vecteurs. --------- MACRO S3A * MACRO SIMPLE -> DESSIN DE SYMBOLES AVEC VECTEURS * * DEFINITION ET DESSIN DU REPERE X1=0 ; X2=10 ; Y1=0 ; Y2=10 NULL [X1] [X2] [Y1] [Y2] * N=3 VE/CR XP([N]) R 1 2 3 VE/CR YP([N]) R 5 5 5 GRAPH [N] XP YP P * RETURN -------- VE/CR signifie ``Creer un vecteur'' [N] indique combien ce vecteur contient de nombres R indique qu'il s'agit de nombres avec virgule (dit aussi nombres reels) par opposition a des entiers. L'instruction GRAPH est l'instruction de base pour placer des points ou pour tracer des courbes. Ici les points places par GRAPH sont tres petits. On verra par la suite comment changer cela. Dans cette formulation on n'a pas la possibilite de changer le dessin juste en modifiant la valeur de N, mais cela devient possible dans une version legerement differente. Avant d'en venir a cette version, relancez la meme macro. Vous voyez apparaitre des messages d'avertissement: *** VECTOR/CREATE XP(3): existing vector XP(3) replaced *** VECTOR/CREATE YP(3): existing vector YP(3) replaced Pour quelle raison? Contrairement aux nombres qui perdent toute existence des qu'on sort de la macro qui les a cree, les vecteurs ont une existence en dehors de la macro qui les a cree et cette existence se prolonge apres la fin de l'execution. Autrement dit, quand vous relancez l'execution les vecteurs XP et YP existent toujours. PAW vous en averti. Pour ne pas avoir cet avertissement il aurait fallu detruire les vecteurs crees a la fin de la macro. Cela se fait par la commande VE/DE XP,YP VE/DE signifie vector/delete (delete=supprimer) Dans une macro plus compliquee on aura un grand nombre de vecteurs. Il serait fastidieux d'avoir a les enumerer. On peut les detruire tous en ecrivant: VE/DE * Rajoutez cette instruction a la fin de la macro et voyez si cela fait bien disparaitre les avertissements. *** Section 3(b) Utiliser des vecteurs: variante Voici une variante de la macro precedente qui permet d'augmenter le nombre des points juste en changeant la valeur du nombre N. -------- MACRO S3B * MACRO SIMPLE -> DESSIN DE SYMBOLES AVEC VECTEURS * * DEFINITION ET DESSIN DU REPERE X1=0 ; X2=10 ; Y1=0 ; Y2=10 NULL [X1] [X2] [Y1] [Y2] * N=3 SIGMA XP=ARRAY([N],1#[N]) SIGMA YP=ARRAY([N],5#5) GRAPH [N] XP YP P * VE/DE * RETURN -------- Cette macro introduit une classe importante de commandes, a savoir toutes les commandes precedees de SIGMA. Ces commandes permettent de faire des operations sur des vecteurs. Comme on l'a deja dit les vecteurs sont les objets pricipaux de PAW, d'ou l'importance des commandes SIGMA. Les deux commandes SIGMA de la macro S3B creent des vecteurs. ARRAY est le mot anglais pour tableau. ARRAY([N],1#[N]) cree une liste de N nombres dont les valeurs s'echelonnent de 1 a N (c'est le sens de 1#[N]). Autrement dit, ces nombres forment la suite: 1,2,3,...,N. De meme, ARRAY([N],5#5) cree N nombres echelonnes de 5 a 5. Autrement dit, tous ces nombres sont egaux a 5. Avec cette formulation, on peut changer le nombre de points juste en changeant N. Verifiez-le en remplacant N=3 par N=20. **** Section 4 Comment gerer les messages d'erreur? En regle generale une macro ne ``marche pas'' du premier coup. Lorsque l'execution donne lieu a des messages d'erreur il faut savoir les gerer. Selon le type d'erreur il y a evidemment une grande variete de messages d'erreur. Dans cette section nous introduisons volontairement des erreurs dans la macro S3B, ceci dans le but de generer des messages d'erreur. * Erreur de syntaxe Changez NULL en NULLL -> *** Unknown command: NULLL * Omission d'une variable Remettez NULL a la place de NULLL mais neutralisez la commande N=3 en mettant une etoile devant. Cela donne les messages suivants. ----> Comp.error SYNTAX ERROR IN THIS STATEMENT. **** THE OFFENDING STATEMENT IS XP=ARRAY([N],1#[N]) ----> Comp.error SYNTAX ERROR IN THIS STATEMENT. **** THE OFFENDING STATEMENT IS YP=ARRAY([N],5#5) *** /GRAPHICS/PRIMITIVES/GRAPH: invalid integer number '[N]' Number of values (=[N]) Puisque N n'est plus defini, les 3 commandes qui contiennent N sont invalides et a chacune d'elles PAW le signale. Pour la derniere PAW tente de sauver la situation en vous proposant d'introduire la valeur de N en la tapant au clavier. Mais meme si je reponds 3, la commande GRAPH ne sera pas executee car les vecteurs XP et YP n'existent pas. Pour arreter l'execution d'une macro appuyez sur la touche ``Control'' puis sur la touche ``c''. Avant de passer a la suite re-activez la commande N=3 * Erreur dans les axes Remplacez X1=0 ; X2=10 par X1=10 ; X2=0. Cela donne: ***** ERROR in HPLFRA : Frame coordinates must be in increasing order: PAW proteste parce que les limites des axes ne correspondent pas a ce qu'il attend. Voici un autre cas d'erreur dans les axes. Remplacez X1=0 ; X2=10 par X1=0 ; X1=10 (erreur d'inattention) Cela donne: *** /GRAPHICS/HPLOT/NULL: invalid real number '[X2]' High range in X (=[X2]) PAW signale que le nombre X2 n'est pas defini, mais il tente de sauver la situation en vous proposant de l'introduire manuellement. Si on repond 10, PAW trace des axes, mais (pour une raison inconnue) ce ne sont pas ceux qu'on attend. * Une erreur plus insidieuse Remplacez X1=1 ; X2=10 par X1=1 ; ; X2=10 (c'est-a-dire, repetition du point-virgule). Cela donne: *** Break *** Segmentation violation Traceq lun = 0, level = 99 TRACEQ. In-line trace-back still not available. Longjump Alors que les messages d'erreur precedents etaient relativement comprehensibles, celui-ci est tres peu clair et surtout il ne dit pas ou est l'erreur. Ici, en relisant la macro on pourra s'apercevoir de l'erreur, mais imaginez le meme type d'erreur dans une macro de 1000 lignes! Cela suggere que la gestion des messages d'erreur n'est pas toujours une chose evidente. C'est en cela que l'aide de personnes plus experimentees ou simplement de quelqu'un qui va jeter un regard neuf sur votre macro, sont des choses essentielles. **** Section 5 Embellissement du graphique: Ou trouver l'information? Jusqu'ici pour toutes les commandes nous avons utilise ce qu'on appelle les ``options par defaut'', c'est-a-dire que si vous ne donnez pas de precisions la commande va s'executer avec l'option de base. Par exemple si vous ne dites pas qu'un rond doit etre en rouge, il sera en noir qui est l'option par defaut. De meme si vous ne precisez pas sa taille, la commande choisira une option par defaut. Ainsi nous avons vu que l'option par defaut de GRAPH donne des ronds minuscules. Comment connaitre les options qui sont offertes? La facon la plus sure et la plus systematique est de se reporter au manuel. Vous le trouverez sur mon site Internet a l'adresse: http://www.lpthe.jussieu.fr/~roehner/teaching4.html Une fois le manuel ouvert, comment y localiser l'information relative a la commande GRAPH? A la fin du manuel il y a un index. L'entree relative a GRAPH se trouve a la page 466. Cette entree vous apprend que vous trouverez la notice sur GRAPH a la page 428 (le debut est en bas de page). Pour l'option P que nous avons utilisee le manuel dit: ``P: A marker is plotted at every point according to current marker type and polymarker colour index''. Ce qui signifie: ``P: En chaque point est place un symbole defini par son type, et sa couleur.'' Il faut donc repartir dans l'index et chercher ``marker'' ou ``polymarker''. La page 473 de l'index vous indique que tout ce qui concerne les ``polymarker'' se trouve a la page 294. A cette page vous trouvez un tableau qui definit un certain nombre de parametres. Ceux qui vous interessent sont: MTYP (type), MSCF (taille), PMCI (couleur). Vous allez donner ces parametres sous la forme: IGSET MTYP 24 Pourquoi 24? Ce numero vous est indique par un tableau qui se trouve a la page 308. Ce tableau vous dit que 24 correspond a un rond. Pour ce qui est de la taille le mieux est de tatonner, on peut par exemple essayer: IGSET MSCF 2.2 Pour ce qui est de la couleur, un tableau a la page 306 vous apprend que: blanc=0, noir=1, rouge=2, vert=3, bleu=4, jaune=5, magenta=6, cyan=7 Avec toutes ces informations presentes a l'esprit nous sommes maintenant prets a embellir le graphique. La macro suivante donne une version possible. Vous pouvez essayer d'autres variantes. ------ MACRO S5 * MACRO SIMPLE -> DESSIN DE SYMBOLES * * DEFINITION ET DESSIN DU REPERE X1=0 ; X2=10 ; Y1=0 ; Y2=10 NULL [X1] [X2] [Y1] [Y2] AB * * ON PLACE LES SYMBOLES S1=2.5 ; S2=5 IGSET PMCI 3 ; SET KSIZ [S1] XP=1 ; YP=5 ; KEY [XP] [YP] 21 IGSET PMCI 2 ; SET KSIZ [S2] XP=3 ; YP=6 ; KEY [XP] [YP] 20 IGSET PMCI 3 ; SET KSIZ [S1] XP=5 ; YP=5 ; KEY [XP] [YP] 21 * * ECRITURE IGSET TXFP -17 ; IGSET CHHE 1 ; IGSET TXCI 4 ; IGSET TXAL 20 TX=Bonne Annee XP= 3 ; YP=3.0 ; ITX [XP] [YP] [TX] * RETURN ----- SET KSIZ regle la taille des symboles. Si on les place par GRAPH, alors leur taille se reglerait par IGSET MSCF. Notez aussi que dans la ligne avec NULL on a utilise les options A et B qui font que PAW ne trace ni les axes, ni les chiffres, ni les deux segments fermant le rectangle des axes. Pour les autres commandes utilisees dans cette macro je vous invite a regarder le manuel et nous pourrons bien sur en parler durant le cours. Dans le dessin, vous voyez que ``Annee'' est ecrit sans accent. On peut remedier a cela. Les explications necessaires sont donnees aux pages 315, 316 et 319 du manuel. Si vous avez un peu de temps, je vous laisse trouver la solution. Une fois que quelqu'un aura trouve la solution il (ou elle) pourra l'envoyer aux autres personnes du groupe. *** Section 6 Comment generer un fichier PostScript Nous venons de faire un dessin. Bien qu'il soit rudimentaire, nous voudrions pouvoir l'imprimer et eventuellement l'envoyer par Internet a d'autres personnes. Pour cela il suffit de rajouter 3 commandes ainsi qu'il est fait dans la macro suivante. ------- MACRO S6 * MACRO SIMPLE NO 6 -> DESSIN DE SYMBOLES * * FABRICATION D'UN FICHIER POSTSCRIPT paw.ps CONTENANT LES GRAPHES FORTRAN/FILE 66 paw.ps * en hauteur (portrait) META 66 -111 * * DEFINITION ET DESSIN DU REPERE X1=0 ; X2=10 ; Y1=0 ; Y2=10 NULL [X1] [X2] [Y1] [Y2] AB * * ON PLACE LES SYMBOLES S1=2.5 ; S2=5 IGSET PMCI 3 ; SET KSIZ [S1] XP=1 ; YP=5 ; KEY [XP] [YP] 21 IGSET PMCI 2 ; SET KSIZ [S2] XP=3 ; YP=6 ; KEY [XP] [YP] 20 IGSET PMCI 3 ; SET KSIZ [S1] XP=5 ; YP=5 ; KEY [XP] [YP] 21 * * ECRITURE IGSET TXFP -17 ; IGSET CHHE 1 ; IGSET TXCI 4 ; IGSET TXAL 20 TX=Bonne Annee XP= 3 ; YP=3.0 ; ITX [XP] [YP] [TX] * * FERMETURE DU FICHIER POSTSCRIPT CLOSE 66 * RETURN ------- Le point important dans ces 3 commandes est le nom du fichier qui est cree, a savoir: paw.ps. Les deux dernieres lettres indiquent le type du fichier. C'est ce qu'on appelle un fichier PostScript. Pour voir ce qu'il contient vous pouvez l'ouvrir acec un editeur de texte (e.g. notebook). On peut visualiser le dessin en utilisant un logiciel qui s'appelle ``ghostview'' (ghost=fantome, view=voir). Pour l'instant ce logiciel n'est pas disponible sur les ordinateurs de l'association. Nous allons donc transformer ce fichier en un fichier de type pdf (pdf=portable document format=format utilisable sur tous les ordinateurs). Pour cela on utilise habituellement un logiciel qui s'appelle ``ps2pdf'' (lire ps to pdf). Ce logiciel n'est pas non plus disponible sur nos ordinateurs, mais il est disponible en ligne, par exemple a l'adresse suivante: http://www.q2tek.com/conversion_tools/ps2pdf Connectez vous a ce site en recopiant l'adresse dans la lucarne de votre navigateur situee tout en haut de l'ecran (ne pas confondre avec la lucarne de Google). Suivez les indications qui sont donnees pour convertir le fichier. Une fois le fichier paw.pdf genere telechargez le. Finalement, ouvrez le fichier. Vous pouvez maintenant envoyer ce fichier paw.pdf vers une imprimante ou bien a des amis en l'attachant a un courriel. *** Section 7: Comment utiliser des programmes utilitaires de PAW? Par programme utilitaire on entend une instruction qui remplit une certaine fonction. A vrai dire, dans les exemples precedents nous avons deja vu des instructions de ce type. Par exemple: NULL 0 10 0 10 est un programme utilitaire qui trace un systeme d'axes GRAPH 10 X Y * est un programme utilitaire qui place 10 points dans un systeme d'axes SIGMA X=ARRAY(10,0#1) est un utilitaire qui genere 10 nombres compris entre 0 et 1 Dans la presente section nous utiliserons un utilitaire qui genere des nombres au hasard. Connectez-vous a mon site et telechargez: MACRO S7. L'utilitaire s'appelle RDNM (RDN est une abreviation pour ``Random'' qui veut dire ``au hasard''). Comme vous pouvez voir il utilise comme argument un vecteur. Notez que ce vecteur n'a pas besoin de contenir de nombres, mais la dimension du vecteur indique a RNDM combien de nombres il doit generer. Tous ces nombres seront compris entre 0 et 1. Un tel generateur de nombres au hasard est une chose tres commune qui existe meme sur de petits calculateurs de poche. Pour voir a quoi ressemblent les nombres qu'on a genere on va les placer sur un graphique. Pour ce faire on utilise les utilitaires NULL, ARRAY, GRAPH deja vu auparavant. Un fois que vous avez obtenu le graphique avec les etoiles, vous pouvez augmenter N et essayer par exemple N=100,1000,10000. Tous les utilitaires mentionnes jusqu'ici sont fournis par PAW, mais vous pouvez aussi en ecrire vous-memes. On en verra un exemple un peu plus tard. **** Section 8: Comment creer de la ``neige''. Il suffit de changer peu de choses a MACRO S7 pour fabriquer des flocons de neige. On va faire 3 modifications. (a) On supprime le dessin des axes et des chiffres grace a l'option AB de NULL. Notez que les axes continuent d'exister neanmoins mais sous une forme cachee. (b) On met une couleur de fond sur tout le graphique. L'instruction BOX trace un rectangle. Ce rectangle peut ou non etre rempli de couleur. Avec IGSET FAIS 0 il n'est pas rempli. Avec IGSET FAIS il est rempli. (c) Comme les flocons de neige sont blancs on choisit cette couleur pour IGSET PMCI Avec N=10, le dessin ressemble plus a un ciel etoile qu'a des flocons de neige, mais si vous prenez N=100, cela ressemblera a des flocons de neige. Essayez aussi N=1000. Au lieu d'un fond bleu essayez un fond noir. Voulez-vous rajouter le sol sur lequel tombe la neige? Rien de plus facile, il suffit de rajouter des BOX dans le bas du tableau et de les remplir avec les couleurs appropriees. Vous pouvez aussi rajouter une ecriture de ``Bonne Annee''. Inspirez-vous de MACRO S6. *** Section 9: Comment creer vos propres programmes utilitaires? A la fin de la section precedente on a propose d'ecrire ``Bonne Annee'' sur le fond avec la neige. Mais pour cela il faut definir la taille de l'ecriture, sa couleur ainsi que l'endroit ou on veut la placer. Ne pourrait-on pas faire cela une fois pour toutes? Cela est realise par la macro utilitaire MACRO BONAN A premiere vue cette macro utilitaire a l'air de ressembler a une MACRO normale. Pourtant a la premiere ligne apres les commentaires vous voyez quelque chose qui a l'air bizarre: XP=[1] ; YP=[2] ; T=[3] Qu'est que ceci signifie? Pour le comprendre il faut voir que cette macro est destinee a etre appelee (dans une autre macro) de la facon suivante: EXEC BONAN 5 6 1.5 Dans la ligne XP=[1] ; YP=[2] ; T=[3] les nombres 1,2,3 font reference a la position des arguments dans la liste d'appel. Autrement dit, on aura: XP=5, YP=6, T=1.5. Ici les symboles [1],[2],...contiennent des nombres, mais ils pourraient tout aussi bien contenir des caracteres ou bien un vecteur. Le reste de la MACRO BONAN ne differe pas d'une macro ordinaire. Pour voir comment cette macro utilitaire est utilisee, regardez MACRO TESTBONAN. -------------------------------------- MUMERISATION D'UN MOTIF Objectif: On voudrait numeriser un dessin. A titre d'exemple nous prendrons la fusee Ariane 5 mais cela pourrait aussi bien etre un arbre, un visage ou n'importe quoi d'autre. La premiere etape est de fabriquer une image d'Ariane 5 sur un transparent qu'on pourra coller avec du ruban adhesif sur l'ecran de l'ordinateur. Pour cela, on peut faire une photocopie sur transparent ou bien fabriquer le transparent a la main en repassant sur les contours avec un stylo feutre permettant d'ecrire sur un transparent. Ensuite on ouvre PAW, on agrandit au maximum la fenetre graphique (comme explique ci-dessous) et on colle le transparent sur la fenetre graphique. La methode de numerisation consiste a cliquer de facon repetee en suivant le contour a numeriser. Grace a la commande VLOCATE, chaque clic va generer deux nombres qui sont l'abscisse et l'ordonnee du point ou on a clique. Voici les commandes PAW qu'on va utiliser. Commencer par remettre toutes les variables a leurs valeurs par defaut en faisant: SET * ; IGSET * Pour agrandir au maximum la fenetre graphique faites: SET YMGU 0.7 ; SET YMGL 0.7 ; SET XMGL 0.7 ; SET XMGR 0.7 Cela reduit les marges autour du graphique a leur largeur minimum. L'ordre que nous allons utiliser pour la numerisation d'une ligne (de preference fermee) est explique ci-dessous. VLOCATE VX VY '+*L' VX: Vecteur des abscisses (x) des points enregistres VY: Vecteur des ordonnees (y) des points enregistres + : il y a une croix a la position marquee par la souris * : une etoile est placee a l'endroit ou on clique L : les points successifs sont relies par des droites Apres avoir clique le dernier point faire clic droit; cela arrete l'enregistrement. Une fois les vecteurs VX,VY crees, il faut les enregistrer en les ecrivant sur un fichier de la facon suivante VE/WRITE VX,VY 'motif1' '2F10.2' Cet ordre cree un fichier ayant pour nom ``motif1' et ou les abscisses VX et les ordonnees VY sont sous la forme suivante (les deux premieres lignes indiquent les numeros des colonnes) 10 20 1234567890123456789012345 6.23 4.34 6.29 4.41 6.45 4.63 etc etc Dans l'ecriture 2F10.2 , le dernier chiffre indique le nombre des chiffres apres la virgule. 10 indique le nombre total d'espaces occupes par le nombre y compris les chiffres devant la virgule, le . et le signe + ou - devant le nombre. Enfin le 2 au debut indique qu'on veut deux nombres avec ce format qui soient cote a cote. Ouvrez le fichier motif1, verifiez qu'il a bien la forme indiquee et mettez une legende a la fin pour vous rappeler de quoi il s'agit. Pour verifier que les chiffres enregistres sont bien corrects, il faut d'abord les lire sur le fichier motif1 puis en faire le graphique par GRAPH: VE/READ VX,VY motif1 '2F10.5' IGSET PLCI 2 ; GRAPH 18 VX VY L Nous verrons par la suite comment tracer tous les motifs d'une figure a l'aide d'une boucle DO. ----------------------------------------------- 6/3/2014 REMPLISSAGE D'UN CONTOUR AVEC DE LA COULEUR Avant de poursuivre plus avant avec la fusee Ariane nous allons dans cette seance voir 4 choses qui nous sont necessaires pour la suite. 1) Comment integrer vos macros a une macro-tiroir? 2) Comment remplir un contour avec de la couleur? 3) Comment faire une animation avec une serie d'images? 4) Comment tracer une courbe? ------- 1) Macro-tiroir Allez sur mon site: http://www.lpthe.jussieu.fr/~roehner/teaching4.html et telechargez le fichier anim2.kumac. Vue la longueur du fichier il est preferable de telecharger plutot que de faire un copier/coller. Quels sont les vertus de cette macro? * ANIM2 est une sorte de super-macro car elle contient tout un ensemble de macros. On peut aussi la voir comme un livre qui contiendait une succession de chapitres constitues par les macros individuelles. Ces macros se notent de la facon suivante: ANIM2#S1, ANIM2#S2, etc * Vous pouvez voir qu'on retrouve dans ANIM2 toutes les macros que nous avons ecrites depuis le debut du semaetres. C'est en cela qu'on l'appelera une macro-tiroir. * ANIM2 a deux autres avantages. On remet a leur valeur par defaut les parametres appartenant aux 3 ensembles de parametres IGSET, SET et OPTION. On definit un fichier postscript qui va permettre de conserver le dessin. ---- 2) Couleurs Nous allons maintenant utiliser la macro ANIM2#COULEUR. Pour cela assurez vous que dans la succession des commandes EXEC qui sont au debut toutes les lignes ont des * sauf la ligne EXEC ANIM2#COULEUR. Ainsi seule cette macro sera executee. Ensuite, descendez jusqu'a MACRO COULEUR et assurez-vous que la variable CAS (qui est a une dizaine de lignes du debut) est bien egale a 1, c'est-a-dire: CAS=1 Pour lancer l'execution il suffit de taper dans la fenetre de commande: EXEC ANIM2 Vous voyez apparaitre un triangle rempli de hachures. En donnant a CAS les valeurs 1,2,...,10 vous verrez ce meme triangle rempli par d'autres hachures ou par des couleurs. Dans chaque exemple regardez les valeurs des parametres correspondants. ---- 3) Animation ANIM2#COULEUR definit 10 dessins. Au lieu de les regarder un par un on peut les faire defiler a l'ecran. Cela est fait dans ANIM2#TESTCOUL. Remontez au debut de ANIM2 et assurez-vous que seule cette macro sera executee, cela en metant un * devant EXEC ANIM2#COULEUR et en enlevant au contraire le * devant EXEC ANIM2#TESTCOUL. Descendez dans MACRO#TESTCOUL et assurez vous que TM=100000. Lancez l'execution en tapant: EXEC ANIM2 dans la zone de commande. Si tout se passe bien vous verrez defiler les 10 images precedentes. Comment cela a-t-il ete realise? On a fait les 10 graphiques successivement grace a une boucle DO. Mais si on ne faisait que cela les images defileraient a l'ecran tellement vite qu'on ne verrait en fait que la derniere. Vous pouvez vous en assurer en mettant un * devant la ligne comportant la boucle DO sous TEMPORISATION. Pour voir les images intermediaires il faut marquer une pause apres chaque image. Pour cela on demande a l'ordinateur de faire une serie d'additions qui vont le tenir occupe; pendant ce temps il ne pourra pas afficher l'image suivante. En changeant le nombre d'operations, c'est-a-dire la variable TM, on peut faire defiler les images plus ou moins vite. Ainsi avec TM=1 on est quasiment dans la meme situation que sans temporisation. C'est le meme principe qu'on utilisera dans la suite pour toutes nos animations. 4) Tracer une courbe Dans de nombreux domaines, que ce soit en physique, economie, demographie, etc on a souvent besoin de tracer des courbes. A titre d'illustration, nous allons tracer la courbe de la participation aux elections europeennes. Une fois qu'on a defini les abscisses et ordonnees par les deux vecteurs X(),Y(), on pourrait tracer la courbe juste par la seule commande: GRAPH [N] X Y L ou la lettre L indique qu'on veut que les points successifs soient relies par des lignes droites. Cela produirait un dessin ``brut''. Pour faire un dessin plus soigne il vaut mieux choisir de facon appropriee les divers parametres. Du fait que le graphique ressemble a une droite on est tente de penser que cette evolution va se poursuivre dans les annees ulterieures. Cela incite a prolonger cette droite. En activant la partie entre GOTO 1 et 1: on fait apparaitre ce prolongement. Ensuite on peut se demander comment un taux de 40% se compare aux taux dans d'autres pays. La partie GOTO 2 -> 2: donne une comparaison avec les Etats-Unis. ************************************ CHAPITRE 2: REPRESENTATIONS D'UN MOTIF ENREGISTRE PAR VLOCATE ----------------------------------------------- Cours du 20/3/2014 REPRESENTATIONS DE MATHIEU Erratum (25/3/2013) Le nom de la macro LIMOT a ete change en LIREMOTIF. En meme temps son contenu a ete legerement change en ce sens que la realisation du graphique qui etait faite a la fin de LIMOT est maintenant effectuee dans une macro separee appelee GRAFMOTIF. (1) Dessin des lignes du visage de Mathieu Grace a VLOCATE notre camarade Anna Kupniewska a enregistre 5 fichiers de nombres representant les 5 lignes du visage de Mathieu (dans une humeur plutot somnolante). A partir de ces fichiers nous voulons maintenant reproduire ce visage. La premiere chose a faire est de telecharger a partir de mon site le fichier motif.zip. Un fichier ``.zip'' est en fait une ``boite'' contenant de nombreux fichiers. Une fois cette ``boite'' telechargee dans votre ordinateur (dans le repertoire ou se trouve PAW), il faudra l'ouvrir pour recuperer tous les fichiers qu'elle contient. Le second element qui va vous etre necessaire est la MACRO qui va lire ces fichiers et qui va faire le dessin du vusage de Mathieu. Pour cela telechargez l'ensemble du fichier anim2.kumac. Vous y trouverez une macro qui s'appelle ANIM2#LIMOT. Dans un moment nous regarderons de plus pres les instructions qu'elle contient. Tout d'abord executons LIMOT. Cela est fait dans la macro ANIM2#MATHIEUVISAGE. Pour executer cette macro vous avez le choix entre les deux possibiltes habituelles: (i) Tapez EXEC ANIM2#MATHIEUVISAGE dans la fenetre de commande (ii) Assurez-vous que la ligne EXEC ANIM2#MATHIEUVISAGE qui se trouve au debut de ANIM2 n'est pas precedee d'un *, puis tapez EXEC ANIM2 dans la fenetre de commande. Donnons maintenant quelques explications complementaires. (1) LIMOT a besoin de deux arguments: * un nom de qui lui permettra de trouver les fichiers qu'il va lire. * un mombre qui lui dit combien il y a de lignes dans le dessin. Le second point ne pose pas de probleme mais le premier demande quelques explications. Le nom qui a ete choisi est momat qui est une combinaison de mo (abbreviation de motif) et de mat (abbreviation de mathieu). Par la suite, nous fabriquerons de nombreux autres motifs mais nous conviendrons de leur donner un mom commencant par les deux lettres mo. De cette facon tous ces fichiers seront ranges les uns apres les autres dans votre dossier paw (une autre possibilite serait de creer un repertoire special pour les fichiers motifs et d'indiquer dans les macros le chemin menant a ce repertoire). Il y a 6 fichiers momat: 5 sont numerotes de 1 a 5, et le 6e n'a pas de numero. Que contient-il? Ouvrez-le et vous verrez qu'il contient que 5 nombres. Que sont ces nombres? Ce sont les nombres de points de chaque ligne du motif. LIMOT a besoin de ces nombres pour pouvoir lire les fichiers et s'arreter de lire a la fin du fichier. Si on ne lui dit pas ou s'arreter il va quand meme s'arreter a la fin du fichier mais si vous avez laisse trainer une ligne vide il va la lire comme etant une ligne de zeros. En resume, chaque nouveau motif sera defini par des fichiers: moxxx1, moxxx2,... + moxxx. (2) Mettre des couleurs Vous savez d'un cours anterieur qu'on peut mettre de la couleur par la commande: FAREA 16 VX VY ou 16 est la dimension commune des vecteurs VX,VY ANIM2#LIMOT a cree 5 paures de vecteurs. Comment savoir lesquels correspondent aux yeux, au nez, a l'ensemble du visage? Une facon de le savoir est evidemment de le noter au moment ou on utilise VLOCATE. Mais si on a oublie de le faire, ou bien si les fichiers one ete produits par quelqu'un d'autre il y a un moyen de savoir. Pour cela retournez dans LIMOT. Vous verrez une ligne intitulee: * ON MET (eventuellement) UN NUMERO A CHAQUE MOTIF Activez cette commande en enlevant le * et re-executez ANIM2#LIMOT. Vous verrez apparaitre des nombres a cote de chaque ligne. visage entier -> 1 yeux -> 2,3 nez -> 4 En activant la seconde partie de la macro MATHIEUVISAGE, vous verrez apparaitre les couleurs qu'on a choisi. Bien sur vous pouvez les changer. Maus vous voyez aussi que la bouche a disparu. Elle a ete recouverte par la couleur du visage. Nous allons en profiter pour introduire une bouche variable. Comme l'aspect de la bouche conditionne en grande partie l'expression du visage, il est important de pouvoir la changer facilement. (3) Bouche de forme variable. Schematiquement la bouche peut etre representee comme un arc de cercle. Nous allons donc nous servir d'une commande permettant de tracer un arc de cercle. Voici la description de cette commande tiree du manuel: ARC [XC] [YC] [R1] [R2] [A1] [A2] XC,YC: Coordonnees du centre R1: Rayon du cercle interieur R2: Rayon du cercle exterieur A1,A2: angles de debut et fin de l'arc en degres (compris entre 0 et 360) Vous voyez que cette commande trace en fait deux arcs de cercle concentriques. Nous n'aurons besoin que d'un seul. Pour cela il suffira de prendre R1=R2. Je vous laisse le soin de choisir vous-memes les valeurs de ces parametres. --------------------------------------------------------- Cours du 27/3/2014 Decollage d'Ariane 5 Le but du cours est de faire une animation montrant le decollage de la fusee Ariane 5. Pour cela, ainsi d'ailleurs que pour toutes les animations ulterieures, nous aurons besoin d'une macro qui s'appelle ANIM2#MOTIFP Cette macro est importante car elle permet d'agrandir ou de faire pivoter un motif, puis de le placer a l'emplacement de son choix. Comme pour toute macro qui a plusieurs arguments, une familiarisation est necessaire. Cet apprentissage sera l'objet de la premiere partie et se fera grace a la macro ANIM2#TESTMOTIFP Ensuite dans la seconde partie, nous utiliserons ANIM2#ARIANEB pour montrer les differentes etapes du decollage d'Ariane 5. L'animation proprement dite est faite dans la macro ANIM2#ARIANEC mais nous n'aurons pas le temps de la regarder en detail. Cependant vous pouvez visionner le film obtenu sur mon site; il s'agit de ``FILM 5: Film ariane5.gif''. Remarque: Par rapport a la semaine derniere, le nom de la macro LIMOT a ete change en LIREMOTIF. En meme temps son contenu a ete legerement change en ce sens que la realisation du graphique qui etait faite a la fin de LIMOT est maintenant effectuee dans une macro separee appelee GRAFMOTIF. ETAPE 1: Comme d'habitude, commencez par telecharger la nouvelle version de anim2.kumac. Remarque Sur certains postes, apres un clic droit sur anim2.kumac, WINDOWS vous propose de remplacer l'ancienne version par la nouvelle. Sur d'autres postes, au contraire, WINDOWS cree une second version en rajoutant (1) au nom du fichier, ce qui est tres peu approprie pour nous. Donc, pour ne pas avoir de probleme il est preferable de commenver par detruire l'ancienne version. ETAPE 2 Executez la macro ANIM2#TESTMOTIFP en faisant EXEC ANIM2 avec les etoiles aux bons endroits. Vous voyez un rectangle bleu et un rectangle rouge. Le second est ce qu'on obtient en faisant agir ANIM2#MOTIFP sur le premier. Ici c'est juste l'emplacement qui est change. A part l'emplacement, on peut aussi changer la taille et l'orientation. C'est ce qui est illustre dans les sections 2,3,4 et 5. A titre d'exercice, dessinez sur une feuille le rectangle que vous voulez obtenir, puis choisissez les arguments donnant ce resultat. Au lieu de faire ces operations juste sur un rectangle, on peut les faire sur le motif d'Ariane 5. La seule chose qui change ce sont les vecteurs Xi,Yi qui definissent le motif mais en fait on n'a pas besoin de s'en occupper. Ils sont lus et transformes par les macros. ETAPE 3 Executez la macro ANIM2#ARIANEB en faisant EXEC ANIM2 avec les etoiles aux bons endroits. Les sections successives proposent un croquis d'Ariane sans couleurs, puis avec couleurs, puis dans les differentes phases du decollage. Que faut-il en retenir? (1) L'ordre dans lequel on met les couleurs est important car les couleurs se superposent dans l'ordre ou on les met. Par exemple si on veut que le banc de lancement soit recouvert par les flammes sortant des propulseurs il faut executer la macro faisant le banc AVANT la macro faisant les flammes. De meme il fait faire la couleur du ciel avant toute autre chose. (2) Une fois qu'on a defini les images pour les phases successives il n'est pas difficile de faire l'animation. Il suffit de reprendre la methode que nous avons deja vue dans un cours precedent (la fusee etait schematisee par un A). --------------------------------------------------------- Cours du 3/4/2014 Animation de Mathieu Le but final du cours (mais aurons-nous le temps?) est de faire un diaporama pour lequel le personnage de Mathieu sera un des deux guides, l'autre etant une demoiselle que nous pourrons appeler Fanto car elle est une variante du personnage de Fantomette qui est l'heroine de toute une collection de romans pour les enfants. Aujourd'hui nous allons faire connaissance avec Mathieu dont nous avons deja parle. Vous vous souvenez sans doute qu'il nous a ete communique par Mme Catherine Le Norcy qui enseigne dans le cours de dessin de l'Association Philotechnique. Ce sera une occasion supplementaire pour apprendre a utiliser au mieux une macro par un choix judicieux de ses arguments. ETAPE 1: Allez sur mon site http://www.lpthe.jussieu.fr/~roehner/teaching4.html et visionnez le film: FILM 4, Film mathieu.gif Ce film est l'aboutissement des operations successives que nous allons voir durant le cours. ETAPE 2: Comme d'habitude, telechargez le fichier anim2.kumac (detruisez au prealable l'ancienne version afin qu'il n'y ait pas deux fichiers portant le meme nom). ETAPE 3: Allez a MACRO TESTMATHIEU qui est vers la fin du fichier. Elle comporte 5 parties que nous allons executer successivement. Lancez la partie 1 soit en tapant: EXEC ANIM2#TESTMATHIEU soit en tapant: EXEC ANIM2 Vous verrez apparaitre le personnage de Mathieu qui est cree par: MACRO MATHIEU Voyons de plus pres comment cette macro fonctionne. Cela est explique dans les lignes de commentaires qui sont au debut et qu'on reproduit ci-dessous: MACRO MATHIEU * usage: EXEC ANIM2#MATHIEU [MG] [MD] [PG] [PD] [H] [K] * -> dessin de Mathieu * LA MACRO DESSINE MATHIEU AVEC LES BRAS ET JAMBES DANS LA POSITION * INDIQUEE PAR LES 4 PREMIERS ARGUMENTS * ET LA BOUCHE DEFINIE PAR H ET K * * MG: MAIN GAUCHE MD: MAIN DROIT * PG: PIED GAUCHE PD: PIED DROIT * CES VARIABLES DONNENT LES ANGLES EN DEGRES, * PAR RAPPORT A L'HORIZONTALE POUR LES MAINS, * PAR RAPPORT A LA VERTICALE POUR LES PIEDS. * PLUS PRECISEMENT: * MAINS: ANGLE>0 -> BRAS LEVE (par rapport a l'horizontale) * MAINS: ANGLE<0 -> BRAS BAISSE * * PIEDS: ANGLE>0 -> PIEDS VERS L'EXTERIEUR * * H,K DEFINISSENT LA BOUCHE. * H EST UN PARAMETRE QUI TRADUIT L'HUMEUR DE MATHIEU, H=-1,0,1 * POUR H=-1, MATHIEU N'EST PAS CONTENT -> CONCAVITE TOURNEE VERS LE BAS * POUR H=0, LA BOUCHE EST UNE LIGNE HORIZONTALE * POUR H=1, MATHIEU EST CONTENT -> CONCAVITE TOURNEE VERS LE HAUT * K EST LE RAYON DE LA BOUCHE (IL FAUT K>L/2, L=LONGUEUR DE LA BOUCHE) * SI K EST GRAND, LA BOUCHE EST QUASI-PLATE, * SI K EST PROCHE DE L/2, LA BOUCHE FAIT PRESQUE UN DEMI-CERCLE. Pour commencer, on fera quelques exercices pour les bras et jambes. Essayez de reproduire les attitudes que je dessinerai au tableau. Pour la bouche les choses sont plus simples. * Prenez H=-1 K=0.31, puis donnez a K des valeurs de plus en plus grandes. * Prenez H=0, remarquez que dans ce cas la valeur de K ne joue pas de role. * Prenez H=1 K=5, puis donnez a K des valeurs de plus en plus petites mais en restant au-dessus de 0.3 Dans la partie 2 on fait bouger le bras de droite de facon continue en donnant successivement des valeurs de plus en plus grandes a l'angle. Dans la partie 3 on fait bouger la bouche en changeant de facon continue la valeur de K Dans la partie 4 on fait bouger bras et jambes dans un mouvement d'allers-retours successifs. Pour produire un mouvement periodique on n'est pas surpris qu'il faille faire appel aux fonctions sinus et cosinus car ce sont les fonctions periodiques les plus simples. Dans la partie 5 on combine les mouvements des deux parties precedentes. Le resultat est ce que vous avez vu sur le film du debut. COMPARAISON ENTRE LINUX ET WINDOWS Nous avons souvent eu l'occasion d'evoquer les differences entre LINUX et WINDOWS mais de facon plutot occasionnelle sans l'expliquer vraiment. Comme ceci est l'une de nos dernieres seances, voici quelques explications complementaires. WINDOWS est le systeme d'exploitation propose par Microsoft. Son succes fut planetaire au point qu'actuellement pres de 90% des ordinateurs personnels fonctionnent sous WINDOWS Son succes a tenu a deux raisons principales. 1) Il y a 15 ou 20 ans, l'installation et meme l'utilisation de LINUX demandaient une certaine competence et du temps de familiarisation. Au contraire, WINDOWS paraissait d'un abord plus facile 2) Le fait que WINDOWS soit automatiquement fourni lors de l'achat d'un ordinateur fut evidemment l'effet determinant qui a completement fausse la concurrence et continue de la fausser a l'heure actuelle. On pourait citer bien des differences entre WINDOWS ET LINUX. En voici quelques unes. 1) LINUX et tous les logiciels qui vont avec sont en principe gratuits. 2) Les ordinateurs sous LINUX ne sont pas affectes par des virus. 3) LINUX permet aux ordinateurs d'etre multitaches. De fait, sur une station LINUX vous avez 6 (ou plus) ecrans differents. Chacun de ces ecrans fonctionne comme un ordinateur (virtuel) separe. Ce ne sont pas juste des icones. Vous pouvez faire tourner un programme different sur chacun de ces ecrans. C'est tres commode. 4) Si vous voyagez et que vous voulez recuperer quelque dossier qui se trouve sur l'ordinateur laisse a votre travail ou a votre domicile, rien de plus simple. Vous tapez par ex: ssh -X roehner@ccali.in2p3.fr Le systeme ccali.in2p3.fr vous demande votre mot de passe et immediatement vous pouvez travaillez sur cet ordinateur lointain comme si vous etiez de retour chez vous. Pour recuperer des fichiers, rien de plus simple en utilisant les commandes de sftp (secure file transfer protocol). Par ex la commande: get *kumac va vous permettre de recuperer tous les fichiers de type kumac. 5) L'organisation des fichiers est plus systematique. ----------------------------------------------- Cours du 10/4/2014 RECAPITULATION ET DIAPORAMA Dans le cours d'aujourd'hui il y aura deux parties. PARTIE I (1h45) Tout d'abord, en cette avant-derniere seance, nous souhaitons recapituler les points importants vus (peut-etre trop rapidement) dans les cours precedents. Cela se fera par des exemples tres simples que vous trouverez dans trois macros: 1) ANIM2#TESTNB -> nombres, variables texte 2) ANIM2#TESTVEC -> vecteurs 3) ANIM2#TESTMACRO -> macros ETAPE 1: Comme d'habitude, commencez par telecharger anim2#kumac depuis mon site: http://www.lpthe.jussieu.fr/~roehner/teaching4.html ETAPE 2: Comme d'habitude activez les differentes sections a l'aide des etoiles et suivez les indications. Sur certaines sections il y a des questions auxquelles on pourra esayer de repondre. PARTIE II (15mn) Pour realiser le diaporama une etape essentielle est de pouvoir marier les personnages crees par PAW avec des photos prises sur Internet. C'est ce que realise la macro ANIM2#PHOTO. Cette macro comporte deux instructions essentielles: XP=5 ; YP=9 ; PICTURE/LOAD [XP] [YP] fanto1b.gif qui permet d'importer le fichier d'une image (fanto1b.gif) pourvu que ce fichier soit de type gif. La seconde instruction importante est: PICT/PRINT pict00.gif qui fabrique un fichier de type gif representant l'image qu'on a realisee. UNE BONNE NOUVELLE! Durant ce cours vous avez appris non pas seulement un langage mais en fait deux. En effet, PAW est tres similaire au langage unix (aussi appele bash) qui est utilise dans les systemes LINUX. Par exemple: $a -> [a] le fait que les variables peuvent etre aussi bien des nombres ou du texte notation [1], [2] pour les arguments d'une macro, etc. A titre d'illustration voici une macro ecrite en unix (bash).