Algorithmes conditionnels

Dimension: px
Commencer à balayer dès la page:

Download "Algorithmes conditionnels"

Transcription

1 Licence 1 MASS - Introduction à Java et à l'algorithmique dalle@unice.fr <deptinfo.unice.fr/ dalle/> NB: Ce cours a été mis au point par mon collègue Sébastien Vérel, actuellement en congé de recherche. Équipe Mascotte, commune I3S - CNRS/UNS & INRIA Sophia Antipolis

2 Objectifs de la séance 2 1 Ecrire un algorithme avec des aectations 2 Ecrire un algorithme qui échange la valeur de deux variables 3 Savoir utiliser les entrées de la souris avec Processing 4 Ecrire un algorithme avec des tests simples 5 Ecrire un algorithme avec un test multiple 6 Ecrire des programmes java avec des tests simples ou multiples

3 Objectifs de la séance 2 1 Ecrire un algorithme avec des aectations 2 Ecrire un algorithme qui échange la valeur de deux variables 3 Savoir utiliser les entrées de la souris avec Processing 4 Ecrire un algorithme avec des tests simples 5 Ecrire un algorithme avec un test multiple 6 Ecrire des programmes java avec des tests simples ou multiples Question principale du jour : Comment écrire des algorithmes qui prennent en compte des situations diérentes?

4 Plan 1 Variables et aectations 2 3 tests simples Tests multiples

5 Utilité des variables Lors d'un calcul, pendant le traitement de données, quasiment toujours nécessaire de stocker certaines valeurs provisoirement Des exemples?

6 Utilité des variables Lors d'un calcul, pendant le traitement de données, quasiment toujours nécessaire de stocker certaines valeurs provisoirement Des exemples? Crible d'erastothène : nombres rayés ou non Euclide : nombres a et b du pgcd..., etc,...

7 Utilité des variables Pour stocker cette information, on emploie des variables A 12 remarque : L'étiquette est traduite en machine par une adresse binaire ( )

8 Type des variables Ces variables peuvent être de types diérents : nombre entier : int nombre réel (approché) : oat, double caractères : char chaîne de caractères : String booléen (dont la valeur est VRAI ou FAUX) : boolean...

9 Type des variables Ces variables peuvent être de types diérents : nombre entier : int nombre réel (approché) : oat, double caractères : char chaîne de caractères : String booléen (dont la valeur est VRAI ou FAUX) : boolean... Type : considéré comme un ensemble regroupant des valeurs auquel s'applique certaines méthodes spéciques.

10 Expression Expression Ensemble de valeurs, reliées par des opérateurs binaires, équivalent à une seule valeur. Toute expression a un type.

11 Calcul de types De quel type sont les expressions suivantes? 5

12 Calcul de types De quel type sont les expressions suivantes? 5 int 16.3

13 Calcul de types De quel type sont les expressions suivantes? 5 int 16.3 oat 16.0

14 Calcul de types De quel type sont les expressions suivantes? 5 int 16.3 oat 16.0 oat -3

15 Calcul de types De quel type sont les expressions suivantes? 5 int 16.3 oat 16.0 oat -3 int

16 Calcul de types De quel type sont les expressions suivantes?

17 Calcul de types De quel type sont les expressions suivantes? int 16 / 3

18 Calcul de types De quel type sont les expressions suivantes? int 16 / 3 int

19 Calcul de types De quel type sont les expressions suivantes? int 16 / 3 int oat 5.4 % 2

20 Calcul de types De quel type sont les expressions suivantes? int 16 / 3 int oat 5.4 % 2 oat

21 Déclaration de variable en java Exemples : int x ; float a, b; char premierlettre ; int sumtotal ; type nomdelavariable ; Toute variable utilisée doit être déclarée Convention d'écriture en java : première lettre d'une variable est en minuscule et les "mots" suivants commencent par une majuscule.

22 Arithmétique des nombres ottants Combien d'entiers peut-on coder sur 4 octets?

23 Arithmétique des nombres ottants Combien d'entiers peut-on coder sur 4 octets? 2 32 positifs ou 2 31 signés

24 Arithmétique des nombres ottants Combien d'entiers peut-on coder sur 4 octets? 2 32 positifs ou 2 31 signés Dans un ordinateur, tout est de taille nie et les ottants sont codés sur 4 octects. Quelle est en la conséquence?

25 Arithmétique des nombres ottants Combien d'entiers peut-on coder sur 4 octets? 2 32 positifs ou 2 31 signés Dans un ordinateur, tout est de taille nie et les ottants sont codés sur 4 octects. Quelle est en la conséquence? Précision des ottants

26 Aectation Attribuer à une variable une valeur.

