INFO-F-103 Algorithmique I Exercices d entrainement. Année académique

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

Download "INFO-F-103 Algorithmique I Exercices d entrainement. Année académique"

Transcription

1 INFO-F-103 Algorithmique I Exercices d entrainement Année académique

2 Table des matières 1 Table des matières 1 ADT Liste : Fonction générique Énonce Solution Tesseract Énonce Solution Recursivite Damier Énonce Solution Tête à toto Énonce Solution Arbres Supprimer doublon Énonce Solution

3 Liste des codes 2 Liste des codes 1 Liste : Fonction générique : Solution 1/ Liste : Fonction générique : Solution 2/ Liste : Fonction générique : Solution 3/ Liste : Fonction générique : Solution 4/ Liste : Fonction générique : Solution 5/ Liste : Fonction générique : Solution 6/ Liste : Fonction générique : Solution 7/ Boucles : Tesseract : Solution 1/ Boucles : Tesseract : Solution 2/ Boucles : Tesseract : Solution 3/ Boucles : Tesseract : Solution 4/ Boucles : Tesseract : Solution 5/ Récursivité : Damier : Solution 1/ Récursivité : Tête à toto : Solution 1/ Arbres : Suppression de doublons : Solution 1/

4 1 ADT 1 1 ADT 1.1 Liste : Fonction générique Énonce Nous vous demandons d écrire une fonction récursive appliquer qui prend en paramètre une liste d entiers (plus précisément une Place pointant vers la tete de la liste) et une opération (sous forme d un pointeur vers une fonction, voir explications ci-dessous), et qui applique ladite opération sur tous les éléments de la liste. Une telle fonction est bien utile car elle permet, à l aide d une unique fonction, de réaliser une multitude d opérations sur la liste : afficher tous les éléments, les réinitialiser à 0, les remplacer par leur double, par leur carré, etc... Votre fonction devra respecter l en-tête suivant : void appliquer(liste::place tete, void (*op) (int &i)) La syntaxe particulière "void (*op) (int &i)" signifie que op est un pointeur vers une fonction void qui prend un entier comme paramètre par référence. La fonction appliquer prend donc une fonction comme deuxième paramètre. Le passage de ce paramètre se fait simplement en donnant le nom de la fonction (l opérateur & n est pas nécessaire). Par exemple, si vous disposez d une fonction afficher(int &i), vous pourrez afficher tous les éléments de la liste l en appelant : appliquer(l.tete(), afficher) Nous vous demandons : 1. Le code de la fonction appliquer. Ce code devra être récursif et ne pourra contenir aucune boucle. Il importe également de bien respecter l en-tête donnée ci-dessus, où le passage par référence est indispensable afin de pouvoir modifier les éléments de la liste. 2. Votre code sera testé à l aide de la liste ListeSL vue au cours et disponible sur le site web du cours. Vous la modifierez toutefois afin que la fonction info() de la classe Place renvoie une référence vers un entier, plutôt qu un entier, ceci afin de pouvoir modifier les éléments de la liste. 3. Vous fournirez un fichier de test contenant les quatre fonctions suivantes : (a) void afficher(int &i); (b) void doubler(int &i); (c) void carre(int &i); (d) void annuler(int &i); Ces fonctions, respectivement, affichent, remplacent par son double (2 i), par son carré (i 2 ), et par 0, l entier i. Votre fichier contiendra aussi un main qui construira la liste (7,2,9,1,8), puis lui appliquera les quatre fonctions ci-dessus (dans l ordre donné), en affichant à chaque fois le résultat Solution Code 1, 2, 3, 4, 5, 6, Tesseract Énonce L équipe dans laquelle vous travaillez s est lancée dans le développement d un jeu de démineur en 4 dimensions. L espace de jeu est donc un tesseract alias octachore, alias 8-cellules, alias hypercube de dimension 4, alias tableau à 4 dimensions, alias cube temporel

