Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.

Slides:



Advertisements
Présentations similaires
GEF 243B Programmation informatique appliquée Listes chaînées I – Tableaux de structures §15.1 – 15.2.
Advertisements

GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée
Premier programme en C :
La boucle for : init7.c et init71.c
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Formation universitaire à .NET: Introduction à C#
GEF 243B Programmation informatique appliquée Boucles §
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Considération de temps.
GEF 243B Programmation Informatique Appliquée
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Tests.
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée Expressions et opérateurs §
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée Tableaux et pointeurs §10.1.
GEF 243B Programmation informatique appliquée Pointeurs et adresses §9.1.
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Génie logiciel et Vérification et validation.
GEF 243B Programmation informatique appliquée Expressions et opérateurs.
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Types, variables et constantes.
GEF 243B Programmation informatique appliquée Types dérivés, structures et tableaux §
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Résolution structurée des problèmes.
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Fonctions.
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Tableaux et pointeurs §10.1.
C.
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
Paramètres et pointeurs
Principes de programmation (suite)
2ième Classe (Mercredi, 13 Octobre) C++ Intro CSI2572.
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Langage C Révision.
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Algorithmique et Programmation
TRAITEMENT DE STRUCTURES
Outils de Programmation
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Introduction à la programmation (Java)
Programmation Initiation Aux Langages C et C++ Bruno Permanne 2006.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Sixième cours Les chaînes de caractères et le passage de paramètres par référence Passage de paramètres par référence String.h.
IFT 6800 Atelier en Technologies d’information
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Procédures et fonctions
Faculté Polytechnique de Mons
L’essentiel du langage C
Le langage C Rappel Pointeurs & Allocation de mémoire.
Programmer en langage c
9ième Classe (Mardi, 4 novembre) CSI2572. H Nous avons vu comment utiliser les directives #define #ifndef #endif Pour s’assurer de l’inclusion unique.
Cours 1 1 Java. Cours 1 2 Plan général 1.Introduction 2.Les types primitifs, évaluation d’expressions 3.Instructions for, if…. 4.Introduction de l’objet,
Argc et argv Utilisation des paramètres de la ligne de commande.
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.
Tutorat en bio-informatique
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
Introduction au langage C Fonctions et Procédures
Les types composés Les enregistrements.
8PRO100 Éléments de programmation Les pointeurs de caractères.
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.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 2 – Java Premiers pas Master 1 SIGLIS1 Java Lecteur - Chapitre 2 - Java Premiers Pas.
Philippe Gandy - 1 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Les outils nécessaires au programmeur
Master 1 SIGLIS Java Lecteur Stéphane Tallard Correction du TD Chapitre 3.
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
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.
Transcription de la présentation:

Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C

Hiver 2010JGA Beaulieu Synopsis Outils requis pour programmer en C main() Programme simple en C Arguments de la ligne de commande (argc, argv) Commentaires Conventions de nommage

Hiver 2010JGA Beaulieu Outils pour programmer en C Vous avez besoin dun éditeur de texte pour créer et modifier votre code Ici vous créez/modifiez des fichiers *.c et *.h Vous avez besoin dun compilateur, qui est dépendant de votre plateforme Intel/Win, Sun SPARC/Unix… Ici vous produisez des fichiers *.obj Vous avez besoin dun éditeur de liens (linker) Ici vous produisez des fichiers *.exe (ou.lx) Un environnement pour exécuter vos programmes Dans les labos on se sert de LEGO Mindstorms et BrickOS

Hiver 2010JGA Beaulieu Étapes pour produire un programme en C

Hiver 2010JGA Beaulieu Structure dun programme en C Tout les programmes en C doivent contenir au moins une fonction Cette fonction est la fonction main() Il peut seulement y avoir une fonction qui sappel main() Contrairement à Java où chaque classe peut avoir un main

Hiver 2010JGA Beaulieu Structure dun programme en C Tout les programmes en C sont écrits avec une structure bien définit: /*Directives de pré processeur*/ /*Déclaration des variables Globales*/ void main(void) { /*Déclaration des variables locales*/ /*Énoncés*/ }

Hiver 2010JGA Beaulieu Structure dun programme en C /*Directives de pré processeur */ #include void main(void) { int x,y,z; /*Déclaration variables locales */ x = 2; /*Énoncés*/ y = 3; z = x * y; printf(Voici la valeur de z: %d, z); }

Hiver 2010JGA Beaulieu Arguments de la ligne de commande Comme nous avons vue dans le programme échantillon, nous pouvons figer les valeurs dans le code ( hardcode ) en prédéfinissant des valeurs. Ceci nest pas très flexible, nous pourrions utiliser des entrées de lutilisateur Nous pouvons aussi passer des arguments au programme. Ces arguments qui sont passés au programme au départ seront passé comme paramètres à la fonction main().

Hiver 2010JGA Beaulieu Arguments de la ligne de commande Un programme en C peut avoir aucun arguments void main (void) Ou exactement deux arguments void main (int argc, char *argv[]) int argc est un entier ( integer ) qui indique le nombre déléments (compteur) dans le vecteur darguments (argv)

