Une variable permet de désigner un emplacement de stockage dans la mémoire.
Une variable comporte toujours un identifiant unique.
C’est le nom de la variable
L’emplacement de stockage peut avoir une taille variable selon la donnée à stocker
En pseudo-code la notation utilisée pour l’affectation est la suivante:
nom <- valeur
ou
nom <-- valeur
largeur <- 10
reponse <- "o"
Affecter une valeur à une variable consiste à placer une valeur dans son emplacement mémoire
la_reponse <- 42
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
Selon le langage la variable peut être typée:
Un langage est fortement typé si:
Exemple: assigner un entier dans une variable de type flottant
Exemple: une variable de type entier long (codé sur 64 bits) reçoit de type entier court (codé sur 16 bits)
Dans de nombreux langages, les variables doivent être déclarées
Dans certains langages, cette déclaration est facultative
Elle est alors recommandée (si c’est possible)
type: identifiant1, identifiant2, ...
<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.
int entier1, x, y;
float racine ;
Choisir un identifiant se fait selon les règles suivantes:
Selon les langages, les règles peuvent varier
Pour simplifier, nous utiliserons les règles ci-dessous (pour le langage C)
Aucun caractère accentué n’est toléré (cela peut générer des problèmes à l’exécution)
Le premier caractère peut être soit :
Les caractères autorisés sont:
_
Les règles précédentes sont applicables pour tous les identifiants:
int main () {
int entier1, x, y;
float racine ;
char lettre;
return 0;
}
VARIABLES
ENTIER entier1, x, y
FLOTTANT racine
CARACTERE lettre
Note: pour le détail concernant les règles du pseudo-code, voir cette page
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:
é
è
à
(espace)Exemples:
char reponse_a_donner ;
Une fois le programme terminé, l’enregistrer dans l’historique
git
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
= 0;
entier1 = 2;
x = 'e'; lettre
Copier le programme declaration.c
dans
affectation.c
Modifier ce programme pour affecter les valeurs suivantes:
o
pour la “réponse à donner”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'
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;
= 14; longueur
Ceci est strictement équivalent la succession :
L’affichage se fait en appelant une procédure permettant l’affichage sur l’écran:
AFFICHE
ECRIRE
AFFICHER
AFFICHER("La longueur est ", longueur)
Ceci affichera:
La longueur est 14
L’instruction printf
est la fonction dédiée.
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).
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.
printf
("entier1 vaut %d.\n", entier1); printf
%d
indique que l’entier sera affiché en base 10\n
ajoute un retour à la ligne à la fin de la chaîne
affichéeprintf
("racine vaut %f.\n", racine); printf
%f
indique que la variable racine
sera
affiché en virgule flottante.
printf
("lettre vaut %c.\n", lettre); printf
%c
indique que la variable lettre
sera
affiché comme un caractèreint x, y;
= 2;
x = 3;
y ("x vaut %d et y vaut %d.\n", x, y); printf
Produira l’affichage:
x vaut 2 et y vaut 3.
Copier le programme affectation.c
dans
affiche.c
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:
Afficher les variables déclarées et affectées précédemment :
o
La sortie du programme devra être strictement identique à l’affichage ci-dessous:
hauteur: 2.8
épaisseur: 12
réponse à donner: o
Déclarer les variables suivantes:
Et leur affecter les valeurs suivantes (respectivement):
Afficher le contenu des variables sous la forme :
nom=valeur
Déclarer les variables suivantes:
Et leur affecter les valeurs suivantes (respectivement):
Afficher le contenu des variables sous la forme :
nom: valeur
Déclarer les variables suivantes:
Et leur affecter les valeurs suivantes (respectivement):
nom: 'valeur'
bonJOUR
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';
("lettre vaut %c.\n", lettre);
printf("lettre vaut (entier) %d.\n", lettre); printf
De ce point de vue, le C est dit faiblement typé.
Déclarer les variables suivantes:
Et leur affecter les valeurs suivantes (respectivement):
nom: 'valeur' valeur_entière
lettre_c - lettre_C
lettre_o - lettre_O
Examiner la table ASCII donnée ici et vérifier si cette valeur est logique.
Utiliser la table ASCII pour affecter les valeurs suivantes à de nouvelles variables:
Que se passe-t-il ? Est-ce normal ?