27 Aectation Attribuer à une variable une valeur. notation en pseudo-code : var expr A A 12 12

28 Aectation Attribuer à une variable une valeur. notation en pseudo-code : var expr A A en java : var = expr

29 Exemples en pseudo-code 1. A 3

30 Exemples en pseudo-code 1. A 3 1. A 3 2. B A

31 Exemples en pseudo-code 1. A 3 1. A 3 2. B 5 3. A B 4. B A 1. A 3 2. B A

32 Exemples en pseudo-code 1. A 3 1. A 3 2. B A 1. A 3 2. B 5 3. A B 4. B A 1. A 3 2. B 5 3. C A 3. A B 4. B C

33 Exemples en pseudo-code 1. A 3 1. A 3 2. B A 1. A 3 2. B 5 3. A B 4. B A 1. A 3 2. B 5 3. C A 3. A B 4. B C (ce dernier est à connaitre!)

34 Exemples en java int a = 5 ; int b = a + 3;

35 Exemples en java int a = 5 ; int b = a + 3; int a = 5 ; int b = a + 3; a = a + 1;

36 Dessin en Processing Il existe 2 méthodes (fonctions) par défaut en Processing : setup : exécutée une seule fois draw : exécutée tous les rafaichissements d'écran (1/50s) déne par la méthode framerate Exemples : Toujours et Point

37 Souris en Processing Il est facile de connaitre la position du pointeur de la souris avec Processing 2 variables de type int contiennent la position relativement aux dimensions de l'écran : mousex : abscisse mousey : ordonnée Exemple : Mouse

38 George Boole Mathématicien et logicien anglais ( ) but Traduire des idées et des concepts en équations, leur appliquer des lois (des transformations) et traduire inversement l'équation en termes de concepts et d'idées. Il crée une algèbre binaire : qui n'accepte que deux valeurs numériques 0 et 1 (faux, vrai), dénie dans un ensemble E muni de deux lois de compositions interne (et,ou) satisfaisant un certain nombre de propriétés (associativité, distributivité). algèbre de Boole

39 Notations Il existe plusieurs types de notations : Vrai V 1 Faux F 0 NON ET OU (attention inclusif!) IMPLICATION EQUIVALENT

40 Notations Il existe plusieurs types de notations : Vrai V 1 Faux F 0 NON ET OU (attention inclusif!) IMPLICATION EQUIVALENT XOR (ou exclusif : fromage ou dessert)

41 Dénitions Littéral variable dont la valeur de vérité est soit VRAI soit FAUX.

42 Dénitions Littéral variable dont la valeur de vérité est soit VRAI soit FAUX. Proposition Enoncé auquel on associe une valeur de vérité (VRAI ou FAUX)

43 Dénitions Littéral variable dont la valeur de vérité est soit VRAI soit FAUX. Proposition Enoncé auquel on associe une valeur de vérité (VRAI ou FAUX) Tautologie est une formule qui est toujours VRAI quelque soit les valeurs de vérité des littéraux

44 Exemples a OU b (a OU b) XOR c a ET a a OU VRAI b OU (NON b) NON( b OU a ) (a ET NON b) OU (b ET NON a)

45 Tables de vérité ET Vrai Faux Vrai Faux OU Vrai Faux Vrai Faux XOR Vrai Faux Vrai Faux Vrai Faux Vrai Faux

46 Tables de vérité ET Vrai Faux Vrai Vrai Faux Faux Faux Faux

47 Tables de vérité ET Vrai Faux Vrai Vrai Faux Faux Faux Faux OU Vrai Faux Vrai Vrai Vrai Faux Vrai Faux

48 Tables de vérité ET Vrai Faux Vrai Vrai Faux Faux Faux Faux XOR Vrai Faux Vrai Faux Vrai Faux Vrai Faux OU Vrai Faux Vrai Vrai Vrai Faux Vrai Faux

49 Tables de vérité ET Vrai Faux Vrai Vrai Faux Faux Faux Faux OU Vrai Faux Vrai Vrai Vrai Faux Vrai Faux XOR Vrai Faux Vrai Faux Vrai Faux Vrai Faux Vrai Faux Vrai Vrai Faux Faux Vrai Vrai

50 Zoom sur l'implication p q Vrai Vrai Vrai Vrai Faux Faux Faux Vrai Vrai Faux Faux Vrai A = "je plonge dans la piscine" B = "je suis mouillé"

51 Zoom sur l'implication p q Vrai Vrai Vrai Vrai Faux Faux Faux Vrai Vrai Faux Faux Vrai A = "je plonge dans la piscine" B = "je suis mouillé" "SI je plonge dans la piscine ALORS je suis mouillé" est un théorème VRAI.

