Programmation en C-Variables


Niveau:2

Introduction:

Dans cet article, nous verrons comment utiliser les variables  en langage C.

Prérequis:

Avoir un raspberry pi avec Raspbian installé ou une machine virtuelle avec Raspbian avec un IDE pour la programmation.

Savoir compiler et exécuter un programme en C.

Avoir créer un premier programme en C.

Voir article :https://domotronic.fr/informatique/programmation-en-c-structure/

Définition:

Une variable n’est rien d’autre qu’un nom donné à une zone de stockage dans la mémoire de l’ordinateur pour que nos programmes puissent les manipuler. Chaque variable en C a un type spécifique, qui détermine la taille de la mémoire à utiliser.

Une variable possède :

  • Un nom : Un variable apparaît en programmation sous un nom de variable.
  • Un type : Pour distinguer les uns des autres les divers contenus possibles, on
    utilise différents types de variables (entiers, réels, chaîne de caractères …).
  • Une valeur : Une fois la variable définie, une valeur lui est assignée, ou
    affectée.
  • Une adresse : C’est l’emplacement dans la mémoire de l’ordinateur, où est
    stockée la valeur de la variable.

Le nom d’une variable peut être composé de lettres, de chiffres et du caractère de soulignement. Il doit commencer par une lettre ou un trait de soulignement. Les lettres majuscules et minuscules sont distinctes car le langage C est sensible à la casse. Les types de variable sont les suivants:

Type Taille Borne inférieure Borne supérieure
signed char ≥ 8 bits -127 +127
unsigned char ≥ 8 bits 0 +255
short ≥ 16 bits -32 767 +32 767
unsigned short ≥ 16 bits 0 +65 535
int ≥ 16 bits -32 767 +32 767
unsigned int ≥ 16 bits 0 +65 535
long ≥ 32 bits -2 147 483 647 +2 147 483 647
unsigned long ≥ 32 bits 0 +4 294 967 295
long long ≥ 64 bits -9 223 372 036 854 775 807 +9 223 372 036 854 775 807
unsigned long long ≥ 64 bits 0 +18 446 744 073 709 551 615

 

Le langage de programmation C permet également de définir divers autres types de variables, que nous verrons dans les chapitres suivants, tels que Énumération, Pointeur, Tableau, Structure, Union, etc. Pour ce chapitre,nous  étudions que les types de variables de base.

Notre programme:

Voici le code que nous allons détailler:

/*
 * variable.c
 * 
 * Christophe Caron
 * www.caron.ws
 * 2019
 * Licence MIT
 * 
 */

#include <stdio.h>

int main (int argc , char * argv []) // équivalent de int main ()
{
        // Initialisation des variables
        char t;                     // Déclaration de la variable t en  caractère
        char t1='a';                // Déclaration de la variable t1 en caractère et attribution de la valeur a
        int a;                      // Déclaration de la variable a entier
        int b=5;                    // Déclaration de la variable b entier
                                    // avec attribution de la valeur 5
        char t2[]="     ";          // Déclaration d'un tableau de caractère vide
        char t3[]="hello";          // Déclaration d'un tableau de caractère avec texte
        const int CONST = 123;      // Déclaration d'une constante valeur non modifiable
        float f=125.25;             // Déclaration de la variable f flottante
        
        
        // Affichage de la valeur t
        printf("Valeur de t sans initialisation de la valeur= %c \n", t );
        // Saisie de la valeur de t
        printf("Choisisez la valeur de t ? ") ;
        scanf (" %c", & t ) ;      
        printf("Nouvelle valeur de t= %c \n", t );
        
        // Affichage de la valeur t1
        printf( "Valeur de t1= %c \n", t1 );
        
        // Affichage de la valeur CONST
        printf( "Valeur de la constante CONST= %d \n", CONST);
        
        // Affichage de la valeur t2
        printf( "Valeur de t2 avec caractéres espace=*%s*\n", t2 );
        t2[0]='a';
        t2[1]='b';
        printf( "Valeur de t2= %s \n", t2 );
        
        // Affichage de la valeur t3
        printf( "Valeur de t3= %s \n", t3 ); 
        
        // Afficahe de la valeur de a   
        printf( "Valeur de a sans initialisation de la valeur= %d \n", a );
        a=18;
        printf( "Valeur de a  avec une valeur= %d \n", a );
        
        // Affichage de la valeur de b
        printf( "Valeur de b= %d \n", b );
        
        // Affichage de la valeur de f
        printf( "Valeur de f= %f \n", f );
        
        // Fin du programme
        return 0;
}

