La lecture en ligne est gratuite
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
Télécharger Lire

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

De
5 pages
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 ...
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++
Un pour Un
Permettre à tous d'accéder à la lecture
Pour chaque accès à la bibliothèque, YouScribe donne un accès à une personne dans le besoin