52 Zoom sur l'implication p q Vrai Vrai Vrai Vrai Faux Faux Faux Vrai Vrai Faux Faux Vrai A B Lorsque A est VRAI, la condition est réalisée, donc B est VRAI. A = "je plonge dans la piscine" B = "je suis mouillé" "SI je plonge dans la piscine ALORS je suis mouillé" est un théorème VRAI.

53 Zoom sur l'implication p q Vrai Vrai Vrai Vrai Faux Faux Faux Vrai Vrai Faux Faux Vrai A = "je plonge dans la piscine" B = "je suis mouillé" "SI je plonge dans la piscine ALORS je suis mouillé" est un théorème VRAI. A B Lorsque A est VRAI, la condition est réalisée, donc B est VRAI. A peut aussi être FAUX et B restant VRAI. Peut-on en déduire que le théorème devient FAUX dans ce cas?

54 Zoom sur l'implication L'implication est vraie si l'hypothèse est fausse. p q Vrai Vrai Vrai Vrai Faux Faux Faux Vrai Vrai Faux Faux Vrai Lorqu'un théorème p q est vrai, mais que l'on a pas l'hypothèse, alors on ne peut rien en déduire sur q.

55 Zoom sur l'implication L'implication est vraie si l'hypothèse est fausse. p q Vrai Vrai Vrai Vrai Faux Faux Faux Vrai Vrai Faux Faux Vrai Lorqu'un théorème p q est vrai, mais que l'on a pas l'hypothèse, alors on ne peut rien en déduire sur q. Pierre Weis et Xavier Leroy on ne peut rien déduire d'un théorème dont l'hypothèse n'est pas vériée un théorème reste vrai même quand il ne s'applique pas

56 Tables de vérité Un connecteur logique booléen est déni par une table de vérité et réciproquement. Il existe 16 connecteurs logiques binaires (pourquoi?).

57 Tables de vérité Un connecteur logique booléen est déni par une table de vérité et réciproquement. Il existe 16 connecteurs logiques binaires (pourquoi?). Vrai Faux Vrai?? Faux??

58 Tables de vérité Un connecteur logique booléen est déni par une table de vérité et réciproquement. Il existe 16 connecteurs logiques binaires (pourquoi?). Vrai Faux Vrai?? Faux?? D'où = 16 connecteurs logiques binaires.

59 Logiquement équivalent Logiquement équivalent F est logiquement équivalent à G si et seulement si F G est une tautologie. Logiquement équivalent F est logiquement équivalent à G si et seulement si F et G ont la même table de vérité.

60 Exemple a b a ET NON b b ET NON a (a b) (b a) Vrai Vrai Faux Vrai Vrai Faux Faux Faux

61 Exemple a b a ET NON b b ET NON (a b) (b a) Vrai Vrai Faux Faux Faux Faux Vrai Faux Vrai Vrai Vrai Faux Vrai Faux Vrai Faux Faux Faux Faux Faux

62 Exemple a b a ET NON b b ET NON (a b) (b a) Vrai Vrai Faux Faux Faux Faux Vrai Faux Vrai Vrai Vrai Faux Vrai Faux Vrai Faux Faux Faux Faux Faux ( (a ET NON b) OU (b ET NON a) ) logiquement équivalent à

63 Exemple a b a ET NON b b ET NON (a b) (b a) Vrai Vrai Faux Faux Faux Faux Vrai Faux Vrai Vrai Vrai Faux Vrai Faux Vrai Faux Faux Faux Faux Faux ( (a ET NON b) OU (b ET NON a) ) logiquement équivalent à (a XOR b)

64 Propriétés algébriques Associativité : p (q r) (p q) r p (q r) (p q) r

65 Propriétés algébriques Associativité : p (q r) (p q) r p (q r) (p q) r Commmutativité : p q q p p q q p

66 Propriétés algébriques Associativité : p (q r) (p q) r p (q r) (p q) r Commmutativité : p q q p p q q p Distributivité : p (q r) (p q) (p r) p (q r) (p q) (p r)

67 Propriétés algébriques Associativité : p (q r) (p q) r p (q r) (p q) r Commmutativité : p q q p p q q p Distributivité : p (q r) (p q) (p r) p (q r) (p q) (p r) Loi de De Morgan : (p q) q p (p q) q p

68 Propriétés algébriques Associativité : p (q r) (p q) r p (q r) (p q) r Commmutativité : p q q p p q q p Distributivité : p (q r) (p q) (p r) p (q r) (p q) (p r) Loi de De Morgan : (p q) q p (p q) q p Contraposée : (p q) ( q p) (p q) ( p q)

69 Propriétés algébriques Associativité : p (q r) (p q) r p (q r) (p q) r Commmutativité : p q q p p q q p Distributivité : p (q r) (p q) (p r) p (q r) (p q) (p r) Loi de De Morgan : (p q) q p (p q) q p Contraposée : (p q) ( q p) (p q) ( p q) Preuve par l'absurde : p p

70 Une application en biologie C(x) est VRAIE lorsque x est une cellule V (x) est VRAIE lorsque x est un virus I (x, y) est VRAIE lorsque x est infecté par y. R(x, y) est VRAIE lorsque x a reconnu y

71 Une application en biologie C(x) est VRAIE lorsque x est une cellule V (x) est VRAIE lorsque x est un virus I (x, y) est VRAIE lorsque x est infecté par y. R(x, y) est VRAIE lorsque x a reconnu y Toutes les cellules infectées par un virus ne le reconnaissent pas

72 Une application en biologie C(x) est VRAIE lorsque x est une cellule V (x) est VRAIE lorsque x est un virus I (x, y) est VRAIE lorsque x est infecté par y. R(x, y) est VRAIE lorsque x a reconnu y Toutes les cellules infectées par un virus ne le reconnaissent pas x y, (C(x) V (y) I (x, y)) R(x, y)

73 Une application en biologie C(x) est VRAIE lorsque x est une cellule V (x) est VRAIE lorsque x est un virus I (x, y) est VRAIE lorsque x est infecté par y. R(x, y) est VRAIE lorsque x a reconnu y Toutes les cellules infectées par un virus ne le reconnaissent pas x y, (C(x) V (y) I (x, y)) R(x, y) Il n'existe pas de virus qui peuvent infecter toutes les cellules

74 Une application en biologie C(x) est VRAIE lorsque x est une cellule V (x) est VRAIE lorsque x est un virus I (x, y) est VRAIE lorsque x est infecté par y. R(x, y) est VRAIE lorsque x a reconnu y Toutes les cellules infectées par un virus ne le reconnaissent pas x y, (C(x) V (y) I (x, y)) R(x, y) Il n'existe pas de virus qui peuvent infecter toutes les cellules y, V (y) ( x C(x) I (x, y))

75 Une application en biologie C(x) est VRAIE lorsque x est une cellule V (x) est VRAIE lorsque x est un virus I (x, y) est VRAIE lorsque x est infecté par y. R(x, y) est VRAIE lorsque x a reconnu y Toutes les cellules infectées par un virus ne le reconnaissent pas x y, (C(x) V (y) I (x, y)) R(x, y) Il n'existe pas de virus qui peuvent infecter toutes les cellules y, V (y) ( x C(x) I (x, y)) technique de model checking : vérication de la formule logique par parcours astucieux des états possibles

76 Quand utiliser un test? tests simples Tests multiples "SI j'ai tes clés ALORS je vais pouvoir rentrer tout seul chez toi."

77 Quand utiliser un test? tests simples Tests multiples "SI j'ai tes clés ALORS je vais pouvoir rentrer tout seul chez toi." "SI la voie rapide est bouchée ALORS je prends la prom."

78 Quand utiliser un test? tests simples Tests multiples "SI j'ai tes clés ALORS je vais pouvoir rentrer tout seul chez toi." "SI la voie rapide est bouchée ALORS je prends la prom." "SI il y a de la neige ALORS je ne viens pas SINON je passe te prendre."

79 Quand utiliser un test? tests simples Tests multiples "SI j'ai tes clés ALORS je vais pouvoir rentrer tout seul chez toi." "SI la voie rapide est bouchée ALORS je prends la prom." "SI il y a de la neige ALORS je ne viens pas SINON je passe te prendre." "SI b 0 ALORS calculer a b SINON la division est impossible."

80 tests simples Tests multiples Quand utiliser un test? "SI j'ai tes clés ALORS je vais pouvoir rentrer tout seul chez toi." "SI la voie rapide est bouchée ALORS je prends la prom." "SI il y a de la neige ALORS je ne viens pas SINON je passe te prendre." "SI b 0 ALORS calculer a b SINON la division est impossible." test Exécution d'un morceaux d'algorithme selon la situation

81 tests simples Tests multiples Tests simples si booléen alors morceaux d'algo 1 n si si booléen alors morceaux d'algo 1 sinon morceaux d'algo 2 n si booléen est une expression dont la valeur est soit Vrai soit Faux Cette expression peut être : une variable booléenne une condition une suite nie de booléens relier par des connecteurs logiques binaires

