Tutorat en bio-informatique Le 12 octobre 2012. Exercices 3 et 4 (MAT1400) - solutions La série du binôme (chap. 8.8) –Trouver la série entière et le.

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

La boucle for : init7.c et init71.c
Formation universitaire à .NET: Introduction à C#
Interactivé: L'Action Script.
Le mécanisme des exceptions
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Algorithmique Résume.
FLSI602 Génie Informatique et Réseaux
Lycée Louis Vincent SEANCE 6 Python Les listes Lundi 25 novembre 2013.
Javascript les spécificités du langage - Partie 7 -
Firebug Dévermineur Debugger.
Les bases de l’Algorithmique
Principes de programmation (suite)
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Cours de programmation
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Récursivité.
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Démarche de résolution de problèmes
Les éléments de base de l’algorithmique
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Les exceptions. Quest ce quune exception ? Une erreur dans le programme Due à un bug ou un cas « anormal » Gestion complète en java : JVM Dans dautre.
Les instructions PHP pour l'accès à une base de données MySql
Outils de Programmation
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Introduction à la programmation (Java)
Introduction au langage PHP Réfs : Chap 3 p 49. Présentation PHP (Hypertext PreProcessor) est un langage de développement Web créé en 1994 par Rasmus.
Le langage Javascript pour le web
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
Introduction à la programmation I Fonctions Structures de contrôle Structures de données (arrays simples et indexés) Variables locales et globales.
Instruction sélective switch-case Instruction répétitive do-while For
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Faculté I&C, Claude Petitpierre, André Maurer JavaCC Java compilers compiler (version générant du Javascript)
Plan troisième cours Instruction sélective Instruction répétitive
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
L’essentiel du langage C
Animateur : Med HAIJOUBI
Utilisation avancée de linux
Javascript 1° PARTIE : LES BASES
Le Bloc Case Cours LCS N°3 Présenté par Mr: LALLALI.
Algorithmique Les structures Rappel L'enchaînement séquentiel
La Boucle Repeat Cours LCS N°1 Présenté par Mr: LALLALI.
Déclaration des données constantes Déclaration des données variables
JavaScript.
La fonction RECHERCHEV
GESTION ET TRAITEMENT DES ERREURS
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Les tests.
 Syntaxe du langage PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Tutorat en bio-informatique
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
CSI2520 Un langage de programmation par scripting orienté-objet (et fonctionnel)
Le Préprocesseur. Sujets abordés: Préprocesseur –Qu’est ce? –Qu’est ce qu’une directive? Les macros –Les définir, les redéfinir, les dé-définir –Les macros.
Tutorat en bio-informatique Le 10 octobre Au programme… Rappel sur les variables Constantes Conditions Comparaisons Tables de vérité Switch.
1 PHP 5 Notions fondamentales (niveau 1 – cours #2) Formation continue – Cégep de Sainte-Foy.
Initiation au JavaScript
Tutorat en bio-informatique
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
6ième Classe (Mercredi, 17 novembre) CSI2572
1. Spoon Christophe Delagarde, septembre 1998 I.U.T., Université de la Méditerrainée 2.
CPI/BTS 2 Algorithmique & Programmation La récursivité Algo – Prog CPI/BTS2 – M. Dravet – 14/09/2003 Dernière modification: 14/09/2003.
Tutorat en bio-informatique Le 31 octobre Exercice 3 et 4 (MAT1400) Chapitre 9.3, Analyse - concepts et contextes vol. 2 25) Quel est le vecteur.
Tutorat en bio-informatique Le 2 novembre Exercice 5 et 6 (MAT1400) Chapitre 9.7, Analyse - concepts et contextes vol. 2 23) Écrivez l'équation.
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Philippe Gandy - 15 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Algorithmique Boucles et Itérations
Philippe Gandy – 13 octobre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
Transcription de la présentation:

Tutorat en bio-informatique Le 12 octobre 2012

Exercices 3 et 4 (MAT1400) - solutions La série du binôme (chap. 8.8) –Trouver la série entière et le rayon de convergence : 1) 5)

Exercices 3 et 4 (MAT1400) - solutions Rappels : La série converge toujours pour

Exercices 3 et 4 (MAT1400) - solutions 1)

Exercices 3 et 4 (MAT1400) - solutions 5) avec y = -x 4

