(Cours AD n 26003 du 17-09-04)

De
Publié par

Cours A.Denise du vendredi 17 septembre 2004 Chapitre II : Bases du langage C I. Un premier programme C #include < stdio.h > int main ( ) /* Demande l’heure de départ, puis l’heure et la minute d’arrivée, puis écrit la durée du trajet. On suppose que départ et arrivée ont lieu le même jour et qu’il n’y a pas de décalage horaire. */ { int hd, md, /* Heure et minute de départ */ ha, ma, /* Heure et minute d’arrivée */ ht, mt, /* Heure et minute de durée du trajet */ cd, ca; /* conversion des horaires de départ et d’arrivée en minutes. */ printf (" Ce programme calcule ma durée d'un trajet effectué dans une journée.\n); printf (" Donnez l'heure et la minute de départ, séparées par un espace: "); scanf ("%d %d",&hd,&md); printf (" Donnez l'heure et la minute d'arrivée, séparées par un espace: "); scanf ("%d %d",&ha,&ma); cd=60*hd+md; ca=60*ha+ma; ht=(ca-cd)/60; mt=(ca-cd)%60; printf (" Durée du trajet: %d h %d min. \n\n", ht, mt); } II. Syntaxe des programmes C 1. Structure générale d'un programme Un programme C est une suite de fonctions. Il contient toujours une fonction principale appelée main. C'est celle-ci qui est exécutée en premier. Toute fonction a un type, qui est le type des valeurs qu'elles donnent ( factorielle donnera un entier, la racine carrée donnera souvent un réel, etc.), mais il existe des fonctions ne envoyant aucune valeur. Il existe un type ...
Publié le : samedi 24 septembre 2011
Lecture(s) : 20
Nombre de pages : 5
Voir plus Voir moins
Cours A.Denise du vendredi 17 septembre 2004 Chapitre II : Bases du langage C I.Un premier programme C #include < stdio.h > int main ( ) /* Demande l’heure de départ, puis l’heure et la minute d’arrivée, puis écrit la durée du trajet. On suppose que départ et arrivée ont lieu le même jour et qu’il n’y a pas dedécalage horaire. */ { int hd, md, /* Heure et minute de départ */  ha,ma, /* Heure et minute d’arrivée */  ht,mt, /* Heure et minute de durée du trajet */  cd,ca; /* conversion des horaires de départ  etd’arrivée en minutes. */ printf (" Ce programme calcule ma durée d'un trajet effectué dans une journée.\n); printf (" Donnez l'heure et la minute de départ, séparées par un espace: "); scanf ("%d %d",&hd,&md); printf (" Donnez l'heure et la minute d'arrivée, séparées par un espace: "); scanf ("%d %d",&ha,&ma); cd=60*hd+md; ca=60*ha+ma; ht=(cacd)/60; mt=(cacd)%60; printf (" Durée du trajet: %d h %d min. \n\n", ht, mt); }II.Syntaxe des programmes C 1.Structure générale d'un programme Un programme C est une suite de fonctions. Il contient toujours une fonction principale appelée main. C'est celleci qui est exécutée en premier. Toute fonction a un type, qui est le type des valeurs qu'elles donnent ( factorielle donnera un entier, la racine carrée donnera souvent un réel, etc.), mais il existe des fonctions ne envoyant aucune valeur. Il existe un type particulier pour ces fonctions: void. Cependant, la fonction main est obligatoirement de type entier (int). Le début d'un programme en C contient toujours la ligneint main ( )
Pour définir une fonction:  Intmain ()exemple<type> <nom> ([paramètres])les instructions entre crochets [] sont facultatives { corps de la fonction } Le corps de la fonction contient les instructions: Les déclarations de variables sont des instructions. Toute instruction se termine par ';' Les blocs d'instructions s'écrivent entre { … } Il existe un grand nombre de fonctions déjà définies dans le langage C. Par exemple, printf ( ) et scanf ( ) sont des fonctions prédéfinies. Appel d'une fonction: < nom de la fonction > (< liste des paramètres d'entrée >) Exemple: printf (" Durée du trajet: %d h %d min. \n\n", ht, mt);Commentaire: /* … */ou//tout ce qui est après '//' sur la même ligne est commentaire. 2.Déclaration et initialisation des variables. < type > < nom de la variable > [=<expression>]; Exemple: int ca; int n=10; /*on déclare et on initialise en même temps. */ int a, b, c; int a, b, c = 12; On peut déclarer les variables: Au début d'un bloc. Elle ne sera "visible" que dans ce bloc. main ( ) { int i, j; . . { int k printf ("%d\n",k) } printf ("%d\n",k)/* à ce niveau, k est invisible. */}
Il est vivement conseillé de ne déclarer les variable d'une fonction que dans le bloc principal de cette fonction ( question de lisibilité ). A l'extérieur de tout bloc: Elle sera visible dans tous les blocs du fichier (variable globale) int a, b; main ( ) {                } int factorielle ( int n ) {                }Affectation d'une variable: < nom > = < expression > 3.Lire et écrire a)Ecrire printf (< chaîne de caractères >, [expression 1], [expression 2], …); Une chaîne de caractères est une suite de caractères, encadrée par des guillemets. Exemples: printf ("Le résultat es %d", n ); printf ("%d divisépar %vaut %d. \n ",a, b, a/b );%d correspondà la spécification de format le caractère de fin de ligne (retour chariot)\n est Les spécifications de format ( %___ ) servent à indiquer qu'ils doivent être remplacés par la valeur d'une expression qui suit. %dexpression de type entier %fexpression de type réel (float) %cexpression de type caractère (char) %sexpression de type chaîne de caractères (string) b)Lire On utilise la fonctionscanf ( ), dont le maniement est délicat.
Version la plus simple: scanf (< spécification de format >, &< nom de variable >) Exemples: scanf ("%d", &n)/* n est une variable de type int */ scanf ("%f", &x)/* x est une variable de type float */4.Instructions conditionnelles & itérations Boucle 'si' if (< expression >)  <instruction ou bloc >Tests: d'égalité :a==bd'inégalité:a!=ba<b a>b a<=b a>=b négation logique:! /*exemple:if(!(a==b) ou if(a!=b) */Boucle 'si … alors' if (< expression > ) < instruction ou bloc >  else< instruction ou bloc >Exemples:  if (a==b)  printf ("égalité\n");  else  printf ("inégalité\n");  if (    )        else if (   )        else      'Selon le cas' switch (< expression >) { case < expression constante > : < séquence d'instruction > case < expression constante > : < séquence d'instruction >       [ default : < séquence d'instruction > ] }
Exemple: switch ( n%4 ) /*% correspond à modulo */ { case 1 : n=n+2;  printf(   );  break;/* On sort du switch et on va à l'instruction suivante cf. remarque après l'exemple */ case 2 : n=n*2;  break; case 3 :    ;    ;    ;  break; default :    ;    ; }!attention!Par défaut, toutes les instructions situées après le 'case' de la première expression vraie sont exécutées. Il faut mettre des 'break' pour l'éviter. Boucle tant que … faire while (< expression >)  <instruction ou bloc > Boucle faire … tant que do < instruction ou bloc >  while(< expression >)Boucle pour for ( [<expression 1>];[<expression 2>];[<expression 3>])  <instruction ou bloc >expression 1 : Condition de départ expression 2 : Expression booléenne. On sort de la boucle dès qu'elle est fausse expression 3 : Evalué après chaque exécution de la boucle  On exécute l'expression 1  (*) On teste si l'expression 2 est vraie  si oui, on exécute le corps de la boucle, on exécute l'expression 3 et on revienten (*).  sinon on passe à l'instruction suivante. Exemple: for (i=début;i<=fin;i=i+1) printf ("%d\n",i);Cette boucle for effectue: "pour i allant de début à fin, faire écrire (i)" On peut écrire indifféremmenti=i+1oui++
Soyez le premier à déposer un commentaire !

17/1000 caractères maximum.