82 tests simples Tests multiples Tests simples en Java if (boolean) { morceaux de prog 1 } if (boolean) { morceaux de prog 1 } else { morceaux de prog 2 } 'Boolean' est une expression qui peut être : true : dans ce cas le morceau de programme 1 s'exécute false : dans ce cas le morceau de programme 2 s'exécute

83 Bloc en java Variables et aectations tests simples Tests multiples if (a < 0) { println("un"); println("nombre"); println("négatif"); } if (a < 0) println("negatif"); else println("positif"); Les accolades servent à créer un bloc d'instructions (= suite d'instructions) Lorsqu'il y a une seule instruction, on peut omettre les accolades. Remarque : décalage et alignement des instructions d'un même bloc (indentation) pour éviter les erreurs classiques d'accolades

84 tests simples Tests multiples Conditions t < 100 Une condition est composée de trois éléments : une expression ayant une valeur dans un ensemble ordonné un opérateur de comparaison sur cet ensemble une expression ayant une valeur dans le même ensemble

85 tests simples Tests multiples Conditions t < 100 Une condition est composée de trois éléments : une expression ayant une valeur dans un ensemble ordonné un opérateur de comparaison sur cet ensemble une expression ayant une valeur dans le même ensemble Les opérateurs de comparaison sont : =,, <, >,,, etc.

86 tests simples Tests multiples Conditions t < 100 Une condition est composée de trois éléments : une expression ayant une valeur dans un ensemble ordonné un opérateur de comparaison sur cet ensemble une expression ayant une valeur dans le même ensemble Les opérateurs de comparaison sont : =,, <, >,,, etc. Les ensembles ordonnées peuvent être par exemple les nombres entiers, les nombres réels, les mots,...

87 tests simples Tests multiples Conditions t < 100 Une condition est composée de trois éléments : une expression ayant une valeur dans un ensemble ordonné un opérateur de comparaison sur cet ensemble une expression ayant une valeur dans le même ensemble Les opérateurs de comparaison sont : =,, <, >,,, etc. Les ensembles ordonnées peuvent être par exemple les nombres entiers, les nombres réels, les mots,... Attention! 60 < t < 100 n'est pas une condition.

88 Opérateur binaire logique en java Les opérateurs de comparaison : Les connecteurs logiques : tests simples Tests multiples pseudo-code java = ==! = < < > > <= >= pseudo-code java AND && OR NOT!

89 Tests simples Exemple Variables et aectations tests simples Tests multiples Algorithme valeurabsolue(x : réel) : réel début si x < 0 alors écrire( x) sinon écrire(x) n si n

90 Tests simples Exemple Variables et aectations tests simples Tests multiples Algorithme comparaison(a, b : entier) : rien début si a < b alors écrire(a est strictement plus petit que b) sinon écrire(b est plus petit que a) n si n

91 Tests simples Exemple java Variables et aectations tests simples Tests multiples int a = 5; int b = 12; if (a < b) { print("a est strictement plus petit que b") ; } else { print("b est plus petit que a") ; } a est strictement plus petit que b

92 Une équivalence Variables et aectations tests simples Tests multiples Algorithme test1(x : réel) : booléen début si x 10 alors écrire(vrai) sinon écrire(faux) n si n Algorithme test2(x : réel) : booléen début écrire(x 10) n Les deux algorithmes test1 et test2 sont strictement équivalents. Puisqu'ils produisent les mêmes résultats pour les mêmes données, pourtant l'un est plus court à écrire que l'autre.

93 tests simples Tests multiples Tests multiples Test multiples imbriqués si booléen1 alors partie a sinon si booléen2 alors partie b sinon partie c n si n si lorsque booléen1 est vrai, la partie a s'exécute (quelque soit la valeur de booléen2) lorsque booléen1 est faux et que booléen2 est vrai, la partie b s'exécute lorsque booléen1 est faux et que booléen2 est faux, la partie c s'exécute

94 Tests multiples Variables et aectations tests simples Tests multiples Attention : ce n'est pas équivalent à la succession de 2 tests simples si booléen1 alors partie a n si si booléen2 alors partie b sinon partie c n si

95 tests simples Tests multiples Tests multiples Attention : ce n'est pas équivalent à la succession de 2 tests simples si booléen1 alors partie a n si si booléen2 alors partie b sinon partie c n si lorsque booléen1 est vrai, la partie a s'exécute Par contre la partie b s'exécute seulement lorsque booléen2 est vrai (quelque soit la valeur de booléen1)

