Les fichiers et flux de données

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

Download "Les fichiers et flux de données"

Transcription

1 Les fichiers et flux de données 1 LES MOYENS : 3 CLASSES CRÉER DES INSTANCES DES CLASSES POUR GÉRER LES FICHIERS OUVRIR ET FERMER UN FICHIER - LES FONCTIONS OPEN () CLOSE() LA FONCTION OPEN() LES MODES D OUVERTURE LECTURE ET ÉCRITURE FORMATÉE DES DONNÉES LIRE DES DONNÉES FORMATÉES AVEC L OPÉRATEUR D EXTRACTION >> ECRIRE DES DONNÉES FORMATÉES AVEC L OPÉRATEUR D INJECTION << LECTURE ET ECRITURE NON FORMATÉ - SE DÉPLACER DANS LE FLUX ECRITURES NON FORMATÉES PUT() WRITE() LECTURES NON FORMATÉES GET() READ() SE DÉPLACER DANS LE FLUX DE DONNÉES TELL(P/G), SEEK(P/G) GÉRER L ÉTAT DU FLUX LES FONCTIONS GOOD(), EOF(), FAIL(), BAD() ET CLEAR() DÉTECTER LA FIN DE FICHIER LORS D UNE OPÉRATION DE LECTURE AVEC >> GÉRER LES ERREURS D OUVERTURE DE FICHIER EXEMPLE TRAITEMENT DU FICHIER PIÈCE STRUCTURE DE DONNÉES EXEMPLES DE PROGRAMMES TABLE DES EXEMPLES DE CODE LES MOYENS : 3 CLASSES ISTREAM Les fichiers peuvent être gérés comme des flux de données de la même manière que les entrées sorties standards (Voir Gestion des flux avec *stream). Trois classes sont disponibles : ifstream fichier en lecture seulement ofstream fichier en écriture seulement IFSTREAM fstream fichier en lecture et écriture. IOS IOSTREAM FSTREAM OSTREAM OFSTREAM 1.1 Créer des instances des classes pour gérer les fichiers ifstream fichierentree ; // instance d un flux de données fichier en lecture ofstream fichiersortie; // instance d un flux de données fichier en écriture fstream fichieres; // instance d un flux de données fichier en R/W Remarque : Si les données contenues dans le fichier, ne sont pas modifiées, le fichier doit être ouvert en lecture seulement. 2 OUVRIR ET FERMER UN FICHIER - LES FONCTIONS OPEN () CLOSE() Pour chaque type de fichier, il existe plusieurs méthodes (fonctions à appliquer), les principales sont : open () : ouvre un fichier close(): ferme un fichier ouvert Ces deux fonctions sont obligataires dans le programme. Elles associent un flux de données (stream, tampon, canal) au fichier. open () : Crée un flux (stream) associé à l objet fichier. Ensuite les données du flux sont exploitées int main(void){ ofstream monfichier; monfichier.open("mesure.dat"); //---TRAITEMENT--- monfichier.close(); return 0; David Saint-Mellion page 1/10