5 1 ADT 2 Code 1 Liste : Fonction générique : Solution 1/7 #include<iostream> #include"listesl.hpp" using namespace std; void afficher(int &i) cout << i << " "; void doubler (int &i) i= 2*i; void carre(int &i) i=i*i; void annuller(int &i) i=0; void appliquer(liste::place tete, void (*op) (int &i)) if(tete.valide()) op(tete.info()); appliquer(tete.suivant(),op);

6 1 ADT 3 Code 2 Liste : Fonction générique : Solution 2/7 int main() Liste l; l.insererentete(8); l.insererentete(1); l.insererentete(9); l.insererentete(2); l.insererentete(7); appliquer(l.tete(), afficher); cout << endl; appliquer(l.tete(), doubler); appliquer(l.tete(), afficher); cout << endl; appliquer(l.tete(), carre); appliquer(l.tete(), afficher); cout << endl; appliquer(l.tete(), annuller); appliquer(l.tete(), afficher); cout << endl; Lors de la répartition des taches, vous avez insisté pour obtenir le développement de la fonction d initialisation des cases dites «vides» dont le prototype est «void ajustementvaleurcases(tesseract tesseractde- Jeu)». Après la création du tableau vide à 4 dimensions, après le placement des mines, votre fonction devra modifier les cases vides pour qu elles contiennent une valeur équivalente au nombre de mines se trouvant dans les cases adjacentes (toutes directions confondues). Lors de cette même réunion, la façon dont les fonctions sont utilisées, dont elles sont appellées et donc leur prototype a été fixé. Vous pouvez donc vous baser sur le Code 8 pour démarrer votre travail. Lors de cette même réunion, vous et votre équipe avez établi, pour votre fonction, l hypothèse suivante : les bords du tesseract sont remplis de mines. Cette propriété doit être conservée pendant et après l appel à votre fonction. Vous n avez donc pas à ajuster les valeurs se trouvant sur les bords. Afin de s assurer que le concept soit bien compris, voici la figure 1 qui illustre le contenu d un tel tableau, après sa création, si il avait été en 2 dimensions. 2 FIGURE 1 Affichage du résultat 2. Les valeurs égales à zéro ne sont pas affichées

7 1 ADT 4 Code 3 Liste : Fonction générique : Solution 3/7 class Liste class Elem public: Elem(int, Elem *); int info; Elem *suiv; ; public: class Place public: friend class Liste; Place suivant() const; int& info() const; bool valide() const; Place(); private: Place(Elem *); Elem *elem; ; Place tete() const; int longueur() const; bool vide() const; Place insererentete(int); Place insererapres(place, int); void supprimer(place); Place trouver(int) const; Liste& operator=(const Liste &); Liste(); Liste(const Liste &); ~Liste(); private: void effacer(); void copier(place); Elem *teteptr; ; Code 4 Liste : Fonction générique : Solution 4/7 Liste::Elem::Elem(int info, Elem *suiv) this->info = info; this->suiv = suiv;

8 1 ADT 5 Code 5 Liste : Fonction générique : Solution 5/7 Liste::Place Liste::Place::suivant() const return Place(elem->suiv); int& Liste::Place::info() const return elem->info; bool Liste::Place::valide() const return (elem!= NULL); Liste::Place::Place() this->elem = NULL; Liste::Place::Place(Elem *elem) this->elem = elem; Solution Code 8, 9, 10, 11, 12

9 1 ADT 6 Code 6 Liste : Fonction générique : Solution 6/7 Liste::Place Liste::tete() const return Place(tetePtr); int Liste::longueur() const int res = 0; for (Place p = tete(); p.valide(); p = p.suivant()) ++res; return res; bool Liste::vide() const return!tete().valide(); Liste::Place Liste::insererEnTete(int i) teteptr = new Elem(i, teteptr); return tete(); Liste::Place Liste::insererApres(Place p, int i) p.elem->suiv = new Elem(i, p.elem->suiv); return p.suivant(); void Liste::supprimer(Place p) Elem *i = p.elem; if (i == teteptr) teteptr = teteptr->suiv; else Elem *j = teteptr, *k = NULL; while (j!= i) k = j; j = j->suiv; k->suiv = i->suiv; delete i;

10 1 ADT 7 Code 7 Liste : Fonction générique : Solution 7/7 Liste::Place Liste::trouver(int i) const Place p; for (p = tete(); p.valide() && p.info()!= i; p = p.suivant()) ; return p; Liste& Liste::operator=(const Liste &l) if (&l!= this) effacer(); copier(l.tete()); return *this; Liste::Liste() teteptr = NULL; Liste::Liste(const Liste &l) copier(l.tete()); Liste::~Liste() effacer(); void Liste::effacer() while (!vide()) supprimer(tete()); void Liste::copier(Place p) if (p.valide()) insererentete(p.info()); p = p.suivant(); Place q = tete(); while(p.valide()) q = insererapres(q,p.info()); p = p.suivant();

11 1 ADT 8 Code 8 Boucles : Tesseract : Solution 1/5 const int taille = 4; typedef int tesseract[taille][taille][taille][taille]; const double probabilitemine = 0.1; const int casevide = 0; const int mine = -1; void remplissagedemines(tesseract tesseractdejeu); void affichage(tesseract tesseractdejeu); void placementvide(tesseract tesseractdejeu); void ajustementvaleurcases(tesseract tesseractdejeu); int main() int pause; /*<Solution>*/ srand ( time(null) ); tesseract tesseractdejeu; /*<Mise en place aléatoire de mines>*/ remplissagedemines(tesseractdejeu); placementvide(tesseractdejeu); affichage(tesseractdejeu); /*</Mise en place aléatoire de mines>*/ /*<Ajustement des valeurs des cases>*/ ajustementvaleurcases(tesseractdejeu); affichage(tesseractdejeu); /*</Ajustement des valeurs des cases>*/ /*</Solution>*/ cout << "Entrez un nombre pour quitter l application" << endl; cin >> pause; return 0;

12 2 RECURSIVITE 9 Code 9 Boucles : Tesseract : Solution 2/5 void affichage(tesseract tesseractdejeu) for (int i = 0; i < taille; i++) cout << "Cube num " << i << " : " << endl; for (int j = 0; j < taille; j++) cout << "Couche num " << j << " : " << endl; for (int k = 0; k < taille; k++) for (int l = 0; l < taille; l++) cout << setw(4) << setfill( ) << tesseractdejeu[i][j][k][l ]; cout << endl; cout << endl << endl; cout << "*************************" << endl; 2 Recursivite 2.1 Damier Énonce Soit m une matrice carrée n n de booléens. Nous vous demandons d écrire une fonction récursive qui rempli m à la manière d un damier. Le damier obtenu sera basé sur la valeur initiale de la case m[0][0]. Ainsi par exemple, pour n valant 5, si m[0][0] vaut initialement 0 (false), le résultat obtenu sera : Par contre si m[0][0] vaut initialement 1 (true), le résultat obtenu sera : Les boucles sont interdites (non-négociable!) dans cette fonction, ainsi que dans toute les fonctions intermédiaires (*ceci est un indice*) dont vous auriez besoin. Par ailleurs, vous veillerez à limiter autant possible le nombre de paramètres de vos différentes fonctions.

13 2 RECURSIVITE 10 Code 10 Boucles : Tesseract : Solution 3/5 void remplissagedemines(tesseract tesseractdejeu) for (int i = 0; i < taille; i++) for (int j = 0; j < taille; j++) for (int k = 0; k < taille; k++) for (int l = 0; l < taille; l++) tesseractdejeu[i][j][k][l] = mine; void placementvide(tesseract tesseractdejeu) for (int i = 1; i < taille-1; i++) for (int j = 1; j < taille-1; j++) for (int k = 1; k < taille-1; k++) for (int l = 1; l < taille-1; l++) if( rand() % (int)(1/probabilitemine)!= 0) //9 chance sur 10 d avoir du vide tesseractdejeu[i][j][k][l] = casevide;

14 2 RECURSIVITE 11 Code 11 Boucles : Tesseract : Solution 4/5 void ajustementvaleurcases(int tesseractdejeu[taille][taille][taille][taille]) //ajustement en calculant soit même tous les mouvements const int nombrevariations = 80;//le nombre de cases adjacentes G_(n) = 3*G_ (n-1) + 2 donc G_1 = 2, G_2 = 8, G_3 = 26, G_ 4 = 80. Il y a bien 3^4-1 possibilité. => 3^n -1 = G_(n) const int di[nombrevariations] = 0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1, -1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1, 0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1,-1,0,1; const int dj[nombrevariations] = -1,-1,0,0,0,1,1,1,-1,-1,-1,0,0,0,1,1,1,-1,-1,-1,0,0,0,1,1,1,-1,-1,-1,0,0,0, 1,1,1,-1,-1,-1,0,0,0,1,1,1,-1,-1,-1,0,0,0,1,1,1,-1,-1,-1, 0,0,0,1,1,1,-1,-1,-1,0,0,0,1,1,1,-1,-1,-1,0,0,0,1,1,1; const int dk[nombrevariations] = -1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1, -1,-1,-1,-1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,-1,-1,-1, -1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1; const int dl[nombrevariations] = -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1; for (int i = 1; i < taille-1; i++) for (int j = 1; j < taille-1; j++) for (int k = 1; k < taille-1; k++) for (int l = 1; l < taille-1; l++) if(tesseractdejeu[i][j][k][l]!= mine) for (int m = 0; i < nombrevariations; ++i) if(tesseractdejeu[i+di[m]][j+dj[m]][k+dk[m]][l+dl[m ]] == mine) tesseractdejeu[i][j][k][l]++;

15 2 RECURSIVITE 12 Code 12 Boucles : Tesseract : Solution 5/5 void ajustementvaleurcases(int tesseractdejeu[taille][taille][taille][taille]) //ajustement en générant les mouvements avec 4 boucles for imbriquées for (int i = 1; i < taille-1; i++) for (int j = 1; j < taille-1; j++) for (int k = 1; k < taille-1; k++) for (int l = 1; l < taille-1; l++) if(tesseractdejeu[i][j][k][l]!= mine)//si ce n est pas une mine alors il faut l ajuster en fonction des cases adjacentes for (int deltai = -1; deltai < 2; ++deltai)//pour les trois déplacements sur la dimension I for (int deltaj = -1; deltaj < 2; ++deltaj)//pour les trois déplacements sur la dimension J for (int deltak = -1; deltak < 2; ++deltak)// pour les trois déplacements sur la dimension K for (int deltal = -1; deltal < 2; ++deltal) //pour les trois déplacements sur la dimension L if(tesseractdejeu[i+deltai][j+deltaj][k+ deltak][l+deltal] == mine) // si on a une mine (et donc qu on est plus sur la case de base) tesseractdejeu[i][j][k][l]++;

16 2 RECURSIVITE Solution Code Tête à toto Énonce La tête à... Vous le saviez sans doute, 0+0 = 0. Autrement dit 0 = (0+0). Ainsi, si l on pousse le vice plus loin, nous pouvons même affirmer avec conviction que 0 = ((0 + 0) + (0 + 0)). Sachant que 0 vaut (0 + 0), il nous a suffit, en effet, de remplacer les 0 de (0 + 0) par leur valeur. En continuant, nous obtenons donc : 0 = (((0 + 0) + (0 + 0)) + ((0 + 0) + (0 + 0))). Libre à vous d étendre cette formule à la main. Cependant, estimant cette tache trop rébarbative, nous vous demandons donc d écrire un programme qui le fera pour vous. Il devra lire un entier N au clavier et afficher la chaine de caractères voulue en ayant bien sûr remplacé N fois les zéros à droite de l égalité 0 = 0, par leur valeur : (0 + 0). Exemple : n = 0 : affiche 0 = 0 n = 2 : affiche 0 = ((0 + 0) + (0 + 0)) Les boucles sont interdites (non-négociable!) dans cette fonction, ainsi que dans toute les fonctions intermédiaires dont vous auriez besoin. Par ailleurs, vous veillerez à limiter autant que possible le nombre de paramètres de vos différentes fonctions Solution Code 14

17 2 RECURSIVITE 14 Code 13 Récursivité : Damier : Solution 1/1 #include <iostream> using namespace std; void afficher(bool **m, int n) for (int i = 0; i < n; ++i) for (int j = 0; j < n; ++j) cout << m[i][j] << " "; cout << endl; bool **allocmatrice(int n) bool **m = new bool*[n]; for (int i = 0; i < n; ++i) m[i] = new bool[n]; return m; void deletematrice(bool **m, int n) for (int i = 0; i < n; ++i) delete[] m[i]; delete[] m; /******************** Solution ********************/ int n = 5; bool **m; void remplirlignecolonne(int i, int j) if (j < n) m[j][i] = m[i][j] =!m[i][j-1]; remplirlignecolonne(i, j+1); void damier(int i = 0) if (i < n) m[i][i] = m[0][0]; remplirlignecolonne(i,i+1); damier(i+1); /**************************************************/ int main() m = allocmatrice(5); m[0][0] = true; afficher(m, 5); cout << endl; damier(); afficher(m,5); deletematrice(m, 5);

18 2 RECURSIVITE 15 Code 14 Récursivité : Tête à toto : Solution 1/1 #include <iostream> using namespace std; void teteatoto(int const nombrederemplacement) if(nombrederemplacement == 0) cout << "0"; else if(nombrederemplacement > 0) // si nombrederemplacement < 0, on choisit de ne rien afficher à droite de l équation cout << "("; teteatoto(nombrederemplacement-1); cout << " + "; teteatoto (nombrederemplacement-1); cout << ")"; int main() int nombrederemplacement; cin >> nombrederemplacement; cout << "0 = "; teteatoto(nombrederemplacement); return 0;

19 3 ARBRES 16 3 Arbres 3.1 Supprimer doublon Énonce On peut définir certains arbres binaires de recherche comme étant soit un arbre binaire vide, soit un arbre binaire dont les éléments du sous-arbre gauche de la racine sont plus petits ou égaux que la racine et dont les éléments du sous-arbre droit sont strictement plus grands que la racine. Sur base de cette définition, on vous demande d écrire une fonction récursive en C++ qui, à partir d un arbre binaire de recherche, crée et renvoie un nouvel arbre binaire de recherche avec les mêmes éléments que l arbre de départ, mais sans aucun doublon. Votre fonction devra permettre au nouvel arbre résultant d avoir une structure similaire à celle de l arbre de départ. Plus précisément, (1) pour tout élément e de l arbre résultat, tout élément se trouvant dans le sous-arbre gauche (respectivement droit) de e devra apparaître dans le sous-arbre gauche (droit) de e dans l arbre de départ, et (2) pour tout élément initialement dupliqué, seul l exemplaire se trouvant le plus près de la racine apparaîtra dans l arbre résultat. Indice : déterminez, sur base de la définition d arbre binaire de recherche donnée, quels sont les différents cas de figure où l on peut rencontrer des éléments de même valeur que la racine Solution Code 15