Retour sur les conditions var age = 11; var droitAuRabais = false; if(age 65 && droitAuRabais) print("Vous avez droit au rabais!"); else print("Vous n'avez pas droit au rabais."); Imprime : Vous avez droit au rabais! Le "et logique" (&&) a priorité sur le "ou logique" (||).

Retour sur les conditions var age = 11; var droitAuRabais = false; if((age 65) && droitAuRabais) print("Vous avez droit au rabais!"); else print("Vous n'avez pas droit au rabais."); Imprime : Vous n'avez pas droit au rabais.

Retour sur les conditions Ordre de priorité sur les opérateurs (de la plus petite priorité vers la plus grande) : =, +=, -=, *=, /= || && ==, !=, ===, !==, >= +, - *, /, % !, - (unaire) ++, --

Au programme… Indentation Commentaires Messages d’erreurs Tester son programme Trouver des erreurs

Indentation C’est le fait de mettre des tabulations pour différencier les « niveaux » dans le code. L’indentation permet de voir rapidement quelles lignes de code appartiennent à une plus grande entité. On change de niveau lorsqu’une partie du code est à l’intérieur de quelque chose d’autre.

Indentation Revenons à un exemple connu : if (age < 18) { if (age < 13) { print(" Vous êtes un enfant. "); } else { print(" Vous êtes un adolescent. "); } else { print(" Vous êtes un adulte. "); }

Indentation On peut aussi faire : if (age < 18) { if (age < 13) print(" Vous êtes un enfant. "); else print(" Vous êtes un adolescent. "); } else print(" Vous êtes un adulte. ");

Indentation ou encore : if (age < 18){ if (age < 13) print(" Vous êtes un enfant. "); else print(" Vous êtes un adolescent. "); } else print(" Vous êtes un adulte. ");

Indentation En fait, à chaque fois qu’on utilise les accolades ({ }), on indente le code qui se retrouve entre les deux. Les accolades sont des séparateurs qui indiquent que les lignes de code situées à l’intérieur appartiennent à l’élément qui précédait l’accolade ouvrante ({).

Indentation Pourquoi utiliser une définition aussi générale? Parce que les accolades ne sont pas seulement employées avec les ‘if’ et les ‘else’! On les retrouve aussi dans les boucles, les fonctions et les objets.

Commentaires Les commentaires sont des lignes dans votre programme qui ne seront pas lues par le compilateur. On ajoute // au début d’une ligne pour indiquer qu’il s’agit d’un commentaire. Mais pourquoi écrire des lignes qui ne seront pas utilisées par le compilateur?

Commentaires 1.Pour expliquer en vos mots qu’est-ce que votre programme fait à un certain endroit. Cela permettra à quelqu’un d’autre de travailler sur votre programme sans avoir à vous poser plein de questions… Cela vous aidera également à vous souvenir de ce qui vous passait par la tête quand vous avez écrit votre programme il y a quelques mois…

Commentaires Exemple: //Cette partie du programme vérifie l’âge de l’utilisateur: if (age < 18) { if (age < 13) { print(" Vous êtes un enfant. "); } else//Ici, age est nécessairement entre 13 et 17. { print(" Vous êtes un adolescent. "); } else//Si le programme arrive ici, age est plus grand ou égal à 18. { print(" Vous êtes un adulte. "); }

Commentaires Écrire trop de commentaires n'est pas mieux que de ne pas en écrire assez. print(“Bonjour.”); //Ici, on écrit dans la console la //chaîne de caractères //“Bonjour.” Certaines instructions sont tellement évidentes qu’il n’est pas nécessaire de les expliquer.

Commentaires 2.Les commentaires peuvent aussi servir à enlever temporairement une ligne de code sans l’effacer complètement. C’est utile lorsque vous voulez vérifier si votre programme fonctionne bien sans cette ligne ou lorsque vous voulez remplacer cette ligne et pouvoir revenir rapidement à la version précédente ensuite.

Commentaires if (age < 13) { print(" Vous êtes un enfant. "); } else if (age < 18) { print(" Vous êtes un adolescent. "); } else { print(" Vous êtes un adulte. "); } //if (age < 18) //{ //if (age < 13) //{ // print(" Vous êtes un enfant. "); //} //else //{ //print(" Vous êtes un adolescent. "); //} //else //{ //print(" Vous êtes un adulte. "); //}

Commentaires Pour mettre en commentaire plusieurs lignes de code, on peut « encadrer » les lignes par /* au début et */ à la fin. /* if (age < 18) { if (age < 13) { print(" Vous êtes un enfant. "); } else { print(" Vous êtes un adolescent. "); } else { print(" Vous êtes un adulte. "); } */

Commentaires // permet de commenter tout ce qui est à droite (tout le reste de la ligne) : print("Bonjour!"); //Comment allez-vous?"); /* */ permet de commenter seulement une partie d'une ligne de code : print("Bonjour! /*Comment allez-vous?*/");

Messages d’erreurs Même si vous êtes très éveillés et concentrés pendant que vous programmez, vous allez devoir déboguer votre code. JS vous indique deux types d’erreurs : –les erreurs syntaxiques –les erreurs d'exécution Regardons les messages d’erreurs les plus souvent rencontrés.

Messages d’erreurs – erreurs syntaxiques var test = 5,6; rhino : js: "test.js", line 1: missing variable name js: var test = 5,6; js: ^ codePlay : var test = 5,6; syntax error -- unexpected token

Messages d’erreurs – erreurs syntaxiques print("Blablabla."; rhino : js: "test.js", line 1: missing ) after argument list js: print("Blablabla."; js: …… ^ codePlay : print("Blablabla."; syntax error -- unexpected token

Messages d’erreurs – erreurs syntaxiques var s = "Bonjour"; var 2s = s + s; rhino : js: "test.js", line 2: missing variable name js: var 2s = s + s; js: …....^ codePlay : var 2s = s + s; syntax error -- unexpected token

Messages d’erreurs – erreurs d'exécution String s = allo; rhino : js: uncaught JavaScript runtime exception: ReferenceError: "allo" is not defined. codePlay : cannot read an undefined variable

Messages d’erreurs – erreurs d'exécution var s; print(s.length); rhino : js: uncaught JavaScript runtime exception: TypeError: Cannot read property "length" from undefined codePlay : cannot read an undefined variable

Messages d’erreurs – erreurs d'exécution var s = "Bonjour"; s = null; print(s.length); rhino : js: uncaught JavaScript runtime exception: TypeError: Cannot read property "length" from null codePlay : TypeError: x is null

Pour prévenir les erreurs d'exécution On peut utiliser le try - catch –On essait d'exécuter les instructions du bloc try et dans le cas ou une erreur est lancée, on exécute les instructions du bloc catch, sans afficher l'erreur à l'utilisateur Syntaxe : try{ …instructions qui peuvent lancer une erreur… } catch(err){ …instructions à exécuter en cas d'erreur… }

Tester son programme Il est primordial de tester souvent son programme pour : –corriger les erreurs syntaxiques –corriger les erreurs à l'exécution –vérifier si le programme fait exactement ce que vous voulez qu'il fasse (corriger les erreurs logiques) Chaque fois qu'une partie du programme est terminée, il faut la tester séparément du reste (si possible).

Tester son programme Pour corriger les erreurs syntaxiques : –on exécute le programme Pour corriger les erreurs d'exécution : –on exécute le programme avec différentes valeurs en entrée (valeurs normales et/ou anormales) Pour corriger les erreurs logiques : –on exécute le programme avec différentes valeurs –on utilise le print()

Tester son programme On utilise le print() pour vérifier la valeur d'une variable à différents moments : var nbA; var nbNucleo = 20; var pourcentA = nbA / nbNucleo * 100;

Tester son programme On utilise le print() pour vérifier la valeur d'une variable à différents moments : var nbA; var nbNucleo = 20; var pourcentA = nbA / nbNucleo * 100; print("pourcentA = " + pourcentA);

Tester son programme On utilise le print() pour vérifier la valeur d'une variable à différents moments : var nbA; var nbNucleo = 20; var pourcentA = nbA / nbNucleo * 100; print("pourcentA = " + pourcentA); imprime : pourcentA = NaN

Tester son programme On utilise le print() pour vérifier la valeur d'une variable à différents moments : var x = 10; var y = 20; //Swap x = y; y = x;

Tester son programme On utilise le print() pour vérifier la valeur d'une variable à différents moments : var x = 10; var y = 20; //Swap x = y; y = x; print("x = " + x + " et y = " + y);

Tester son programme On utilise le print() pour vérifier la valeur d'une variable à différents moments : var x = 10; var y = 20; //Swap x = y; y = x; print("x = " + x + " et y = " + y); imprime : x = 20 et y = 20

Tester son programme On utilise le print() pour vérifier la valeur d'une variable à différents moments : var x = 10; var y = 20; //Swap var temp = x; x = y; y = temp; print("x = " + x + " et y = " + y); imprime : x = 20 et y = 10

Tester son programme On utilise le print() pour vérifier si on entre dans un 'if' : var prix = 0; var age = 11; var jour = "mardi"; var droitAuRabais = true; if ((age 65) && (jour == "mardi" || jour == "jeudi") && droitAuRabais) { prix = 7.99; } else { prix = 12.99; }

Tester son programme On utilise le print() pour vérifier si on entre dans un 'if' : var prix = 0; var age = 11; var jour = "mardi"; var droitAuRabais = true; if ((age 65) && (jour == "mardi" || jour == "jeudi") && droitAuRabais) { print("On entre dans le if."); prix = 7.99; } else { prix = 12.99; }

Tester son programme On pourra également utiliser le print() pour vérifier : –si on entre dans une boucle –combien on fait d'itérations dans la boucle –si on boucle à l'infini

Exercice 1 Trouvez toutes les erreurs! var capital = 1250,95; var pourcentInteret = 2%; var resultat == capital * PourcentInteret; Print(Le resultat est egal a : + resultat):

Exercice 1

Nous avons corrigé la première vague d'erreurs : var capital = ; var pourcentInteret = 0.02; var resultat == capital * PourcentInteret; Print("Le resultat est egal a : " + resultat):

Exercice 1

Nous avons corrigé la deuxième vague d'erreurs : var capital = ; var pourcentInteret = 0.02; var resultat = capital * PourcentInteret; Print("Le resultat est egal a : " + resultat);

Exercice 1

Nous avons corrigé la troisième vague d'erreurs : var capital = ; var pourcentInteret = 0.02; var resultat = capital * pourcentInteret; Print("Le resultat est egal a : " + resultat);

Exercice 1

Nous avons corrigé la quatrième vague d'erreurs : var capital = ; var pourcentInteret = 0.02; var resultat = capital * pourcentInteret; print("Le resultat est egal a : " + resultat); Enfin!! Ça fonctionne!!

Exercice 2 var bo = !(2<3 && 9%3==0) || !("oiseau".toUpperCase() == "OISEAU"); if(!bo) print("Loup"); if(bo) { print("Chat"); if((2<3 && 9%3==0) || "oiseau" == "OISEAU") print("Chien"); } else if((2<3 && 9%3==0) || "oiseau" == "OISEAU") print("Cheval"); else if(false || !false) print("Ecureuil"); else print("Gazelle"); Loup Cheval

Optimisation On peut diviser l'optimisation du code en 3 types : –Optimisation en temps –Optimisation en espace –Optmisation du nombre de lignes de codes (réutilisation du code)

Optimisation Exemple : if (age < 18) { print(" Vous êtes un enfant. "); } if (age >= 18) { print(" Vous êtes un adulte. "); } if (age < 18) { print(" Vous êtes un enfant. "); } else { print(" Vous êtes un adulte. "); }

Optimisation Pour optimiser efficacement, il est important de savoir reconnaître les régions critiques du programme (bottlenecks) C'est inutile de perdre trop de temps à optimiser des parties de code qui ne sont même pas critiques

Optimisation Pour optimiser efficacement, il est également important d'utiliser un langage de programmation qui est approprié pour ce qu'on veut réaliser Il faut aussi bien connaître son langage de programmation (structures de données, complexité des opérations fournies, etc.)

Optimisation Plus le programme prend du temps à s'exécuter (par exemples, plusieurs heures), plus l'optimisation en temps sera payante L'optimisation en espace n'est pas souvent un facteur sur les ordinateurs d'aujourd'hui, mais peut l'être sur d'autres plateformes (téléphone cellulaire)

Exercice 3 et 4 (MAT1400) Chapitre 9.3, Analyse - concepts et contextes vol. 2 25) Quel est le vecteur tel que, si ? 29) Une femme tire avec une force de 100 N, exercée horizontalement, une caisse qu'elle amène 3 m plus loin sur un plan incliné qui fait un angle de 20 ° avec l'horizontale. Calculez le travail effectué sur la caisse.