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", & 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: