Introduction à l algorithmique et à la programmation

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

Download "Introduction à l algorithmique et à la programmation"

Transcription

1 Introduction à l algorithmique et à la programmation DUT Informatique 1ère année, Anthony Labarre Anthony.Labarre@u-pem.fr Cours 4 / 10

2 Plan d aujourd hui Les fonctions Structure d un programme Python Le module doctest Les chaînes de caractères

3 Python pas à pas Les fonctions

4 Présentation générale Exemple (définition d une fonction) def estpremier(n): if n < 2: return False for i in range(2, n): if n % i == 0: return False return True Une fonction est un bloc d instructions réutilisable ;

5 Présentation générale Exemple (définition d une fonction) def estpremier(n): if n < 2: return False for i in range(2, n): if n % i == 0: return False return True Une fonction est un bloc d instructions réutilisable ; Une fois bien testée, on s en ressert autant qu on veut ;

6 Présentation générale Exemple (définition d une fonction) def estpremier(n): if n < 2: return False for i in range(2, n): if n % i == 0: return False return True Une fonction est un bloc d instructions réutilisable ; Une fois bien testée, on s en ressert autant qu on veut ; Maintenance à effectuer à un seul endroit ;

7 Présentation générale Exemple (définition d une fonction) def estpremier(n): if n < 2: return False for i in range(2, n): if n % i == 0: return False return True Une fonction est un bloc d instructions réutilisable ; Une fois bien testée, on s en ressert autant qu on veut ; Maintenance à effectuer à un seul endroit ; On peut les regrouper dans un module pour les réutiliser ;

8 Présentation générale Exemple (définition d une fonction) def estpremier(n): if n < 2: return False for i in range(2, n): if n % i == 0: return False return True Une fonction est un bloc d instructions réutilisable ; Une fois bien testée, on s en ressert autant qu on veut ; Maintenance à effectuer à un seul endroit ; On peut les regrouper dans un module pour les réutiliser ; Idée fondamentale en programmation : découper un programme en sous-tâches pour gagner en lisibilité et en robustesse.

9 Définir et appeler une fonction On définit une fonction de la façon suivante : Syntaxe pour définir une fonction def nomfonction(): # instruction 1 de la fonction # instruction 2 de la fonction #... # instruction n de la fonction Important : lors de la définition d une fonction, le code n est pas exécuté ; À tout moment dans le programme ou dans une fonction on peut appeler la fonction avec la commande nomfonction()

10 Premier exemple Exemple (utilisation d une fonction) def appel(): print( - * 5, appel, - * 5) if name == " main ": print( bonjour ) appel() n = int(input( nombre = )) for i in range(n): appel() Chaque fois qu on utilise l instruction appel(), le programme interrompt le flot normal d instructions pour aller effectuer les instructions d appel() ;

11 Premier exemple Exemple (utilisation d une fonction) def appel(): print( - * 5, appel, - * 5) if name == " main ": print( bonjour ) appel() n = int(input( nombre = )) for i in range(n): appel() Chaque fois qu on utilise l instruction appel(), le programme interrompt le flot normal d instructions pour aller effectuer les instructions d appel() ; Une fois les instructions d appel() effectuées, le programme reprend là où il en était ;

12 Fonction avec paramètre(s) Exemple def affiche(s): print( * * (len(s) + 4)) print( * + s + * ) print( * * (len(s) + 4)) if name == " main ": affiche( bonjour ) texte = input("entrez un message:") affiche(texte) Une fonction peut avoir un ou plusieurs paramètres ; Ils sont nommés entre parenthèses dans la définition de la fonction ; Lorsque l on appelle la fonction, il faut passer les paramètres (le bon nombre) entre parenthèses ;

13 L instruction return L instruction return x interrompt l exécution de la fonction et renvoie la valeur x ;

14 L instruction return L instruction return x interrompt l exécution de la fonction et renvoie la valeur x ; x peut être de n importe quel type ;

15 L instruction return L instruction return x interrompt l exécution de la fonction et renvoie la valeur x ; x peut être de n importe quel type ; On récupère la valeur renvoyée normalement, par exemple par une affectation : y = mafonction(z)

16 L instruction return L instruction return x interrompt l exécution de la fonction et renvoie la valeur x ; x peut être de n importe quel type ; On récupère la valeur renvoyée normalement, par exemple par une affectation : y = mafonction(z) On peut aussi l utiliser dans une expression où elle est évaluée : y = mafonction(z) + 3 print(mafonction(z))

17 L instruction return L instruction return x interrompt l exécution de la fonction et renvoie la valeur x ; x peut être de n importe quel type ; On récupère la valeur renvoyée normalement, par exemple par une affectation : y = mafonction(z) On peut aussi l utiliser dans une expression où elle est évaluée : y = mafonction(z) + 3 print(mafonction(z)) Par défaut, s il n y a pas de return ou si on met return simplement sans argument après, la fonction renvoie None ;

