Les variables

Sommaire

Index

Définitions

Emplacement de stockage

Une variable permet de désigner un emplacement de stockage dans la mémoire.

Identifiant

Une variable comporte toujours un identifiant unique.

C’est le nom de la variable

Taille

L’emplacement de stockage peut avoir une taille variable selon la donnée à stocker

Affectation

Notation de l’affectation

En pseudo-code la notation utilisée pour l’affectation est la suivante:

nom <- valeur

ou

nom <-- valeur

Exemples d’affectations (pseudo-code)

largeur <- 10
reponse <- "o"

Signification de l’affectation

Affecter une valeur à une variable consiste à placer une valeur dans son emplacement mémoire

la_reponse <- 42

Modification

Affecter une valeur à une variable déjà affecter remplace sa valeur

la_reponse <- 14

L’ordinateur ne garde aucune trace de la valeur précédente

Typage

Selon le langage la variable peut être typée:

Force du typage

Un langage est fortement typé si:

Détection des erreurs de typage

Exemple: assigner un entier dans une variable de type flottant

Interdiction des conversions implicites

Exemple: une variable de type entier long (codé sur 64 bits) reçoit de type entier court (codé sur 16 bits)

Déclaration

Dans de nombreux langages, les variables doivent être déclarées

Obligation de déclaration

Dans certains langages, cette déclaration est facultative

Elle est alors recommandée (si c’est possible)

Utilisation des variables

Déclaration

En pseudo-langage

type: identifiant1, identifiant2, ...

En langage C

<type> identifiant1, identifiant2 ;

Par convention, les éléments mentionnés entre chevrons sont à remplacer par une chaîne valide (pour le compilateur):

Ici, <type> doit être remplacé (par exemple) par int ou char ou tout autre type valide.

Exemples

int entier1, x, y;
float racine ;

Nommage des identifiants (en C)

Choisir un identifiant se fait selon les règles suivantes:

Validité des identifiants

Selon les langages, les règles peuvent varier

Pour simplifier, nous utiliserons les règles ci-dessous (pour le langage C)

Accentuation

Aucun caractère accentué n’est toléré (cela peut générer des problèmes à l’exécution)

Premier caractère

Le premier caractère peut être soit :

Caractères suivants

Les caractères autorisés sont:

Applicabilité des règles

Les règles précédentes sont applicables pour tous les identifiants:

Exemple de déclaration

En C

int main () {
    int entier1, x, y;
    float racine ;
    char lettre;
    return 0;
}

En pseudo-code

VARIABLES
    ENTIER entier1, x, y
    FLOTTANT racine
    CARACTERE lettre

Note: pour le détail concernant les règles du pseudo-code, voir cette page

Exercice 1: sur les déclarations

Créer un programme C nommé declaration.c

Déclarer les variables suivantes:

Compiler le programme

Rappel

Pour compiler le programme, utiliser la commande suivante:

gcc -o declaration declaration.c

Avez-vous vérifié qu’aucun des identifiants choisis ne comporte les caractères suivants:

Exemples:

char reponse_a_donner ;

Une fois le programme terminé, l’enregistrer dans l’historique git

Affectation

Opérateur d’affectation

En C (et dans de nombreux langages):

Il est équivalent au symbole <- ou utilisé en pseudo-code

Le signe égal = ne signifie pas “est égal à” mais “prend la valeur:”

En C, la vérification d’une condition d’égalité se fait avec un opérateur différent: ==

Cela peut différer d’un langage à un autre

Exemples d’affectations

entier1 = 0;
x = 2;
lettre = 'e';

Exercice 2: sur les affectations

Copier le programme declaration.c dans affectation.c

Modifier ce programme pour affecter les valeurs suivantes:

Pour la valeur flottant, il faut remplacer la virgule , par un point . (notation anglo-saxonne des nombres à virgule)

Pour le caractère, seul un caractère placé entre simple quote est valide. Exemple: 'u'

Déclaration initialisée

En C (et de nombreux autres langages), il est possible de déclarer un variable en lui affectant une valeur initiale.

int longueur = 14;

Équivalent à :

int longueur;
longueur = 14;

Équivalence

Ceci est strictement équivalent la succession :

Affichage de variable

En pseudo-code

L’affichage se fait en appelant une procédure permettant l’affichage sur l’écran:

Exemples

AFFICHER("La longueur est ", longueur)

Ceci affichera:

La longueur est 14

En C

L’instruction printf est la fonction dédiée.

Pré-requis

Pour pouvoir utiliser la fonction printf il faut rajouter dans l’entête du code l’instruction suivante:

#include <stdio.h>

Cela permet au compilateur de charger une librairie contenant les instructions d’entrée sortie (io désigne ici Input Output).

À propos de printf

La fonction printf nécessiterait un chapitre complet pour illustrer toutes ses possibilités.

Pour simplifier, ce guide donnera les syntaxes nécessaires pour les exercices au fur-et-à-mesure.

Affichage d’entier avec printf

printf("entier1 vaut %d.\n", entier1);

Affichage de flottant avec printf

printf("racine vaut %f.\n", racine);

Affichage de caractère avec printf

printf("lettre vaut %c.\n", lettre);

Affichage de plusieurs variables

int x, y;
x = 2;
y = 3;
printf("x vaut %d et y vaut %d.\n", x, y);

Produira l’affichage:

x vaut 2 et y vaut 3.

Exercices d’affichage

Exercice 3: affectation et affichage

Copier le programme affectation.c dans affiche.c

Compilation

Pour compiler ce programme, ajouter l’option -Wall:

gcc -o affiche -Wall affiche.c

Ceci a pour effet d’afficher de nombreux avertissements.

L’objectif de l’exercice est double:

Travail à réaliser

Afficher les variables déclarées et affectées précédemment :

La sortie du programme devra être strictement identique à l’affichage ci-dessous:

hauteur: 2.8
épaisseur: 12
réponse à donner: o

Exercice 4: déclarer / afficher entiers (1)

Déclarer les variables suivantes:

Et leur affecter les valeurs suivantes (respectivement):

Afficher le contenu des variables sous la forme :

nom=valeur

Exercice 5: déclarer / afficher entiers (2)

Déclarer les variables suivantes:

Et leur affecter les valeurs suivantes (respectivement):

Afficher le contenu des variables sous la forme :

nom: valeur

Exercice 6: déclarer / afficher caractères

Déclarer les variables suivantes:

Et leur affecter les valeurs suivantes (respectivement):

  1. Afficher le contenu des variables sous la forme :
nom: 'valeur'
  1. Afficher les variables les unes à la suite des autres. Affichage attendu:
bonJOUR

Affichage char / int

Le langage C est souple quant à l’affichage des variables.

Ainsi, si vous choisissez d’afficher un char en tant qu’entier, il vous le permettra:

char lettre = 'e';
printf("lettre vaut %c.\n", lettre);
printf("lettre vaut (entier) %d.\n", lettre);

De ce point de vue, le C est dit faiblement typé.

Exercice 7: déclarer / afficher caractères / entiers

Déclarer les variables suivantes:

Et leur affecter les valeurs suivantes (respectivement):

  1. Afficher le contenu des variables sous la forme :
nom: 'valeur' valeur_entière
  1. Afficher la valeur de la soustraction entre deux lettres:
  1. Examiner la table ASCII donnée ici et vérifier si cette valeur est logique.

  2. Utiliser la table ASCII pour affecter les valeurs suivantes à de nouvelles variables:

Que se passe-t-il ? Est-ce normal ?