Hiver 2010JGA Beaulieu Arguments de la ligne de commande /0 argv 6 argc Nom du programme Semblable à figure H-2 dans Forouzan

Hiver 2010JGA Beaulieu Arguments de la ligne de commande Donc même si un programme en C a seulement deux arguments, il en a beaucoup plus!!! Regardons maintenant un exemple de Forouzan et Gilbert

Hiver 2010JGA Beaulieu Arguments de la ligne de commande #include int main (int argc, char *argv[]) { /*Définitions locales */ int i; /*Énoncés */ printf ("Le nombre déléments de lutilisateur: %d\n", argc); printf ("Le nom du programme: %s\n", argv[0]); for ( i = 1 ; i < argc ; i++ ) printf ("Valeur de lutilisateur No. %d: %s\n", i, argv[i]); return 0; } Comme nous avons vue deux arguments argc est définit par lentrée sur la ligne argc peut être utilisé pour contrôler les boucles Semblable au programme H-2 dans Forouzan

Hiver 2010JGA Beaulieu Arguments de la ligne de commande #include int main (int argc, char *argv[]) { /*Définitions locales */ int i; /*Énoncés */ printf ("Le nombre déléments de lutilisateur: %d\n", argc); printf ("Le nom du programme: %s\n", argv[0]); for ( i = 1 ; i < argc ; i++ ) printf ("Valeur de lutilisateur No. %d: %s\n", i, argv[i]); return 0; } argv est un tableau déléments Le premier étant le nom du programme

Hiver 2010JGA Beaulieu Arguments de la ligne de commande En regardant le segment de code la ligne dentrée va produire la sortie correspondante : C:\cmdline Bozo Le nombre déléments de lutilisateur: 2 Le nom du programme: CMDLINE Valeur de lutilisateur No. 1: Bozo

Hiver 2010JGA Beaulieu Arguments de la ligne de commande Deuxième exemple avec un string: C:\cmdline Bozo the clown Le nombre déléments de lutilisateur: 3 Le nom du programme: CMDLINE Valeur de lutilisateur No. 1: Bozo Valeur de lutilisateur No. 2: the clown

Hiver 2010JGA Beaulieu Commentaires Pendant les travaux pratiques, vous allez souvent avoir du code qui contient des commentaires. Vous devez commenter le nouveau code que vous produisez et tout changements que vous faite au code qui existe déjà. Les commentaires doivent décrire lintention dun énoncé ou bloque dénoncés. Ne mettez pas des commentaires inutiles comme: X = 5; /* ici X est mit à 5*/ Faites des commentaires comme: X = 5; /*Ici X est initialisé au nombre maximum déléments*/

Hiver 2010JGA Beaulieu Commentaires Il y a deux sortes de commentaires: Commentaires en bloc: Tout ce qui est contenue entre /* et */ Commentaire en ligne: Tout ce qui suit // sur une seule ligne de code.

Hiver 2010JGA Beaulieu Commentaires Chaque programme doit avoir un entête qui ressemble à cela: /************************************************************************* * * Fichier: MonProgramme.c * * Auteur: Maj Beaulieu (avec laide du code de Forouzan) * * Description: Ce programme va écrire Bonjour le monde sur lunité de contrôle du robot * LEGO Mindstorms. * * Historique de révision: Créé 1 janvier 2005 * Modifié 10 jan 2005 par Elof Tremblay pour lab 1 *Elof Meilleur ma aidé avec la deuxième partie * ************************************************************************/

Hiver 2010JGA Beaulieu Commentaires Chaque fonction doit avoir un entête qui ressemble à cela: /************************************************************* * * Function: double CalcMoyenne(double *valeurs, int n) * * Author: Dr Beaulieu (avec du code de Forouzan) * * Entrée: Valeurs: Pointeur au tableau * N: Number of points in Values * * Sortie: Moyenne (somme des valeurs / n) * * Description: Calcule la moyenne dun vecteur de n points * ****************************************************************/

Hiver 2010JGA Beaulieu Convention de nommage Tout les identificateurs (constantes, variables et noms de fonction) devraient avoir des noms qui veulent dire quelque chose. A..Z, a..z, 0..9 et le soulignement (_) sont des caractères valides Ne commencez pas avec un chiffre ou un soulignement ANSI/ISO C a 31 caractères par identificateurs; le reste est ignoré. Donc si vous avez deux identificateurs qui ont 32 caractères et que seulement le dernier diffère, les deux identificateurs sont égaux!!!

Hiver 2010JGA Beaulieu Convention de nommage Toutes les constantes doivent être en majuscules #define GRANDMAXSTRG 20 /*Grandeur maximum dune string*/ Variables doivent commencer avec une lettre minuscule et chaque nouveau mot commence avec une majuscule char *nomDuClient; //Nom du client ou contact Les noms de fonctions commencent avec une lettre majuscule et chaque nouveau mot commence avec une majuscule int MultiplieDeuxInt (int premierInt, int deuxiemeInt) {…}

Hiver 2010JGA Beaulieu Quiz Time Quelles sont les quatre outils que vous avez besoin pour créer un programme? Quelles sont les caractères valides pour le nom des variables en C