96 Tests multiples / imbriqués Exemple tests simples Tests multiples Algorithme degredecorpulence(t : réel, m : réel) : début i m/t 2 si i < 20 alors écrire( "poids inférieur à la normale") sinon si i < 25 alors écrire( "poids normal") sinon si i < 30 alors écrire( "surcharge pondérale") sinon si i < 40 alors écrire( "adiposité") sinon écrire( "obésité"") n si n si n si n si n

97 Tests multiples Exemple Variables et aectations tests simples Tests multiples Algorithme test(x : réel) : début si 0 x alors écrire( "le nombre est positif") si i 10 alors écrire( "le nombre est compris entre 0 et 10.") sinon si i 15 alors écrire( "le nombre est compris entre 10 et 15.") sinon si i 20 alors écrire( "le nombre est compris entre 15 et 20.") sinon écrire( "le nombre est strictement supérieur à 20.") n si n si n si sinon écrire( "le nombre est strictement négatif") n si n

98 Connecteurs logiques Exemple Variables et aectations tests simples Tests multiples Algorithme ordonner?(a,b,c : réel) : booléen début si a b ET b c alors écrire(vrai) sinon écrire(faux) n si n

99 Connecteurs logiques Exemple en java Variables et aectations tests simples Tests multiples int a, b, c; a = 10; b = 3; c = 5; if ((a <= b) && (b <= c)) then println(true); else println(false);

100 tests simples Tests multiples Equivalence Exemple en java int a, b, c; a = 10; b = 3; c = 5; println((a <= b) && (b <= c));

101 Tests multiples Exercice Variables et aectations tests simples Tests multiples Ecrire en java le programme suivant : début rep : entier rep 2 si rep = 1 alors écrire("vous avez sélectionné le premier choix") si rep = 2 alors écrire("vous avez sélectionné le deuxième choix") sinon si rep = 3 alors écrire("vous avez sélectionné le troisième choix") sinon écrire("votre choix est inconnu") n si n si n si n

102 Traduction en java Variables et aectations tests simples Tests multiples int x = 2 ; if (x == 1) { println("vous avez sélectionné le premier choix"); else if (x == 2) println("vous avez sélectionné le deuxième choix"); else if (x == 3) println("vous avez sélectionné le troisième choix"); else println("votre choix est inconnu.");

103 Equivalence avec switch tests simples Tests multiples int x = 2 ; switch (x) { case 1 : println("vous avez sélectionné le premier choi break; case 2 : println("vous avez sélectionné le deuxième cho break; case 3 : println("vous avez sélectionné le troisième ch break; default : println("votre choix est inconnu."); }

104 tests simples Tests multiples Equivalence avec switch instruction porte sur une variable de type byte, short, char ou int. Lorsque la variable a la valeur indiquée après case : exécution à partir des " :" jusqu'à l'instruction "break" qui permet la reprise d'exécution après le bloc voir aussi : nutsandbolts/switch.html

105 tests simples Tests multiples Arbres de décision Schema qui représente un algorithme avec des tests imbriqués Base des systèmes experts : applications médicales, conseils, ltrage,... Ces arbres s'établissent à l'aide d'algorithmes d'apprentissage

106 tests simples Tests multiples Exercice a - b - Rappeler les deux lois De Morgan. Démontrer que ces deux lois sont logiquement équivalentes à l'aide de tables de vérités.

107 tests simples Tests multiples Exercice Dans un pays lointain, deux tribus existent. La tribu des purs qui disent toujours la vérité et la tribu des pires qui mentent toujours. Un jour en voyageant dans ce pays un peu étrange, j'ai rencontré Alain et Bob. Alain m'a déclaré 2 choses : "l'un de nous deux est au moins un pire" "l'un de nous deux au plus est un pire" Je les ai salué en partant et je me demande toujours de quelle tribu pouvait bien appartenir Alain et Bob? Questions : a - b - Répondre à la question en résonnant de manière informelle. Conrmer votre résultat à l'aide d'une table de vérité.

108 tests simples Tests multiples Objectifs de la séance 2 1 Ecrire un algorithme avec des aectations 2 Ecrire un algorithme qui échange la valeur de deux variables 3 Savoir utilisés les entrées de la souris avec Processing 4 Ecrire un algorithme avec des tests simples 5 Ecrire un algorithme avec un test multiple 6 Ecrire des programmes java avec des tests simples ou multiples Question principale du jour : Comment écrire des algorithmes selon des situations diérentes?

109 tests simples Tests multiples Travail pour la semaine prochaine Fabriquer ces petits programmes d'exemple Explorer les exemples de Processing Préparer le TP02!

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

Langage Java. Classe de première SI

Langage Java. Classe de première SI Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les

Plus en détail

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel) Algorithmes et Programmes Introduction à l informatiquel! Vie d'un programme! Algorithme! Programmation : le langage! Exécution et test des programmes Chapitre : Algorithmes et Programmes 2 Cycle de vie

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée

Plus en détail

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

IUT de Laval Année Universitaire 2008/2009. Fiche 1. - Logique -

IUT de Laval Année Universitaire 2008/2009. Fiche 1. - Logique - IUT de Laval Année Universitaire 2008/2009 Département Informatique, 1ère année Mathématiques Discrètes Fiche 1 - Logique - 1 Logique Propositionnelle 1.1 Introduction Exercice 1 : Le professeur Leblond

Plus en détail

L'instruction if permet d'exécuter des instructions différentes selon qu'une condition est vraie ou fausse. Sa forme de base est la suivante:

L'instruction if permet d'exécuter des instructions différentes selon qu'une condition est vraie ou fausse. Sa forme de base est la suivante: 420-183 Programmation 1 8. Les structures conditionnelles Dans l'écriture de tout programme informatique, une des premières nécessités que nous rencontrons est de pouvoir faire des choix. Dans une application

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Introduction à l algorithmique et à la programmation M1102 CM n 3

Introduction à l algorithmique et à la programmation M1102 CM n 3 Introduction à l algorithmique et à la programmation M1102 CM n 3 DUT Informatique 1 re année Eric REMY eric.remy@univ-amu.fr IUT d Aix-Marseille, site d Arles Version du 2 octobre 2013 E. Remy (IUT d

Plus en détail

Chapitre 2 Devine mon nombre!

Chapitre 2 Devine mon nombre! Python 3 : objectif jeux Chapitre 2 Chapitre 2 Devine mon nombre! 2.1. Thèmes abordés dans ce chapitre commentaires modules externes, import variables boucle while condition : if... elif... else la fonction

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Chapitre 10. Les interfaces Comparable et Comparator 1

Chapitre 10. Les interfaces Comparable et Comparator 1 Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],

Plus en détail

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

INF 321 : mémento de la syntaxe de Java

INF 321 : mémento de la syntaxe de Java INF 321 : mémento de la syntaxe de Java Table des matières 1 La structure générale d un programme 3 2 Les composants élémentaires de Java 3 2.1 Les identificateurs.................................. 3 2.2

Plus en détail

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables

Plus en détail

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30 Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité

Plus en détail

Cours d Informatique

Cours d Informatique Cours d Informatique 1ère année SM/SMI 2007/2008, Info 2 Département de Mathématiques et d Informatique, Université Mohammed V elbenani@hotmail.com sayah@fsr.ac.ma 2007/2008 Info2, 1ère année SM/SMI 1

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

Cours d Algorithmique et de Langage C 2005 - v 3.0

Cours d Algorithmique et de Langage C 2005 - v 3.0 Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris

Plus en détail

Corrigé des exercices sur les références

Corrigé des exercices sur les références Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

Notions fondamentales du langage C# Version 1.0

Notions fondamentales du langage C# Version 1.0 Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

SUPPORT DE COURS. Langage C

SUPPORT DE COURS. Langage C Dpt Informatique 2010-2011 SUPPORT DE COURS Langage C Semestre 1 par : «CaDePe» Marie-Françoise Canut Marianne de Michiel André Péninou Table des Matières 1 Généralités...8 1.1 Introduction aux langages

Plus en détail

Une introduction à Java

Une introduction à Java Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

Programmation Classique en langage C

Programmation Classique en langage C DI GALLO Frédéric Programmation Classique en langage C Cours du Cycle d Approfondissement CNAM ANGOULEME 2000-2001 DI GALLO Frédéric Page 1 01/04/01 PROGRAMMATION CLASSIQUE : LANGAGE C DI GALLO Frédéric

Plus en détail

UE C avancé cours 1: introduction et révisions

UE C avancé cours 1: introduction et révisions Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

Plus en détail

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2 Série de TD 2 Exercice 2.1 Quel résultat produit le programme suivant? Var val, double : entier ; Val := 231 ; Double := Val * 2 ; Ecrire (Val) ; Ecrire (Double) ;. Exercice 2.2 Ecrire un programme qui

Plus en détail

2 Comment fonctionne un ordinateur, dans les grandes lignes

2 Comment fonctionne un ordinateur, dans les grandes lignes Programmation 1 Cours n 1 GB3, 2 nd semestre 2014-2015 Cours de Python Gilles Bernot Les notes de cours et les feuilles de TD sont disponibles (avec un peu de retard par rapport au déroulement du cours)

Plus en détail

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ; s Introduction Naissance d'un programme Exercice I-1: Apprendre à décomposer une tâche en sous-tâches distinctes a. Objets nécessaires : 1 tableau, 1 clou, 2 pointes, 1 ficelle, 1 marteau, 1 crayon, 1

Plus en détail

Java Licence Professionnelle CISII, 2009-2010

Java Licence Professionnelle CISII, 2009-2010 Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd abelaid@loria.fr Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun> 94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue

Plus en détail

Solutions du chapitre 4

Solutions du chapitre 4 Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2 1 Univ. Lille1 - Licence info 3ème année 2013-2014 Expression Logique et Fonctionnelle... Évidemment Cours n o 1 : Introduction à la programmation fonctionnelle 1 Introduction La programmation fonctionnelle

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

Les arbres binaires de recherche

Les arbres binaires de recherche Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Programmation Orientée Objet Java

Programmation Orientée Objet Java Programmation Orientée Objet Java Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 12 novembre 2014 Bertrand Estellon (DII AMU) Programmation Orientée Objet Java 12 novembre

Plus en détail

Informatique Générale

Informatique Générale Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) guillaume.hutzler@ibisc.univ-evry.fr Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html

Plus en détail

TP3 : Manipulation et implantation de systèmes de fichiers 1

TP3 : Manipulation et implantation de systèmes de fichiers 1 École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande

Plus en détail

Logiciel de Base. I. Représentation des nombres

Logiciel de Base. I. Représentation des nombres Logiciel de Base (A1-06/07) Léon Mugwaneza ESIL/Dépt. Informatique (bureau A118) mugwaneza@univmed.fr I. Représentation des nombres Codage et représentation de l'information Information externe formats

Plus en détail

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr Aide mémoire UML & Java 1ère partie : Introduction marc.lemaire@u-cergy.fr 9 septembre 2014 1 2014 v1.11 Table des matières 1 Généralités 6 1.1 Notations utilisées.....................................

Plus en détail

Corrigé des TD 1 à 5

Corrigé des TD 1 à 5 Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un

Plus en détail

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle - 2012-2013 P. Bonnet

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle - 2012-2013 P. Bonnet Programmation VBA Pierre BONNET 21 La programmation VBA Historiquement, la programmation sous Excel avait comme fonction d'automatiser une succession d'actions faites dans la feuille à l'aide de la souris.

Plus en détail

Les chaînes de caractères

Les chaînes de caractères Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il

Plus en détail

Programmation en Java IUT GEII (MC-II1) 1

Programmation en Java IUT GEII (MC-II1) 1 Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)

Plus en détail

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

Algèbre binaire et Circuits logiques (2007-2008)

Algèbre binaire et Circuits logiques (2007-2008) Université Mohammed V Faculté des Sciences Département de Mathématiques et Informatique Filière : SMI Algèbre binaire et Circuits logiques (27-28) Prof. Abdelhakim El Imrani Plan. Algèbre de Boole 2. Circuits

Plus en détail

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12 Probabilités. I - Rappel : trois exemples. Exemple 1 : Dans une classe de 25 élèves, il y a 16 filles. Tous les élèves sont blonds ou bruns. Parmi les filles, 6 sont blondes. Parmi les garçons, 3 sont

Plus en détail

Tp 1 correction. Structures de données (IF2)

Tp 1 correction. Structures de données (IF2) Tp 1 correction Structures de données (IF2) Remarque générale : compilez et exécutez le code au-fur-et-à mesure de son écriture. Il est plus facile de corriger une petite portion de code délimitée que

Plus en détail

COMPARAISONDESLANGAGESC, C++, JAVA ET

COMPARAISONDESLANGAGESC, C++, JAVA ET REPUBLIQUE DU BENIN *******@******* MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE(MESRS) *******@******* UNIVERSITE D ABOMEY CALAVI(UAC) *******@******* ECOLE POLYTECHNIQUE D ABPOMEY

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

INITIATION A LA PROGRAMMATION

INITIATION A LA PROGRAMMATION 2004-2005 Université Paris Dauphine IUP Génie Mathématique et Informatique INITIATION A LA PROGRAMMATION PROCEDURALE, A L'ALGORITHMIQUE ET AUX STRUCTURES DE DONNEES PAR LE LANGAGE C Maude Manouvrier La

Plus en détail

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Polymorphisme, la classe Object, les package et la visibilité en Java... 1 Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....

Plus en détail

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper

Plus en détail

Sélection du contrôleur

Sélection du contrôleur Démo CoDeSys - 1 - 1. Configuration de l environnement de travail : Lancer le logiciel CoDeSys Fichier Nouveau Lors de la première utilisation, une boîte de dialogue apparaît permettant la sélection du

Plus en détail

UML et les Bases de Données

UML et les Bases de Données CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..

Plus en détail

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)

Plus en détail