0% ont trouvé ce document utile (0 vote)
3 vues24 pages

Variables

Le document présente les concepts fondamentaux des variables et des entrées/sorties en algorithmique et programmation, en se concentrant sur leur déclaration, affectation et utilisation dans le langage Java. Il explique également les règles pour nommer les identificateurs et la portée des variables. Enfin, il aborde les mécanismes d'entrée et de sortie de données, tant en algorithmique qu'en Java, en mettant en avant les fonctions appropriées pour ces opérations.

Transféré par

jskboy377
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues24 pages

Variables

Le document présente les concepts fondamentaux des variables et des entrées/sorties en algorithmique et programmation, en se concentrant sur leur déclaration, affectation et utilisation dans le langage Java. Il explique également les règles pour nommer les identificateurs et la portée des variables. Enfin, il aborde les mécanismes d'entrée et de sortie de données, tant en algorithmique qu'en Java, en mettant en avant les fonctions appropriées pour ces opérations.

Transféré par

jskboy377
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Algorithmique et programmation

Variables et entrées/sorties

Damien Massé

Département d’informatique
UFR sciences

L1 parcours ISI

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 1 / 24
Variables Mémoire et variables

Mémoire, variables

données
unité (pile + tas)
de calcul
(UAL) code
+ registres (programme)
processeur mémoire vive

communications
avec l’extérieur

périphériques

Les données manipulées par le programme sont représentées dans le code


par des variables. Les « lieux » de stockage en mémoire (registre, pile ou
tas) dépendent de leurs usages et leurs durées de vie.

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 2 / 24
Variables Mémoire et variables

Variables

Un variable est l’association d’un nom et d’une « case mémoire » destinée


à accueillir une valeur.
Les variables permettent :
de réutiliser plusieurs fois le résultat d’un calcul sans refaire ce calcul ;
de stocker les entrées du programme ;
de faire plusieurs fois un calcul similaire avec des valeurs différentes.
En général, les variables contiennent (une grande partie de) l’état du
programme pendant son exécution.

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 3 / 24
Variables Mémoire et variables

Exemple (algorithmique)

1: afficher("Entrez le rayon du cercle")


2: reel a, pi ▷ déclare deux variable a et pi
3: a ← lire() ▷ lit au clavier une valeur et l’associe à la variable a
4: pi ← 3,14159265358979 ▷ affecte une valeur à la variable pi
5: afficher("Périmètre : ")
6: afficher(2 ∗ pi ∗ a) ▷ utilisation dans une expression

4 4 3,14... 4 3,14...
a a pi a pi
mémoire mémoire mémoire
(ajout de a) (ajout de pi) (utilisation de a et pi)

On voit ici comment deux variables sont initialisées (on leur a donné une
première valeur), soit par lecture, soit par affectation, puis utilisée dans
une expression.

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 4 / 24
Variables Identificateurs

Identificateurs : les noms d’une variable


Les identificateurs sont les mots qui peuvent servir comme nom pour une
variable.
Un identificateur de variable doit respecter quelques règles. En général (et
en Java) :
1 il doit commencer par une lettre sans accents, ou le caractère _ ;
2 on doit trouver ensuite un nombre quelconque de lettres (majuscules
ou minuscules, jamais accentuées), ou chiffres, ou le caractère _
(le caractère $ est toléré mais déconseillé en Java) ;
3il ne doit pas être un mot réservé (utilisé dans le langage) : par
exemple int...
Exemples corrects Exemples incorrects
x, x1, x_1, mOI, 12, 12xyaz, x3.4, epe’e, double,
taux_de_Change, __N_o_23id_ot tép, taux-de-Change
Attention à différencier majuscules et minuscules : l et L ne sont pas la
même chose.
Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 5 / 24
Variables Déclaration

Déclaration d’une variable

En Java, il est nécessaire de déclarer une variable avant de l’utiliser.