2 close() : Enregistre les données du flux dans le fichier, détruit le flux de données et l instance du fichier dans le programme. Remarque : Par défaut, le destructeur appelle la fonction close(). Exemple Ouvrir Fermer un fichier 1 -Ouvrir : Associe un flux de données au fichier monfichier.open("mesure.dat"); Flux de données : monfichier Fichier : mesure.dat Traitement : Modifie les données du flux de données Flux de données : monfichier Fichier : mesure.dat 3 - Fermer : Enregistre les données dans le fichier et détruit le flux de données monfichier.close(); 2.1 La fonction open() Elle ouvre le fichier et associe un flux de données. void open(const char *nom, int mode,int prot=filebuf::openprot); nom : nom du fichier à ouvrir mode : mode d'ouverture du fichier prot : il définit les droits d'accès au fichier dans le cas d'une ouverture avec création (sous UNIX). 2.2 Les modes d ouverture ios::app ios::ate ios::in ios::out ios::binary ios::trunc ios::nocreate ios::noreplace Ajouter toujours les données en fin de fichier Ouvrir le fichier en écriture avec positionnement à la fin du fichier Ouverture en lecture (par défaut pour ifstream) Ouverture en écriture (par défaut pour ofstream) Ouverture en mode binaire (par défaut en mode texte) Détruit le contenu du fichier s'il existe (par défaut pour ofstream) Si le fichier n'existe pas, l'ouverture échoue Si le fichier existe, l'ouverture échoue, sauf si ate ou app sont activés Exemples : Ouverture de fichiers open() #define NOM_FICHIER "mesure.dat" ifstream fichierpiecee; // Fichier Pièce en lecture ofstream fichierpieces; // Fichier Pièce en écriture fstream fichiertmp; // Fichier Pièce en lecture // Ouvre le fichier Pièce en lecture fichierpiecee.open(nom_fichier); // Ouvre le fichier en écriture avec destruction du contenu fichierpieces.open(nom_fichier); //1 // Ouvre le fichier sans destruction du contenu «Mode ajout à la fin» // et avec positionnement à la fin du fichier fichierpieces.open( NOM_FICHIER,ios::app); //2 // Ouvre le fichier en R/W et détruit son contenu fichiertmp.open(fichier_tmp,ios::in ios::out ios::trunc); //1 Les modes d ouverture sont surtout important en écriture. Soit on souhaite : Ajouter des données, le mode naturel est de les insérer à la fin du fichier existant en utilisant les modes d ouverture : ios: :app ou ios: :ate //2. Renouveler les données du fichier, il faut alors détruire les données //1. David Saint-Mellion page 2/10

