Outils pour utilisateurs

Outils du site


programmation:c:fiche_rapide

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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:20]
sky99
programmation:c:fiche_rapide [03/11/2015 02:29]
sky99
Ligne 1: Ligne 1:
-Fiche rapide de rappels en C+====== ​Fiche rapide de rappels en C ====== 
 +Il s'agit ici d'une fiche rapide de rappels sur **une partie** des notions vues en cours. Ce n'est en aucun cas un cours complet!
 ===== Les variables ===== ===== Les variables =====
 Déclaration d'une variable : Déclaration d'une variable :
Ligne 24: Ligne 25:
 //​déclaration et assignation d'un float : //​déclaration et assignation d'un float :
 float pi=3.14159; float pi=3.14159;
 +
 +//​déclaration d'un nombre à virgule avec double et assignation de valeur :
 +double pi2=3.1415962;​
 </​code>​ </​code>​
 +==== Choix du nom des variables ====
 +  - Les noms de variables en C commencent toujours par une lettre;
 +  - les caractères accentués sont interdits;
 +  - pas d'​espaces dans les noms;
 +  - certains caractères spéciaux comme **_** (//​underscore//​) sont autorisés;
 +  - les noms des variables sont uniques au sein d'un programme;
 +  - une variable ne doit pas avoir le même nom qu'une fonction.
 +
 +==== Opérations sur les variables ====
 +On peut effectuer les opérations arithmétiques habituelles:​
 +
 +<code C>
 +//​déclaration de nos variables
 +int a1=5,​a2=4,​a3,​a4;​
 +float k;
 +
 +//addition
 +a3=a1+5;
 +//​soustraction
 +a4=a2-a3;
 +//​multiplication
 +a1=a1*a2;
 +//division
 +k=2.5654/​0.007;​
 +//division par un entier
 +k=(a1+a3)/​(float)a2;​
 +</​code>​
 +
 +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>​
 +
 +
 +
  
programmation/c/fiche_rapide.txt · Dernière modification: 03/11/2015 12:37 par sky99