20 3 ARBRES 17 Code 15 Arbres : Suppression de doublons : Solution 1/1 #include "interro/arbre2rpl.hpp" #include <string> #include <cassert> Arbre2 supprimerdoublons(const Arbre2 &a, int plusgranddoublon = INT_MAX) if (a.vide()) return Arbre2(); else if (a.racine().info() == plusgranddoublon) return supprimerdoublons(a.sousarbregauche(), a.racine().info()); else return Arbre2(a.racine().info(), supprimerdoublons(a.sousarbregauche(), a.racine().info()), supprimerdoublons(a.sousarbredroit(), plusgranddoublon)); void verifier(std::string input, std::string output) Arbre2 a(input); Arbre2 b = supprimerdoublons(a); assert(b.commestring() == output); int main() verifier("3", "3"); verifier("(5 5)", "5"); verifier("(5 (3 () (5 (5 (4 4 5)))) 7)", "(5 (3 () 4) 7)"); verifier("(6 (1 (1 0)\ (2 (2 2)\ (5 (5 (4 (3 () 4)\ (5 5)\ )\ )\ (6 6)\ )\ )\ )\ (7 7 (8 (8 8)\ (9 (9 (9 9)))\ )\ )\ )", "(6 (1 0 (2 () (5 (4 3)))) (7 () (8 () 9)))"); return 0;

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

INFO-F-105 Language de programmation I Séance VI

INFO-F-105 Language de programmation I Séance VI INFO-F-105 Language de programmation I Séance VI Jérôme Dossogne Année académique 2008 2009 Un grand merci à Yves Roggeman pour ses relectures et remarques des codes et commentaires qui ont contribuées

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

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

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

Plus en détail

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

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

1.6- Génération de nombres aléatoires

1.6- Génération de nombres aléatoires 1.6- Génération de nombres aléatoires 1- Le générateur aléatoire disponible en C++ 2 Création d'un générateur aléatoire uniforme sur un intervalle 3- Génération de valeurs aléatoires selon une loi normale

Plus en détail

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. 1 Introduction On considère une grille de 20 lignes 20 colonnes. Une case de la grille peut être vide, ou contenir une et une

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

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

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

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

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

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

Plus en détail

Java Licence Professionnelle CISII, 2009-10

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

Plus en détail

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

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

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

Plus en détail

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

Programmation en C/C++

Programmation en C/C++ INSA de Lyon Département Génie Electrique Module IF1,IF3,IF4 Programmation en C/C++ Thomas Grenier Nicolas Ducros Tanneguy Redarce Lyon, le 3 mars 2015 2 / 63 Table des matières 1 Développement en C++

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

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

Introduction au pricing d option en finance

Introduction au pricing d option en finance Introduction au pricing d option en finance Olivier Pironneau Cours d informatique Scientifique 1 Modélisation du prix d un actif financier Les actions, obligations et autres produits financiers cotés

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

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

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

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

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

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

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

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

Examen Médian - 1 heure 30

Examen Médian - 1 heure 30 NF01 - Automne 2014 Examen Médian - 1 heure 30 Polycopié papier autorisé, autres documents interdits Calculatrices, téléphones, traducteurs et ordinateurs interdits! Utilisez trois copies séparées, une

Plus en détail

Conventions d écriture et outils de mise au point

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

Plus en détail

Cours 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

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

et Programmation Objet

et Programmation Objet FACULTE POLYTECHNIQUE DE MONS Service d Informatique et Programmation Objet Mohammed Benjelloun 2 ème Bachelier Année académique 2008-2009 Table des matières Avant-propos--------------------------------------------------------------------------

Plus en détail

IUT ANNECY Département Mesures Physiques Cours d informatique Initiation au langage C

IUT ANNECY Département Mesures Physiques Cours d informatique Initiation au langage C IUT ANNECY Département Mesures Physiques Cours d informatique Initiation au langage C myriam.chesneau@univsavoie.fr Mots clefs : Initiation à la programmation Langage C Variables Opérations Structures