Fichier source: variable.c

Explication du programme:

Explication des fonctions scanf()et printf():

Le fichier d’en-tête standard d’entrée-sortie, nommé, stdio.h contient la définition des fonctions printf() et scanf() permettant d’afficher la sortie à l’écran et de prendre les entrées de l’utilisateur.


        printf ("Choisisez la valeur de t ? ") ;
        scanf ("%c", &amp; t ) ;      // On demande d'entrer la valeur de t avec scanf
        printf( "Nouvelle valeur de t     %c\n", t );

Lorsque vous compilerez le code ci-dessus, il vous sera demandé de saisir une valeur. Lorsque vous entrez la valeur, la valeur que vous avez entrée est affichée.

Vous devez vous demander quel est le but de  %c à l’intérieur des fonctions scanf() ou printf(). Le %c permet d’indiquer le format de la variable à la fonction scanf() (quel type d’entrée est attendu) et pour la fonction printf()  quel est le type de sortie est attendu.

Voici les différents type:

Type Lettre
int %d / %i
long %ld
float/double %f / %lf
char %c
string (char*) %s
pointeur (void*) %p
short %hd
entier hexadécimal %x

 

Dans notre programme, nous pouvons voir les différentes variables et voir comment nous pouvons attribuer une valeur. Cependant, si aucune valeur n’est attribuée, la valeur devient aléatoire.

Pour les tableaux de caractères, nous avons attribué une chaîne lors de la création de la variable t3[]. Mais pour modifier t2[] nous avons entré les valeurs une par une. Nous verrons comment faire pour attribuer une chaîne de caractères à t2 en utilisant la bibliothèque string.h car Il n’existe pas de variable « chaîne » en langage C.

En C, les chaînes sont des tableaux unidimensionnels de caractères, terminés par un caractère nul \0. Puisque vous ne pouvez pas assigner de tableaux en C, vous ne pouvez pas non plus assigner de chaînes. Le « hello » est littéralement: char x[] = {‘h’,’e’,’l’,’l’,’o’,’\0′};.

Exécution de notre programme:

Après avoir compiler votre programme vous pouvez le tester en l’exécutant.

Réalisation d’une calculatrice:

/*
 * calculatrice.c
 * 
 * Christophe Caron
 * www.caron.ws
 * 2019
 * Licence MIT
 * 
 */

#include <stdio.h>

int main (int argc , char * argv []) // équivalent de int main ()
{
        // Initialisation des varaibles
        float v1=0;             // Déclaration de la variable f flotant
        float v2=0;             // Déclaration de la variable f flotant
        float v3=0;             // Déclaration de la variable f flotant
        char op=0;
        
        
        // Saisie de la premiere valeur
        printf("Choisisez la première valeur  ? ") ;
        scanf ("%f", & v1 ) ;
              
        // Saisie de la deuxieme valeur
        printf("Choisisez la deuxième valeur  ? ") ;
        scanf ("%f", & v2 ) ;         

        // Saisie de l'opération
        printf("Choisisez l opération + - * /? ") ;
        scanf (" %c", & op ) ;
        
        // Comparaision du choix pour l'opération
        // la valeur 43 correspond à +, 45 à -, 42 à *, 47 à /, en ascii
        
        if (op==43) {
                v3=v1+v2;
                // Affichage du résultat
                printf( "Valeur de l'addition = %f \n", v3 );
        }  
        if (op==45) {
                v3=v1-v2;
                // Affichage du résultat
                printf( "Valeur de la soustraction = %f \n", v3 );
        }
        if (op==42) {
                v3=v1*v2;
                // Affichage du résultat
                printf( "Valeur de la multiplication= %f \n", v3 );
        } 
        if (op==47) {
                v3=v1/v2;
                // Affichage du résultat
                printf( "Valeur de la division= %f \n", v3 );
        }              
        // Fin du programme
        return 0;
}

Fichier source: calculatrice.c

Exécution: