Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
programmation:c:fiche_rapide [03/11/2015 00:38] sky99 |
programmation:c:fiche_rapide [03/11/2015 02:29] sky99 |
||
---|---|---|---|
Ligne 59: | Ligne 59: | ||
Pour la division, on s'assurera que le diviseur est différent de 0. De plus, si l'on divise par un entier, on pourra ajouter **(float)** devant le diviseur pour forcer à le considérer comme un nombre à virgule. Dans le cas contraire, on effectue une division euclidienne : 3/2=1, et il reste 1. | Pour la division, on s'assurera que le diviseur est différent de 0. De plus, si l'on divise par un entier, on pourra ajouter **(float)** devant le diviseur pour forcer à le considérer comme un nombre à virgule. Dans le cas contraire, on effectue une division euclidienne : 3/2=1, et il reste 1. | ||
+ | On pourra également ajouter l'opérateur modulo (%), qui donne le reste de la division euclidienne : | ||
+ | <code C> | ||
+ | int reste=3%2; | ||
+ | //ici reste vaut 1, car en 3 je trouve une fois deux, et il reste un. | ||
+ | </code> | ||
+ | |||
+ | ===== Les fonctions usuelles ===== | ||
+ | Au sein d'un programme on fera souvent des affichages et des saisies. Pour l'instant nous utiliserons deux fonctions : **printf()** pour l'affichage, **scanf()** pour la saisie. | ||
+ | |||
+ | ==== Affichage avec printf() ==== | ||
+ | On peut afficher du texte et des variables en utilisant la fonction **printf()**. Il est également possible d'effectuer des affichages composés pour afficher des variables dans du texte. Voyons quelques exemples : | ||
+ | |||
+ | <code C> | ||
+ | #include <stdio.h> | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | int a=0; | ||
+ | float pi=3.1415; | ||
+ | //affichage de texte: | ||
+ | printf("Ce texte sera affiché dans le terminal"); | ||
+ | //affichage d'une variable entière seule : | ||
+ | printf("%d",a); | ||
+ | //affichage d'une variable de type float seule : | ||
+ | printf("%f",pi); | ||
+ | //affichage de texte et d'une variable : | ||
+ | printf("La valeur de pi est de %f. Ceci est une valeur approximative.",pi); | ||
+ | //affichage de texte avec un retour à la ligne en utilisant \n | ||
+ | printf("le caractère spécial antislash-n permet un retour à la ligne.\n"); | ||
+ | printf("on peut en mettre autant que voulu : \n\n\n Ici, nous avons sauté 2 lignes vides en plus du retour à la ligne."); | ||
+ | |||
+ | //affichage avec plusieurs variables: | ||
+ | printf("a vaut %d et pi vaut %f.\n",a,pi); | ||
+ | //mêmes variables dans l'autre sens : | ||
+ | printf("pi vaut %f et a %d\n",pi,a); | ||
+ | return 0; | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ==== Saisie avec scanf() ==== | ||
+ | La fonction **scanf()** est très puissante et peut être utilisée pour effectuer des saisies au clavier. Il faudra généralement confirmer la saisie en appuyant sur entrée. Voici quelques exemples d'utilisation : | ||
+ | <code C> | ||
+ | #include <stdio.h> | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | int a=0; | ||
+ | float p=0; | ||
+ | |||
+ | //saisie d'un entier: | ||
+ | scanf("%d",&a); | ||
+ | //saisie d'un float : | ||
+ | scanf("%f",&p); | ||
+ | |||
+ | //il est préférable de mettre un affichage avant le scanf pour que l'utilisateur sache ce qu'on attend de lui : | ||
+ | printf("veuillez saisir un nombre entier : "); | ||
+ | scanf("%d",&a); | ||
+ | |||
+ | printf("veuillez saisir un nombre réel : "); | ||
+ | scanf("%f",&p); | ||
+ | return 0; | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ===== Les instructions conditionnelles ===== | ||
+ | Dans notre programme, on peut vouloir faire une chose ou une autre en fonction d'une variable. | ||
+ | Par exemple, si le solde d'un compte est inférieur à 0, on affichera un message dans ce sens. | ||
+ | Pour cela on utilisera des instructions conditionnelles, avec principalement **if**, **else** et **else if**. | ||
+ | |||
+ | L'utilisation minimale se fait comme suit : | ||
+ | |||
+ | <code C> | ||
+ | #include <stdio.h> | ||
+ | int main() | ||
+ | { | ||
+ | int solde=0; | ||
+ | printf("veuillez saisir le solde du compte : "); | ||
+ | scanf("%d",&solde); | ||
+ | |||
+ | if(solde<0) | ||
+ | //si le solde est strictement inférieur à 0 | ||
+ | { | ||
+ | printf("votre compte est à découvert.\n");//on affiche le message | ||
+ | } | ||
+ | return 0; | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Ici on affichera un message uniquement quand le solde est négatif. | ||
+ | Si l'on souhaite ajouter un message dans les autres cas, on utilisera l'instruction else : | ||
+ | <code C> | ||
+ | #include <stdio.h> | ||
+ | int main() | ||
+ | { | ||
+ | int solde=0; | ||
+ | printf("veuillez saisir le solde du compte : "); | ||
+ | scanf("%d",&solde); | ||
+ | |||
+ | if(solde<0) | ||
+ | //si le solde est strictement inférieur à 0 | ||
+ | { | ||
+ | printf("votre compte est à découvert.\n");//on affiche le message | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | printf("vous n’êtes pas à découvert\n"); | ||
+ | } | ||
+ | return 0; | ||
+ | } | ||
+ | </code> | ||
+ | Notez qu'**il n'y a JAMAIS de else sans if**. | ||
+ | |||
+ | Si l'on a plus de cas, on peut utiliser autant de fois l'instruction else if que souhaité : | ||
+ | <code C> | ||
+ | #include <stdio.h> | ||
+ | int main() | ||
+ | { | ||
+ | int solde=0; | ||
+ | printf("veuillez saisir le solde du compte : "); | ||
+ | scanf("%d",&solde); | ||
+ | |||
+ | if(solde<0) | ||
+ | //si le solde est strictement inférieur à 0 | ||
+ | { | ||
+ | printf("votre compte est à découvert.\n");//on affiche le message | ||
+ | } | ||
+ | else if(solde == 0) | ||
+ | { | ||
+ | printf("votre compte est vide, vous n'avez plus un sou!"); | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | printf("vous n’êtes pas à découvert\n"); | ||
+ | } | ||
+ | return 0; | ||
+ | } | ||
+ | </code> | ||
+ | Notez qu'on peut avoir autant de **else if** que voulu, mais un seul **else**, et celui ci vient toujours en dernier dans pour ce bloc if. | ||
+ | |||
+ | ==== Les conditions simples ==== | ||
+ | Voyons la liste des conditions simples courantes. | ||
+ | === strictement inférieur === | ||
+ | <code C> | ||
+ | //si a est strictement inférieur à b | ||
+ | if(a<b) | ||
+ | { | ||
+ | printf("a<b.\n"); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | === strictement supérieur=== | ||
+ | <code C> | ||
+ | //si a est strictement inférieur à b | ||
+ | if(a<b) | ||
+ | { | ||
+ | printf("a<b.\n"); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | === inférieur ou égal === | ||
+ | <code C> | ||
+ | //si a est strictement inférieur à b | ||
+ | if(a<=b) | ||
+ | { | ||
+ | printf("a<b.\n"); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | === supérieur ou égal === | ||
+ | <code C> | ||
+ | //si a est strictement inférieur à b | ||
+ | if(a>=b) | ||
+ | { | ||
+ | printf("a<b.\n"); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | === égalité === | ||
+ | <code C> | ||
+ | //si a est strictement inférieur à b | ||
+ | if(a==b) | ||
+ | { | ||
+ | printf("a<b.\n"); | ||
+ | } | ||
+ | </code> | ||
+ | Notez bien le double signe d'égalité! | ||
+ | |||
+ | === différent de === | ||
+ | <code C> | ||
+ | //si a est strictement inférieur à b | ||
+ | if(a!=b) | ||
+ | { | ||
+ | printf("a<b.\n"); | ||
+ | } | ||
+ | </code> | ||
+ | ==== Les conditions composées ==== | ||
+ | On peut combiner plusieurs conditions, en utilisant les opérateurs logiques **ET** et **OU**. | ||
+ | Exemples : | ||
+ | === opérateur logique ET === | ||
+ | <code C> | ||
+ | //si a vaut 0 et que b est inférieur à 10 | ||
+ | if(a==0 && b<10) | ||
+ | { | ||
+ | printf("a=0 et b plus petit que 10.\n"); | ||
+ | } | ||
+ | </code> | ||
+ | Il s'agit du caractère **et commercial** (&) qui se trouve sur la touche **1** des touches numériques au dessus des lettres. | ||
+ | |||
+ | === opérateur logique OU === | ||
+ | <code C> | ||
+ | //si a vaut 0 OU bien si b est inférieur à 10 | ||
+ | if(a==0 || b<10) | ||
+ | { | ||
+ | printf("a=0 et/ou b est plus petit que 10.\n"); | ||
+ | } | ||
+ | </code> | ||
+ | Il s'agit du caractère pipe (tuyau, en anglais) (|) qui se trouve sur la touche **6** des touches numériques au dessus des lettres, accessible en pressant la touche Alt Gr + la touche 6 en question. | ||
+ | |||
+ | On peut combiner ces opérateurs à volonté. Par exemple si l'on souhaite que **a** soit compris entre 0 et 42 (inclus), ou que **b** soit négatif, je ferai comme suit : | ||
+ | <code C> | ||
+ | //si 0<a<=42 OU bien si b est inférieur à 0 | ||
+ | if(a>0 && a<=42 || b<10) | ||
+ | { | ||
+ | //faire quelque chose | ||
+ | } | ||
+ | </code> | ||