Objectifs du cours d aujourd hui. Informatique I : Cours d introduction à l informatique et à la programmation Types avancés (1)

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

Download "Objectifs du cours d aujourd hui. Informatique I : Cours d introduction à l informatique et à la programmation Types avancés (1)"

Transcription

1 Objectifs du cours d aujourd hui Informatique I : Cours d introduction à l informatique et à la programmation Types avancés (1) Jamila Sam Haroud Présenter des structures de données plus avancées (que les types élémentaires) : Tableaux Tableaux de taille fixe Tableaux de taille variable (vector) Chaîne de caractères (string) Types élémentaires avancés Laboratoire d Intelligence Artificielle et la suite la semaine prochaine : Faculté I&C Structures Pointeurs Informatique I Cours 6 :Types composés 1 Informatique I Cours 6 :Types composés 2 Rencontre du 5 e type Exemples de données structurées À ce stade du cours, la représentation des données se réduit aux types élémentaires int, double, char et bool. Ils permettent de représenter, dans des variables, des concepts simples du monde modélisé dans le programme : dimensions, sommes, tailles, expressions logiques, Cependant, de nombreuses données plus sophistiquées ne se réduisent pas à un objet informatique élémentaire. un langage de programmation évolué doit donc fournir le moyen de composer les types élémentaires pour construire des types plus complexes, les types composés. Âge Nom Taille Âge Sexe 20 Dupond M 35 Dupont M 26 Durand F 38 Dugenou oui 22 Pahut F tableaux, structures de données hétérogènes (par exemple, «un enregistrement» dans la liste ci-dessus), chaînes de caractères (par exemple, le «nom»), etc. Informatique I Cours 6 :Types composés 3 Informatique I Cours 6 :Types composés 4

