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

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

Embed Size (px)

Citation preview

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

Hiver 2010 JGA Beaulieu

GEF 243BProgrammation informatique appliquée

Structure de base des programmes en C

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

Hiver 2010 JGA 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

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

Hiver 2010 JGA Beaulieu

Outils pour programmer en C

• Vous avez besoin d’un éditeur de texte pour créer et modifier votre code Ici vous créez/modifiez des fichiers *.c et *.h

• Vous avez besoin d’un compilateur, qui est dépendant de votre plateforme Intel/Win, Sun SPARC/Unix… Ici vous produisez des fichiers *.obj

• Vous avez besoin d’un éditeur de liens (linker) Ici vous produisez des fichiers *.exe (ou .lx)

• Un environnement pour exécuter vos programmesDans les labos on se sert de LEGO Mindstorms™ et BrickOS

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

Hiver 2010 JGA Beaulieu

Étapes pour produire un programme en C

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

Hiver 2010 JGA Beaulieu

Structure d’un 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 s’appel main()

• Contrairement à Java où chaque classe peut avoir un main

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

Hiver 2010 JGA Beaulieu

Structure d’un 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*/

}

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

Hiver 2010 JGA Beaulieu

Structure d’un programme en C/*Directives de pré processeur */

#include <stdio.h>

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

}

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

Hiver 2010 JGA 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 n’est pas très flexible, nous pourrions utiliser des

entrées de l’utilisateur

• 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().

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

Hiver 2010 JGA Beaulieu

Arguments de la ligne de commande

• Un programme en C peut avoir aucun argumentsvoid main (void)

• Ou exactement deux argumentsvoid main (int argc, char *argv[])

• int argc est un entier (integer) qui indique le nombre d’éléments (compteur) dans le vecteur d’arguments (argv)

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

Hiver 2010 JGA Beaulieu

Arguments de la ligne de commande

/0

/0

/0

/0

/0

/0

argv

6

argc

Nom du programme

Semblable à figure H-2 dans Forouzan

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

Hiver 2010 JGA 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

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

Hiver 2010 JGA Beaulieu

Arguments de la ligne de commande#include <stdio.h>#include <string.h>#include <stdlib.h>

int main (int argc, char *argv[]){/* Définitions locales */

int i;

/* Énoncés */printf ("Le nombre d’éléments de l’utilisateur: %d\n", argc);printf ("Le nom du programme: %s\n", argv[0]);

for ( i = 1 ; i < argc ; i++ ) printf ("Valeur de l’utilisateur No. %d: %s\n", i, argv[i]);

return 0;}

Comme nous avons vue deux arguments

argc est définit par l’entrée sur la ligne

argc peut être utilisé pour contrôler les

boucles

Semblable au programme H-2 dans Forouzan

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

Hiver 2010 JGA Beaulieu

Arguments de la ligne de commande#include <stdio.h>#include <string.h>#include <stdlib.h>

int main (int argc, char *argv[]){/* Définitions locales */

int i;

/* Énoncés */printf ("Le nombre d’éléments de l’utilisateur: %d\n", argc);printf ("Le nom du programme: %s\n", argv[0]);

for ( i = 1 ; i < argc ; i++ ) printf ("Valeur de l’utilisateur No. %d: %s\n", i, argv[i]);

return 0;}

argv est un tableau d’éléments

Le premier étant le nom du programme

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

Hiver 2010 JGA Beaulieu

Arguments de la ligne de commande

• En regardant le segment de code la ligne d’entrée va produire la sortie correspondante :C:\cmdline Bozo

Le nombre d’éléments de l’utilisateur: 2

Le nom du programme: CMDLINE

Valeur de l’utilisateur No. 1: Bozo

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

Hiver 2010 JGA Beaulieu

Arguments de la ligne de commande

• Deuxième exemple avec un string:C:\cmdline Bozo “the clown”

Le nombre d’éléments de l’utilisateur: 3

Le nom du programme: CMDLINE

Valeur de l’utilisateur No. 1: Bozo

Valeur de l’utilisateur No. 2: the clown

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

Hiver 2010 JGA 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 l’intention d’un é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*/

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

Hiver 2010 JGA 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.

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

Hiver 2010 JGA Beaulieu

Commentaires• Chaque programme doit avoir un entête qui ressemble à cela:/*************************************************************************** Fichier: MonProgramme.c** Auteur: Maj Beaulieu (avec l’aide du code de Forouzan)** Description: Ce programme va écrire Bonjour le monde sur l’unité 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 m’a aidé avec la deuxième partie*************************************************************************/

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

Hiver 2010 JGA 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 d’un vecteur de n points

*

****************************************************************/

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

Hiver 2010 JGA 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 validesNe 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!!!

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

Hiver 2010 JGA Beaulieu

Convention de nommage

• Toutes les constantes doivent être en majuscules#define GRANDMAXSTRG 20 /*Grandeur maximum d’une

string*/

• Variables doivent commencer avec une lettre minuscule et chaque nouveau mot commence avec une majusculechar *nomDuClient; //Nom du client ou contact

• Les noms de fonctions commencent avec une lettre majuscule et chaque nouveau mot commence avec une majusculeint MultiplieDeuxInt (int premierInt,

int deuxiemeInt) {…}

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

Hiver 2010 JGA 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