18 Exemple de return Exemple def minimum(liste): if len(liste) == 0: return min_actuel = liste[0] for element in liste: if element < min_actuel: min_actuel = element return min_actuel if name == " main ": L = [4, 6, 12, 3, 1, 56] M = [5, 6, 11, 3] print(minimum(l) + minimum(m)) Le premier return n a pas d argument, il renvoie None et arrête la fonction. Le programme reprend là où il en était. Le second return renvoie le résultat du calcul ;

19 Portée des variables Attention il y a des subtilités ici, à bien travailler. Exemple def f(n): n = n + 1 if name == " main ": x = 3 print(f(n)) print( x vaut, x)

20 Portée des variables Attention il y a des subtilités ici, à bien travailler. Exemple def f(n): n = n + 1 if name == " main ": x = 3 print(f(n)) print( x vaut, x) Le programme produit une erreur!

21 Portée des variables Attention il y a des subtilités ici, à bien travailler. Exemple def f(n): n = n + 1 if name == " main ": x = 3 print(f(n)) print( x vaut, x) Le programme produit une erreur! à l appel de la fonction, la valeur du paramètre de f est affectée au n de la définition de f ;

22 Portée des variables Attention il y a des subtilités ici, à bien travailler. Exemple def f(n): n = n + 1 if name == " main ": x = 3 print(f(n)) print( x vaut, x) Le programme produit une erreur! à l appel de la fonction, la valeur du paramètre de f est affectée au n de la définition de f ;... mais n n existe pas dans le corps du programme ; [Visualisation sur PythonTutor]

23 Portée des variables Attention il y a des subtilités ici, à bien travailler. Exemple def f(n): n = n + 1 if name == " main ": n = 3 f(n) print( n vaut, n)

24 Portée des variables Attention il y a des subtilités ici, à bien travailler. Exemple def f(n): n = n + 1 if name == " main ": n = 3 f(n) print( n vaut, n) Le résultat est n vaut 3!

25 Portée des variables Attention il y a des subtilités ici, à bien travailler. Exemple def f(n): n = n + 1 if name == " main ": n = 3 f(n) print( n vaut, n) Le résultat est n vaut 3! à l appel de f, la valeur du n principal est affectée au n de la définition de f, qu on note n f ;

26 Portée des variables Attention il y a des subtilités ici, à bien travailler. Exemple def f(n): n = n + 1 if name == " main ": n = 3 f(n) print( n vaut, n) Le résultat est n vaut 3! à l appel de f, la valeur du n principal est affectée au n de la définition de f, qu on note n f ; Ce n est pas le même n : nf prend la valeur de n à l appel de f et augmente de 1. n ne change pas. [Visualisation sur PythonTutor]

27 Portée des variables Attention il y a des subtilités ici, à bien travailler. Exemple def f(x): n = 1 if name == " main ": n = 3 f(n) print( n vaut, n)

28 Portée des variables Attention il y a des subtilités ici, à bien travailler. Exemple def f(x): n = 1 if name == " main ": n = 3 f(n) print( n vaut, n) Le résultat est toujours n vaut 3!

29 Portée des variables Attention il y a des subtilités ici, à bien travailler. Exemple def f(x): n = 1 if name == " main ": n = 3 f(n) print( n vaut, n) Le résultat est toujours n vaut 3! à l appel de la fonction, la valeur du paramètre de f est affectée au x de la définition de f ;

30 Portée des variables Attention il y a des subtilités ici, à bien travailler. Exemple def f(x): n = 1 if name == " main ": n = 3 f(n) print( n vaut, n) Le résultat est toujours n vaut 3! à l appel de la fonction, la valeur du paramètre de f est affectée au x de la définition de f ; l affectation n = 1 crée une variable locale à f, notée nf ;

31 Portée des variables Attention il y a des subtilités ici, à bien travailler. Exemple def f(x): n = 1 if name == " main ": n = 3 f(n) print( n vaut, n) Le résultat est toujours n vaut 3! à l appel de la fonction, la valeur du paramètre de f est affectée au x de la définition de f ; l affectation n = 1 crée une variable locale à f, notée nf ; nf prend la valeur de 1 et le n principal ne change pas. [Visualisation sur PythonTutor]

32 Portée des variables Les paramètres de la définition de la fonction sont des variables locales, propres à la fonction ;

33 Portée des variables Les paramètres de la définition de la fonction sont des variables locales, propres à la fonction ; Les variables affectées dans la fonction sont aussi des variables locales, propres à la fonction ;

34 Portée des variables Les paramètres de la définition de la fonction sont des variables locales, propres à la fonction ; Les variables affectées dans la fonction sont aussi des variables locales, propres à la fonction ; Ces variables locales existent pendant l exécution de la fonction et n existent plus après ;

35 Portée des variables Les paramètres de la définition de la fonction sont des variables locales, propres à la fonction ; Les variables affectées dans la fonction sont aussi des variables locales, propres à la fonction ; Ces variables locales existent pendant l exécution de la fonction et n existent plus après ; Les variables affectées dans le corps du programme (hors fonctions) sont des variables globales ;

36 Portée des variables Les paramètres de la définition de la fonction sont des variables locales, propres à la fonction ; Les variables affectées dans la fonction sont aussi des variables locales, propres à la fonction ; Ces variables locales existent pendant l exécution de la fonction et n existent plus après ; Les variables affectées dans le corps du programme (hors fonctions) sont des variables globales ; elles sont lisibles dans tout le programme ;

37 Portée des variables Les paramètres de la définition de la fonction sont des variables locales, propres à la fonction ; Les variables affectées dans la fonction sont aussi des variables locales, propres à la fonction ; Ces variables locales existent pendant l exécution de la fonction et n existent plus après ; Les variables affectées dans le corps du programme (hors fonctions) sont des variables globales ; elles sont lisibles dans tout le programme ; elles ne sont pas modifiables dans une fonction : si on affecte une variable globale dans une fonction, on crée une variable locale avec le même nom ;

38 Portée des variables Les paramètres de la définition de la fonction sont des variables locales, propres à la fonction ; Les variables affectées dans la fonction sont aussi des variables locales, propres à la fonction ; Ces variables locales existent pendant l exécution de la fonction et n existent plus après ; Les variables affectées dans le corps du programme (hors fonctions) sont des variables globales ; elles sont lisibles dans tout le programme ; elles ne sont pas modifiables dans une fonction : si on affecte une variable globale dans une fonction, on crée une variable locale avec le même nom ; Pour modifier une variable globale x dans une fonction, il faut la déclarer avec le mot clé global ;

39 Exemple de portée Exemple (utilisation de global) def f(n): global k i = n k = 0 print(i, j, k) if name == " main ": i = 2 j = 4 k = 6 f(44) print(i, j, k) Dans le corps de la fonction n et i sont des variables locales ; k est une variable globale modifiable ; j est visible en tant que variable globale (mais non modifiable) ; [Visualisation sur PythonTutor]

40 Python pas à pas Structure d un programme Python

41 Structure d un programme Python Les programmes que vous écrirez deviendront de plus en plus complexes, d où l importance de les structurer pour qu ils soient lisibles et compréhensibles ; On a vu un modèle sur lequel se baser : #!/usr/bin/env python3 # -*- coding: utf-8 -*- Description de ce a quoi sert le module, ses fonctionnalites. # Autres commentaires generaux (auteur, date d ecriture, adresse , etc.) # Imports: inclusion des modules dont vous avez besoin #import os # exemple, a decommenter en cas de besoin #import sys # exemple, a decommenter en cas de besoin # Fonctions et variables globales def mafonction(param1, param2): Explication de ce que fait la fonction, des resultats renvoyes le cas echeant, et de ce a quoi correspondent ses parametres. pass # on ne fait rien (a remplacer par ce qu il vous faut) # Le corps du programme: c est la qu on ecrit le code a executer quand le # module est passe a l interpreteur Python if name == main : # Inserez ici les tests de vos fonctions et les autres actions a executer pass # on ne fait rien (a remplacer par ce qu il vous faut)

42 Structure d un programme Python : explications Les deux premières lignes précisent : 1. où doit se trouver l interpréteur Python ; 2. l encodage du fichier source ; La troisième ligne est une docstring, qui décrit le module ; on en écrit une par module et une par fonction ; c est ce que python affiche quand on tape help(module) ou help(fonction) ; #!/usr/bin/env python3 # -*- coding: utf-8 -*- Description de ce a quoi sert le module, ses fonctionnalites. # Autres commentaires generaux (auteur, date d ecriture, adresse , etc.) # Imports: inclusion des modules dont vous avez besoin #import os # exemple, a decommenter en cas de besoin #import sys # exemple, a decommenter en cas de besoin # Fonctions et variables globales def mafonction(param1, param2): Explication de ce que fait la fonction, des resultats renvoyes le cas echeant, et de ce a quoi correspondent ses parametres. pass # on ne fait rien (a remplacer par ce qu il vous faut)

43 Python pas à pas Le module doctest

44 Comment tester son programme? La découpe en fonctions et modules rend les tests unitaires plus simples ;

45 Comment tester son programme? La découpe en fonctions et modules rend les tests unitaires plus simples ; On teste chaque fonction de chaque module séparément, en comparant ses résultats à ce qu on attend ;

46 Comment tester son programme? La découpe en fonctions et modules rend les tests unitaires plus simples ; On teste chaque fonction de chaque module séparément, en comparant ses résultats à ce qu on attend ; On peut écrire des tests :

47 Comment tester son programme? La découpe en fonctions et modules rend les tests unitaires plus simples ; On teste chaque fonction de chaque module séparément, en comparant ses résultats à ce qu on attend ; On peut écrire des tests : soit dans la partie principale du programme ;

48 Comment tester son programme? La découpe en fonctions et modules rend les tests unitaires plus simples ; On teste chaque fonction de chaque module séparément, en comparant ses résultats à ce qu on attend ; On peut écrire des tests : soit dans la partie principale du programme ; soit dans les docstrings des fonctions à tester ;

49 Comparaison de deux fonctions Les cas les plus simples à tester sont ceux où l on dispose déjà d une fonction correcte f() ;

50 Comparaison de deux fonctions Les cas les plus simples à tester sont ceux où l on dispose déjà d une fonction correcte f() ; Pour que notre nouvelle fonction g() soit correcte, il faut qu elle donne toujours le même résultat que f() quand on fournit les mêmes paramètres aux deux fonctions ;

51 Comparaison de deux fonctions Les cas les plus simples à tester sont ceux où l on dispose déjà d une fonction correcte f() ; Pour que notre nouvelle fonction g() soit correcte, il faut qu elle donne toujours le même résultat que f() quand on fournit les mêmes paramètres aux deux fonctions ; Exemple (comparaison de résultats) if puissance(a, b)!= a ** b: print( Erreur: la fonction puissance ne marche pas pour a =, a,, b =, b)

52 Le mot-clé assert Le mot-clé assert permet de détecter des problèmes ;

53 Le mot-clé assert Le mot-clé assert permet de détecter des problèmes ; Il évalue une expression booléenne, et provoque une exception si cette expression est fausse ;

54 Le mot-clé assert Le mot-clé assert permet de détecter des problèmes ; Il évalue une expression booléenne, et provoque une exception si cette expression est fausse ; S il y a une erreur, le programme plante et on récupère la ligne où l assertion a échoué ;

55 Le mot-clé assert Le mot-clé assert permet de détecter des problèmes ; Il évalue une expression booléenne, et provoque une exception si cette expression est fausse ; S il y a une erreur, le programme plante et on récupère la ligne où l assertion a échoué ; Exemple (utilisation de assert) assert puissance(a, b) == a ** b,\ "puissance echoue pour a =" \ + str(a) + ", b = " + str(b)

56 Le mot-clé assert Le mot-clé assert permet de détecter des problèmes ; Il évalue une expression booléenne, et provoque une exception si cette expression est fausse ; S il y a une erreur, le programme plante et on récupère la ligne où l assertion a échoué ; Exemple (utilisation de assert) assert puissance(a, b) == a ** b,\ "puissance echoue pour a =" \ + str(a) + ", b = " + str(b) Quelles valeurs tester?

57 Le mot-clé assert Le mot-clé assert permet de détecter des problèmes ; Il évalue une expression booléenne, et provoque une exception si cette expression est fausse ; S il y a une erreur, le programme plante et on récupère la ligne où l assertion a échoué ; Exemple (utilisation de assert) assert puissance(a, b) == a ** b,\ "puissance echoue pour a =" \ + str(a) + ", b = " + str(b) Quelles valeurs tester? les valeurs sensibles ;

58 Le mot-clé assert Le mot-clé assert permet de détecter des problèmes ; Il évalue une expression booléenne, et provoque une exception si cette expression est fausse ; S il y a une erreur, le programme plante et on récupère la ligne où l assertion a échoué ; Exemple (utilisation de assert) assert puissance(a, b) == a ** b,\ "puissance echoue pour a =" \ + str(a) + ", b = " + str(b) Quelles valeurs tester? les valeurs sensibles ; (un grand nombre de) valeurs aléatoires ;

59 Le module doctest Le module doctest permet d exécuter des tests spécifiés dans les docstrings des fonctions ;

60 Le module doctest Le module doctest permet d exécuter des tests spécifiés dans les docstrings des fonctions ; Ces tests ne sont effectués que si le module est chargé ;

61 Le module doctest Le module doctest permet d exécuter des tests spécifiés dans les docstrings des fonctions ; Ces tests ne sont effectués que si le module est chargé ; Cela permet de ne pas polluer le code source avec des assert, des print ou d autres instructions de debug ;