Plus en détail

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy Claude Delannoy Programmer en langage C++ 8 e édition Avec une intro aux design patterns et une annexe sur la norme C++11 Groupe Eyrolles, 1993-2011. Groupe Eyrolles, 2014, pour la nouvelle présentation,

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

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

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

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

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

Département Automatisation et Informatisation Année 2005-2006. Programmation en C++ Institut des Sciences et Techniques de l Ingénieur d Angers

Département Automatisation et Informatisation Année 2005-2006. Programmation en C++ Institut des Sciences et Techniques de l Ingénieur d Angers Département Automatisation et Informatisation Année 2005-2006 Programmation en C++ Institut des Sciences et Techniques de l Ingénieur d Angers 1 Bertrand Cottenceau 1. Introduction du cours de C++...3

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

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

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

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Sub CalculAnnuite() Const TITRE As String = Calcul d'annuité de remboursement d'un emprunt TD1 : traduction en Visual BASIC des exemples du cours sur les structures de contrôle de l'exécution page 1 'TRADUCTION EN VBA DES EXEMPLES ALGORITHMIQUES SUR LES STRUCTURES 'DE CONTROLE DE L'EXECUTION

Plus en détail

Découverte de Python

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

Plus en détail

CHAPITRE V. Recherche et tri

CHAPITRE V. Recherche et tri Cherchez et vous trouverez,... car qui cherche trouve. Matthieu 7 7-8 et Luc 11 9-10 CHAPITRE V Recherche et tri Objectif. Comprendre les techniques de base pour organiser des données ordonnées. Ce chapitre

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

É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

Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string

Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string Génie Logiciel I Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Filière M.A.M.

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

Informatique III: Programmation en C++

Informatique III: Programmation en C++ Informatique III: Programmation en C++ Listes haînées Lundi 9 Janvier 2006 1 2 Introdution Les listes hainées permettent de stoker un nombre d objets qui n a pas besoin d être spéifié a priori. Rajouter

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

Introduction à l héritage en C++

Introduction à l héritage en C++ Algorithmique/Langage 1ère année Introduction à l héritage en C++ Yacine BELLIK IUT d Orsay Yacine.Bellik@iut-orsay.fr 1 Bibliographie Ce cours est basé sur le livre suivant : Programmer en C++, 5ème édition

Plus en détail

Analyse de sécurité de logiciels système par typage statique

Analyse de sécurité de logiciels système par typage statique Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction

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

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs Brefs rappels sur la pile et le tas (Stack / Heap) et les pointeurs (exemples en C) v1.11 - Olivier Carles 1 Pile et Tas Mémoire allouée de manière statique Mémoire Allouée Dynamiquement variables locales

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

Le langage C++ (partie I)

Le langage C++ (partie I) Master Informatique des Organisations 1 ère et 2 ème années Spécialité ID/MIAGE-IF/MIAGE-SITN Le langage C++ (partie I) Maude Manouvrier Qu est ce que le C++? Rappels sur la gestion de la mémoire Premiers

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

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

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

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

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

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

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs Utilisation des classes de PourCGI par Michel Michaud, version 2002-11-23 Les fichiers PourCGI.h et PourCGI.cpp rendent disponibles deux classes et une fonction libre qui permettent de faire facilement

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

ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C

ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C La société C fabrique des pièces métalliques réalisées dans son atelier. La société C est en relation commerciale uniquement

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

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

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

Cours 14 Les fichiers

Cours 14 Les fichiers Cours 14 Les fichiers F. Gayral 1 Fichier : définition /media/travaux/documents/fgenseignement/java1/courstpsfgfc/14-fichiers/voirtypefichiers Fichier = ensemble d informations codées et stockées sur une

Plus en détail

Programmation stochastique

