Aide au projet : Concevoir une petite application avec interface texte

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

Download "Aide au projet : Concevoir une petite application avec interface texte"

Transcription

1 Aide au projet : Concevoir une petite application avec interface texte (NFA031 - Jour) V. Aponte Cnam 16 décembre 2016 V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

2 Analyse d un problème (pour concevoir une solution) Objectif : aide à la conception d une application 1 Etablir les fonctionnalités à offrir et une interface précise de l application. 2 Proposer une représentation des données de l application, sous forme de structures de données, et donner les liens entre elles. 3 Etablir une liste des proncipales d opérations sur les données, sous forme de sous-programmes noms + paramètres+ types+ description fonctionnalité (sans dire comment) ; Guide : pouvons nous écrire une solution simple et courte en utilisant uniquement ces données et ces opérations? V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

3 Analyse 1 : gestion de notes d un élève par matière (avec codage) V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

4 Le problème Gérer les notes d un élève pour un ensemble de matières, avec opérations de calcul de moyenne, recherche d une note, modification d une note, affichage du bulletin. Quelques critères de qualité sur l application à écrire : doit répondre au problème posé : ensemble de fonctionnalités suffisant et adéquat ; chaque fonctionnalité fonctionne corretement ; doit être robuste : les erreurs les plus courantes doivent être detectées et signalées, sans faire planter le tout, ni imposer de tout recommencer doit être facile à utiliser V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

5 Les fonctionnalités à offrir (par notre application) Notre application comportera deux phases. Dans la 1ère on initialise les données ; dans la 2ème on propose des opérations sur ces données. Phase 1 : Initialisation : 1 lire une liste de noms de matières, 2 lire une note par matière, Phase 2 : Boucle avec menu d opérations : 1 afficher le bulletin des notes 2 chercher la note d une matière donnée par son nom. 3 modifier la note d une matière donnée par son nom. 4 finir V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

6 Les fonctionnalités : Interface texte Nombre de matieres? 4 Une matiere? Maths Une matiere? SVT Une matiere? Info Une matiere? Anglais Note de Maths? 10 Note de SVT? 11 Note de Info? 12 Note de Anglais? 13 Bonjour. Voici les operations disponibles: 1. Afficher le bulletin 2. Chercher la note pour un nom de matiere. 3. Mofidier la note pour un nom de matiere. 4. Finir Votre choix ---> V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

7 Les fonctionnalités : erreurs à signaler sans planter Queques exemples : Note invalide (on doit établir au préalable un intervalle valide), Numéro d opération invalide (il y en a 4 possibles dans notre menu), Nom de matière invalide, Si on sait traiter les exceptions : erreur de type si saisie de chiffres non numériques lors de la lecture d un entier. V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

8 Représentation des données Répresentation des données : 2 tableaux tableau de chaînes avec les noms des matières, tableau de notes (doubles) Contraintes : tableaux de même taille, au moins 1 composante, matière et sa note aux mêmes indices. Données auxiliaires (exemples) : tableau de chaînes avec les noms des opérations ; tableau de chaînes avec les messages d erreur. V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

9 Représentation des données : un dessin Répresentation des données : 2 tableaux et leurs relations noms matières notes p/matière "Math" "SVT" "Anglais" "Français" mêmes indices Exemple de relation entre les données: la note de SVT (indice 1, tableau matières) est 10 (indice 1, tableau notes) V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

10 Les opérations à implanter Opérations sur les données : intialisation (lecture) des données (tableaux) de la phase 1. afficher le contenu (matière + note) des 2 tableaux calculer moyenne d un tableau de double ; chercher une note étant donné un nom de matière ; modifier une note étant donné un nom de matière ; Opérations auxilaires (exemples) : si elle existe dans le tableau de matières, obtenir l indice d un nom de matière ; lire une note valide ; lire un numéro valide d opération ; méthode qui implante la boucle d opérations. V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

11 L analyse prélimainaire que l on attend de vous Au minimum : correspond à l équivalent des transparents 5 à 10, pour votre application. Dans l idéal : ajouter les profils de toutes les méthodes correspondant à des opérations sur les données. Ce qui donnerait par exemple : static String [] liretabstring (int nb) static double [] liretabnotes (String [] mat) static void opaffichebulletin(double[] notes,string[] mat) static double moyennetab (double [] notes) static int indicemat(string nom, String [] mat) static void opcherchenote(string [] mat, double [] notes) static void opchangenote(string [] mat, double [] notes) V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