62 Le module doctest Le module doctest permet d exécuter des tests spécifiés dans les docstrings des fonctions ; Ces tests ne sont effectués que si le module est chargé ; Cela permet de ne pas polluer le code source avec des assert, des print ou d autres instructions de debug ; Exemple (doctests de math.factorial) def factorial(n): """Return the factorial of n, an exact integer >= 0. >>> [factorial(n) for n in range(6)] [1, 1, 2, 6, 24, 120] >>> factorial(30) >>> factorial(-1) Traceback (most recent call last):... ValueError: n must be >= 0 Factorials of floats are OK, but the float must be an exact integer: >>> factorial(30.1) Traceback (most recent call last):... ValueError: n must be exact integer

63 Le module doctest Pour exécuter ces tests, on insère ceci dans la partie principale :

64 Le module doctest Pour exécuter ces tests, on insère ceci dans la partie principale : if name == " main ": import doctest doctest.testmod()

65 Le module doctest Pour exécuter ces tests, on insère ceci dans la partie principale : if name == " main ": import doctest doctest.testmod() Si python3 tests.py n affiche rien, tout va bien ;

66 Le module doctest Pour exécuter ces tests, on insère ceci dans la partie principale : if name == " main ": import doctest doctest.testmod() Si python3 tests.py n affiche rien, tout va bien ; Pour plus d infos sur les tests : python3 tests.py -v

67 Derniers mots sur les tests On ne peut malheureusement pas tout tester, mais on peut minimiser les risques de problèmes ;

68 Derniers mots sur les tests On ne peut malheureusement pas tout tester, mais on peut minimiser les risques de problèmes ; Encore une fois, structurer son programme et suivre les recommandations déjà vues permet de réduire le risque de rencontrer des problèmes ;

69 Derniers mots sur les tests On ne peut malheureusement pas tout tester, mais on peut minimiser les risques de problèmes ; Encore une fois, structurer son programme et suivre les recommandations déjà vues permet de réduire le risque de rencontrer des problèmes ; On peut démontrer qu un algorithme est correct, mais cela ne nous dispense pas de faire attention à son implémentation ;

70 Derniers mots sur les tests On ne peut malheureusement pas tout tester, mais on peut minimiser les risques de problèmes ; Encore une fois, structurer son programme et suivre les recommandations déjà vues permet de réduire le risque de rencontrer des problèmes ; On peut démontrer qu un algorithme est correct, mais cela ne nous dispense pas de faire attention à son implémentation ; Pour écrire du code plus propre et plus professionnel : voir pep8 et pylint.

71 Python pas à pas Les chaînes de caractères

72 Déclaration de chaînes de caractères On peut déclarer une chaîne entre apostrophes comme on a fait jusqu ici : x = toto...

73 Déclaration de chaînes de caractères On peut déclarer une chaîne entre apostrophes comme on a fait jusqu ici : x = toto... Ou entre guillemets : x = "toto"

74 Déclaration de chaînes de caractères On peut déclarer une chaîne entre apostrophes comme on a fait jusqu ici : x = toto... Ou entre guillemets : x = "toto" Les deux sont valides, on peut par exemple utiliser la première quand il y a des guillemets dans la chaîne et la seconde quand il y a des apostrophes.

75 Déclaration de chaînes de caractères On peut déclarer une chaîne entre apostrophes comme on a fait jusqu ici : x = toto... Ou entre guillemets : x = "toto" Les deux sont valides, on peut par exemple utiliser la première quand il y a des guillemets dans la chaîne et la seconde quand il y a des apostrophes. Comment faire s il y a à la fois des et des? on utilise les caractères spéciaux \ et \ : s = il a dit : "à l\ abordage!"

76 Déclaration de chaînes de caractères On peut déclarer une chaîne entre apostrophes comme on a fait jusqu ici : x = toto... Ou entre guillemets : x = "toto" Les deux sont valides, on peut par exemple utiliser la première quand il y a des guillemets dans la chaîne et la seconde quand il y a des apostrophes. Comment faire s il y a à la fois des et des? on utilise les caractères spéciaux \ et \ : s = il a dit : "à l\ abordage!" Attention : \ est un seul caractère, de même pour \ (ce sont des caractères spéciaux) : len( d\ abord ) 7

77 Déclaration sur plusieurs lignes On peut déclarer une chaîne sur plusieurs lignes en utilisant des triples apostrophes ou triples guillemets comme délimiteurs : s = Ceci est une chaîne sur plusieurs lignes.

78 Déclaration sur plusieurs lignes On peut déclarer une chaîne sur plusieurs lignes en utilisant des triples apostrophes ou triples guillemets comme délimiteurs : s = Ceci est une chaîne sur plusieurs lignes. Les sauts de lignes seront encodés par le caractère \n ;

79 Déclaration sur plusieurs lignes On peut déclarer une chaîne sur plusieurs lignes en utilisant des triples apostrophes ou triples guillemets comme délimiteurs : s = Ceci est une chaîne sur plusieurs lignes. Les sauts de lignes seront encodés par le caractère \n ; On peut également utiliser juste un backslash \ avant la fin de ligne et continuer sur la ligne suivante : s = Ceci est une \ chaîne sur \ plusieurs lignes.

80 Caractères spéciaux Voici quelques caractères spéciaux utiles : \ apostrophe \" guillemet \n saut de ligne \t tabulation \\ antislash \b reculer d un Par exemple la chaîne x = toto\ba est une chaîne de longueur 6, si on fait print(x) il s affiche... >>> print(x) tota

81 Les chaînes sont non-modifiables Important : une chaîne n est pas modifiable ;

82 Les chaînes sont non-modifiables Important : une chaîne n est pas modifiable ; Si x contient une valeur de type str et que vous voulez la changer, il faut faire une nouvelle affectation de x : x = toto x[0] = p erreur : on ne peut pas modifier une chaîne x = poto on crée une nouvelle chaîne poto

83 Les chaînes sont non-modifiables Important : une chaîne n est pas modifiable ; Si x contient une valeur de type str et que vous voulez la changer, il faut faire une nouvelle affectation de x : x = toto x[0] = p erreur : on ne peut pas modifier une chaîne x = poto on crée une nouvelle chaîne poto Rappel : c est le contraire avec les listes : lst = [1,4,6,7] lst[0] = 3 lst vaut [3,4,6,7]

84 Opérations sur les chaînes On a déjà vu la concaténation + de deux chaînes et la multiplication par un entier

85 Opérations sur les chaînes On a déjà vu la concaténation + de deux chaînes et la multiplication par un entier On a accès au i-ème caractère de la chaîne s avec s[i] (les indices commencent à 0)

86 Opérations sur les chaînes On a déjà vu la concaténation + de deux chaînes et la multiplication par un entier On a accès au i-ème caractère de la chaîne s avec s[i] (les indices commencent à 0) len(s) renvoie la longueur de s

87 Opérations sur les chaînes On a déjà vu la concaténation + de deux chaînes et la multiplication par un entier On a accès au i-ème caractère de la chaîne s avec s[i] (les indices commencent à 0) len(s) renvoie la longueur de s Bien d autres opérations sur les chaînes sont disponibles sous la forme de méthodes, avec la notation s.fonction() :

88 Opérations sur les chaînes On a déjà vu la concaténation + de deux chaînes et la multiplication par un entier On a accès au i-ème caractère de la chaîne s avec s[i] (les indices commencent à 0) len(s) renvoie la longueur de s Bien d autres opérations sur les chaînes sont disponibles sous la forme de méthodes, avec la notation s.fonction() : s.lower() renvoie une nouvelle chaîne où les majuscules ont été changées en minuscules

89 Opérations sur les chaînes On a déjà vu la concaténation + de deux chaînes et la multiplication par un entier On a accès au i-ème caractère de la chaîne s avec s[i] (les indices commencent à 0) len(s) renvoie la longueur de s Bien d autres opérations sur les chaînes sont disponibles sous la forme de méthodes, avec la notation s.fonction() : s.lower() renvoie une nouvelle chaîne où les majuscules ont été changées en minuscules s.upper() renvoie une nouvelle chaîne où les minuscules ont été changées en majuscules

90 Opérations sur les chaînes On a déjà vu la concaténation + de deux chaînes et la multiplication par un entier On a accès au i-ème caractère de la chaîne s avec s[i] (les indices commencent à 0) len(s) renvoie la longueur de s Bien d autres opérations sur les chaînes sont disponibles sous la forme de méthodes, avec la notation s.fonction() : s.lower() renvoie une nouvelle chaîne où les majuscules ont été changées en minuscules s.upper() renvoie une nouvelle chaîne où les minuscules ont été changées en majuscules s.split(t), où t est une chaîne, renvoie une liste de chaînes obtenues en coupant s aux occurrences de t

91 Opérations sur les chaînes On a déjà vu la concaténation + de deux chaînes et la multiplication par un entier On a accès au i-ème caractère de la chaîne s avec s[i] (les indices commencent à 0) len(s) renvoie la longueur de s Bien d autres opérations sur les chaînes sont disponibles sous la forme de méthodes, avec la notation s.fonction() : s.lower() renvoie une nouvelle chaîne où les majuscules ont été changées en minuscules s.upper() renvoie une nouvelle chaîne où les minuscules ont été changées en majuscules s.split(t), où t est une chaîne, renvoie une liste de chaînes obtenues en coupant s aux occurrences de t...

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

Découverte de Python

Découverte de Python Découverte de Python Python est un des langages informatiques au programme des concours à partir de la session 2015. Ce tutoriel vous permettra de vous mettre à peu près à niveau de ce qui a été fait en

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

Les classes en Python

Les classes en Python CHAPITRE 1 Les classes en Python Le mécanisme de classe en Python permet d introduire les classes avec un minimum de syntaxe et sémantique nouvelles. Les caractéristiques les plus importantes des classes

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

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

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

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

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

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

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

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

PROJET ALGORITHMIQUE ET PROGRAMMATION II

PROJET ALGORITHMIQUE ET PROGRAMMATION II PROJET 1 ALGORITHMIQUE ET PROGRAMMATION II CONTENU DU RAPPORT A RENDRE : o Fiche signalétique du binôme o Listing des différents fichiers sources o CD sources o Il sera tenu compte de la présentation du

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

Chap III : Les tableaux

Chap III : Les tableaux Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction

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

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

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

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

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

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

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

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

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 7 : Utilisation de modules sous python

Cours 7 : Utilisation de modules sous python Cours 7 : Utilisation de modules sous python 2013/2014 Utilisation d un module Importer un module Exemple : le module random Importer un module Exemple : le module random Importer un module Un module est

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

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

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

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources SNT4U16 - Initiation à la programmation Licence SVT 2 ème année 2014-2015 TD - Dynamique de POP III - Fichiers sources contacts : mathias.gauduchon@univ-amu.fr, melika.baklouti@univ-amu.fr, xavier.giraud@univ-amu.fr,

Plus en détail

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 4 : Fonctions La construction de fonctions dans un langage de programmation permet aux

Plus en détail

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Unix/Linux I. 1 ere année DUT. Université marne la vallée Unix/Linux I 1 ere année DUT Université marne la vallée 1 Introduction 2 Fonctions et spécifité d Unix Architecture 3 4 5 Fichier Unix Arborescence de fichiers Quelques commandes sur les fichiers Chemins

Plus en détail

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2 Initiation Matlab 2 1 Chaînes de caractères (string) Une chaîne de caractères (string en anglais) est une suite ordonnée de caractères (du texte, par exemple). Sous matlab, les chaînes de caractères sont

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

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 Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

Plus en détail

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à la Programmation en Logique avec SISCtus Prolog Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées

Plus en détail

1. Structure d'un programme FORTRAN 95

1. Structure d'un programme FORTRAN 95 FORTRAN se caractérise par la nécessité de compiler les scripts, c'est à dire transformer du texte en binaire.(transforme un fichier de texte en.f95 en un executable (non lisible par un éditeur) en.exe.)

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

1 Lecture de fichiers

1 Lecture de fichiers Programmation 1 Cours n 6 GB3, 2 nd semestre 2014-2015 Cours de Python Gilles Bernot 1 Lecture de fichiers Un fichier est une suite de caractères mémorisés sur le disque dur de la machine dans un endroit

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

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique et programmation : les bases (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

à l édition de textes

à l édition de textes Introduction à l édition de textes Introduction Le traitement de texte consiste en la création et la modification de textes (appelés aussi documents) à l'aide d'un ordinateur. Les premiers logiciels de

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

Les bases du langage Python

Les bases du langage Python Laboratoire de mathématiques d'orsay 6 décembre 2010 Plan 1 Présentation de Python 2 Les types et les opérations de base 3 Les structures de contrôle 4 Les fonctions 5 Les chiers 6 Les classes 7 Les exceptions

Plus en détail

TD3: tableaux avancées, première classe et chaînes

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

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

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

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

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 L envoi d un formulaire par courriel Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 Chapitre 9 L envoi d un formulaire par courriel L envoi par courriel d informations

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

INSTALLATION ET CONFIGURATION DE OPENLDAP

INSTALLATION ET CONFIGURATION DE OPENLDAP INSTALLATION ET CONFIGURATION DE OPENLDAP Ce document a pour intérêt de décrire les étapes de l installation et de la configuration de l outil OpenLDAP sous l OS FreeBSD 4.8 Installation et Configuration

Plus en détail

DM 1 : Montre Autoquartz ETA

DM 1 : Montre Autoquartz ETA Lycée Masséna DM 1 : Montre Autoquartz ETA 1 Présentation de la montre L essor de l électronique nomade s accompagne d un besoin accru de sources d énergies miniaturisées. Les contraintes imposées à ces

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

NOTICE TELESERVICES : Créer mon compte personnel

NOTICE TELESERVICES : Créer mon compte personnel NOTICE TELESERVICES : Créer mon compte personnel Sommaire Sommaire... 1 Objet de la notice... 1 A qui s adresse cette notice?... 1 Pré-requis... 1 Le guide pas à pas pour créer votre compte personnel...

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

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

Plus en détail

Exercices sur les interfaces

Exercices sur les interfaces Exercices sur les interfaces Fabrice Rossi 18 octobre 1999 1 Le type Object 1.1 Manipulations élémentaires Exercice 1.1 : Indiquer l affichage produit par le programme suivant : public class UpCast1 {

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

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Compléments de documentation Scilab : affichage de texte et formatage de nombres Université des Sciences et Technologies de Lille U.F.R. de Mathématiques Pures et Appliquées Agrégation externe Année 2002-2003 Compléments de documentation Scilab : affichage de texte et formatage de

Plus en détail

Allegro INVOICE subito. Prise en main rapide

Allegro INVOICE subito. Prise en main rapide Allegro INVOICE subito Prise en main rapide 1 Table des matières 1 Démarrer votre facturation... 1 1.1 Se connecter... 1 1.2 Information utilisateur... 2 1.3 Propriétés du dossier... 3 1.4 Paramètres -

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

# 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

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

1 Introduction au codage

1 Introduction au codage CélestineOscarDésiréAnatoleGastonEugène 1 Introduction au codage 1.1 Les ensembles L ensemble de tout les ensembles est Dieu lui-même. Kantor Ensemble des parties d un ensemble désigne l ensemble des sous-ensembles

Plus en détail

Perl Orienté Objet BioPerl There is more than one way to do it

Perl Orienté Objet BioPerl There is more than one way to do it Perl Orienté Objet BioPerl There is more than one way to do it Bérénice Batut, berenice.batut@udamail.fr DUT Génie Biologique Option Bioinformatique Année 2014-2015 Perl Orienté Objet - BioPerl Rappels

Plus en détail

Guide de formation avec cas pratiques. Programmation. Philippe Moreau Patrick Morié. Daniel-Jean David

Guide de formation avec cas pratiques. Programmation. Philippe Moreau Patrick Morié. Daniel-Jean David Guide de formation avec cas pratiques Excel 2007 Programmation Avancé VBA Guide de formation avec cas pratiques Philippe Moreau Patrick Morié Daniel-Jean David Tsoft et Groupe Eyrolles, 2009, ISBN : 978-2-212-12446-0

Plus en détail

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis

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

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

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

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année 2003-2004 Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES Maude Manouvrier La reproduction de ce document par

Plus en détail

Programmation VBA. Excel 2013. Daniel-Jean David. et Groupe Eyrolles, 2014, ISBN : 978-2-212-13905-1

Programmation VBA. Excel 2013. Daniel-Jean David. et Groupe Eyrolles, 2014, ISBN : 978-2-212-13905-1 Guide de formation avec cas pratiques Excel 2013 Programmation VBA Daniel-Jean David Tsoft et Groupe Eyrolles, 2014, ISBN : 978-2-212-13905-1 Table des matières PARTIE 1 APPRENTISSAGE 5 1- CRÉATION D UN

Plus en détail

Génie Logiciel avec Ada. 4 février 2013

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

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

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Structure fonctionnelle d un SGBD

Structure fonctionnelle d un SGBD Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert

Plus en détail

Application 1- VBA : Test de comportements d'investissements

Application 1- VBA : Test de comportements d'investissements Application 1- VBA : Test de comportements d'investissements Notions mobilisées Chapitres 1 à 5 du cours - Exemple de récupération de cours en ligne 1ère approche des objets (feuilles et classeurs). Corps

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

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

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

Exonet : sauvegarde automatisée d une base de données

Exonet : sauvegarde automatisée d une base de données Exonet : sauvegarde automatisée d une base de données Description Propriétés Description Intitulé long Formation concernée Matière Présentation Notions Transversalité Outils Mots-clés Durée 4h. Auteur(es)

Plus en détail

Machines virtuelles fonctionnelles (suite) Compilation ML Java

Machines virtuelles fonctionnelles (suite) Compilation ML Java Machines virtuelles fonctionnelles (suite) Compilation ML Java Cours de Compilation Avancée (MI190) Benjamin Canou Université Pierre et Maire Curie Année 2011/2012 Semaine 3 Machines virtuelles fonctionnelles

Plus en détail

GlobalScape Secure FTP Server 3.0.2 Buffer Overflow

GlobalScape Secure FTP Server 3.0.2 Buffer Overflow GlobalScape Secure FTP Server 3.0.2 Buffer Overflow muts@whitehat.co.il Traduction française: jerome[at]athias.fr http://www.athias.fr/jerome/doc/ Qu est-ce que le Serveur FTP Sécurisé GlobalScape?...

Plus en détail

Langage Éric Guérin 5 octobre 2010

Langage Éric Guérin 5 octobre 2010 Langage Éric Guérin 5 octobre 2010 Langage C TABLE DES MATIÈRES Table des matières 1 Introduction 7 1.1 Historique........................................... 7 1.2 Architecture matérielle....................................

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

I00 Éléments d architecture

I00 Éléments d architecture I00 I Exemples d ordinateur Pour les informaticiens, différentes machines de la vie courante sont des ordinateurs : par exemple les ordinateurs portables, les ordinateurs fixes, mais aussi les supercalculateurs,

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

Guide d implémentation. Réussir l intégration de Systempay

Guide d implémentation. Réussir l intégration de Systempay Guide d implémentation - Interface avec la plateforme de paiement - Réussir l intégration de Systempay Version 1.4b Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa

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

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Chapitre 2. Eléments pour comprendre un énoncé

Chapitre 2. Eléments pour comprendre un énoncé Chapitre 2 Eléments pour comprendre un énoncé Ce chapitre est consacré à la compréhension d un énoncé. Pour démontrer un énoncé donné, il faut se reporter au chapitre suivant. Les tables de vérité données

Plus en détail

Qu est ce que Visual Guard. Authentification Vérifier l identité d un utilisateur

Qu est ce que Visual Guard. Authentification Vérifier l identité d un utilisateur Qu est ce que Visual Guard Authentification Vérifier l identité d un utilisateur Autorisation Qu est-ce qu un utilisateur peut faire dans l application Audits et rapports Fonctionnalités d Audit et de

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

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

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

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

Rappels Entrées -Sorties

Rappels Entrées -Sorties Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk

Plus en détail