Changes between Initial Version and Version 1 of programmation


Ignore:
Timestamp:
18/01/2017 10:46:56 (7 years ago)
Author:
/C=FR/O=CNRS/OU=UMR5821/CN=Frederic Melot/emailAddress=frederic.melot@…
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • programmation

    v1 v1  
     1= Trucs & Astuces de programmation =
     2[[PageOutline(2-3)]]
     3
     4== C++ ==
     5=== Apprendre le C++ à partir de ZERO ===
     6
     7Vous avez toujours rêvé d'apprendre la POO, mais pas vraiment trouvé comment faire ? Ce site est fait pour vous :
     8[http://www.siteduzero.com/tutoriel-3-11406-apprenez-a-programmer-en-c.html]
     9
     10Toutes les bases du C++ y sont abordés à partir de zéro (d'où le nom du site...). En un rien de temps vous serez capable de faire vos propres classes, GUI, et le monde dont vous avez rêvé (celui d'un code propre qu'on comprend) vous sera ouvert !
     11
     12On trouve également sur le même sites de nombreux tutoriels, entre autres :
     13Makefile
     14Linux
     15Langage informatique divers (C, C++, Python, IDL...)
     16
     17=== Faire des ''cout'' en couleur ===
     18Dans vos programmes vous pouvez rajouter un peu de couleur lorsque vous faites des ''cout'' grâce aux commandes d'échappement ANSI.
     19Par exemple essayez ceci :
     20{{{
     21cout<<"\x1b[33m"<<"\x1b[1m"<<"\x1b[40m"<<" YO"<<"\x1b[0m"<<"\x1b[33m"<<endl;
     22}}}
     23Le code source perd un peu en lisibilité mais l'affichage gagne vraiment une dimension supplémentaire.
     24
     25Pour plus de détails, reportez vous à la page http://www.iut-arles.up.univ-mrs.fr/eremy/Aide/SeqEscANSI.html
     26
     27
     28\\
     29
     30
     31== ROOT ==
     32
     33[http://root.cern.ch/ Root] est un programme d'analyse de données développé par le CERN.
     34
     35=== Configurer ROOT ===
     36
     37Il faut redéfinir les variables d'environnements :
     38 * ROOTSYS (quel Root utilisez vous),
     39 * PATH (où se trouve l'exécutable),
     40 * LD_LIBRARY_PATH (où se trouvent les librairies)
     41 * MANPATH (où se trouve l'aide)
     42Seul ROOTSYS est propre à Root, les autres sont utilisées plus généralement par linux.
     43
     44Par exemple :
     45{{{
     46# sur SLC4 (Scientific Linux 4)
     47setenv ROOTSYS /utils/SLC4/ROOT/root_v5.18.00
     48# sur SLC3 (Scientific Linux 4)
     49setenv ROOTSYS /utils/SLC3/root_v5.17.02.Linux.slc3/
     50
     51setenv PATH ${ROOTSYS}/bin:${PATH}
     52
     53if( $?LD_LIBRARY_PATH ) then # teste si la variable existe déjà
     54    setenv LD_LIBRARY_PATH ${ROOTSYS}/lib/root:${LD_LIBRARY_PATH}
     55else
     56    setenv LD_LIBRARY_PATH ${ROOTSYS}/lib/root
     57endif
     58
     59setenv MANPATH ${MANPATH}:${ROOTSYS}/man
     60}}}
     61
     62=== Quelques trucs en vrac ===
     63
     64 * gStyle->!SetPalette(1) permet d'avoir de plus jolies couleurs que celles par défaut.
     65 * TH1.!SetDirectory(0) permet de ne pas référencer l'histogramme dans le répertoire courant, et donc de continuer à pouvoir y accéder lorsque celui-ci est fermé (par exemple si on lit un fichier). Par défaut pour tous les histogrammes : TH1::!AddDirectory(kFALSE).
     66 * Pour sauver des TTree dans des fichiers de plus de 2 Go, rajouter : {{{TTree::SetMaxTreeSize(20000000000LL); // 20 GB}}}.
     67
     68=== Faire un script root auto-exécutable ===
     69
     70La solution : utiliser env. Mais il y a deux problèmes :
     71 * root va lire la première ligne qui commence par #!/bin/env et ne va rien comprendre
     72   * Solution : écrire #!//bin/env (// interprété comme un commentaire)
     73 * env ne permet pas de passer des options à root (comme -l : pas de splash screen ou -q : quitte après l'exécution de la macro)
     74   * Solution : utiliser [attachment:rootMacro ce script (rootMacro)] (à mettre soit dans le même répertoire soit dans un répertoire listé dans $PATH). Il permet également d'avoir des arguments sur la ligne de commande qui seront passés sous la forme d'une chaîne de charactère unique.
     75
     76Si tout cela est fait, commencer votre macro par :
     77{{{
     78#!//bin/env rootMacro
     79}}}
     80Il ne reste plus qu'à faire un chmod +x monScript.C. Et ./monScript.C est auto-exécutable.
     81
     82
     83\\
     84
     85
     86== IDL (Interactive Data Language) ==
     87
     88C'est un langage de programmation interprété créé dans les années 70 pour traiter des observations, donc surtout utile pour ceux (et celles) qui font de l'astro.
     89
     90Tout d'abord le site officiel de l'éditeur du language:  [http://www.ittvis.com/].
     91
     92Aide synthaxique (vraiment des trucs de base mais pratique quand on débute) sur [http://fermi.jhuapl.edu/s1r/idl/idl_syntx.html].
     93 
     94Un peu de documentation sur [http://www.astro.virginia.edu/class/oconnell/astr511/idl_5.1_html/idl.htm].
     95
     96Sinon le guide online de IDL est très facile à consulter : après avoir lancé IDL dans un terminal, taper ? et le fichier pdf s'ouvre automatiquement.
     97