12 2. Une analyse préliminaire descendante V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

13 Sous-programmes : outil de découpage/structuration Principe de conception/programmation : diviser pour régner Objectif : Concevoir un programme comme un assemblage de solutions à des sous-problèmes : Chaque sous-problème correspond à une partie (non triviale) du problème global ; Concevoir un sous-programme par sous-problème ; Obtenir liste sous-programmes noms + paramètres+ types+ description objectif (sans dire comment) ; Guide : pouvons nous écrire une solution simple et courte par asseblage d appels aux sous-programmes? V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

14 Analyse descendante Processus de découpage d un problème en sous-problèmes : en identifiant les sous-programmes à écrire pour obtenir la solution ; chaque sous-programme utilise d autres (éventuellement) chaque sous-programme reste très simple et court Question à poser par sous-problème identifié : Que doit faire le sous-programme correspondant? Son nom, ses paramètres, son résultat? Sa signature Java nom, type paramètres + résultat. Découpable en sous-sous-problèmes? Si oui, continuer analyse descendante sur les sous-sous-problèmes. V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

15 Analyse descendante : données Répresentation des données : quelles sont les données d entrée et/ou sortie? comment les organiser? quelles opérations aurons nous à leur appliquer? coment les répresenter pour faciliter les opérations? quelles hypothèses faisons nous sur les données? Lien entre sous-programmes et répresentation des données : chaque opération doit se traduire par une (des) méthode, doivent être utiles à notre problème, doivent maintenir les hypothèses sur les données. V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

16 Sous-tâches du main main Initialisation Opérations matières notes finir menu+ choix afficher bulletin chercher note modifier note V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

17 Sous-tâches d initialisation des données Initialisation matières notes String [] liretab(int) double [] liretabnotes(string[]) lecture validée note double liredoub(inf, sup) V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

18 Sous-tâches pour les opérations Opérations fin menu+ choix afficher bulletin void opaffichebulletin(mat,not) modifier note int affichemenuchoix() double moyenne(not) chercher note lecture validée entier int lireent(inf, sup) void opcherchenote(mat,not) void opchangenote(mat,not) indice d'une matière int indicemat(m, mat) V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

19 Liste détaillée de méthodes Nous détaillons : entêtes des méthodes par sous-tâche identifiée, commentaires précis de ce qu elle doit faire + ses hypothèses. Intialiser les 2 tableaux /* Lit un tableau de taille n */ static String [] liretabstring (int n) /* Lit une note pour chaque matiere dans m */ static double [] liretabnotes (String [] m) Attention à lire un tableau avec au moins une matière appel avec paramètre n 1. V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

20 Liste de méthodes (2) afficher le contenu (matière + note) des 2 tableaux /* Affiche matieres de m avec notes de t * et leur moyenne */ static void opaffichebulletin(double [] t, String [] m) a besoin de : calcul moyenne tableau notes : static double moyennetab (double [] t) V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

21 Préciser les hypothèses des méthodes Important : préciser conditions indispensables au bon fonctionnement des méthodes dans commentaires ex : le calcul de la moyenne se fait sur un tableau non vide ; cela nous aide à penser par la suite à les garantir lors des appels appel avec tableau non vide /*Retourne la moyenne d un tableau t de double * Hypothese: t est non vide */ static double moyennetab (double [] t) V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

22 Liste de méthodes (3) chercher une note étant donné un nom de matière ; /* Lit un nom de matiere et cherche son indice * dans m. Si trouve, affiche sa note dans t, * sinon signale une erreur */ static void opcherchenote(string [] m, double [] t) a besoin de : chercher l indice d une chaîne dans un tableau de chaînes /* Retourne l indice d une matiere si existe * et -1 sinon. **/ static int indicemat(string a, String [] m) V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

23 Liste de méthodes (4) modifier une note étant donné un nom de matière ; static void opchangenote(string [] m, double [] t) a (comme avant) besoin de : chercher l indice d une chaîne dans un tableau de chaînes static int indicemat(string a, String [] m) V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

24 Liste méthodes (5) Autres : afficher le menu d opérations et lire un choix, /* Affiche les operations du menu * lit un choix (valide) de l utilisateur * renvoi ce choix en resultat */ static int affichemenuetchoix() lecture validée d une option du menu, d une note, etc. static int lireent(string me, int inf, int sup) static double liredou(string me, double inf, double sup) V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

