Tutorat en bio-informatique 3 octobre 2012
Au programme… Introduction et présentation Pour bien se préparer aux examens Éditeurs de texte et console Les variables
Introduction et présentation Objectifs : Aider à bien réussir le cours IFT1015 (MAT1400) Rassembler les étudiants de première année Apprendre à être de meilleurs programmeurs Format : Séances magistrales Questions Exercices Interaction
Introduction et présentation Site web du tutorat : http://www-etud.iro.umontreal.ca/~tremblao/tutorat/aut12/ Tuteur : Olivier Tremblay Savard olivier.tremblay-savard@umontreal.ca Bureau : local 3165 du pavillon André-Aisenstadt
Introduction et présentation Plan de la session : 12 séances au total, incluant : 1 séance de préparation à l'examen intra 1 séance de préparation à l'examen pratique (?) 1 ou 2 séance(s) de préparation à l'examen final
Introduction et présentation Attention : Le tutorat en bio-informatique ne remplace pas votre cours IFT1015!
Pour se préparer aux examens Les examens des années précédentes sont disponibles sur le site web de la bibliothèque de mathématiques et informatique : http://www.bib.umontreal.ca/MI/examens/cours-informatique/
Éditeurs de texte C’est ce qu’on utilise pour écrire un programme Bloc-notes sur Windows en est un exemple (mais il y a beaucoup mieux!) Sur Linux, plusieurs éditeurs de texte sont disponibles : Emacs, Vi, KWrite, gedit, etc. Eclipse (environnement de développement)
KWrite
Emacs
JavaScript Créé en 1995 par Brendan Eich Typage dynamique et faible Supporte à la fois la programmation orientée objet, impérative et fonctionnelle
JavaScript Différent de Java! Influencé par C, Java, Perl, Python, Scheme et Self Principalement utilisé côté client (pour rendre les sites web dynamiques)
JavaScript côté client <html> <head> <title>Page de test</title> <script> function doSomething() { alert("Salut!"); } </script> </head> <body> <h2>Voici une page de test!</h2> <button type="button" onclick="doSomething()">Un bouton!</button> </body> </html>
JavaScript côté serveur Il existe plusieurs interpréteurs de JavaScript (Rhino par exemple) On peut donc exécuter un programme écrit en JavaScript dans la console : rhino programme.js
Console La console sert à donner des commandes à l’ordinateur (déplacement et copie de fichiers, parcours des répertoires, etc.) On peut lancer des programmes (Emacs, KWrite) dans la console On se sert également de la console pour lancer nos programmes JavaScript
Console
Variables C’est l’élément de base d’un programme Une variable sert à garder une valeur ou un résultat en mémoire On veut garder le résultat d’une vérification ou d’un calcul en mémoire afin de ne pas refaire le travail à chaque fois
Variables Un exemple concret : Vous partagez un casier avec un ami et c’est votre ami qui pose un cadenas à combinaison. Vous ne voulez pas avoir à appeler votre ami pour lui demander la combinaison à chaque fois que vous avez à ouvrir le casier. Vous prenez donc la combinaison en note.
Variables Un exemple en programmation : AGCTAAGTACAAAGTAACAG Le nombre de A : x = 10 Le nombre total de nucléotides : y = 20 Le pourcentage de A dans la séquence : z = x / y * 100
Variables AGCTAAGTACAAAGTAACAG Vous pouvez choisir quel nom donner à une variable! Un exemple en programmation (version 1.1) : AGCTAAGTACAAAGTAACAG nombreA = 10 nombreNucleotides = 20 pourcentageA = nombreA / nombreNucleotides * 100
Variables Choisir des noms évocateurs pour vous permettre (maintenant et plus tard) de vous comprendre et/ou pour aider vos collègues à vous comprendre
Règles pour le choix d’un nom Variables Règles pour le choix d’un nom Le premier caractère ne peut pas être un chiffre Aucun espace, aucun accent On utilise les majuscules pour séparer les mots (premier mot commence avec une lettre minuscule) ATTENTION : leNombre lenombre
Règles pour le choix d’un nom Variables Règles pour le choix d’un nom Les caractères tels que & ~ ‘ # {} [] () - + / ` ^ @ = % * ? : ; . , \ ! ne peuvent pas être utilisés $ _ peuvent être utilisés
Variables Travaillons-nous seulement avec des nombres entiers en programmation? NON! On peut travailler avec des nombres décimaux des chaînes de caractères ("J’aime le jambon!") des booléens (vrai ou faux) des tableaux de nombres etc.
Types de variables 3 types primitifs supportés en JavaScript : Number : nombre entier (2, -55, 1665442) ou nombre décimal (-123.456, 7.5) String : chaîne de caractères ("J’aime le jambon!") Boolean : true ou false
Types de variables Pour chaque type, on a : Un ensemble d’opérations permises Un nombre limité de valeurs possibles
Valeurs possibles Boolean : true false
Valeurs possibles String : "N'importe quel nombre de caractères" 'Entre guillemets ou apostrophes' 'Il faut parfois utiliser le \\ pour différencier une fin de string d\'un caractère de la string'
Valeurs possibles String : Saut de ligne : "\n" Tabulation : "\t"
Valeurs possibles Number : Nombre entier : De 0 à +- 2^53 (9007199254740992)
Valeurs possibles Lorsqu'on est en dehors des valeurs sécuritaires entières : var nb1 = 9007199254740992; var nb2 = nb1 + 1; // donne 9007199254740992 !!! var nb3 = nb1 + 2; // donne 9007199254740994 !!!
Valeurs possibles Number : Nombre décimal (on utilise le . et non pas la , pour séparer les décimales) Valeur maximale : 1.79769e+308 Plus petite précision : 5e-324
Valeurs possibles Lorsqu'on est en dehors des valeurs possibles : var nb4 = Number.MAX_VALUE; //valeur maximale var nb5 = nb4 * 2; // donne Infinity var nb6 = nb4 * -2; // donne -Infinity
Déclaration d’une variable C’est le fait de créer une nouvelle variable En JavaScript, on recommande d'utiliser le mot clef 'var' avant le nom de la variable : var nombreEntier; var nombreDecimal; var phraseImportante; var caractere;
Déclaration d’une variable Le nom d’une variable doit : respecter les règles être significatif être le plus court possible Ainsi, on pourrait avoir : var nombreEntierDeChaises; var nbChaises; var caractere; var note;
Affectation d’une variable C’est le fait de donner une valeur à une variable Le signe = est utilisé en JavaScript pour l’affectation Il doit être placé immédiatement après le nom de la variable (à droite) Cette forme doit être respectée : nomDeVariable = (nouvelle valeur)
Affectation d’une variable Exemples : nbChaises = 32; nbPattes = nbChaises * 4; La déclaration peut se faire en même temps que l’affectation : var taxeProvinciale = 0.095; var phrase = "J’aime le jambon " ;
Affectation d’une variable Un exemple en programmation (version 1.2): AGCTAAGTACAAAGTAACAG var nbA = 10; var nbNucleo = 20; var pourcentA = nbA / nbNucleo * 100;
Initialisation Il est important d’initialiser (de donner une valeur initiale) les variables, sinon le traitement est impossible Une variable qui n'est pas initialisée aura comme 'valeur' : undefined
Initialisation Nombre : Chaîne de caractères : var nb = 575; var maString = "mot"; Sans initialisation : var nb; print(nb+1); //imprime : NaN (not a number)
Exercice 1 Paul a 200 $ et il achète deux jeux vidéos : Diablo 3 (60 $) et Mass Effect 3 (40 $). Déclarez toutes les variables nécessaires (avec le nom, la valeur et la bonne syntaxe) au calcul d’une variable nommée reste, qui représente l’argent qui restera dans le portefeuille de Paul après son achat.
Exercice 1 (réponse) var argent = 200; var coutD3 = 60; var coutME3 = 40; var reste = argent - coutD3 - coutME3;
Opérations arithmétiques + addition a + 4 - soustraction a – 4 * multiplication a * 4 / division a / 4 % modulo a % 4
Opérations arithmétiques + addition a + 4 - soustraction a – 4 * multiplication a * 4 / division a / 4 % modulo a % 4 Modulo = le reste d’une division entière : 13 % 3 = 1 (4*3) + 1 = 13
Opérations arithmétiques Opérateur += res = res + 4; équivalent à res += 4; Opérateur ++ res = res + 1; équivalent à res++; Opérateur -- res = res - 1; équivalent à res--;
Priorités La multiplication, la division et le modulo ont priorité sur l’addition et la soustraction Entre opérations de même priorité, c’est l’opération à gauche qu’on effectue en premier (comme en mathématiques)
Priorités A + B * C ( A + B ) * C Les parenthèses permettent d’augmenter la priorité d’une opération, comme en mathématiques
Exercice 2 Paul a oublié de calculer les taxes sur ses jeux! Avec une taxe fédérale de 5 % et une taxe provinciale de 9,5 % sur les jeux Diablo 3 (60 $) et Mass Effect 3 (40 $), déclarez toutes les variables nécessaires (avec le nom, la valeur et la bonne syntaxe) au calcul d’une variable nommée total, qui représente le coût total de l’achat de Paul.
Exercice 2 (réponse) var tps = 1.05; var tvq = 1.095; var coutD3 = 60; var coutME3 = 40; var sousTotal = coutD3 + coutME3; var total = sousTotal * tps * tvq;
Opérations sur les Strings On peut utiliser un opérateur arithmétique (+) sur les Strings en JavaScript (concaténation) : var s = "J’aime "; var s2 = "la programmation!"; var s3 = s + s2; //s3 devient: “J’aime la programmation!” Pour écrire la chaîne de caractères s3 dans la console: print(s3);
Opérations sur les Strings L’opérateur += var s = "J’aime "; s += "la programmation!"; s contient maintenant cette chaîne de caractères: "J’aime la programmation!" Ça revient donc à écrire: s = s + "la programmation!";
String int Pour changer un String en Number (après une entrée clavier par exemple) : var nbClavier = Number(stringClavier); Pour convertir un Number en String : var s = "" + 55;
Exercice 3 Qu'imprimera le code suivant? var nb1 = 5, nb2 = 7; print(nb1 + nb2 + " --- " + nb1 + nb2);
Exercice 3 Qu'imprimera le code suivant? var nb1 = 5, nb2 = 7; print(nb1 + nb2 + " --- " + nb1 + nb2); Réponse : 12 --- 57