Déclarer signifie :
dire « cet identificateur-là est une variable »
donner le type de cette variable (pour les vérifications de type).
Concrètement, déclarer une variable permet à l’ordinateur de réserver la
place pour la variable en mémoire.
La déclaration se fait de préférence après l’ouverture d’un bloc
d’instruction (donc juste après le {).

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 6 / 24
Variables Déclaration

Déclaration (suite)

Pour déclarer une variable, on donne d’abord son type (int, char,
double, etc.), puis son nom. On finit par un point-virgule.
Exemple :
{
int a; /∗ d é c l a r a t i o n de l a v a r i a b l e a p r e n a n t
une v a l e u r e n t i è r e ∗/

/∗ i n s t r u c t i o n s u t i l i s a n t a ∗/
}

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 7 / 24
Variables Déclaration

Déclaration (suite)
On peut déclarer plusieurs variables de même type sur une même
ligne, en les séparant par des virgules ;
on peut déclarer des variables de types différents sur des lignes
successives.
Exemple :

{
i n t n1 , n2 , n3 ; /∗ v a r i a b l e s e n t i è
r e s n1 , n2 e t n3 ∗/ n1 :int n2 :int n3 :int
double pi ; /∗ v a r i a b l e
f l o t t a n t e p i ∗/
i n t N1 ; /∗ v a r i a b l e e n t i è pi : double N1 :int
r e N1 ∗/

/∗ on u t i l i s e n1 , n2 , n3 , p i , N1
∗/
}

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 8 / 24
Variables Déclaration

Portée d’une variable


La portée d’une variable est le bloc d’instruction dans laquelle elle est
définie. En dehors de ce bloc, la variable n’existe pas.
Exemple :
Portée de n1 : lignes 2–12.
1 { Portée du premier n2 : lignes 5–6.
2 i n t n1 ;
3 /∗ . . ( 1 ) . . ∗/
Portée du second n2 : lignes 9–10.
4 {
5 i n t n2 ; 2 2 2
6 /∗ . . ( 2 ) . . ∗/
n1 : int n1 : int n1 : int
7 }
8 {
9 d o u b l e n2 ; 4 3.5
10 /∗ . . ( 3 ) . . ∗/
n2 :int n2 :double
11 }
12 /∗ . . ( 4 ) . . ∗/ (1) (4) (2) (3)
13 }

On peut vouloir déclarer des variables dans des sous-blocs pour des
questions de lisibilité : la variable est déclarée au moment où elle est utile.
Pour des petits programmes, ce problème ne se pose pas vraiment.
Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 9 / 24
Variables Déclaration

Déclaration d’une chaine de caractère

Les chaines de caractères ne sont en général pas des types « de base », du


fait de leur place en mémoire variable. En Java, le type String n’est pas
« de base » (on dit « non primitif »), mais il est assez facile à utiliser. La
déclaration se fait comme pour tous les autres types.
S t r i n g une_chaine ;

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 10 / 24
Variables Affectation

Affectation
Après sa déclaration, une variable est une case « vide » : son contenu est
indéfini.
L’affectation est l’opération qui donne un contenu à la variable.
En langage algorithmique, on utilisera de préférence ← pour représenter
l’affectation : a ← 2 + 3.
En Java, l’affectation est présentée par un =. Attention à ne pas
confondre avec le test d’égalité qui est ==. L’affectation est une
instruction en elle-même.
a = 2+3; /∗ c e t t e i n s t r u c t i o n p l a c e l a v a l e u r 5
d a n s a ∗/
Rappel : attention à ne pas confondre avec l’opérateur testant l’égalité :
boolean b ;
b = 2 == 3 ; /∗ c e t t e i n s t r u c t i o n a f f e c t e à b l a
v a l e u r f a l s e ∗/

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 11 / 24
Variables Affectation

Affectation : remarques
Une variable peut avoir plusieurs affectations successives :
1 {
2 int a;
3 /∗ . . . ∗/
4 a = 3;
5 /∗ . . . ∗/
6 a = 5;
7 /∗ . . . ∗/
8 }

L’affectation n’est pas symétrique : b = a ne fait pas la même


chose que a = b.
De même, 2 = a n’a aucun sens (le compilateur donne un message
d’erreur
The left-hand side of an assignment must be a variable).
D’où l’usage d’une flèche en langage algorithmique.
Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 12 / 24
Variables Affectation

Affectation à la déclaration

Il est possible de faire une affectation au moment même de la déclaration :


{
i n t a = 3 ; /∗ d é c l a r e une v a r i a b l e a a v e c une
v a l e u r i n i t i a l e de 3 ∗/
/∗ . . . ∗/
}
On utilisera cela uniquement pour des valeurs initiales simples (pas des
calculs).

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 13 / 24
Entrées/sorties Définition

Entrées/sorties

Lors de son exécution, un programme doit pouvoir échanger des


informations avec l’« extérieur » (ordinateur, utilisateur par l’intermédiaire
du clavier, de l’écran...) :
pour récupérer des données ;
pour envoyer des résultats.
On appelle entrées les informations qui arrivent au programme, et sorties
les informations qui en sortent.

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 14 / 24
Entrées/sorties Définition

Entrées/sorties : vocabulaire

Exemple d’énoncé : « écrire un programme qui lit deux nombres et écrit


leur produit. »

Lire, prendre en entrée, prendre au clavier, demander à l’utilisateur −→


entrée.
Écrire, afficher (à l’écran), afficher en sortie −→ sortie.

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 15 / 24
Entrées/sorties Langage algorithmique

Les sorties en algorithmique

En langage algorithmique, toutes les sorties se font à l’aide du mot


« aficher », sans considération de type. On peut mettre n’importe quelle
expression ensuite, et même plusieurs expressions (séparées par une
virgule, un espace, ou autre).
afficher("Le cours dure 2 heures")
afficher("2+3")
afficher(2 + 3)
afficher(2.3 − 4.5)
afficher("Le résultat de 2*3 vaut " 2 ∗ 3)

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 16 / 24
Entrées/sorties Langage algorithmique

Les entrées en algorithmique

En langage algorithmique, toutes les entrées se font à l’aide du mot


« lire() », avec une affectation.
1: a ← lire()
2: afficher(a+2)
3: a ← lire()
4: b ← lire()
5: afficher("la somme de a et b vaut ",a+b)
Note : on peut admettre en langage algorithmique deux lectures sur la
même ligne (a,b = lire()) mais beaucoup de langages (dont Java)
interdisent cette construction.

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 17 / 24
Entrées/sorties Entrées/sorties en Java

Entrées/sorties en Java

Les entrées/sorties sur un ordinateur sont complexes et doivent prendre en


compte :
l’entrée/sortie utilisée (clavier, écran, fenêtre, ...)
pour une sortie, son type, son format, sa taille...
pour une entrée, également la gestion des problèmes (le programme
ne contrôle pas ce qui peut arriver de l’extérieur)
l’interaction éventuelle avec les autres programmes et le système
d’exploitation.
Ces entrées/sorties passent par des fonctions, prédéfinies ou écrites
spécifiquement. On se limitera à quelques cas en Java.

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 18 / 24
Entrées/sorties Entrées/sorties en Java

[Link]

La fonction [Link] permet d’écrire une ligne en sortie


standard en Java, pour les différents types de base et (surtout) les chaines
de caractères. Cette fonction ajoute un passage à la ligne en fin d’affichage
(au contraire de [Link]).
System . o u t . p r i n t l n ( " Le cours dure 2 heures " ) ;
System . o u t . p r i n t l n ( " 2+3 " ) ;
System . o u t . p r i n t (3+2);
System . o u t . p r i n t l n ( " est la somme de 3 et 2 " ) ;
La fonction [Link] est similaire, mais ne passe pas à la ligne.

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 19 / 24
Entrées/sorties Entrées/sorties en Java

Affichage de plusieurs expressions

Pour afficher plusieurs expressions avec un seul appel, il faut utiliser


l’opérateur + pour concaténer (mettre bout à bout) des chaines. Cela ne
peut marcher que si au moins un terme est une chaine.
System . o u t . p r i n t l n ( " 2 "+" 3 " ) ; // a f f i c h e 23
System . o u t . p r i n t l n ( " 2 "+3) ; // a f f i c h e a u s s i 23 (
t r a n s t y p a g e du 3 )
System . o u t . p r i n t l n (2+3) ; // a f f i c h e 5 ( p a s de
transtypage )

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 20 / 24
Entrées/sorties Entrées/sorties en Java

