[[PageOutline(2-3)]] [[FaqLpscToc]] = Trucs & Astuces de programmation = == C++ == === Apprendre le C++ à partir de ZERO === Vous avez toujours rêvé d'apprendre la POO, mais pas vraiment trouvé comment faire ? Ce site est fait pour vous : [http://www.siteduzero.com/tutoriel-3-11406-apprenez-a-programmer-en-c.html] Toutes 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 ! On trouve également sur le même sites de nombreux tutoriels, entre autres : Makefile Linux Langage informatique divers (C, C++, Python, IDL...) === Faire des ''cout'' en couleur === Dans vos programmes vous pouvez rajouter un peu de couleur lorsque vous faites des ''cout'' grâce aux commandes d'échappement ANSI. Par exemple essayez ceci : {{{ cout<<"\x1b[33m"<<"\x1b[1m"<<"\x1b[40m"<<" YO"<<"\x1b[0m"<<"\x1b[33m"<!SetPalette(1) permet d'avoir de plus jolies couleurs que celles par défaut. * 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). * Pour sauver des TTree dans des fichiers de plus de 2 Go, rajouter : {{{TTree::SetMaxTreeSize(20000000000LL); // 20 GB}}}. === Faire un script root auto-exécutable === La solution : utiliser env. Mais il y a deux problèmes : * root va lire la première ligne qui commence par #!/bin/env et ne va rien comprendre * Solution : écrire #!//bin/env (// interprété comme un commentaire) * 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) * 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. Si tout cela est fait, commencer votre macro par : {{{ #!//bin/env rootMacro }}} Il ne reste plus qu'à faire un chmod +x monScript.C. Et ./monScript.C est auto-exécutable. \\ == IDL (Interactive Data Language) == C'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. Tout d'abord le site officiel de l'éditeur du language: [http://www.ittvis.com/]. Aide synthaxique (vraiment des trucs de base mais pratique quand on débute) sur [http://fermi.jhuapl.edu/s1r/idl/idl_syntx.html]. Un peu de documentation sur [http://www.astro.virginia.edu/class/oconnell/astr511/idl_5.1_html/idl.htm]. Sinon 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.