Outils pour utilisateurs

Outils du site


Panneau latéral

Navigation

Plan auto

programmation:c:fiche_rapide

Ceci est une ancienne révision du document !


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

Déclaration d'une variable :

type nom_variable;
type nom_variable=valeur;
type var1,var2,var3;
type var1=x,var2y,var3=z;

Les types courants vus pour l'instant

  • pour des nombres entiers on utilise le type int;
  • pour les nombres à virgule, on utilise float;
  • nous avons également vu double pour les nombres à virgule.

En pratique cela donnera par exemple :

//déclaration d'un entier : 
int x;
//déclaration d'un entier et assignation de valeur : 
int y=5;
 
//déclaration d'un nombre à virgule avec float : 
float k;
//déclaration et assignation d'un float :
float pi=3.14159;
 
//déclaration d'un nombre à virgule avec double et assignation de valeur :
double pi2=3.1415962;

Choix du nom des variables

  1. Les noms de variables en C commencent toujours par une lettre;
  2. les caractères accentués sont interdits;
  3. pas d'espaces dans les noms;
  4. certains caractères spéciaux comme _ (underscore) sont autorisés;
  5. les noms des variables sont uniques au sein d'un programme;
  6. 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:

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

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 :

int reste=3%2;
//ici reste vaut 1, car en 3 je trouve une fois deux, et il reste un.

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 :

#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;
}

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 :

#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;
}

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 :

#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;
}

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 :

#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;
}

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é :

#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;
}

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

//si a est strictement inférieur à b
if(a<b)
{
  printf("a<b.\n");
}

strictement supérieur

//si a est strictement inférieur à b
if(a<b)
{
  printf("a<b.\n");
}

inférieur ou égal

//si a est strictement inférieur à b
if(a<=b)
{
  printf("a<b.\n");
}

supérieur ou égal

//si a est strictement inférieur à b
if(a>=b)
{
  printf("a<b.\n");
}

égalité

//si a est strictement inférieur à b
if(a==b)
{
  printf("a<b.\n");
}

Notez bien le double signe d'égalité!

différent de

//si a est strictement inférieur à b
if(a!=b)
{
  printf("a<b.\n");
}

Les conditions composées

On peut combiner plusieurs conditions, en utilisant les opérateurs logiques ET et OU. Exemples :

opérateur logique ET

//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");
}

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

//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");
}

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 :

//si 0<a<=42 OU bien si b est inférieur à 0
if(a>0 && a<=42 || b<10)
{
  //faire quelque chose 
}
programmation/c/fiche_rapide.1446514189.txt.gz · Dernière modification: 03/11/2015 02:29 par sky99