Exemples

1 i n t a = 2∗3;
2 b o o l e a n b = a >2;
3 double c = 3.4∗ a ;
4 System . o u t . p r i n t l n ( " La valeur de a est "+a+" . " ) ;
5 System . o u t . p r i n t l n ( " La valeur de b est "+b+" .
Celle de c est "+c+" . " ) ;

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 21 / 24
Entrées/sorties Entrées/sorties en Java

Entrées en Java

Pour les entrées (nettement plus compliquées que les sorties), nous
utiliserons des fonctions spécifiquement écrites pour les TP.
Pour l’entrée standard, dans les TP :
1 [Link]() retourne un int lu ;
2 [Link]() retourne un double lu ;
3 [Link]() retourne le prochain char (non blanc) lu ;
4 [Link]() retourne le prochain mot (type String) lu ;
5 [Link]() retourne la prochaine ligne (type String) lue.

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 22 / 24
Entrées/sorties Entrées/sorties en Java

Remarques

1 Ces « fonctions » serviront pour les TP, mais sont définies juste pour
cela. Nous verrons d’autres fonctions dans un cours suivant.
2 Certains exercices de TP utiliseront une interface graphique. Dans ce
cas, une autre approche sera utilisée pour les entrées (en utilisant une
interface graphique utilisateur). Les sorties pourront utiliser une
fonction proche de println.

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 23 / 24
Entrées/sorties Entrées/sorties en Java

Exemple de programme : échange de deux valeurs


1 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s )
2 {
3 int a,b;
4 System . o u t . p r i n t l n ( " Entrez a puis b " ) ;
5 a = IO . l i r e I n t ( ) ; b = IO . l i r e I n t ( ) ;
6 System . o u t . p r i n t ( " a = "+a ) ;
7 System . o u t . p r i n t l n ( " ; b = "+b ) ;
8 System . o u t . p r i n t l n ( " Echange de a et b . " ) ;
9 { /∗ b l o c à conna î t r e ∗/
10 int c;
11 c = a;
12 a = b;
13 b = c;
14 }
15 System . o u t . p r i n t ( " a = "+a ) ;
16 System . o u t . p r i n t l n ( " ; b = "+b ) ;
17 }

Damien Massé (Dépt info - UBO) Algo & prog - Variables L1 parcours ISI 24 / 24

Vous aimerez peut-être aussi