Programmation stochastique Programmation stochastique (Partie 1) IFT-6512 Hiver 2008 Présentation succinte COIN-OR? COmputational INfrastructure for Operations Research. Préalablement, COIN-OR tenait pour Common Optimization INterface

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

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module François SCHNEIDER Lycée Victor-Hugo BESANÇON. STS SE FreeRTOS Programmation réseau WIFI Programmation réseau Socket Tcp FlyPort smart Wi-Fi 802.11 module Prérequis : langage C, connaissance réseau : Ip,

Plus en détail

Programmation système en C/C++

Programmation système en C/C++ Programmation système en C/C++ Jean-Baptiste Vioix (jb.vioix@free.fr) LE2I - ENESAD http://jb.vioix.free.fr 1-41 Programmation en C/C++ sous Unix Il existe des très nombreux outils de développement sous

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

LE LANGAGE C++ ENAC 1997 A. DANCEL

LE LANGAGE C++ ENAC 1997 A. DANCEL LE LANGAGE C++ ENAC 1997 A. DANCEL 1 - GENERALITES "L'homme se découvre quand il se mesure avec l'objet." Antoine de Saint-Exupéry, Terre des hommes 1.1 INTRODUCTION Ce cours est conçu pour permettre aux

Plus en détail

L exclusion mutuelle distribuée

L exclusion mutuelle distribuée L exclusion mutuelle distribuée L algorithme de L Amport L algorithme est basé sur 2 concepts : L estampillage des messages La distribution d une file d attente sur l ensemble des sites du système distribué

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

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

PHP. PHP et bases de données

PHP. PHP et bases de données Accés aux bases de données Une des raisons du succès de PHP Support d un grand nombre de bases - MySQL - Oracle - PostgreSQL - SQLite - Microso> Access - DBM - IBM Informix -... Accés aux bases de données

Plus en détail

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS IB INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1 DIPLOMA PROGRAMME PROGRAMME DU DIPLÔME DU BI PROGRAMA DEL DIPLOMA DEL BI M06/5/COMSC/SP1/FRE/TZ0/XX 22067017 Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS

Plus en détail

Flux de données Lecture/Ecriture Fichiers

Flux de données Lecture/Ecriture Fichiers Flux de données Lecture/Ecriture Fichiers 1 Un flux de données est un objet qui représente une suite d octets d un programme pour une certaine destination ou issus d une source pour un programme flux d

Plus en détail

A.P.I. Kuka Manuel de l utilisateur Version 0.0.5

A.P.I. Kuka Manuel de l utilisateur Version 0.0.5 A.P.I. Kuka Manuel de l utilisateur Version 0.0.5 Paul Chavent Kubrick 8 septembre 2003 1 kuka api 0.0.5 : Manuel de l utilisateur Table des matières 1 Utilisation sur le robot (serveur) 3 1.1 Installation............................................

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

Cours de C/C++ par la pratique. Hugues Talbot

Cours de C/C++ par la pratique. Hugues Talbot Cours de C/C++ par la pratique Hugues Talbot 24 octobre 2008 2 Table des matières 1 Comment démarrer? 7 1.1 Un programme simple en C pur.......................... 7 1.2 Un programme en C ++...............................

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

.NET - Classe de Log

.NET - Classe de Log .NET - Classe de Log Classe permettant de Logger des données Text Dans tous les projets, il est indispensable de pouvoir stocker de l'information textuelle : Pour le suivi des erreurs Pour le suivi de

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

Informatique I. Sciences et Technologies du Vivant (Semestre 1)

Informatique I. Sciences et Technologies du Vivant (Semestre 1) Informatique I Sciences et Technologies du Vivant (Semestre 1) Vincent Lepetit vincent.lepetit@epfl.ch http://cvlabwww.epfl.ch/~lepetit/courses/sv https://www.coursera.org/course/intro-cpp-fr 1 Cours 1

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

Langage Java. Classe de première SI

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

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Chapitre 2 Devine mon nombre!

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

Plus en détail