Informatique 2A 2009-2010 Langage C 2 è séance. Objectifs de la séance 2 Début de la modularité avec les fonctions Création d’une première bibliothèque.

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
Premier programme en C :
La boucle for : init7.c et init71.c
Les fonctions A quoi ça sert ?
Formation universitaire à .NET: Introduction à C#
Cours n° 8 Conception et Programmation à Objets
la programmation en langage C
C.
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Paramètres et pointeurs
Fonctions Dans un programme : certaines opérations (ou séquences d'opérations) peuvent se répéter plusieurs fois : affichage de tableau, saisie, ou même.
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Principes de programmation (suite)
Points importants de la semaine Les fonctions. La portée. La passage par copie. Les tableaux.
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Algorithmique et Programmation
Points importants de la semaine Le paramétrage. La portée. Le passage par copie. Le passage par référence.
Langage Oriente Objet Cours 2.
Leçon 2 : Surcharge des opérateurs IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Points importants de la semaine Les constantes de compilation. Les fonctions.
IFT 6800 Atelier en Technologies d’information
Cours 4 Héritage (suite).
COURS DE PROGRAMMATION ORIENTEE OBJET :
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Structures de données IFT-10541
Procédures et fonctions
Plan cours La notion de pointeur et d’adresse mémoire.
La librairie assert.h.
Python Fonction et procédure
Structures des données
2.1 - Historique Chapitre 2 : Introduction au langage C++
Programmer en langage c
La notion de type revisitée en POO
Les adresses des fonctions
11/04/ L'héritage Cours 7 Cours 7.
Créer des packages.
Un survol du language C.
Les modules. Modules Un module est un ensemble de définitions de constantes, de variables et de fonctions réutilisables de projet en projet. Le langage.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Cours C++ Fonctions Surcharge d’opérateurs Passage d’arguments
Tutorat en bio-informatique
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
HistoriqueHistorique Langage C++, parution du livre Bjarne Stroustrup Normalisation ANSI.
Programmation Système et Réseau
Introduction au langage C Fonctions et Procédures
Strings et Tableaux en Java
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
Les types composés Les enregistrements.
Les surcharges d'opérateurs
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
ISBN Chapitre 10 L'implémentation des sous- programmes.
Cours LCS N°4 Présenté par Mr: LALLALI
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 2 – Java Premiers pas Master 1 SIGLIS1 Java Lecteur - Chapitre 2 - Java Premiers Pas.
1 Cours 6 Définitions de nouvelles procédures Transmissions de données/résultats Déclarations globales/locales Visibilités Interface/implementation.
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
PRO-1027 Programmation Scientifique en C
LES TABLEAUX Définition: Création d’un tableau:
Introduction au langage C
Informatique 2A Langage C 1 ère séance.
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
M. BENJELLOUN : 2005 Le but final est de programmer un jeu où l'ordinateur choisira un nombre aléatoire entre 0 et 100 que vous devez deviner.
Algorithmique Langage C
Transcription de la présentation:

Informatique 2A Langage C 2 è séance

Objectifs de la séance 2 Début de la modularité avec les fonctions Création d’une première bibliothèque de fonctions ‘‘fichier.h’’ et modularité inter-fichiers Génération de nombres aléatoires

Création d’un fichier source Creation of a source file (.c): 1) Creation of the solution and of a project : fichier/nouveau -> projet Projet Win 32 (application console win 32) Nom : enter the name of the project (td2 for this lesson) Create a file for the solution : You will use it (almost) all the year : Name it with the two family names in your group Projet vide 2) Creation of a source file: right-clic on fichiers source, ajoutez un nouvel élément, force the extension.c For the various exercices of the lesson, name it mainfile.c

But d’une fonction : exécute des actions et renvoie un résultat 3 étapes : –Entrée : informations introduites dans la fonction –Calculs : travail de la fonction à partir des entrées –Sortie : résultat du calcul. Les fonctions

argument formel Type nom_fonction (type1 arg1, type2 arg2,…) ; Déclaration : prototype ou en-tête type retourné par la fonction argument formel Minimum nécessaire pour compiler 1 er appel 2 e appel argument effectif main() {… nom_fonction( arg_eff1, arg_eff2,…) ; nom_fonction( arg_effa, arg_effb,…) ; … } Définition : Type nom_fonction(type1 arg1, type2 arg2,…) { … return … ; }

Un exemple main( ) { double A ; int i, j ; A = 5.5 ; i = j = 3 ; printf(‘‘%lf %lf’’, poly(A,i,j),poly(1,4,7 )) ; } 2 appels de la fonction Déclaration : prototype ou en-tête double poly (double u, int m, int n) ; Définition : double poly (double u, int m, int n) { double val ; val = u*u + m*u + n ; return val ; }

La fonction main C’est par elle que commence l’exécution void main(void) { … } main( ) { … } int main( ) { … return 0 ; }

Portée et durée de vie des variables Variable locale 1)Variable déclarée à l’intérieur d’un bloc {…} Ne peut être utilisée qu’à l’intérieur du bloc Durée de vie = temps du bloc 2)En-tête d’une fonction (argument formel) Variable globale Variable déclarée en dehors de toute fonction (voir plus loin et poly) Soyez le plus « local » possible

Un exemple int fonction (int a) ; main( ) { int i, A =1; for (i = 0; i<10;i++) { int x = i*A ; A = A + x ; printf(‘‘%d\n’’, fonction(A)); } printf(‘‘%d\n’’, fonction(A)); } int fonction (int a) { int val, i ; for (i = 0; i<20;i++) { …} return val ; }

Les tableaux comme argument de fonction double moyenne(double T[ ], int n); Déclaration : Appel de la fonction : double x ; double tab[N] ; … x = moyenne(tab, N); N est une constante symbolique (#define N 100) Définition : double moyenne(double T[ ], int n) { …}

Structure générale d’un programme #include … #define … Déclarations des fonctions (prototypes) main() { appels aux fonctions …} Définition des fonctions

Modèle obligatoire d’écriture des fonctions /* dicho : recherche de la racine d'une équation par dichotomie ENTREES : - a,b : intervalle de recherche - On suppose que f(a)*f(b)<0 - eps : précision de la solution trouvée - f : fonction dont on veut trouver la racine SORTIES : - racine de l'équation **** F. Goudail - 27/06/07 */ double dicho(double a, double b, double eps, double (*f) (double)) { … }

Modularité et fichiers Intérêts : hiérarchisation des problèmes, lisibilité, réutilisation, compilation séparée 1) Regrouper dans un même fichier source.c les fonctions ayant un même thème 2) Créer le fichier en-tête.h correspondant et l’inclure là où il est utilisé Solution binome Project td2 Principal.cTableaux.cTableaux.h #include #include’’tableaux.h’’ main ( ) { Fait appel à des fonctions définies dans Tableaux.c } Contient toutes les définitions des fonctions ayant pour thème les tableaux et ce qu’il faut pour les compiler Contient tous les prototypes des fonctions de Tableaux.c

Structure d’un programme Workspace binome Project td2 Principal.cThème1.c Thème2.c Thème3.c … #include #include’’Thème1.h’’ #include’’Thème2.h’’ #include’’Thème3.h’’ #define CS 100 main ( ) { Fait appel à des fonctions définies dans Thème1.c, Thème2.c, Thème3.c, stdio.c } Thème1.h Thème2.h Thème3.h …

Génération de nombres aléatoires La fonction rand( ) génère des nombres aléatoires entre 0 et RAND_MAX ( ) Lancez-la plusieurs fois … Initialisation avec srand(time(0)) ( ) Générateur de nombres aléatoires entiers compris entre deux bornes (version approximative) : int i_alea(int min, int max) { return rand( )%(max-min+1)+min; } A mettre dans un fichier random.c

Histogramme Valeurs possibles probabilité min max On tire Ntirs valeurs comprises entre min et max probabilité de tirer la valeur i = nb d’occurrences / Ntirs Principe On remplit un tableau de Ntirs nb aléatoires entiers compris entre min et max Fonction histogramme : remplit le tableau des probabilités (quelle est sa taille?) Ex : En pratique

Modularité et variables globales Variable globale extern : visible par tous les fichiers où elle est déclarée Variable globale static : visible par un seul fichier Principal.cTableaux.cAlea.c #include extern int A =5 ; main ( ) { } int A ; static double B = 2.5 ; fonction1( ) { } int A ; fonction2( ) { } A est visible par les fonctions des trois fichiers B n’est visible que par les fonctions de Tableaux.c