25 Pouvons nous écrire un main avec ces méthodes? int nb = lireent("nombre de matieres? ",1,20); String [] matieres = liretabstring(nb); double [] notes = liretabnotes(matieres); boolean fin = false; while (!fin) { int choix = affichemenuetchoix(); if (choix == 1) { opaffichebulletin(notes, matieres); else if (choix == 2) { opcherchenote(matieres, notes); else if (choix == 3) { opchangenote(matieres, notes); else if (choix == 4) { Terminal.ecrireStringln(" *** Au revoir... *** "); fin=true; V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

26 Codage et test Par où commencer à coder? : Principe : coder en premier les méthodes «feuilles», n ayant besoin d autres méthodes ; méthodes d affichage qui permettront de faire des tests ; laisser l implantation de lecture validée pour plus tard, etc... chaque opération codée testée minucieusement : permettra de passer à autre chose sans avoir à y revenir. V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

27 Compilation et test Principe : déclarer toutes les méthodes, avec corps minimale permettant de compiler : /* Operation affichage du bulletin de notes */ static void opaffichebulletin(double [] t, String [] m) { Terminal.ecrireStringln("non implante"); /* Retourne l indice d une matiere si elle existe * et -1 sinon. **/ static int indicemat(string a, String [] m) { return -1; But : compiler tout le programme ; implantation incrémentale. V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

28 Codage méthodes initialisation /* Lecture d un tableau de String de taille n */ static String [] liretabstring (int n) { String [] t = new String[n]; for (int i=0; i< t.length; i++) { Terminal.ecrireString("Une matiere? "); t[i] = Terminal.lireString(); return t; V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

29 Méthodes initialisation (2) /* Lecture d un tableau de notes par matiere */ static double [] liretabnotes (String [] m) { double [] t = new double[m.length]; for (int i=0; i< t.length; i++) { t[i] = liredou("note de " + m[i]+"? ",0,20); return t; a besoin de liredou. V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

30 Méthode lecture double entre inf et sup /* Lecture d un double compris entre inf et sup * avec message */ static double liredou(string message, double inf, double sup) { while (true) { Terminal.ecrireString(message); double n = Terminal.lireDouble(); if (n<inf n> sup) { Terminal.ecrireStringln("Doit etre entre "+ inf+ ", else return n; V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

31 Opérations sur le menu /* Affichage menu et lecture choix operation. * Retourne un choix valide d operation */ static int affichemenuetchoix(){ Terminal.sautDeLigne(); Terminal.ecrireStringln("Bonjour. Operations disponibles Terminal.ecrireStringln(" 1. Afficher le bulletin"); Terminal.ecrireStringln(" 2. Chercher une note"); Terminal.ecrireStringln(" 3. Mofidier une note"); Terminal.ecrireStringln(" 4. Finir. "); return(lireent("votre choix ---> ", 1, 4)); V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

32 Opération affichage bulletin /* Operation affichage du bulletin de notes */ static void opaffichebulletin(double [] t, String [] m) { for (int i=0; i<t.length; i++) { Terminal.ecrireStringln( m[i] +": "+ t[i]); Terminal.ecrireStringln( "Moyenne: "+ moyennetab(t)); a besoin de moyennetab. V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

33 Opération de recherche d une note /* Operation recherche d une note */ static void opcherchenote(string [] m, double [] t) { Terminal.ecrireStringln("Nom de la matiere a chercher? "); String nm = Terminal.lireString(); int ind = indicemat(nm, m); if (ind <0) { Terminal.ecrireString("Matiere non trouvee."); else { Terminal.ecrireString("Note de "+nm+" = "+t[ind]); a besoin de indicemat. V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

34 Indice d une matière /* Retourne l indice d une matiere si elle existe * et -1 sinon. **/ static int indicemat(string a, String [] m) { for (int i=0; i<m.length; i++){ if (a.equals(m[i])) return i; return -1; V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

35 Analyse 2 (sur les données) : gérer une liste d articles V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

36 Exemple d analyse sur les données Problème : gérer une liste d articles avec opérations d ajout, suppresion, énumération, recherche. Différences avec les tableaux? pas d opérations d ajout ni suppresion dans un tableau, structure des données «listes» Une structure des données est caractérisée par : manière/types d agencer les données, comportement des opérations sur ces données. V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

37 Représenter une liste d articles En Java, plusieurs structures des données prédéfinies pour représenter les listes structures objet. Contrainte : utiliser des tableaux et variables pour encoder les listes. Comment représenter des listes au moyen de tableaux? comment agiront les opérations de suppresion, ajout, etc? Nous allons étudier 2 représentations distinctes. V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

38 «Tableaux à trous» Hypothèse : il existe une donnée «impossible» à insérer dans la liste. Ex : -1, si la liste contient des entiers positifs ; null, si elle contient des chaînes, etc. Idée : remplacer valeurs impossibles par ajouts, supprimer en remplacant par valeur impossible. Représentation : tableau initilaisée avec valeurs impossibles ; Opérations ajout : dans 1ère case contenant valeur impossible (et si plus de place?) ; suppresion : mettre valeur impossible dans case correspondante ; énumération/recherche : parcous en ignorant valeurs impossibles ; Opération supplémentaire : rédimensionnement du tableau avec recopie vers tableau plus grand si plus de place. V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

39 Représentation 1 : «tableaux à trous» Exemple : un tableau d entiers positifs initialisé avec -1 partout. initialisation ajout : 1, 2, 3, sup: V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

40 Méthodes pour opérations sur rep 1 Paramètre : tableau affichage : procédure ; recherche : retourne l élément si trouvé, échoue sinon ; suppresion : fonction booléenne (élément à supprimer + tableau) si non trouvé renvoie false ; si trouvé true + modifie tableau paramètre ; ajout : fonction booléenne (élément à ajouter + tableau) ; si plus de place retourne false ; si ajout possible true + modifie tableau paramètre ; V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

41 Méthode d affichage rep 1 /* Affiche les elements d une liste * implantee par un tableau a trous **/ static void affichelisttt(int [] t) { for (int i=0; i<t.length; i++){ if (t[i]<> -1) Terminal.ecrireIntln(t[i]); V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

42 Méthode de suppresion rep 1 /* Supprime la 1ere occurence de a si present. * Renvoie true si trouve (et supprime) false sinon. **/ static boolean supprlisttt(int a, int [] t) { for (int i=0; i<t.length; i++){ if (t[i]==a) { t[i] = -1; return true; return false; Si trouvé, tableau paramètre modifié ; retourne false sinon. Cette opération est peu couteuse : dés que l élément est trouvé, on met une valeur impossible à la place. V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

43 Méthode ajout rep 1 /*Ajoute a dans la liste. * Renvoie true si ajoute, false s il n y a plus de place. **/ static boolean ajoutlisttt(int a, int [] t) { for (int i=0; i<t.length; i++){ if (t[i]==-1) { t[i] = a; return true; return false; S il reste de la place, tableau paramètre modifié ; retourne false sinon. Cette opération est plus couteuse : il faut parcourir le tableau pour trouver une place libre. V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

44 Tableaux à trous : ordre non preservé initialisation ajout : 1, 2, 3, sup: ajout 5 + sup 2 + ajout Chaque élément est le numéro du ticket pris par un client dans un guichet Qu'observe-t-on? l ordre des ajouts n est pas préservé. En préservant l ordre on devrait avoir : 1, 4, 5, 6 V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

45 Répresentation 2 : «tableau incomplet» Idée : variable longueur = nombre d éléments dans liste ; tous les éléments mis à «gauche» (pas de trous) dans t[0]... t[longueur 1]. partie «vide» à «droite» t[longueur]... t[t.length 1] ; initialement longueur = 0 ; éléments liste longueur = prochain ajout V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

46 «Tableau incomplet» (2) Représentation : tableau + variable longueur Opérations ajout : dans la case t[longueur] (sauf si plus de place) +incrément de longueur. suppresion : si a est à supprimer, on déplace tous les éléments à sa droite une case à gauche + décrément de longueur ; énumération/recherche : parcous jusqu à longueur ; Opération supplémentaire : rédimensionnement du tableau. L ordre des ajouts est-il préservé? Oui V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

47 Méthodes pour opérations sur rep 2 Paramètres : tableau + longueur : affichage : procédure ; suppresion : fonction booléenne (élément à supprimer + tableau) si non trouvé false ; si trouvé true + modifie tableau paramètre ; difficulté : doit décrementer longueur si supprimé. La méthode ne peut pas le faire décrementer au retour de l appel, si résultat true ; ajout : fonction booléenne (élément à ajouter + tableau) ; si plus de place false ; si ajout possible true + modifie tableau paramètre ; difficulté : doit incrémenter longueur si ajout effectué au retour de l appel, si résultat true ; V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

48 Méthode d affichage rep 2 /* Affiche les elements d une liste * implantee par un tableau incomplet **/ static void afficheti(int [] t,int longueur) { for (int i=0; i< longueur; i++){ Terminal.ecrireIntln(t[i]); V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

49 Méthode ajout rep 2 /*Ajoute a dans la liste. * Renvoie true si ajoute, false s il n y a plus de place. **/ static boolean ajoutti(int a, int [] t, int lo) { if (lo >= t.length) return false; t[lo] = a; return true; S il reste de la place, tableau paramètre modifié ; retourne false sinon. Incrément longueur : au retour de chaque appel. V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

50 Appel ajout dans rep 2 L incrément de la longueur doit se faire au retour de l appel. int [] t = new int [10]; int longueur = 0; boolean r = ajoutti(1, t, longueur); if (r) { longueur ++; V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

51 Méthode ajout rep 2 : solution alternative longueur = tableau1 case méthode peut le modifier. static boolean ajoutti(int a, int [] t, int [] lo) { int n = lo[0]; if (n >= t.length) return false; t[n] = a; lo[0]++; // increment longueur return true; Exemple d appel : int [] t = new int [10]; int [] ln = {0; // tableau 1 case ajoutti(1, t, ln); // au retour: ln[0] vaut 1 V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

52 Méthode suppresion rep 2 /* Supprime la 1ere occurence de a si present. * lo: tableau 1 case avec longueur * renvoie false si absent **/ static boolean supprti(int a, int [] t, int [] lo ) Supprimer longueur = déplacer 1 case à gauche + decrément longueur longueur =3 V. Aponte (Cnam) Aide au projet : Concevoir une petite application avec interface 16 décembre texte / 52

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

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

Corrigé des exercices sur les références

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

Plus en détail

Corrigés des premiers exercices sur les classes

Corrigés des premiers exercices sur les classes Corrigés des premiers exercices sur les classes Exercice 2.1.1 utilisation d une classe Voici le texte d une classe représentant de façon sommaire un compte bancaire et les opérations bancaires courantes.

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

Programme Compte bancaire (code)

Programme Compte bancaire (code) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; Programme Compte bancaire (code) namespace compte_bancaire /// Classe Program public

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

Projet de programmation (IK3) : TP n 1 Correction

Projet de programmation (IK3) : TP n 1 Correction Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public

Plus en détail

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

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

Plus en détail

INITIATION 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

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

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

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

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

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

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

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

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN

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

Les arbres binaires de recherche

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

Plus en détail

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

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

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

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

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

Solutions du chapitre 4

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

Plus en détail

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

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

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris : Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens

Plus en détail

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

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

Plus en détail

Introduction à 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

Corrigé des exercices avancés sur les structures récursives

Corrigé des exercices avancés sur les structures récursives Corrigé des exercices avancés sur les structures récursives Exercice 8.3.1 utilisation de listes 1. Ecrire une méthode qui calcule la somme des éléments positifs d une liste d entiers. 2. Ecrire une méthode

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

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

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting IUT Bordeaux 1 2005-2006 Département Informatique Licence Professionnelle ~ SI TD Objets distribués n 3 : Windows XP et Visual Studio.NET Introduction à.net Remoting Partie 1 : l'analyseur de performances

Plus en détail

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes

Plus en détail

Programmation avec des objets : Cours 7. Menu du jour

Programmation avec des objets : Cours 7. Menu du jour 1 Programmation avec des objets : Cours 7 Menu du jour 1. Retour sur la classe Liste 2. Précisions sur l interface 3. Difficultés dans le cas d erreurs 4. Soulever des exceptions 5. Utilisation des Listes

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

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

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

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

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

Problèmes liés à la concurrence

Problèmes liés à la concurrence ENS Cachan Problématique Difficile de gérer la concurrence : Pas toujours facile d avoir des fonctions réentrantes. Risque de race condition : ex : x :=x+1 x :=x+1 On voudrait des blocs d instructions

Plus en détail

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

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

Plus en détail

Algorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/??

Algorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/?? Algorithmique I Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr Télécom 2006/07 Algorithmique I 20-09-06 p.1/?? Organisation en Algorithmique 2 séances par semaine pendant 8 semaines. Enseignement

Plus en détail

Le prototype de la fonction main()

Le prototype de la fonction main() Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme

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

TD/TP PAC - Programmation n 3

TD/TP PAC - Programmation n 3 Université Paris Sud Licence d informatique/iup-miage2 Année 2004-2005 Auteur : Frédéric Vernier Semaine : 11-16 octobre 2004 Conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html

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

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

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011 Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique

Plus en détail

Organigramme / Algorigramme Dossier élève 1 SI

Organigramme / Algorigramme Dossier élève 1 SI Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué

Plus en détail

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

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

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

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

Plateforme PAYZEN. Définition de Web-services

Plateforme PAYZEN. Définition de Web-services Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network

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

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

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

Limites finies en un point

Limites finies en un point 8 Limites finies en un point Pour ce chapitre, sauf précision contraire, I désigne une partie non vide de R et f une fonction définie sur I et à valeurs réelles ou complees. Là encore, les fonctions usuelles,

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

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Utilitaires méconnus de StrataFrame

Utilitaires méconnus de StrataFrame Utilitaires méconnus de StrataFrame Voici quelques classes d utilitaires, parmi ceux qui se trouvent dans le NameSpace MicroFour.StrataFrame.Tools. Cette liste n est pas exhaustive, et les regroupements

Plus en détail

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

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

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

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

TRIGONOMETRIE Algorithme : mesure principale

TRIGONOMETRIE Algorithme : mesure principale TRIGONOMETRIE Algorithme : mesure principale Déterminer la mesure principale d un angle orienté de mesure! 115" Problèmatique : Appelons θ la mesure principale, θ et! 115" sont deux mesures du même angle,

Plus en détail

Les processus légers : threads. Système L3, 2014-2015 1/31

Les processus légers : threads. Système L3, 2014-2015 1/31 Les processus légers : threads Système L3, 2014-2015 1/31 Les threads Les threads sont des processus légers exécutés à l intérieur d un processus L exécution des threads est concurrente Il existe toujours

Plus en détail

Définition des Webservices Ordre de paiement par email. Version 1.0

Définition des Webservices Ordre de paiement par email. Version 1.0 Définition des Webservices Ordre de paiement par email Version 1.0 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Historique du document

Plus en détail

Cours de Systèmes d Exploitation

Cours de Systèmes d Exploitation Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation

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

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

SUPPORT DE COURS. Langage C

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

Plus en détail

Programmation en Java IUT GEII (MC-II1) 1

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

Plus en détail

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

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

Plus en détail

4. Groupement d objets

4. Groupement d objets Conception objet en Java avec BlueJ une approche interactive 4. Groupement d objets Collections et itérateurs David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Principaux

Plus en détail

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET I. INTRODUCTION 1.1. HISTORIQUE 1991: Concepts Java pour Sun -conception d'un langage pour des appareils électroniques(code embarqué) -syntaxe proche du C++

Plus en détail

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

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

Plus en détail

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

MANUEL UTILISATEUR BALADEUR SANTÉ AUXILIAIRES MÉDICAUX ET SAGES-FEMMES C.D.C 1.40

MANUEL UTILISATEUR BALADEUR SANTÉ AUXILIAIRES MÉDICAUX ET SAGES-FEMMES C.D.C 1.40 MANUEL UTILISATEUR BALADEUR SANTÉ AUXILIAIRES MÉDICAUX ET SAGES-FEMMES C.D.C 1.40 Description des actes en série sur le Baladeur Santé TABLE DES MATIERES 1. Généralités 5 1.1. Fonctionnement général du

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

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

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

Plus en détail

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

INITIATION AU LANGAGE JAVA

INITIATION AU LANGAGE JAVA INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal

Plus en détail

Un ordonnanceur stupide

Un ordonnanceur stupide Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire

Plus en détail

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

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

Plus en détail

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

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

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; };

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; }; #include #include struct cell int clef; struct cell suiv; ; / longueur. pc->suiv est l abréviation de (pc).suiv. pour cette fonction comme pour les suivantes, on donne, lorsqu il existe

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

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

Apprendre Java en 154 minutes

Apprendre Java en 154 minutes Apprendre Java en 154 minutes Tutorial Java 1.6 - HESB-TI Stéphanie Calderara José R. Beuret Quentin Cosendey Mai 2008 Table des matières 1 Objet, classe et modificateur 3 1.1 Le premier pas..........................

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

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

Principes des langages de programmation INF 321. Eric Goubault

Principes des langages de programmation INF 321. Eric Goubault Principes des langages de programmation INF 321 Eric Goubault 24 mars 2014 2 Table des matières 1 Introduction 7 2 Programmation impérative 11 2.1 Variables et types........................... 11 2.2 Codage

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