La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Tutorat en bio-informatique Le 31 octobre 2012. Exercice 3 et 4 (MAT1400) Chapitre 9.3, Analyse - concepts et contextes vol. 2 25) Quel est le vecteur.

Présentations similaires


Présentation au sujet: "Tutorat en bio-informatique Le 31 octobre 2012. Exercice 3 et 4 (MAT1400) Chapitre 9.3, Analyse - concepts et contextes vol. 2 25) Quel est le vecteur."— Transcription de la présentation:

1 Tutorat en bio-informatique Le 31 octobre 2012

2 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.

3 Exercice 3 et 4 (MAT1400) - solutions Chapitre 9.3, Analyse - concepts et contextes vol. 2 25) Quel est le vecteur tel que, si ?

4 Exercice 3 et 4 (MAT1400) - solutions Chapitre 9.3, Analyse - concepts et contextes vol. 2 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. 20° 3 m 100 N

5 Rappel if(true) print("Imprime"); else if(true) print("N'imprimera jamais"); else if(true) print("Pas d'impression non plus"); else print("Certainement pas ici non plus");

6 Rappel if(true) print("Imprime"); else if(true) print("N'imprimera jamais"); else if(true) print("Pas d'impression non plus"); else print("Certainement pas ici non plus"); Vrai! Exécution de l'instruction et …

7 Rappel if(true) print("Imprime"); else if(true) print("N'imprimera jamais"); else if(true) print("Pas d'impression non plus"); else print("Certainement pas ici non plus"); … saut jusqu'aux prochaines instructions suivant la structure de if - else if - else Vrai! Exécution de l'instruction et …

8 Rappel if(true) print("Imprime"); if(true) print("Imprime"); if(true) print("Imprime"); if(true) print("Imprime");

9 Rappel if(true) print("Imprime"); if(true) print("Imprime"); if(true) print("Imprime"); if(true) print("Imprime"); Vrai! Exécution de l'instruction.

10 Rappel if(true) print("Imprime"); if(true) print("Imprime"); if(true) print("Imprime"); if(true) print("Imprime"); Vrai! Exécution de l'instruction.

11 Rappel if(true) print("Imprime"); if(true) print("Imprime"); if(true) print("Imprime"); if(true) print("Imprime"); Vrai! Exécution de l'instruction.

12 Rappel if(true) print("Imprime"); if(true) print("Imprime"); if(true) print("Imprime"); if(true) print("Imprime"); Vrai! Exécution de l'instruction.

13 Rappel var s; if(s != undefined && s.charAt(15) == 'b') print("Le caractere a la pos. 15 est un b");

14 Rappel var s; if(s != undefined && s.charAt(15) == 'b') print("Le caractere a la pos. 15 est un b"); Faux! Donc la 2e condition n'est même pas vérifiée. La deuxième condition d'un && est vérifiée seulement si la première condition est vraie.

15 Rappel var s2 = null; if(s2 == null || s2.length == 0) print("La string est vide");

16 Rappel var s2 = null; if(s2 == null || s2.length == 0) print("La string est vide"); Vrai! Donc la 2e condition n'est même pas vérifiée. La deuxième condition d'un || est vérifiée seulement si la première condition est fausse.

17 Au programme… Les boucles for Les boucles while Les boucles do-while

18 Les boucles On se sert des boucles lorsqu’on veut que le programme fasse plusieurs fois la même action (la même partie de code). Les boucles nous permettent de réduire grandement le nombre de lignes de notre programme.

19 Les boucles Revenons sur notre exemple en bio-informatique : On veut calculer le pourcentage de A dans la séquence suivante : AGCTAAGTACAAAGTAACAG var sequence = "AGCTAAGTACAAAGTAACAG"; var seqLength = sequence.length; var nbA = 0; var nucleo;

20 Les boucles Suite de l'exemple: var index = 0; if (index < seqLength) { nucleo = sequence.charAt(index); if (nucleo == 'A') nbA++; } index++; if (index < seqLength) { nucleo = sequence.charAt(index); if (nucleo == 'A') nbA++; }... Il faudrait répéter ces 7 lignes de code 20 fois!

21 Les boucles Il existe 3 types de boucles en Java : –les boucles for –les boucles while –les boucles do-while Il est toujours possible de réaliser la même action avec les trois types de boucles, mais souvent, il semblera plus approprié d'utiliser un type dans une certaine situation.

22 Les boucles for Définitivement le type de boucle dont vous allez vous servir le plus souvent. Dans la déclaration d'une boucle for, on initialise un "compteur" dont la valeur changera à la fin de chaque itération tant qu'une certaine condition sera vraie.

23 Les boucles for for (var i = 0; i < 5; i++) Initialisation d'un compteur (une variable) La condition De quelle façon la valeur du compteur doit changer à la fin de l'itération Les deux ';' servent à séparer les trois éléments qui sont à l'intérieur des parenthèses.

24 Les boucles for Retour sur l'exemple en bio-informatique, avec une petite erreur logique! var sequence = "AGCTAAGTACAAAGTAACAG"; var seqLength = sequence.length; var nbA = 0; var nucleo; for (var i = 0; i <= seqLength; i++) { nucleo = sequence.charAt(i); if (nucleo == 'A') { nbA++; }

25 Les boucles for Exemple en bio-informatique corrigé : var sequence = "AGCTAAGTACAAAGTAACAG"; var seqLength = sequence.length(); var nbA = 0; //var nucleo; for (var i = 0; i < seqLength; i++) { //nucleo = sequence.charAt(i); if (sequence.charAt(i) == 'A') { nbA++; }

26 Les boucles for Un deuxième exemple, avec une erreur encore une fois! var sequence = "AGCTAAGTACAAAGTAACAG"; var seqLength = sequence.length; var reverseSeq; for (var i = seqLength-1; i >= 0; i--) { reverseSeq += sequence.charAt(i); } print("La sequence inverse est : " + reverseSeq); La sequence inverse est : undefinedGACAATGAAACATGAATCGA

27 Les boucles for Un deuxième exemple corrigé : var sequence = "AGCTAAGTACAAAGTAACAG"; //var seqLength = sequence.length; var reverseSeq = ""; for (var i = sequence.length-1; i >= 0; i--) { reverseSeq += sequence.charAt(i); } print("La sequence inverse est : " + reverseSeq);

28 Les boucles for Un troisième exemple : On veut imprimer dans la console tous les nombres pairs de 2 à 50 (inclusivement). On pourrait écrire la boucle de cette façon: for (var i = 2; i <= 50; i++) { if (i % 2 == 0) { print(i); } Toutefois, on peut rendre notre code plus efficace…

29 Les boucles for Un troisième exemple (suite) : for (var i = 2; i <= 50; i+=2) { print(i); } Notre boucle fait maintenant deux fois moins d'itérations. De plus, on n'a plus besoin de faire une vérification à l'intérieur de la boucle. Vous pouvez aussi utiliser -=, *= ou /= pour modifier le compteur.

30 Exercice 1 Écrivez un programme qui prend une séquence d'ADN et qui imprime la séquence complément inverse. À titre d'exemple, la séquence complément inverse de AACGCAT est ATGCGTT. Le début du programme vous est donné: var seq = "ACGAGAAGTCAAGTA"; var revComp = "";

31 Exercice 1 (réponse) var seq = "ACGAGAAGTCAAGTA"; var revComp = ""; for(var i = seq.length-1; i >= 0; i--) { if(seq.charAt(i) == 'A') revComp += 'T'; else if(seq.charAt(i) == 'C') revComp += 'G'; else if(seq.charAt(i) == 'G') revComp += 'C'; else if(seq.charAt(i) == 'T') revComp += 'A'; } print("Le complément inverse de " + seq + " est " + revComp);

32 Les boucles for Parfois, on peut vouloir répéter des actions à l'intérieur d'une action répétée. Comme avec les conditions (if, else if, else), il est possible d'imbriquer les boucles.

33 Les boucles for Un exemple de boucle imbriquée : On veut inverser et imprimer plusieurs séquences entrées en arguments. for (var i = 0; i < arguments.length; i++) { var reverseSeq = ""; for (var k = arguments[i].length-1; k >= 0; k--) { reverseSeq += arguments[i].charAt(k); } print(reverseSeq); }

34 Les boucles for Un exemple de boucle imbriquée : On veut inverser et imprimer plusieurs séquences entrées en arguments. for (var i = 0; i < arguments.length; i++) { var reverseSeq = ""; for (var k = arguments[i].length-1; k >= 0; k--) { reverseSeq += arguments[i].charAt(k); } print(reverseSeq); } Pour exécuter un programme avec des arguments : rhino Programme.js argument1 argument2

35 Exercice 2 Vous voulez noircir les cases en haut de la diagonale (diagonale incluse) dans un tableau de grandeur 10 x 10. Une fonction vous est fournie pour noircir une case à la fois. Par exemple, pour noircir la case située sur la ligne 0 et la colonne 5, on doit écrire : noircir(0, 5); Utilisez les boucles for imbriquées pour écrire le code qui fera noircir les cases appropriées pour obtenir le tableau en haut à droite.

36 Exercice 2 (réponse) for (var i = 0; i < 10; i++)//La ligne { for (var j = i; j < 10; j++)//La colonne { noircir(i,j); }

37 Les boucles for Attention aux boucles infinies! La condition doit permettre à la boucle de se terminer. Si ce n'est pas le cas, l'ordinateur va répéter les instructions de la boucle à l'infini. for (var i = 0; i != 25; i+=3) { print(i); } Cette boucle ne se terminera jamais, car 25 n'est pas un multiple de 3.

38 Les boucles while Il s'agit du deuxième type de boucle le plus utilisé. La boucle while est déclarée avec une condition uniquement (pas de compteur comme dans les boucles for). La syntaxe ressemble à celle d'un if ou else if.

39 Les boucles while while (i < 5) La condition Dans ce cas, la variable 'i' doit être déjà déclarée (et initialisée). On peut évidemment utiliser un boolean comme condition.

40 Les boucles while Exemple (compter le nombre de 'A') : var sequence = "AGCTAAGTACAAAGTAACAG"; var seqLength = sequence.length(); var nbA = 0; var i = 0; while (i < seqLength) { if (sequence.charAt(i) == 'A') { nbA++; } i++; }

41 Les boucles while Exemple 2 (trouver la position du 3e 'A') : var sequence = "AGCTAAGTACAAAGTAACAG"; var seqLength = sequence.length; var nbA = 0; var i = 0; while (i < seqLength && nbA < 3) { if (sequence.charAt(i) == 'A') nbA++; i++; } if (nbA == 3) print("Le 3e A est à la position : " + (i-1));

42 Exemple 2 -> version for : var sequence = "AGCTAAGTACAAAGTAACAG"; var seqLength = sequence.length; var nbA = 0; for (var i = 0; i < seqLength && nbA < 3; i++) { if (sequence.charAt(i) == 'A') nbA++; } if (nbA == 3) print("Le 3e A est à la position : " + (i-1));

43 L'instruction break Elle permet de sortir d'une boucle (arrêter d'itérer). Elle peut être utilisée dans n'importe quel type de boucle.

44 L'instruction break Exemple : var sequence = "AGCTAAGTACAAAGTAACAG"; var seqLength = sequence.length; var nbA = 0; for (var i = 0; i < seqLength; i++) { if (sequence.charAt(i) == 'A') { nbA++; if (nbA == 3) { print("Le 3e A est à la position : " + i); break; }

45 L'instruction continue Elle permet de passer immédiatement à l'itération suivante (en n'exécutant pas les instructions restantes dans l'itération courante). Elle peut être utilisée dans n'importe quel type de boucle.

46 L'instruction continue Exemple : var sequence = "AG--CTAAGT-ACAAA--G---TAAC-AG"; var seqLength = sequence.length; var nbNucleoNoGaps = 0; for (var i = 0; i < seqLength; i++) { if (sequence.charAt(i) == '-') continue; nbNucleoNoGaps++; }

47 Étiquettes Les instructions break et continue affectent uniquement la boucle qui les contient directement. Dans le cas de boucles imbriquées, si on veut affecter une boucle externe, on doit l'étiqueter.

48 Étiquettes Exemple : externe: for(var i = 0; i < 10; i++) { for(var j = 0; j < 5; j++) { var mult = i * j; if(mult > 25) break externe; print(mult); }

49 Exercice 3 Transformez cette boucle for en boucle while : var dixFactoriel = 1; for (var i = 2; i <= 10; i++) { dixFactoriel *= i; } Réponse: var dixFactoriel = 1; var i = 2; while(i <= 10) { dixFactoriel *= i; i++; }

50 Les boucles while Pour vous montrer à quel point les boucles while et for sont similaires : est équivalent à var dixFactoriel = 1; var i = 2; for(;i <= 10;) { dixFactoriel *= i; i++; } var dixFactoriel = 1; var i = 2; while(i <= 10) { dixFactoriel *= i; i++; }

51 Les boucles do-while Ce type de boucle est utilisé plus rarement. Les boucles do-while permettent de faire les instructions de la boucle au moins une fois. Les boucles do-while ressemblent aux boucles while, sauf que les instructions sont exécutées avant la vérification de la condition.

52 Les boucles do-while do { instructions } while (i < 5); La condition Dans le cas où i est un compteur, on doit l'avoir initialisé avant le 'do'. On peut évidemment utiliser un boolean comme condition.

53 Les boucles do-while Exemple : do { var age = readAge(); } while (age == -1); La fonction readAge() demande à l'utilisateur d'entrer un nombre entier et retourne soit l'âge, soit -1 (si l'utilisateur a fait une erreur).

54 Les boucles do-while Exemple : do { var age = readAge(); } while (age == -1); La fonction readAge() demande à l'utilisateur d'entrer un nombre entier et retourne soit l'âge, soit -1 (si l'utilisateur a fait une erreur). //équivalent à var age = -1; while (age == -1) { age = readAge(); }

55 Exercice 4 Vous voulez noircir les cases suivantes dans un tableau de grandeur 10 x 10. Une fonction vous est fournie pour noircir une case à la fois. Par exemple, pour noircir la case située sur la ligne 0 et la colonne 5, on doit écrire : noircir(0, 5); Utilisez les boucles for imbriquées pour écrire le code qui fera noircir les cases appropriées pour obtenir le tableau en haut à droite.

56 Exercice 4 (réponse) for (var i = 0; i < 10; i++)//La ligne { for (var j = 0; j < 10; j++)//La colonne { if ((i+j) % 2 == 0) noircir(i,j); } OU for (var i = 0; i < 10; i++)//La ligne { for (var j = (i % 2); j < 10; j+=2)//La colonne { noircir(i,j); }

57 Exercice 5 et 6 (MAT1400) Chapitre 9.7, Analyse - concepts et contextes vol. 2 23) Écrivez l'équation a) en coordonnées cylindriques et b) en coordonnées sphériques : 29) Un solide est délimité inférieurement par le cône et supérieurement par la sphère. Écrivez des inéquations en coordonnées sphériques qui correspondent à ce solide.


Télécharger ppt "Tutorat en bio-informatique Le 31 octobre 2012. Exercice 3 et 4 (MAT1400) Chapitre 9.3, Analyse - concepts et contextes vol. 2 25) Quel est le vecteur."

Présentations similaires


Annonces Google