Pointeurs de fonctions
|
|
- Valentin Desroches
- il y a 8 ans
- Total affichages :
Transcription
1 Florence Levé - Université de Picardie Jules Verne 145 Pointeurs de fonctions Parfois utile de passer une fonction comme paramètre d une autre fonction Un pointeur de fonction correspond à l adresse du début du code de la fonction Un pointeur sur une fonction de prototype type fonction (type_1,..., type_n); est de type type (*)(type_1,..., type_n);
2 Florence Levé - Université de Picardie Jules Verne 146 Pointeurs de fonctions Une fonction operateur_binaire prenant en paramètres deux entiers et une fonction de type int, qui prend ellemême 2 entiers en paramètres, sera définie par : int operateur_binaire (int, int, int(*f)(int, int)) Sa déclaration est donnée par int operateur_binaire (int, int, int(*)(int, int)); Pour appeler la fonction operateur_binaire, on utilisera comme troisième paramètre l identificateur de la fonction utilisée.
3 Florence Levé - Université de Picardie Jules Verne 147 Pointeurs de fonctions Par exemple, si somme est une fonction de prototype int somme(int, int); on appelle operateur_binaire pour la fonction somme par l expression : operateur_binaire(a,b,somme); Remarque : on n utilise pas la notation &somme comme paramètre effectif de operateur_binaire
4 Florence Levé - Université de Picardie Jules Verne 148 Pointeurs de fonctions Pour appeler la fonction passée en paramètre dans le corps de la fonction operateur_binaire, on écrit (*f )( a, b). Exemple int operateur_binaire (int a, int b, int (*f) (int, int)) { } return ( (*f ) (a,b) ) ;
5 Florence Levé - Université de Picardie Jules Verne 149 Pointeurs Interprétation de déclarations pouvant paraître complexes int (*(*f [ ] ) ( ) ) ; /*???????????????????/* Algorithme Répéter s il existe * d indirection alors le traiter et l éliminer sinon s il existe [] de tableau alors le traiter et l éliminer sinon s il existe des parenthèses alors les éliminer jusqu à être ramené à un identificateur
6 Florence Levé - Université de Picardie Jules Verne 150 Pointeurs char * f ( ) ; * f ( ) est un char f ( ) un pointeur vers char f une fonction retournant un pointeur vers un char int * f [10] ; *f [10] est un entier f [10] un pointeur vers un entier f un tableau (de 10 éléments) de pointeurs vers un entier
7 Florence Levé - Université de Picardie Jules Verne 151 Pointeurs char (*f ) ( ); (*f ) ( ) est un char (*f ) une fonction qui retourne un char *f une fonction qui retourne un char f un pointeur vers une fonction retournant un char char *( *f ) ( ); *( *f ) ( ) est un char (*f ) ( ) un pointeur vers un char (*f ) une fonction retournant un pointeur vers un char *f une fonction retournant un pointeur vers un char f un pointeur vers une fonction retournant un pointeur vers un char
8 Florence Levé - Université de Picardie Jules Verne 152 Pointeurs static char * c [ ] = { «MOINS», «PLUS», «EGAL»} ; * c [ ] est un char c [ ] pointeur vers char c tableau de pointeurs vers char
9 Florence Levé - Université de Picardie Jules Verne 153 Exercice TABLEAU DE FONCTIONS Ecrivez un programme calfon permettant d obtenir à la console des valeurs des fonctions : sin, cos, exp, log. Exemple : $ calfon sin $ calfon log10 23 log10 : fonction inconnue
10 Florence Levé - Université de Picardie Jules Verne 154 Compilation séparée Modularité Un programme doit être découpé en plusieurs fichiers, même de petites tailles (réutilisabilité, lisibilité, etc.). Chaque composante logique (un module) regroupe les fonctions et types autour d'un même thème. Les modules s'appellent les uns les autres. Si M1 utilise une fonction de M2, il n'a pas besoin du code de la fonction mais juste de sa signature, c'est à dire son nom, le nombre de paramètres, leur ordre et leur type, et le type retourné.
11 Florence Levé - Université de Picardie Jules Verne 155 Compilation séparée Remarque : si le compilateur rencontre un appel à une fonction qu'il ne connaît pas (qui n'a pas été déclarée précédemment), il ne râle pas et considère par défaut que c'est une fonction de type int. Il ne se mettra à râler que si il rencontre plus tard une définition contradictoire pour cette fonction on lui demande de faire avec cette fonction quelque chose qu'on ne peut pas faire avec un int S'il ne trouve nulle part le code de cette fonction, c'est lors de l'édition des liens qu'il râlera.
12 Florence Levé - Université de Picardie Jules Verne 156 Compilation séparée Pour chaque module truc, on fera 2 fichiers fichier entête truc.h. L'interface. Contient la signature de toutes les fonctions exportées et la déclaration des types exportés. fichier truc.c. Le code de toutes les fonctions exportées, déclaration de variables locales, fonctions locales, types locaux. Et contient au début l'inclusion du.h (pour vérifier qu'on raconte bien la même chose partout) Tout module ou programme principal qui a besoin des fonctions du module truc, devra juste inclure le fichier truc.h
13 Florence Levé - Université de Picardie Jules Verne 157 Compilation séparée Exemple : module tab de manipulation de tableaux module tri qui offre plusieurs méthodes de tris de tableaux un programme principal qui veut créer un tableau, le trier par le tri bulle et l'afficher.
14 Florence Levé - Université de Picardie Jules Verne 158 Compilation séparée fichier tab.h /* module de gestion de tableaux */ typedef int *TAB; // type TAB = un tableau void lecture(tab,int); // fonction de lecture d'un tableau de taille donnee //... commentaire sur ce que fait chaque fonction void affichage(tab,int); TAB creation(int); int acces(tab,int);
15 Florence Levé - Université de Picardie Jules Verne 159 Compilation séparée #include «tab.h» fichier tab.c TAB creation(int taille) { malloc... return... } void lecture(tab t,int taille){ int i; for (i=0;i<taille;i++)... }...
16 Florence Levé - Université de Picardie Jules Verne 160 Compilation séparée fichier tri.h fichier tri.c /*module de tris de tableaux*/ #include «tri.h» // pour connaitre le type TAB #include «tab.h» void tri_bulle(tab,int); void tri_rapide(tab,int); void tri_bulle(tab t,int taille){... } void tri_rapide tri_bulle(tab t,int taille){... }
17 Florence Levé - Université de Picardie Jules Verne 161 Compilation séparée #include «tab.h» #include «tri.h» fichier main.c TAB montab; int main( ){ montab=creation(10); lecture(montab,10); tri(montab,10); affichage(montab,10); }
18 Florence Levé - Université de Picardie Jules Verne 162 Compilation séparée Comment relier tout ça? avec tab.c et tab.h, on forme un fichier objet tab.o avec tri.c, tab.h et tri.h, on forme un fichier objet tri.o avec main.c, tri.h et tab.h, on forme un fichier objet main.o On fait l'édition des liens des main.o tri.o et tab.o et on obtient un éxecutable. C'est à dire qu'il faut donner les ordres de compilation : gcc -c tab.c gcc -c tri.c gcc -c main.c gcc tab.o tri.o main.o -o prog
19 Florence Levé - Université de Picardie Jules Verne 163 Compilation séparée - Makefile fichier Makefile MonProg: main.o tab.o tri.o <tab> gcc main.o tab.o tri.o -o MonProg main.o : main.c tab.h tri.h <tab> gcc -c main.c tri.o : tri.c tri.h tab.h <tab> gcc -c tri.c tab.o : tab.c tab.h <tab> gcc -c tab.c Taper make pour l'exécuter.
20 Compilation séparée Florence Levé - Université de Picardie Jules Verne 164 Intérêt : indispensable quand il y a beaucoup de fichiers (plutôt que de retaper à chaque fois tous les ordres de compilation) il ne fait que ce qui est nécessaire : il ne recompile quelque chose que si la dernière compilation est plus ancienne que la dernière modification d'un fichier (c'est pourquoi il est indispensable de mettre tous les.h utilisés).
21 Florence Levé - Université de Picardie Jules Verne 165 Compilation séparée Raccourcis On peut déclarer des variables VAR=machins qu'on utilise ensuite par $(VAR). La maintenance et la mise à jour sont alors plus faciles à gérer. fichier Makefile CC = gcc OBJ = main.o tab.o tri.o MonProg: $(OBJ) $(CC) $(OBJ) -o MonProg main.o : main.c tab.h tri.h tri.o : tri.c tri.h tab.h tab.o : tab.c tab.h
22 Florence Levé - Université de Picardie Jules Verne 166 Compilation séparée Utilisation de macros spéciales : $@ nom de la cible à reconstruire $* nom de la cible sans suffixe $< nom de la dépendance à partir de laquelle on reconstruit la cible $? liste des dépendances plus récentes que la cible
23 Florence Levé - Université de Picardie Jules Verne 167 Compilation séparée On peut rajouter dans le makefile une ligne pour effacer les fichiers objets clean : rm f *.o
24 Florence Levé - Université de Picardie Jules Verne 168 Préprocesseur Qu est-ce que c est? Simple substitution de texte Augmente la lisibilité du code source Augmente la vitesse d exécution du programme Le preprocessing intervient avant la phase de compilation Directives Une directive au préprocesseur commence toujours par # #include, #define, #ifdef Les directives sont effectives sur tout le fichier. Remplacement des directives de précompilation par du code en C (compréhensible par le compilateur)
25 Florence Levé - Université de Picardie Jules Verne 169 Macros Définies par la directive #define Deux formes: Simple remplacement d une chaîne de caractère. Remplacement de la chaîne et substitution d argument. Une macro peut être définie sur plusieurs lignes (retour chariot)
26 Florence Levé - Université de Picardie Jules Verne 170 Macro simple #define IDENTIFIANT chaîne chaîne est une séquence de caractères Toute occurrence de IDENTIFIANT dans le texte sera remplacé par chaîne Exemple : #define PI! ! Remplacera durant la phase de préprocessing toutes les occurrences de la chaîne «PI» dans le fichier C par la chaîne « ». Autre forme de déclaration de constantes
27 Florence Levé - Université de Picardie Jules Verne 171 Macro simple On peut définir les variables de précompilation à l'appel de l'enchaîneur de passes option Dnom=valeur Le préprocesseur changera les occurrences de la variable nom par la valeur valeur, comme si la constante de précompilation nom était définie par la directive #define nom valeur.
28 Florence Levé - Université de Picardie Jules Verne 172 Macro avec arguments (Macroinstruction) Syntaxe #define <chaîne1>(<liste paramètres>) <chaîne2>! (pas d espace entre l identifiant et la parenthèse)!! Exemple Macro qui incrémente une variable #define inc(x) x++! Toute occurrence de «inc(<variable>)» sera respectivement remplacée par <variable>++ durant la phase de précompilation (indépendamment de son type)
29 Florence Levé - Université de Picardie Jules Verne 173 Macro à arguments multiples Code original: #define MIN(X,Y) ( (X)<(Y)? (X) : (Y) ). MIN(a,b); Code intermédiaire:. ( (a) < (b)? (a) : (b) )
30 Florence Levé - Université de Picardie Jules Verne 174 Macros prédéfinies Dans stdio.h #define getchar() getc(stdin) #define putchar(c) putc(c,stdout)
31 Florence Levé - Université de Picardie Jules Verne 175 Problèmes courants Code original: #define SQR(X) X*X SQR(a+1); Code intermédiaire: a+1*a+1; //ce qui est égal à a+(1*a)+1 Solution: parenthéser: #define SQR(X) (X)*(X)
32 Florence Levé - Université de Picardie Jules Verne 176 Les macros ne sont pas des fonctions Code original: #define SWAP(X,Y) {int temp; temp=x; X=Y; Y=temp;} void main(int){ int a=3, b=4; SWAP(a,b); } Code intermédiaire: void main(void){ int a=3,b=4; {int temp; temp=a; a=b; b=temp;} }
33 Florence Levé - Université de Picardie Jules Verne 177 Macro prédéfinies FILE : nom du fichier source courant LINE : numéro de ligne courant DATE : date de compilation du fichier courant TIME : heure de compilation du fichier courant printf(``%s a été compilé le %s\n``, FILE, DATE );
34 Florence Levé - Université de Picardie Jules Verne 178 Opérateurs de Macro # permet de convertir l argument en chaîne de caractères #define MSG(F) printf(#f) MSG(test mess); //devient printf(«test mess»); ## permet de concaténer #define ERR(X,Y) printf(x ## Y) ERR(``err: ``,``une erreur``); //devient printf(``err: une erreur``);
35 Florence Levé - Université de Picardie Jules Verne 179 Dédéfinir et redéfinir des macros Il n est pas permis de redéfinir des macros, sauf si elles ont été dédéfinies par #undef au préalable. #undef est ignoré si l identifiant n a pas été défini #undef peut dédéfinir des macro prédéfinies!!!!
36 Florence Levé - Université de Picardie Jules Verne 180 Inclure des fichiers On inclut des fichiers textes par #include Le texte du fichier est alors recopié à cet endroit. #include <stdio.h> cherche dans le chemin standard le fichier stdio.h #include ``monfichier.h`` cherche le fichier monfichier.h dans le répertoire courant.
37 Florence Levé - Université de Picardie Jules Verne 181 Exercices Écrire une macro qui calcule le maximum de deux nombres et écrire un programme de test qui l'utilise
38 Florence Levé - Université de Picardie Jules Verne 182 Solution #include <stdio.h> /* Definition de la macro */ #define max(x,y) (((x) > (y))? (x) : (y)) /* Le programme de test */ int main ( ) { int n1, n2; /* Deux nombres a fournir par l'utilisateur */ /* Demande et lecture des deux nombres */ printf("introduire n1 : "); scanf("%d", &n1); printf("introduire n2 : "); scanf("%d", &n2); /* Calcul du maximum et affichage du resultat */ printf("max(%d, %d) = %d\n", n1, n2, max(n1, n2)); }
39 Florence Levé - Université de Picardie Jules Verne 183 Inclure des fichiers Possible de demander au pré-processeur d'ajouter d'autres catalogues à sa recherche option de compilation -Inom_du_catalogue. Cette option peut être utilisée plusieurs fois de manière à spécifier plusieurs catalogues de recherche. Les fichiers inclus peuvent contenir d'autres inclusions de fichiers. Ce processus récursif est parfois limité à quelques niveaux d'inclusion.
40 Florence Levé - Université de Picardie Jules Verne 184 Inclure des fichiers Si le nom du fichier est entre guillemets, le préprocesseur cherche le fichier : dans le catalogue courant, puis dans les catalogues spécifiés par les options -I. Si le nom du fichier est entre < >, le préprocesseur cherche le fichier : dans les catalogues spécifiés par les options -I, puis dans le catalogue par défaut du compilateur.
41 Florence Levé - Université de Picardie Jules Verne 185 Conséquence des inclusions #include <stdio.h> typedef int *p_int; #include ``prog1.h`` int main(void){ } Prog1.c pourra alors utiliser les fonctions de la bibliothèque stdio.h
Cours Langage C/C++ Programmation modulaire
Cours Langage C/C++ Programmation modulaire Thierry Vaira BTS IRIS Avignon tvaira@free.fr «v0.1 Rappel Programmation modulaire (1/2) Le découpage d'un programme en sous-programmes est appelée programmation
Plus en détailSeance 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étailQuelques éléments de compilation en C et makefiles
Quelques éléments de compilation en C et makefiles Guillaume Feuillade 1 Compiler un programme C Le principe de la compilation consiste à passer d un ensemble de fichiers de code à un programme exécutable
Plus en détailBases 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étailCours 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étailLe Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr
Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables
Plus en détailCours 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étailLes 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étail1. 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étailI. 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étailAlgorithmique 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étailDE 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étailLe 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étailIntroduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr
Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université
Plus en détailProgrammation 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étail1/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étailProgrammation 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étailINITIATION 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étailProgrammation en C. École Nationale Supérieure de Techniques Avancées. Pierre-Alain Fouque et David Pointcheval
École Nationale Supérieure de Techniques Avancées Programmation en C Pierre-Alain Fouque et David Pointcheval E-mail : Pierre-Alain.Fouque@ens.fr Web : http://www.di.ens.fr/~fouque/ Table des matières
Plus en détailLes 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étailLicence 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étailConventions 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étailInitiation. à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étailLe 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étailMISE 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étailIntroduction 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étailEXCEL TUTORIEL 2012/2013
EXCEL TUTORIEL 2012/2013 Excel est un tableur, c est-à-dire un logiciel de gestion de tableaux. Il permet de réaliser des calculs avec des valeurs numériques, mais aussi avec des dates et des textes. Ainsi
Plus en détailCours Programmation Système
Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février
Plus en détailUE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative
Plus en détailCompression 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étailCours de Programmation Impérative: Zones de mémoires et pointeurs
Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien
Plus en détailOutils pour la pratique
Cinquième partie Outils pour la pratique 121 CHAPITRE 1 Les bases des séances de TP Avant de lire cettre section, il est suggéré de relire vos notes de cours se rapportant au système d exploitation Unix.
Plus en détailTravaux Dirigés n 1 : chaînes de caractères
UE LE315 Travaux Dirigés n 1 : chaînes de caractères Exercice 1 Ecrire une fonction int nombre_caract(char *chaîne) qui retourne la taille d une chaîne de caractères. Exercice 2 Ecrire la fonction void
Plus en détailAlgorithmique, Structures de données et langage C
UNIVERSITE PAUL SABATIER TOULOUSE III Algorithmique, Structures de données et langage C L3 IUP AISEM/ICM Janvier 2005 J.M. ENJALBERT Chapitre 1 Rappels et compléments de C 1.1 Structures Une structure
Plus en détailTravaux 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étailChap 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étailLe 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étailCours 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étailIN 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étailINTRODUCTION 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étailChapitre 1 : La gestion dynamique de la mémoire
Chapitre 1 : La gestion dynamique de la mémoire En langage C un programme comporte trois types de données : Statiques; Automatiques ; Dynamiques. Les données statiques occupent un emplacement parfaitement
Plus en détailCours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java
Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page
Plus en détailProgrammation impérative
Programmation impérative Cours 4 : Manipulation des fichiers en C Catalin Dima Organisation des fichiers Qqs caractéristiques des fichiers : Nom (+ extension). Chemin d accès absolu = suite des noms des
Plus en détailJava 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étailUtilisation 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étailInitiation à la programmation en Python
I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de
Plus en détailLes 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étailINF 104 (SELC) 2012-2013 Introduction au langage C
INF 104 (SELC) 2012-2013 Introduction au langage C Plan Première partie C après Java Structure d un programme Préprocesseur Variables Types de base Types composés Pointeurs(1) Instructions Deuxième partie
Plus en détailLangage Éric Guérin 5 octobre 2010
Langage Éric Guérin 5 octobre 2010 Langage C TABLE DES MATIÈRES Table des matières 1 Introduction 7 1.1 Historique........................................... 7 1.2 Architecture matérielle....................................
Plus en détailTP1. Outils Java Eléments de correction
c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par
Plus en détailNotes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon
Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon 13 janvier 2015 2 Table des matières Organisation générale du cours 7 1 Notions générales d algorithmique et de programmation
Plus en détailChapitre 10 : Logiciels
Chapitre 10 : Logiciels Installation de logiciels dans Linux IUT Lannion - Systèmes - 1e année - Nerzic - 2014-15 1 10.1 Installation manuelle Cette partie explique comment on compile et installe un logiciel
Plus en détailExcel 2007 Niveau 3 Page 1 www.admexcel.com
Excel 2007 Niveau 3 Page 1 TABLE DES MATIERES UTILISATION DE LISTES DE DONNEES... 4 REMARQUES PREALABLES SUR LES LISTES DE DONNEES... 4 METTRE EN FORME LE TABLEAU... 6 METTRE LA LISTE A JOUR... 7 a/ Directement
Plus en détailCours de programmation avancée. Le langage C. Université du Luxembourg 2005 2006
Université du Luxembourg 2005 2006 Cours de programmation avancée. Le langage C Sébastien Varrette Version : 0.4 Nicolas Bernard 2 Table des matières
Plus en détailProgrammation C. J.-F. Lalande. 15 novembre 2012
Programmation C J.-F. Lalande novembre 0 Ce cours est mis à disposition par Jean-François Lalande selon les termes de la licence Creative Commons Attribution - Pas d Utilisation Commerciale - Partage à
Plus en détailCours 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étailLangage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289
Langage C Patrick Corde Patrick.Corde@idris.fr 22 juin 2015 Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Table des matières I 1 Présentation du langage C Historique Intérêts
Plus en détailPROJET 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étailProjet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte
Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes
Plus en détailLes fichiers. Chapitre 4
Chapitre 4 Les fichiers Jusqu à maintenant tous les programmes que nous avons conçus travaillaient sur des données qui étaient perdues après chaque session de travail. On peut cependant, c est bien naturel,
Plus en détailPremiers 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étailBTS IRIS Cours et Travaux Pratiques. Programmation C. A. Lebret, TSIRIS, Lycée Diderot, 1995/06. en conformité avec le référentiel du BTS IRIS
BTS IRIS Cours et Travaux Pratiques Programmation C A. Lebret, TSIRIS, Lycée Diderot, 1995/06 en conformité avec le référentiel du BTS IRIS Activité Codage et Réalisation Tâches T3.3, T3.4 et T3.5 Temps
Plus en détailCours 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étailIntroduction à 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étailChapitre 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étailCours 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étailTP 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étailLicence 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étailSTAGE 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étailBrefs 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É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étailClaude 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étail1.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étailChaîne de production d un programme
227 Plan 1. Généralités : compilateur, assembleur, éditeur de liens compilation séparée directives #include, espace d adressage d un programme 2. l'outil make cible, dépendance fichier Makefile de base
Plus en détailNotes de Cours - Programmation 1 2011-2012. Pascal Ferraro
Notes de Cours - Programmation 1 2011-2012 Pascal Ferraro 18 septembre 2011 2 Table des matières 1 Introduction à la programmation en Langage C 9 1.1 Quelques Références.................................
Plus en détailPré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étailINITIATION 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étailGénéralités sur le Langage Java et éléments syntaxiques.
Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...
Plus en détailhttp://cermics.enpc.fr/scilab
scilab à l École des Ponts ParisTech http://cermics.enpc.fr/scilab Introduction à Scilab Graphiques, fonctions Scilab, programmation, saisie de données Jean-Philippe Chancelier & Michel De Lara cermics,
Plus en détailModes Opératoires WinTrans Mai 13 ~ 1 ~
Modes Opératoires WinTrans Mai 13 ~ 1 ~ Table des matières Facturation... 2 Tri Filtre... 2 Procédures facturation... 3 Transfert Compta... 8 Création d un profil utilisateur... Erreur! Signet non défini.
Plus en détailStudio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume
Studio HERITIER Emmanuelle PERSYN Elodie SCHMUTZ Amandine SCHWEITZER Guillaume Cours R Présentation projet 10/10/2013 Introduction RStudio est une interface créé par JJ Allaire Elle est sortie le 11 Février
Plus en détailINF 321 : mémento de la syntaxe de Java
INF 321 : mémento de la syntaxe de Java Table des matières 1 La structure générale d un programme 3 2 Les composants élémentaires de Java 3 2.1 Les identificateurs.................................. 3 2.2
Plus en détailCours 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étailPython - introduction à la programmation et calcul scientifique
Université de Strasbourg Environnements Informatique Python - introduction à la programmation et calcul scientifique Feuille de TP 1 Avant de commencer Le but de ce TP est de vous montrer les bases de
Plus en détailCentre 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étailChapitre I Notions de base et outils de travail
Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement
Plus en détailLangages et Concepts de Programmation Introduction à la programmation en langage C
Langages et Concepts de Programmation Introduction à la programmation en langage C Cours 1A 2013-2014 Jean-Jacques Girardot, Marc Roelens girardot@emse.fr, roelens@emse.fr Septembre 2013 École Nationale
Plus en détailProgrammation 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étailLe langage C. Introduction, guide de reference
Le langage C Introduction, guide de reference Ce document est une présentation du langage de programmation C, de sa syntaxe et de ses spécificités. Il est destiné essentiellement à servir de mémo-guide
Plus en détailINF111. 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étailSUPPORT 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étailCours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions
Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental
Plus en détailRappels 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étailProgrammation par les Objets en Java
Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée
Plus en détailTP 1 Prise en main de l environnement Unix
Introduction aux systèmes d exploitation (IS1) TP 1 Prise en main de l environnement Unix Le but de ce premier TP est de commencer à vous familiariser avec l environnement Unix. 1 Ouverture de session
Plus en détailEXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version 1.0 30/11/05
EXCEL PERFECTIONNEMENT Version 1.0 30/11/05 SERVICE INFORMATIQUE TABLE DES MATIERES 1RAPPELS...3 1.1RACCOURCIS CLAVIER & SOURIS... 3 1.2NAVIGUER DANS UNE FEUILLE ET UN CLASSEUR... 3 1.3PERSONNALISER LA
Plus en détailENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque
1 ENDNOTE X2 SOMMAIRE 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque 2. Manipuler une bibliothèque EndNote 2.1. La saisie
Plus en détailI00 Éléments d architecture
I00 I Exemples d ordinateur Pour les informaticiens, différentes machines de la vie courante sont des ordinateurs : par exemple les ordinateurs portables, les ordinateurs fixes, mais aussi les supercalculateurs,
Plus en détailProgrammation 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étailAlgorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)
Algorithmes et Programmes Introduction à l informatiquel! Vie d'un programme! Algorithme! Programmation : le langage! Exécution et test des programmes Chapitre : Algorithmes et Programmes 2 Cycle de vie
Plus en détail