3 3 LECTURE ET ECRITURE FORMATEE DES DONNEES Un flux de données est associé à l objet fichier. On bénéficie des fonctionnalités des classes iostream (voir diagramme $1) : Les fonctions, les opérateurs injection << et extraction >> et les manipulateurs de flux de données qui s appliquent aussi aux flux de données fichiers. 3.1 Lire des données formatées avec l opérateur d extraction >> Exemple 31 : Lecture formatée avec l opérateur d extraction >> using namespace std ; int main(void){ float cote=0 ; ifstream fmesure; //Crée un objet flux fichier en lecture fmesure.open("mesure.dat"); //Ouvre le fichier fmesure >> cote; cout<<"la cote de la PIECE 1 vaut : "<<cote<<endl; fmesure >> cote; cout<< "la cote de la PIECE 2 vaut : "<<cote<<endl; fmesure.close(); //Ferme le fichier et le flux return 0; Remarques L opérateur d extraction prélève la donnée dans le flux et l affecte à cote. De plus, il gère le déplacement sur l objet suivant se trouvant dans le flux. Cet opérateur peut être surchargé pour s adapter à d autres types de données que ceux du langage C++. Voir : Gestion des flux avec *stream, surcharge des opérateurs >> et << Voir : Exemples $6 3.2 Ecrire des données formatées avec l opérateur d injection << Exemple 32 : Ecriture formatée avec l opérateur d injection << using namespace std ; int main(void){ float cote1=13; float cote2=13.5; float cote3=13.8; ofstream fmesure; // Instance flux fichier en lecture // Ouvre le fichier en lecture avec destruction des données fmesure.open("mesure.dat"); fmesure << cote1<< endl; fmesure << cote2<< endl; fmesure << cote3<< endl; fmesure.close(); // Ferme le fichier et le flux return 0; Résultat dans le fichier Remarques L opérateur d injection affecte la donnée cotex au flux de données. Le retour chariot endl est également injecté pour séparer les données. La fonction close() enregistre les données dans le fichier «mesure.dat». Cet opérateur peut être surchargé pour s adapter à d autres types de données que ceux du langage C++. Pour ajouter les données au fichier existant (à la fin), il faut l ouvrir en mode app monfichier.open("mesure.dat",ios::app); Voir : Gestion des flux avec *stream, surcharge des opérateurs >> et << Voir : Exemples $6 David Saint-Mellion page 3/10

4 4 LECTURE ET ECRITURE NON FORMATE - SE DEPLACER DANS LE FLUX 4.1 Ecritures non formatées put() write() Les fonctions pour lire des données dans un fichier sont issues de la classe ostream Voir Gestion des flux avec *stream. put(char c) Insére le caractère passé en paramètre write(const char*, int n) Insère la chaîne de n caractères, passée en paramètre Exemple : put() monfichier.put( W ); // Ecrit le caractère W dans monfichier Exemples : write() monfichier.write("dupont",6); // Ecrit Dupont dans monfichier const char nom[] = "Dupont"; monfichier.write(nom,sizeof(nom)); // sizeof(nom) vaut 7 octets soit 6 caractères + 0x00(fin chaîne) 4.2 Lectures non formatées get() read() Les fonctions - get(), getline(), read() - permettent de lire des données dans un fichier. Elles sont issues de la classe istream Voir Gestion des flux avec *stream. char get() : Extrait un caractère et le retourne systématiquement - get(&char) l affecte à la variable de référence read( char *s, int n) : Lit une série de caractères( octets), paramètres : Un pointeur sur la zone où les caractères sont affectés et le nombre de caractère à prélever. Exemple : get() char car ; monfichier.get(car); // Lit une caractère dans monfichier et l affecte à car Exemple : read() float cote ; monfichier.read(&cote, sizeof(cote)); // Lit un entier dans monfichier et l affecte à cote 4.3 Se déplacer dans le flux de données tell(p/g), seek(p/g) La position est définie par le type streampos dans <ios> et correspond à la position d un octet dans le flot de données. Trois constantes de positionnement dans le flux de données sont définies : beg Début du flux (0) end Fin du flux cur Position courante dans le flux Les fonctions pour se déplacer dans un flux fichier sont : tellg et seekg - g comme get() réservé au flux fichier en lecture tellp et seekp - p comme put() réservé au flux fichier en écriture Ces fonctions permettent de lire et de fixer une nouvelle valeur à la position dans le flux de données fichier courant. streampos tellp() Retourne la position courante dans le flot de données de sortie. La première position est 0. seekp(streampos position n) Se positionner dans le flot de données de sortie à n octets par rapport au début du flux. seekp(streamoff n, seek_dir dir) Se positionne à n octet(s) par rapport à dir ( au début du flot : dir = beg, à la position courante : dir = cur à la fin du flot : dir = end (n peut être négatif) Les fonctions tellg() et seekg() sont similaires Exemple 43-1 : Relire la dernière donnée écrite float cote=10.1; float cotelu=0; David Saint-Mellion page 4/10

5 fstream fmesure; // Instance fichier en lecture // Ouvre le fichier en R/W et positionnement à la fin pour ajout fmesure.open("mesure.dat",ios::in ios::out ios::ate); fmesure<<cote<<endl; // Écrit la donnée fmesure.seekg(-(sizeof(cote)+sizeof('endl')),ios::end); // Se replace fmesure>>cotelu; // Relit les données cout<<"donnes du flux fichier : "<<cotelu<<endl; Exemple 43-2 : Taille du fichier ifstream fmesure ; streampos positioncourante; // Instance fichier en lecture // Variable de position fmesure.open("mesure.dat"); // Ouvre le fichier streampos positioncourante = monfichier.tellg(); //Mémorise la position début fmesure.seekg(0, ios::end); // Se positionne à la fin cout<<"taille du fichier : "<< fmesure.tellg()<<" octet(s)<< endl; fmesure.seekg(positioncourante, ios::beg); // Reprend la position début Exemple 43-3 : Relire une série de données dans un flux fichier après écriture float cote1=111.1; float cote2=222.2; float cotelu=0; fstream fmesure; // Instance fichier en lecture streampos OldPosition; // Variable de position // Ouvre le fichier en R/W et positionnement à la fin pour ajout fmesure.open("mesure.dat",ios::in ios::out ios::ate); OldPosition=fMesure.tellp(); // Mémorise la position fmesure<<cote1 <<endl<<cote2<<endl; // Écrit les données // Replace le pointeur de flux à l'ancienne position fmesure.seekg(oldposition,ios::beg); // Reprend l ancienne position // Relit les données tq pas EOF voir $542 while(fmesure>>cotelu) cout<<"donnes du flux fichier : "<<cotelu<<endl; fmesure.close(); Voir exemples 64 et 65 5 GERER L ETAT DU FLUX L état du flux de données est indiqué par des drapeaux : (Voir Gérer des flux avec *stream) ios: :eofbit Indique la fin de fichier ios: :goodbit Indique l état normal du flux, lorsqu il ne s est produit aucune erreur ios: :badbit Indique qu une opération a échoué. N interdit pas la poursuite des opérations - warning ios: :failbit Indique qu une erreur logique s est produite lors d une opération de lecture. ios: :harfail Indique qu une erreur grave s est produite. Exemple défaillance matériel : secteur défectueux d un disque, coupure réseau 5.1 Les fonctions good(), eof(), fail(), bad() et clear() Ces fonctions sont des assesseurs des indicateurs des bits d état du flux. Elles renvoient un booléen La fonction clear() permet de repositionner ces indicateurs. Exemple 51 : Evolution des bits indicateurs d état du flux int main(void) { float cote=0; fstream fichierpiece ; fichierpiece.open("mesure.dat"); //Etat 1 // Etat 1 David Saint-Mellion page 5/10

6 while(fichierpiece>>cote){ cout<<"cote "<<cote<<endl; //Etat 2 // Etat 2 fichierpiece.clear(); //Etat 3 return 0; // Le destructeur ferme le fichier // Etat 3 // Etat 1 A l issue de l ouverture du fichier, le flux est dans son état normal : ios::goodbit=1, ios::eofbit=0, ios::badbit=0, ios::failbit=0 // Etat 2 A l issue du parcourt, la fin de fichier est atteinte - eof valide, le flux n est plus dans un état normal : ios::goodbit=0, ios::eofbit=1, ios::badbit=0, ios::failbit=1 // Etat 3 clear() repositionne les indicateurs d état ios::goodbit=1, ios::eofbit=0, ios::badbit=0, ios::failbit=0, // Etat 1 Lors de la tentative d ouverture d un fichier inexistant, le bit fail est activé. En conséquence, good passe à 0 et indique que le flux n est pas dans un état normal. ios::goodbit =0, ios::eofbit=0, ios::badbit=0, ios::failbit=1 Ouverture d un fichier inexistant 5.2 Détecter la fin de fichier lors d une opération de lecture avec >> L opérateur d extraction >> renvoie la valeur la valeur 0 sur l instance de la classe lorsqu il y a une erreur de lecture ou qu il rencontre la fin de fichier - fichierpiece>>cote retourne alors 0. La structure while exécute la boucle tant que EOF n est pas trouvé while(fichierpiece>>cote){ cout<<"cote "<<cote<<endl; Exemple 52 : Lire et afficher toutes les données d un fichier float cote=0 ; ifstream fmesure; //Crée un objet fichier en lecture fmesure.open("mesure.dat"); //Ouvre le fichier fmesure >>cote; // Lit le fichier tq!= EOF while(fmesure>>cote) cout<<cote<<endl; Voir aussi : Exemples 532 et $6 5.3 Gérer les erreurs d ouverture de fichier Pour gérer l échec d ouverture du fichier on utilise les assesseurs fail() ou gool() - fail() renvoie la valeur true (gool() - false), s il y une erreur Voir Gestion des flux avec *stream). Exemple : Gérer les erreurs d ouverture de fichier #define ERREUR_OUVERTURE true if (fichierpiece.fail()==erreur_ouverture){ cerr<<"erreur d'ouverture de NOM_FICHIER "<<endl; return 1; Voir $6 exemples 63, 64 et 65 6 EXEMPLE TRAITEMENT DU FICHIER PIECE Liste de Série : 0 à 20 Série, séparateur des éléments retour chariot \n Série = Date+ Nombre de pièces+ Cotes : séparateur le retour chariot \n Date = année+mois+jour+heure+minutes : alphanumérique, séparateur le point «.» Ex : David Saint-Mellion page 6/10

7 Nombre de pièces : entier, valeurs comprises entre 1 et 100 Cotes : tableau de 1 à 100 réels, séparateur l espace Ex : Structure de données Exemple 61 : Définition de la structure de données Piece // s_piece.h Déclaration de la structure Pièce et des fonctions #include <string> struct Piece { string serie ; int nbrepieces; float cote[100]; ; // Surcharge de l opérateur >> pour Piece istream &operator>> (istream &fluxe, Piece &p); // Surcharge de l opérateur << pour Piece ostream &operator<< (ostream &fluxs, Piece &p); void afficher(piece &p); // s_piece.cpp Définition du corps des fonctions #include "struct_piece.h" // Surcharge de l'opérateur>> istream &operator>> (istream &fluxi, Piece &p) { fluxi>>p.serie; fluxi>>p.nbrepieces; for (int i=0; i<p.nbrepieces; i++) fluxi>>p.cote[i]; return fluxi; // Surcharge de l'opérateur<< ostream &operator<< (ostream &fluxs, Piece &p) { fluxs<<p.serie<<endl; fluxs<<p.nbrepieces<<endl; for (int i=0; i<p.nbrepieces; i++) fluxs<<p.cote[i]<<' '; fluxs<<endl; return fluxs; void afficher(piece &p) { void afficher(piece &p) { cout<<p.serie<< " Nombre de pieces : "<<p.nbrepieces<<endl; cout<<" Cotes : "; for (int i=0; i<p.nbrepieces; i++) cout << p.cote[i] << ' '; cout<<endl; // Saisir la données d'une série de pièces void saisir(piece &p) { int i=0; float saisie; // Saisir les données de la série cout<<"saisissez la serie an.mois.jour.heure.minute"<<endl; cin>>p.serie ; cout<<"saisissez la cote, puis faire ENTR"<<endl; while (cin>>saisie){ p.cote[i]=saisie; i++; David Saint-Mellion page 7/10

8 cout<<"saisissez la cote, puis faire ENTR"<<endl; cout<<"ou Terminez la saisie par CRTL 'Z' "<<endl; // CRTL 'Z' - Fin de fichier sur un PC p.nbrepieces=i; // Renseigne nbrepieces // Le passage des paramètres de la structure est réalisé par Référence 6.2 Exemples de programmes Exemple 62 : Ajouter une série de pièces au le fichier Pièce #include "s_piece.h" #define NOM_FICHIER "piece.dat" int main(void) { Piece serie; ofstream fichierpiece; // Fichier en écriture // Ouverture du fichier en mode Ajout et positionnement à la fin fichierpiece.open( NOM_FICHIER,ios::app); saisir(serie); fichierpiece<<serie ; return 0; // Le destructeur ferme et enregistre le fichier Exemple 63 : Lire et Afficher les données des séries de pièces // Lit le fichier Pièces et affichage des données de chaque série // Gère les erreurs d ouverture de fichier #include "s_piece.h" #define NOM_FICHIER #define ERREUR_OUVERTURE "piece.dat" true int main(void) { Piece serie; int nbreseries=0; ifstream fichierpiece; // Fichier en lecture // Ouvre le fichier et gère l erreur d ouverture fichierpiece.open(nom_fichier); if (fichierpiece.fail()==erreur_ouverture){ cerr<<"erreur d'ouverture de NOM_FICHIER "<<endl<<endl; return 1; // Lit une série et l'affiche while(fichierpiece>>serie){ nbreseries++; cout<<"serie "<<nbreseries<<endl; afficher(serie); cout<<endl; return 0; // Le destructeur ferme le fichier Exemple 64 : Supprimer une série de pièces du fichier Pièce // Les séries sont copiées dans un fichier temporaire sauf la série à supprimer // Puis le fichier temporaire sont copiées dans le fichier Pièce David Saint-Mellion page 8/10

9 #include "s_piece.h" #define NOM_FICHIER #define FICHIER_TMP #define ERREUR_OUVERTURE false "piece.dat" "piece.tmp" int main(void) { Piece serie; int numero=4; // Numéro de la série à supprimer int index=1; ifstream fichierpiecee; // Fichier Pièce en lecture ofstream fichierpieces; // Fichier Pièce en écriture fstream fichiertmp; // Fichier Temporaire en R/W streampos debuttmp; // Variable de position flux // Ouvre le fichier Pièce en lecture fichierpiecee.open(nom_fichier); if (fichierpiecee.good==erreur_ouverture){ cerr<<"erreur d'ouverture de NOM_FICHIER "<<endl<<endl; return 1; // Ouvre le fichier Temporaire et détruit son contenu fichiertmp.open(fichier_tmp,ios::in ios::out ios::trunc); debuttmp=fichiertmp.tellg(); // Mémorise la position début // Copie les séries dans fichiertmp sauf celle à supprimer while(fichierpiecee>>serie){ if(index!=numero){ fichiertmp<<serie; index++; fichierpiecee.close(); // Ferme le fichier Pièce // Ouvre fichierpiece en lecture en détruisant son contenu fichierpieces.open(nom_fichier); fichiertmp.seekp(debuttmp,ios::beg); // Se repositionne au début // Copie les séries de fichiertmp à fichierpiece while(fichiertmp>>serie) fichierpieces<<serie; return 0; // Les destructeurs ferment les fichiers Exemple 65 : Constituer le fichier Série en se déplaçant dans le fichier Pièce // Recherche la taille du fichier Pièces, le nombre de séries // Renseigne le fichier Série avec : la taille du fichier Pièce, le nombre de // séries, le nombre total de pièces et le nombre de pièces dans chaque série #include "s_piece.h" #define NOM_FICHIER #define FICHIER_TMP #define ERREUR_OUVERTURE "piece.dat" "piece.tmp" true int main(void){ Piece serie; int nbreseries=0; int totalpieces=0; int taillefichier=0; David Saint-Mellion page 9/10

10 streampos debutfichierpiece; // Position début fichier Pièce streampos positiontotalpieces; // Position de nbreseries streampos positionnbreseries; // Position de totalpieces ifstream fichierpiece; // Fichier en lecture ofstream fichierserie; // Fichier en écriture // Ouvre le fichier Pièce en lecture fichierpiece.open(fichier_piece); if (fichierpiece.fail()==erreur_ouverture){ cerr<<"erreur d'ouverture de NOM_FICHIER "<<endl; return 1; // Ouvre le fichier Série avec destruction du contenu fichierserie.open(fichier_serie,ios::trunc); // Détermine la Taille du fichier Pièce, écrit la valeur dans fichier Série debutfichierpiece=fichierpiece.tellg(); // Mémorise la position début fichierpiece.seekg(0, ios::end); // Se positionne à la fin taillefichier=fichierpiece.tellg(); fichierserie<<taillefichier<<endl; fichierpiece.seekg(debutfichierpiece, ios::beg);// Se repositionne au début // Réserve l'emplacement pour nbreseries positionnbreseries=fichierserie.tellp(); // Mémorise la position nbreseries fichierserie<<nbreseries<<endl; // Réserve l'emplacement nbreseries // Réserve l'emplacement pour totalpiece positiontotalpieces=fichierserie.tellp(); // Mémorise la position totalpieces fichierserie<<totalpieces<<endl; // Réserve l'emplacement // Lit et écrit le nombre de pieces dans une série while(fichierpiece>>serie){ fichierserie<<serie.nbrepieces<<' '; totalpieces += serie.nbrepieces; nbreseries++; // Ecrit totalpieces dans le fichier Série fichierserie.seekp(positionnbreseries, ios::beg); // Position sur nbreserie fichierserie<<nbreseries; // Renseigne nbreseries fichierserie.seekp(positiontotalpieces, ios::beg); // Position totalpieces fichierserie<<totalpieces; // Renseigne totalpieces return 0; // Les destructeurs ferment les fichiers 7 TABLE DES EXEMPLES DE CODE Exemples : Ouverture de fichiers open()... 2 Exemple 31 : Lecture formatée avec l opérateur d extraction >>... 3 Exemple 32 : Ecriture formatée avec l opérateur d injection <<... 3 Exemple : put()... 4 Exemples : write()... 4 Exemple : get()... 4 Exemple : read()... 4 Exemple 43-1 : Relire la dernière donnée écrite... 4 Exemple 43-2 : Taille du fichier... 5 Exemple 43-3 : Relire une série de données dans un flux fichier après écriture... 5 Exemple 51 : Evolution des bits indicateurs d état du flux... 5 Exemple 52 : Lire et afficher toutes les données d un fichier... 6 Exemple : Gérer les erreurs d ouverture de fichier... 6 Exemple 61 : Définition de la structure de données Piece... 7 Exemple 62 : Ajouter une série de pièces au le fichier Pièce... 8 Exemple 63 : Lire et Afficher les données des séries de pièces... 8 Exemple 64 : Supprimer une série de pièces du fichier Pièce... 8 Exemple 65 : Constituer le fichier Série en se déplaçant dans le fichier Pièce... 9 David Saint-Mellion page 10/10

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

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

Programmation système I Les entrées/sorties

Programmation système I Les entrées/sorties Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les

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

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

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers. I Présentation : Dans le chapitre 1, nous avons vu comment utiliser les appels-systèmes de bas niveau pour créer et accéder à des fichiers sur le disque. Nous avons notamment mis en évidence leur dépouillement

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

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

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

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

SYSTÈME DE GESTION DE FICHIERS

SYSTÈME DE GESTION DE FICHIERS SYSTÈME DE GESTION DE FICHIERS - DISQUE 1 Les couches logiciels réponse requête Requêtes E/S Système E/S Pilote E/S Interruptions utilisateur traitement S.E. commandes S.E. S.E. matériel Contrôleur E/S

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

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

Compression de Données - Algorithme de Huffman Document de Conception

Compression de Données - Algorithme de Huffman Document de Conception ROLLET Samuel SALLE Jennifer Compression de Données - Algorithme de Huffman Document de Conception Projet d'algorithmique et Structure des Données 1 SOMMAIRE 1. Domaine d application....4 1.1 Objectifs

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

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

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

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE C.Crochepeyre MPS_SGF 2000-20001 Diapason 1 Les couches logiciels réponse SGF requête matériel matériel Requêtes E/S Système E/S Pilote E/S Interruptions Contrôleur

Plus en détail

C++ : PROGRAMMATION-OBJET

C++ : PROGRAMMATION-OBJET Cours d informatique 2003/2004 C++ : PROGRAMMATION-OBJET SOMMAIRE : Chapitre 1 : Le concept d objet........ 1 1.1 Objet usuel.............. 1 1.2 Objet informatique Classe........ 2 1.3 Encapsulation.............

Plus en détail

Programmation système de commandes en C

Programmation système de commandes en C Programmation système de commandes en C Cours de Programmation système Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012 2013 Tuyêt Trâm DANG NGOC Programmation système de commandes

Plus en détail

30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C++ 1. 16.mars.10 Cours 4 11.mai.10 Cours C++ 2

30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C++ 1. 16.mars.10 Cours 4 11.mai.10 Cours C++ 2 2ème partie de cours: 23.fév.10 Cours 1 20.avr.10 TEST 24.fév.10 TP1 21.avr.10 miniprojet 26.fév.10 TP réserve 23.avr.10 miniprojet 2.mars.10 Cours 2 27.avr.10 Présentation miniprojet 3.mars.10 TP2 28.avr.10

Plus en détail

Cours 6 : Tubes anonymes et nommés

Cours 6 : Tubes anonymes et nommés Cours 6 : Tubes anonymes et nommés Mécanisme de communications du système de fichiers I-node associé. Type de fichier: S_IFIFO. Accès au travers des primitives read et write. Les tubes sont unidirectionnels

Plus en détail

Introduction au langage C

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

Plus en détail

Cours d Algorithmique-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

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

COMPARAISONDESLANGAGESC, C++, JAVA ET

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

Plus en détail

Le système de gestion des fichiers, les entrées/sorties.

Le système de gestion des fichiers, les entrées/sorties. Le système de gestion des fichiers, les entrées/sorties. Luigi Santocanale Laboratoire d Informatique Fondamentale, Centre de Mathématiques et Informatique, 39, rue Joliot-Curie - F-13453 Marseille 19

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

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

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

Avertissement : Ce cours suppose la connaissance et la maîtrise du langage C CONTENU DU COURS BIBLIOGRAPHIE

Avertissement : Ce cours suppose la connaissance et la maîtrise du langage C CONTENU DU COURS BIBLIOGRAPHIE Enseignement : GI 62 - C++ - Programmation orienté objet (C++) Objectif : Ce module se situe dans la continuité des modules (ii12) et UEL RAN Informatique et permet d'acquérir les bases de la modélisation

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

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

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

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

PROJET ALGORITHMIQUE ET PROGRAMMATION II

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

Plus en détail

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

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

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

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

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

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

1 Lecture de fichiers

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

Plus en détail

GESTION DES FICHIERS C/UNIX

GESTION DES FICHIERS C/UNIX Licence IG Page 1 sur 6 GESTION DES FICHIERS C/UNIX Introduction Deux modes d appel - Par la bibliothèque standard C (appel de haut niveau) - Par appels système (bas niveau) Nécessite les includes suivant

Plus en détail

Cours de Système : Gestion de Fichiers

Cours de Système : Gestion de Fichiers Cours de Système : Gestion de Fichiers Bertrand Le cun et Emmanuel Hyon bertrand.le cun{at}u-paris10.fr et Emmanuel.Hyon{at}u-paris10.fr Université Paris Ouest Nanterre 25 octobre 2011 B.L.C. & E.H. (UPO)

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

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

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

Plus en détail

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

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

Les chaînes de caractères

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

Plus en détail

Initiation. àl algorithmique et à la programmation. en C

Initiation. àl algorithmique et à la programmation. en C Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,

Plus en détail

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

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

Plus en détail

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

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

Plus en détail

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

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

Plus en détail

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

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

Plus en détail

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

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

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

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

Plus en détail

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

Algorithmique et Programmation, IMA

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

Plus en détail

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

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

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing 3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps

Plus en détail

Les structures. Chapitre 3

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

Plus en détail

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

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

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

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

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

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

Plus en détail

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

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

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

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

Plus en détail

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

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

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

IRL : Simulation distribuée pour les systèmes embarqués

IRL : Simulation distribuée pour les systèmes embarqués IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation

Plus en détail

Architecture des ordinateurs

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

Plus en détail

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

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr 6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure

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

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

Rappels Entrées -Sorties

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

Plus en détail

GOL502 Industries de services

GOL502 Industries de services GOL502 Industries de services Conception d un service Partie IIb Version 2013 Introduction Conception d un service partie IIb Nous verrons dans ce chapitre Modélisation d un service; Langage de modélisation

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

INITIATION A LA PROGRAMMATION

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

Plus en détail

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

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

Licence Sciences et Technologies Examen janvier 2010

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

Plus en détail

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

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

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

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

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

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS CCS Sommaire Généralités sur le langage. 2 Structure d un programme en C.. 3 Les constantes et équivalences.. 4 Les variables...

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

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

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

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

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

Plus en détail

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