2 Les types composés : les tableaux Une première façon de composer les types élémentaires est de faire des tableaux. Les tableaux en C++ sont des types composés homogènes, c est-à-dire constitués d éléments qui sont tous du même type. On pourra donc définir des tableaux d int, de double, de char, mais aussi de types composés, par exemple des tableaux de tableaux (!!) Dans un premier temps, nous allons nous intéresser aux tableaux de taille fixe Les tableaux de taille variable (vector) viendront ensuite. Déclaration d un tableau de taille fixe La syntaxe de déclaration d un tableau de taille fixe est : type identificateur[taille] ; où type est le type des éléments constitutifs du tableau, identificateur est le nom du tableau et taille est le nombre d éléments que contient le tableau. Ce nombre doit être connu à l avance ( sinon vector) Exemples : int age[5] ; correspond à la déclaration d un tableau de 5 entiers. int const NB_CANTONS(26) ; double superficie[nb_cantons] ; correspond à la déclaration d un tableau de 26 double. Informatique I Cours 6 :Types composés 5 Informatique I Cours 6 :Types composés 6 Déclaration d un tableau de taille fixe (2) Initialisation d un tableau de taille fixe Attention! Ne pas confondre int age(5) ; un entier initialisé à la valeur 5 et int age[5] ; un tableau de cinq entiers Conseil : N écrivez jamais explicitement la taille d un tableau (valeur littérale) int age[5] ; mais préférez mettre sa taille dans une constante. int const NB_CANTONS(26) ; double superficie[nb_cantons] ; Cela vous permet par la suite de référencer à plusieurs endroit la taille (par exemple dans des boucles) sans recopier la valeur explicite. Ainsi en cas de changement du programme vous n aurez qu une seule valeur à modifier : l initialisation de la constante. Comme pour les variables de type élémentaire, un tableau de taille fixe peut être initialisé directement lors de sa déclaration. Par contre la syntaxe est différente (des autres types) : type identificateur[taille] = {val 1,, val taille ; int age[5] = {20,35,26,38,22 ; Âge Informatique I Cours 6 :Types composés 7 Informatique I Cours 6 :Types composés 8

3 Accès aux éléments d un tableau de taille fixe Le i+1 ème élément d un tableau d identificateur tab est référencé par tab[i] Attention! les indices correspondant aux éléments d un tableau de taille taille varient entre 0 et taille-1 et il n y a pas de contrôle de débordement!! tab[10000] Le 1 er élément d un tableau tablo précédemment déclaré est donc tablo[0] et son 10 e élément est tablo[9] int const TAILLE(5); int age[taille]; Le passage d un tableau en argument d une fonction Pour le passage d un tableau en argument d une fonction, on peut omettre de spécifier la taille : int f(double tableau[]) ; La fonction f prend comme argument un tableau dont on n a pas spécifié la taille Conseil : Veillez néanmoins à ce que la taille du tableau soit connue de la fonction, par exemple en faisant : int f(double tableau[], int const taille) ; for(int i(0); i < TAILLE; ++i) { cout << "Age de l employé " << i+1 << "? " << flush; cin >> age[i]; Informatique I Cours 6 :Types composés 9 Informatique I Cours 6 :Types composés 10 Le passage d un tableau en argument d une fonction (2) Tableaux à plusieurs dimensions Attention! Il faut avoir consience que le passage d un tableau de taille fixe en argument d une fonction se fait toujours par référence, bien que ce ne soit pas explicitement marqué par le signe &. void g(int tab[], int const taille) { for (int i(0); i < taille; ++i) tab[i] = i+1 ; main { int const TAILLE(3) ; int t[taille] = { 0, 0, 0 ; g(t, TAILLE) ; for (int i(0); i < TAILLE; ++i) cout << t[i] << " " ; Ce programme affichera donc l appel à la fonction g aura modifié le tableau tab. Si vous voulez évitez les effets de bord, ajoutez const Informatique I Cours 6 :Types composés 11 Comment déclarer un tableau à plusieurs dimensions? On ajoute simplement un niveau de [ ] de plus : C est en fait un tableau de tableaux Exemples : double rotation[2][2] ; int statistiques[nb_cantons][nb_statistiques] ; double tenseur[3][2][4] ; rotation[1][0] = ; En faisant une analogie avec les mathématiques, un tableau à une dimension représente donc un vecteur, un tableau à deux dimensions une matrice et un tableau de plus de deux dimensions un tenseur. Informatique I Cours 6 :Types composés 12

4 Tableaux à plusieurs dimensions Les tableaux multidimensionnels peuvent également être initialisés lors de leur déclaration. Il faut bien sûr spécifier autant de valeurs que les dimensions et ceci pour chacune des dimensions. Passage de tableaux à plusieurs dimensions Attention! Lors du passage d un tableau multidimentionnel seule la première taille a le droit de ne pas être spécifiée. Toutes les autres doivent l être : void f(int tab[][3][5]) ; int matrice[4][3] = { { 0, 1, 2, { 3, 4, 5, { 6, 7, 8, { 9, 0, 1, ; matrice[i][] matrice[][j] matrice[2][1] Informatique I Cours 6 :Types composés 13 int const N(3); int const M(3); void f(int tab[][m]); main() { int tablo[n][m]; f(tablo); Informatique I Cours 6 :Types composés 14 Les tableaux déclaration : type identificateur[taille] ; déclaration/initialisation : type identificateur[taille] = {val 1,, val taille ; Accès aux éléments : tab[i] i entre 0 et taille-1 Le passage type1 f(type2 tab[]) ; d un tableau tab à une fonction f se fait automatiquement par référence pour éviter les effet de bords : type1 f(const type2 tab[]) ; tableau multidimentionnel : type identificateur[taille1][taille2] ; tab[i][j] ; Les vector Nous avons jusqu ici vu les tableaux de taille fixe (i.e. connue à l avance). Que faire si la taille n est pas connue? Il existe en C++ ce que l on appelle des tableaux dynamiques, c est-à-dire dont la taille peut changer au cours du déroulement du programme, par exemple lorsqu on ajoute ou retire des éléments dans le tableau. Les tableaux dynamique sont définis en C++ par le biais du type vector. (ce n est en toute rigueur pas un type mais un «template». Nous verrons les «templates» bien plus tard dans le cours (vers Pâques)). Pour les utiliser, il faut tout d abord importer les définitions associées à l aide d un include : #include <vector> Informatique I Cours 6 :Types composés 15 Informatique I Cours 6 :Types composés 17

5 Déclaration d un tableau dynamique Une variable correspondant à un tableau dynamique se déclare de la façon suivante : vector< type > identificateur ; où identificateur est le nom du tableau et type correspond au type des éléments du tableau. Il peut être simple ou composé (on peut donc faire des vector de vector!). #include <vector> vector< int > tableau ; Initialisation d un tableau dynamique Le fait que l on s intéresse ici à des tableaux de taille potentiellement variable explique que la déclaration ne comporte pas d indication sur la taille initiale du tableau. Un tableau ainsi déclaré correspond alors tout simplement à un tableau vide (pas du tout d éléments!). Une taille initiale peut cependant être indiquée si nécessaire. La syntaxe de la déclaration est alors : vector< type > identificateur(taille) ; vector< int > tab(5) ; correspond à la déclaration d un tableau initialement constitué de 5 entiers. Attention! ce n est pas la même chose que int tab[5] car dans ce dernier cas on ne pourra plus changer la taille du tableau, alors que dans le cas de vector on le peut. Informatique I Cours 6 :Types composés 18 Informatique I Cours 6 :Types composés 19 Initialisation d un tableau dynamique (2) L indexation La déclaration d un tableau peut de plus être associée à une initialisation explicite des éléments contenus dans le tableau. Cela s écrit : soit : vector< type > identificateur(n, valeur) ; où valeur est la même valeur initiale affectée à tous les N éléments du tableau soit : vector< type > identificateur(reference) ; où reference est une référence à un tableau de type de base type. Exemples : vector< int > tab1(5,1); vector< int > tab2(tab1); correspondent toutes deux à la déclaration d un tableau d entiers dont les 5 éléments de départ sont initialisés à la valeur 1. Remarque : il n y a pas de moyen simple pour initialiser un tableau dont les éléments n ont pas tous la même valeur. Écrire une fonction Informatique I Cours 6 :Types composés 20 L indexation des différents éléments d un tableau dynamique (c est-à-dire l accès direct aux éléments du tableau) se fait de la même façon que pour un tableau de taille fixe : Si tableau est un vector, alors tableau[i] est une référence au (i+1)ème élément de tableau. Attention! Il est impératif que cet éléments existe effectivement! Sinon risque de Segmentation Fault! Exemple (à ne pas suivre!) d erreur classique : vector<double> v; v[0] = 5.4; // NON!! Informatique I Cours 6 :Types composés 21

6 Fonctions spécifiques Contrairement aux tableaux de taille fixe, un certain nombre d opérations sont directement attachées au type vector. L utilisation de ces opérations spécifiques se fait avec la syntaxe suivante : nom_de_tableau.nom_de_fonction(arg1,arg2,) ; vector<double> mesures ; nombre = mesures.size() ; Fonctions spécifiques Quelques fonctions disponibles pour un tableau dynamique tableau de type vector< type > : int tableau.size() : renvoie la taille de tableau Une manière usuelle pour parcourir les éléments d un tableau dynamique est donc l itération for suivante : for (int i(0) ; i < tableau.size() ; ++i) { bool tableau.empty() : détermine si tableau est vide ou non. void tableau.clear() : supprime tous les éléments de tableau (et le transforme donc en un tableau vide). void tableau.pop_back() : supprime le dernier élément de tableau. void tableau.push_back(valeur) : ajoute un nouvel élément de valeur valeur à la fin de tableau. Informatique I Cours 6 :Types composés 22 Informatique I Cours 6 :Types composés 22 Exemple Affectation globale d un tableau dynamique Voici un bout de code qui initialise un vecteur d entiers que l on suppose strictement positifs. Lors de la saisie, l utilisateur peut de plus recommencer à zéro en entrant 0 ou effacer le dernier élément en entrant un nombre négatif. void saisie(vector<int>& vect, int const TAILLE = 4) { int val; vect.clear(); cout << "Saisie de " << TAILLE << " valeurs :" << endl; while (vect.size() < TAILLE) { cout << "Entrez le coef. " << vect.size() << " : " << flush; cin >> val; if (val < 0) vect.pop_back(); else if (val == 0) vect.clear(); else vect.push_back(val); Informatique I Cours 6 :Types composés 23 Tout tableau dynamique (qui n a pas été déclaré comme constant) peut être modifié par une affectation globale du tableau en tant que tel. On parle ici de l affectation d un tableau complet, dans sa totalité. La syntaxe est : identificateur = tableau ; où tableau est un tableau dynamique de même type qu identificateur. vector< int > tab1(5,1) ; vector< int > tab2 ; tab2 = vector< int >(6,2) ; tab2 = tab1 ; Attention! On ne peut pas faire cela avec les tableaux statiques!! Informatique I Cours 6 :Types composés 24

7 Les tableaux multidimensionnels Les tableaux multidimensionnels Le type de base d un tableau peut être n importe quel type, y compris composé. En particulier, le type de base d un tableau peut être lui même un tableau. Les tableaux correspondants sont alors des tableaux de tableaux, i.e. des tableaux multidimensionnels. vector< vector< int > > tab(5, vector< int >(6)) ; correspond à la déclaration d un tableau de 5 tableaux de 6 entiers, autrement dit un tableau bidimensionnel (une matrice) à 5 lignes et 6 colonnes. Comme pour les tableaux multidimensionnels de taille fixe, tab[i][j] permet alors de référencer l élément de la (i+1)ème ligne et de la (j+1)ème colonne. Informatique I Cours 6 :Types composés 25 Notez que en toute rigueur vector< vector< int > > n est pas la même chose que int[][] : dans le premiers cas les lignes de la «matrice» n ont pas forcément toutes la même longueur alors que c est le cas pour les tableau de taille fixe. Un vector< vector< int > > n est pas une matrice mais un vecteur de vecteurs d entiers (pas nécessairement tous de la même taille!). vector< vector< int > > tableau ; tableau[i][] tableau[0].size() renvoie 4 tableau[2].size() renvoie 2 tableau[2][1] Informatique I Cours 6 :Types composés 26 Code de l exemple vector< vector <int> > tableau; tableau.push_back(vector<int>(4)); tableau.push_back(vector<int>(3)); tableau.push_back(vector<int>(2)); tableau.push_back(vector<int>(3)); tableau[0][0] = 0; tableau[0][1] = 1; tableau[0][2] = 2; tableau[0][3] = 3; tableau[1][0] = 4; tableau[1][1] = 5; tableau[1][2] = 6; tableau[2][0] = 7; tableau[2][1] = 8; tableau[3][0] = 9; tableau[3][1] = 0; tableau[3][2] = 1; for (unsigned int i(0); i < tableau.size(); ++i) { for (unsigned int j(0); j < tableau[i].size(); ++j) cout << tableau[i][j] << " "; cout << endl; for (unsigned int i(0); i < tableau.size(); ++i) cout << "tableau[" << i <<"].size()=" << tableau[i].size() << endl; #include <vector> Le template vector Déclaration : vector< type > identificateur ; Déclaration/Initialisation : vector< type > identificateur(taille) ; Accès au (i+1)-ème élément (quand il existe!) : tab[i] Fonctions spécifiques : int tab.size() : renvoie la taille bool tab.empty() : détermine s il est vide ou non void tab.clear() : supprime tous les éléments void tab.pop_back() : supprime le dernier élément void tab.push_back(valeur) : ajoute un nouvel élément à la fin Informatique I Cours 6 :Types composés 27 Informatique I Cours 6 :Types composés 28

8 La classe string Affectation de chaînes "Bonjour tout le monde!" Les chaînes de caractères C++ sont définies par le type string. (En toute rigueur, ce n est pas un type comme les types élémentaires mais une classe.) Pour utiliser des chaînes de caractères, il faut tout d abord importer les définitions : #include <string> La déclaration d une chaîne de caractères se fait alors avec : string identificateur ; #include <string> // déclaration string un nom; // déclaration avec initialisation string maxime("why use Windows when there are doors?"); Informatique I Cours 6 :Types composés 30 Comme pour n importe quel autre type, toute variable de type string (qui n a pas été déclarée comme constante) peut être modifiée par une affectation. string chaine ; // -> chaine vaut "" string chaine2("test") ; // -> chaine2 vaut "test" chaine = "test3" ; // -> chaine vaut "test3" chaine = chaine2 ; // -> chaine vaut "test" chaine = a ; // -> chaine vaut "a" Remarque 1 : dans le cas de l affectation d un caractère, la valeur affectée à la chaîne est la chaîne réduite au caractère affecté. Remarque 2 : Toute variable déclarée mais non initialisée est automatiquement initialisée à la valeur correspondant à la chaîne vide (""). Informatique I Cours 6 :Types composés 31 La concaténation La concaténation de chaînes est représentée par l opérateur +. chaine1 + chaine2 correspond à une nouvelle chaîne associée à la valeur littérale constituée de la concaténation des valeurs littérales de chaine1 et de chaine2. Les combinaisons suivantes sont possibles pour la concaténation de deux chaînes : string + string, string + "", "" + string, string + char, char + string où string correspond à une variable de type string, "" correspond à une valeur littérale et char à une variable ou une valeur littérale de type char. Remarque : les concaténations de la forme string+char (resp. char+string) constituent un moyen très pratique pour ajouter des caractères à la fin (resp. au début) d une chaîne. La concaténation : exemple Constitution du nom complet à partir du nom de famille et du prénom : string nom; string prenom; string famille; nom = famille + + prenom; Ajout d un s final au pluriel : string reponse("solution"); if (n > 1) { reponse = reponse + s ; Informatique I Cours 6 :Types composés 32 Informatique I Cours 6 :Types composés 33

9 Les opérateurs relationnels Les opérateurs relationnels == égalité!= non-égalité < strict. inférieur <= inférieur ou égal > strict. supérieur >= supérieur ou égal sont également définis pour les chaînes de type string. La relation d ordre utilisée pour ces différents opérateurs est l ordre alphabétique. Les opérateurs relationnels Exemples : do reponse=poser_question() ; while (reponse!= "oui") ; if ((nom <= "d") && (nom >= "b")) cout << "votre nom commence par b, c ou d" << endl ; Attention! L ordre alphabétique des ordinateurs ne respecte pas les lettres accentuées et l ensemble des majuscules est inférieur à n importe quelle minuscule : Z < a Note : Pour avoir l ordre alphabétique de l ordinateur, exécutez ce petit programme : for (unsigned char a(32); a < 255; ++a) cout << (int) a << " : " << a << " " << endl; Informatique I Cours 6 :Types composés 34 Informatique I Cours 6 :Types composés 34 L indexation Si chaine est une string, alors chaine[i] est le (i+1)ème caractère de chaine (de type char). Attention! Les éléments d une chaîne sont indicés de 0 à (taille 1), où taille est la taille (i.e. le nombre de caractères) de la chaîne. Exemples : string demo("abcd"); char prems; char der; prems = demo[0]; // recoit A der = demo[3]; // reçoit D L indexation Si chaine est une string, alors chaine[i] est le (i+1)ème caractère de chaine (de type char). Attention! Les éléments d une chaîne sont indicés de 0 à (taille 1), où taille est la taille (i.e. le nombre de caractères) de la chaîne. Exemples : string essai("essai"); string test; for (unsigned int i(1); i <= 3; ++i) { test = test + essai[6-2*i]; test = essai[i] + test; cout << test << endl; affichera : Informatique I Cours 6 :Types composés 35 Informatique I Cours 6 :Types composés 35

10 Fonctions spécifiques aux chaînes Certaines fonctions propres aux string sont définies. Elle s utilisent avec la syntaxe suivante : nom_de_chaine.nom_de_fonction(arg1,arg2,) ; Les fonctions suivantes sont définies (où chaine est une variable de type string) : chaine.size() : renvoie la taille (i.e. le nombre de caractères) de chaine. chaine.insert(position, chaine2) : insère, à partir de la position (indice) position dans la chaîne chaine, la string chaine2 string exemple("abcd") ; // exemple vaut "abcd" exemple.insert(1,"xx") ; // exemple vaut "axxbcd" construit la chaîne "axxbcd". Fonctions spécifiques aux chaînes chaine.replace(position, n, chaine2) : remplace les n caractères d indice position, position+1,, position+n-1 de chaine par la string chaine2. string exemple("abcd") ; exemple.replace(1,2,"1234") ; construit la chaîne "a1234d" (dans exemple). Remarque : la fonction replace() peut également servir à supprimer des caractères dans une chaîne. string exemple("abcd") ; exemple.replace(1,2,"") ; exemple vaut "ad". Informatique I Cours 6 :Types composés 36 Informatique I Cours 6 :Types composés 37 Fonctions spécifiques aux chaînes chaine.substr(depart, longueur) : renvoie la chaîne de chaine, de longueur longueur et commençant à la position depart. string("salut à tous!").substr(8, 4) renvoie la string "tous". chaine.find(souschaine) : renvoie l indice dans chaine du 1er caractère de l occurrence la plus à gauche de la string souschaine. string("baabbaab").find("ab") renvoie 2. chaine.rfind(souschaine) : renvoie l indice dans chaine du 1er caractère de l occurrence la plus à droite de la string souschaine. string("baabbaab").rfind("ab") renvoie 6. Dans les cas où les fonctions find() et rfind() ne peuvent s appliquer, elles renvoient la valeur prédéfinie string : :npos Informatique I Cours 6 :Types composés 38 Les chaînes de caractères #include <string> déclaration/initialisation : string identificateur("valeur") ; Affectation : chaine1 = chaine2 ; chaine1 = "valeur" ; chaine1 = c ; Concaténation : chaine1 = chaine2 + chaine3 ; chaine1 = chaine2 + "valeur" ; chaine1 = chaine2 + c ; Accès au (i+1)-ème caractère : chaine[i] ; Fonctions spécifiques : taille : chaine.size() insertion : chaine.insert(position, chaine2) replacement : chaine.replace(position, longueur, chaine2) suppression : chaine.replace(position, longueur, "") sous-chaîne : recherche : chaine.substr(position, longueur) chaine.find(souschaine) chaine.rfind(souschaine) valeur "pas trouvé" d une recherche : string : :npos Informatique I Cours 6 :Types composés 39

11 Types élémentaires «avancés» En plus des types composés, signalons qu il existe aussi d autres types élémentaires, dérivés des types élémentaires présentés. Trois modificateurs peuvent être utilisés : pour les int et les double, on peut demander d avoir une plus grande précision de représentation à l aide du modificateur long. long int nb_etoiles ; pour les int, on peut aussi demander d avoir une moins grande précision de représentation à l aide du modificateur short. short int nb_cantons ; pour les int (et les char), on peut demander de travailler avec des données non signées, à l aide du modificateur unsigned. unsigned int nb_cacahouetes ; On peut bien sûr combiner : unsigned long int nb_etoiles ; unsigned short int nb_cantons ; Types élémentaires «avancés» En C++, la taille des types n est pas spécifiée dans la norme. Seules indications : le plus petit type est char les inégalités suivantes sont toujours vérifiées sur les tailles mémoires : char short int int long int double long double Cependant, les tailles généralement utilisées sont 8 bits pour les char 16 bits pour les short int 32 bits pour les long int Informatique I Cours 6 :Types composés 41 Informatique I Cours 6 :Types composés 41 Types élémentaires «avancés» Ces choix typiques conduisent aux bornes suivantes : type min. max. char unsigned char short int unsigned short int long int unsigned long int type min. (valeur absolue) max. précision double e e e 16 long double e e e 19 Note : «précision» correspond au plus petit nombre x tel que 1 + x 1. Informatique I Cours 6 :Types composés 41 Type enuméré En C++, il est également possible de donner des noms aux valeurs de types énumérés, comme par exemple la liste des couleurs, la liste des cantons, etc Cela permet d utiliser ensuite ces valeurs sans avoir à se préoccuper de leur codage effectif. Ceci se fait à l aide du mot clé enum. Pour déclarer un type enuméré, la syntaxe est la suivante : enum Type { valeur1, valeur2, ; Par exemple : enum CantonRomand { Vaud, Valais, Geneve, Fribourg, Neuchatel, Jura ; On peut alors ensuite utiliser simplement ces valeurs comme pour un type entier : CantonRomand moncanton(vaud) ; moncanton = Valais ; switch (moncanton) { case Valais : case Vaud : Informatique I Cours 6 :Types composés 42

12 Type enuméré (2) On peut même les utiliser comme entiers, sachant que la convention utilisée est que la première valeur enumérée (Vaud dans l exemple précédent) correspond à 0. On pourrait alors par exemple faire : int const NB_CANTONS_ROMANDS(Jura+1) ; ou encore for (unsigned int i(vaud) ; i <= Jura ; ++i) Remarque : on peut aussi les utiliser pour indexer des tableaux : population[moncanton] = 616 ; Ce que j ai appris aujourd hui à structurer mes données en tableaux, de taille fixe ou variable comment représenter/manipuler des chaînes de caractères (mots/phrases) à mieux spécifier les types élémentaires en fonction de mes besoins (long/short, unsigned, enum) je peux maintenant écrire des programmes modélisant des données plus complexes Informatique I Cours 6 :Types composés 43 Informatique I Cours 6 :Types composés 44 La suite Exercices de cette semaine : Programmation : tableaux, chaînes de caractères Le prochain cours : les structures les pointeurs Informatique I Cours 6 :Types composés 45

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

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

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

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

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Les structures. Chapitre 3

Les structures. Chapitre 3 Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre

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

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

TP : Gestion d une image au format PGM

TP : Gestion d une image au format PGM TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples

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

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

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

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

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

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

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, première séquence d exercices.

TP, première séquence d exercices. TP, première séquence d exercices. Benoît Valiron benoit.valiron@lipn.univ-paris13.fr 7 novembre 2010 Introduction Vous écrirez les réponses aux questions courtes sur une feuille à rendre à la fin de la

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

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

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

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS) PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et

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

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

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

É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

INF111. Initiation à la programmation impérative en C http://ama.liglab.fr/ amini/cours/l1/inf111/ Massih-Reza Amini

INF111. Initiation à la programmation impérative en C http://ama.liglab.fr/ amini/cours/l1/inf111/ Massih-Reza Amini Initiation à la programmation impérative en C http://ama.liglab.fr/ amini/cours/l1// Massih-Reza Amini Université Joseph Fourier Laboratoire d Informatique de Grenoble 2/52 Introduction Structures de contrôle

Plus en détail

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

Architecture des Systèmes d Information Architecture des Systèmes d Information

Architecture des Systèmes d Information Architecture des Systèmes d Information Plan... Tableaux et tris I3 - Algorithmique et programmation 1 Rappels Nicol Delestre 2 Tableaux à n dimensions 3 Initiation aux tris Tableaux - v2.0.1 1 / 27 Tableaux - v2.0.1 2 / 27 Rappels : tableau

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

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

Poker. A rendre pour le 25 avril

Poker. A rendre pour le 25 avril Poker A rendre pour le 25 avril 0 Avant propos 0.1 Notation Les parties sans * sont obligatoires (ne rendez pas un projet qui ne contient pas toutes les fonctions sans *). Celles avec (*) sont moins faciles

Plus en détail

Langage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289

Langage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Langage C Patrick Corde Patrick.Corde@idris.fr 22 juin 2015 Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Table des matières I 1 Présentation du langage C Historique Intérêts

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

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

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

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

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

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

Chapitre 1 : La gestion dynamique de la mémoire

Chapitre 1 : La gestion dynamique de la mémoire Chapitre 1 : La gestion dynamique de la mémoire En langage C un programme comporte trois types de données : Statiques; Automatiques ; Dynamiques. Les données statiques occupent un emplacement parfaitement

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

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2) Objectifs du cours d aujourd hui Informatique II : Cours d introduction à l informatique et à la programmation objet Complexité des problèmes Introduire la notion de complexité d un problème Présenter

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

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

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

Algorithmique, Structures de données et langage C

Algorithmique, Structures de données et langage C UNIVERSITE PAUL SABATIER TOULOUSE III Algorithmique, Structures de données et langage C L3 IUP AISEM/ICM Janvier 2005 J.M. ENJALBERT Chapitre 1 Rappels et compléments de C 1.1 Structures Une structure

Plus en détail

Programmation en langage C

Programmation en langage C Programmation en langage C Anne CANTEAUT INRIA - projet CODES B.P. 105 78153 Le Chesnay Cedex Anne.Canteaut@inria.fr http://www-rocq.inria.fr/codes/anne.canteaut/cours C 2 Table des matières 3 Table des

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

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

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

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

Claude Delannoy. 3 e édition C++

Claude Delannoy. 3 e édition C++ Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.

Plus en détail

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

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

Adama MBODJI MBODJ.SYSTEM

Adama MBODJI MBODJ.SYSTEM MBODJ.SYSTEM Tableaux & vecteurs Algorithmes de tris Chaînes de caractères Listes linéaires Piles & Files Arbres Fichiers Je dédie cet ouvrage à mon père Souleymane MBODJI 2 Dédicace... 2 Sommaire... 3

Plus en détail

Création et Gestion des tables

Création et Gestion des tables Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5

Plus en détail

Travaux Dirigés n 1 : chaînes de caractères

Travaux Dirigés n 1 : chaînes de caractères UE LE315 Travaux Dirigés n 1 : chaînes de caractères Exercice 1 Ecrire une fonction int nombre_caract(char *chaîne) qui retourne la taille d une chaîne de caractères. Exercice 2 Ecrire la fonction void

Plus en détail

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement

Plus en détail

Rappel sur les bases de données

Rappel sur les bases de données Rappel sur les bases de données 1) Généralités 1.1 Base de données et système de gestion de base de donnés: définitions Une base de données est un ensemble de données stockées de manière structurée permettant

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Démonstration d utilisation De NesmaCom

Démonstration d utilisation De NesmaCom Démonstration d utilisation De NesmaCom Envoi : SMS Marketing - 1 - Démonstration : NesmaCom I. Connexion à NesmaCom Entrer votre Email et votre mot de passe pour accéder à votre compte sur notre solution

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

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

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

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

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle. Université Montpellier-II UFR des Sciences - Département Informatique - Licence Informatique UE GLIN302 - Programmation Applicative et Récursive Cours No 3 : Identificateurs, Fonctions, Premières Structures

Plus en détail

La classification automatique de données quantitatives

La classification automatique de données quantitatives La classification automatique de données quantitatives 1 Introduction Parmi les méthodes de statistique exploratoire multidimensionnelle, dont l objectif est d extraire d une masse de données des informations

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

Structurer ses données : les tableaux. Introduction à la programmation

Structurer ses données : les tableaux. Introduction à la programmation Structurer ses données : les tableaux Introduction à la programmation Plan du document Introduction Introduire la notion de type Types primitifs Types composés Tableaux de type primitif Page 2 Notion de

Plus en détail

Programmation Par Objets

Programmation Par Objets Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets

Plus en détail

Package Java.util Classe générique

Package Java.util Classe générique Package Java.util Classe générique 1 Classe Vector La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object add(object

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

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

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation

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

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

Gestion distribuée (par sockets) de banque en Java

Gestion distribuée (par sockets) de banque en Java Gestion distribuée (par sockets) de banque en Java Université Paris Sud Rappel sur la solution locale de gestion simple de banque L objet de cet exercice était de créer une application java qui implante

Plus en détail

Initiation à LabView : Les exemples d applications :

Initiation à LabView : Les exemples d applications : Initiation à LabView : Les exemples d applications : c) Type de variables : Créer un programme : Exemple 1 : Calcul de c= 2(a+b)(a-3b) ou a, b et c seront des réels. «Exemple1» nom du programme : «Exemple

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

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

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

Quelques éléments de compilation en C et makefiles

Quelques éléments de compilation en C et makefiles Quelques éléments de compilation en C et makefiles Guillaume Feuillade 1 Compiler un programme C Le principe de la compilation consiste à passer d un ensemble de fichiers de code à un programme exécutable

Plus en détail