variable, type - moodle.uphf.fr
TRANSCRIPT
Données et variables
Un programme manipule des données. • Données très diverses
– tout ce qui est numérisable• Dans la mémoire de l'ordinateur
– donnée >> suite finie de nombres binaires
Pour accéder aux données, le programme utilise des variablesde différents types.
Une variable (dans un programme)
C'est une Case mémoire• avec un Nom de variable • avec un Type• et qui contient une valeur
Une case mémoire ? petite partie de la mémoire vive de l'ordinateur
Mémoire vive • aussi appelée RAM (Random Access Memory)
– à accès direct (par opposition accès séquentiel)
• stockage d'information – des données– des programmes
• mémoire volatile : stockage temporaire – pendant l'exécution des programmes– vidée lorsqu'on éteint l'ordinateur
Une case mémoire ?Mémoire vive • 1 bit (binary digit : chiffre binaire) : 0 ou 1• organisée en octets, composée de 8 bitsAttention • 1 octet (français) = 1 Byte (anglais) = 8 bits (fr et an)• 1 Ko = 1 KB = 210 octets = 1028 octets (ou Bytes)• Méga octet (Mo ou MB), Giga (Go ou GB),
Tera (To ou TB), Peta (Po ou PB), Exa, Zetta
Une case mémoire ?Mémoire vive • vitesse d'accès (très rapide)
– beaucoup plus rapide que les accès au disque dur (et autre mémoire de stockage permanent)
– mais moins rapide que les cases mémoires du processeurs (registres) et les mémoires caches
• taille de la mémoire vive (ex. 1 Go)– beaucoup plus petit que les disques durs– beaucoup plus gros que les registres et mémoire
cache
Taille d'Une case mémoire ?
• dépend du type de la variable (dans un langage)• pour une variable de type simple
(entier, réel, booléen, caractère)– en général 1, 2, 4 ou 8 octets
• Autres types (chaine de caractères, liste, tableau, et bien d'autres types )– plus ou beaucoup plus
Une variable (dans un programme)
C'est une Case mémoire• avec un Nom de variable • avec un Type• et qui contient une valeur
Une variable (dans un programme)
• C'est une Case mémoire– d'une certaine taille (ex. 2 octet)
• avec un Nom de variable – référence désignant une adresse mémoire (ex. nbTrucs)
emplacement précis dans la mémoire vive.• avec un Type
– définit la taille de la zone mémoire – et la convention de codage
• Contient une valeur exemple : 00001010 10110111– nombre ou caractère ou autre selon le Type
Bien nommer une variable
• Nom courts mais explicites– pour une bonne lisibilité du programme
• commence par une lettre minuscule• ne contient QUE des chiffres et des lettres• Utiliser les majuscules pour séparer les mots
Exemples : – altitude1, altitudeMax, nbHasard, nbPropose, – moyAnneeRef, moyMoisCourant, i, j, kEviter : a, x, nbT,
Type d'une variableLe type d'une variable définit • la taille de l'emplacement réservé en mémoire pour
cette variableExemples :
– 1, ou 2 ou 4 octets pour un entier (-247 ou 454545)– 4 ou 8 octets pour un réel (2.05 ou 5.456 E-6)– 1 octet pour un caractère ('e' ou '2' ou ' ')– 1 octet pour un booléen (True False)
• la façon dont la valeur est codée en binaire dans cette case mémoire
Exemple : premier bit : signe pour un entier signé
Un octet en mémoire
https://mabboux.pagesperso-orange.fr/Mathematique/ordinateur.htm
valeur de l'entiercorespondant(codage binaire)
Un octet en mémoire
https://mabboux.pagesperso-orange.fr/Mathematique/ordinateur.htm
correspond au caractère ESC
4 octets en mémoire
https://mabboux.pagesperso-orange.fr/Mathematique/ordinateur.htm
si ces 4 octets correrspondent à une seule variable,la valeur dépend du type (entier, réel, …)
Nombre réel
En notation dite "scientifique"-0,006234 s'écrit : -6,234 e-3 ou -6,234 E-3
Cette notation est équivalente à :-6,234.10-3 (mantisse : -6.234 exposant : -3)
codage en binaire : mantisseB. 2exposantB
exemples de formats binaires à virgule flottante
http://arsene.perez-mas.pagesperso-orange.fr/numeration/reels.htm#flottante
32 bits (4 octets)
64 bits (8 octets)
Une variable a toujours un Type
• Type défini par une instruction (programmeur)Exemples en Visual Basic : Dim n As Integer
en C : float pi;
• Type défini automatiquement(typage dynamique, comme en Python)
n type « nombre entier » msg type « chaîne de caractères » pi type « nombre à virgule flottante »
(« float », en anglais, « réel » en français)
Déclaration d'une variable
Déclarer une variable, pour le programmeur :cela signifie choisir un nom et un type pour une variableen pseudo code on écrit :Variable
nomVariable : type de la variable // rôle de la var
Déclarer une variable réserve un espace mémoire avec :• une certaine taille (4 octets par exemple)
• un nom (comme une étiquette collée sur cette case)• un TYPE (définit la signification de chaque bit de la
case mémoire)
Exemple de déclaration de variables
Variables : nbProposé : entier // nombre proposé par le joueurnbCaché : entier // nombre tiré au hasard par le progr.nbCoups : entier // nombre de coups déjà jouésnbMax : entier // nb de coups maximum autorisénomJ1 : chaine de caractères // nom du joueur 1nomJ2 : chaine de caractères // nom du joueur 2scoreMoy : réel // moyenne des scores
Exemple de déclaration de variables
NOM TYPE RÔLE
nbProposé entier nombre proposé par le joueur
nbCaché entier nombre tiré au hasard par le progr.
nbCoups entier nombre de coups déjà joués
nbMax entier nb de coups maximum autorisé
scoreMoy réel moyenne des scores
nomJ1 chaine de caractères
nom du joueur 1
nomJ2 chaine de caractères
nom du joueur 2
Tables des variables
Actions de bases
• Afficher à l'écran• Saisir (introduire une valeur au clavier)• Affecter une valeur à une variable
• Ces instructions qui se traduisent par une seule ligne de programmation
Actions de bases : ex. en pseudo code
• Affecter une valeur à une variablegagne True
nbCoups nbCoups + 1
• Afficher à l'écranafficher("trop petit !")
afficher("Gagné en ",nbCoups, " coups ! ")
• Saisir (ou lire) (introduire une valeur au clavier)afficher("Quel age as-tu ?")
lire age
afficher("Entrez un nb entre 0 et 100 : " )
lire nbPropose
ou bien age lire()
ou bien nbPropose lire()
Affectation d'une valeur à une variable
C'est écrire une valeur ds une case mémoire (une variable)Exemples en pseudo code :La variable nbCoups recoit la valeur 0La variable moy recoit la valeur 13.45La variable nom recoit la valeur "Delcroix"La variable verifOK recoit la valeur faux
La variable qui recoit la valeur est toujours à GAUCHE
Variable ← valeurInitialisation d'une variable : première affectation
nbCoups ← 0moy ← total / nbNotesnom ← "Delcroix"verifOK ← faux
Variable valeur
A gauche : le nom d'une variablele signe est l'opérateur d'affectation
à droite : une valeur
Affectation d'une valeur à une variable
Affecter une valeur à une variable
instruction correcte A gauche du : la case mémoire nA droite : valeur résultat de 7 + 1
instruction incorrecte !car il n'y a Pas de case mémoire
à gauche du
n 7n n + 1
p 100p+1 p
Affichage à l'écran
On peut Afficher à l'écran • une valeur donnée directement• la valeur d'une variable• le résultat d'une fonction
Règle : ne pas calculer et afficher dans la même fonction>> écrire des sous-programmes spécifiques pour
l'affichage (ou bien dans le programme principal)
Saisir une valeur (au clavier) (1)
Saisir une valeur, c'est récupérer dans le programme une valeur introduite par l'utilisateur au clavier :
L'utilisateur peut saisir • une valeur numérique (entier, réel) : 2 ou 456.12• un caractère : 'n' ou 'N' ou '3'• une chaîne de caractères 'David' ou 'E456 / 000F'
(L'utilisateur ne saisit pas les quotes ou guillemets)
Dans le programme, Il faut préciser quel est le type de la valeur saisieet dire que faire de la valeur saisie
Saisir une valeur (2)
quand l'utilisateur introduit une valeur, le programme doit savoir comment coder cette valeur,
or – l'entier 8– le réel 8.0– le caractère '8'
se codent chacun de façon différente (en binaire)Il faut préciser dans le programme
quel est le type de la valeur saisie
Intéraction avec l'utilisateur en mode texte : Saisie d'une valeur
Fonction pour la saisie d'une valeur – C’est un sous-programme du langage– interrompt le programme et attend que– l'utilisateur entre des caractères au clavier
et termine avec <Enter>.
Puis l'exécution du programme se poursuit :– la fonction fournit en retour une valeur
(correspondant à ce que l'utilisateur a entré).
– Cette valeur peut (doit) être affectée à une variable.
une Expression, ... c'est
des Valeurs et/ou des variables combinées avec des opérateurs
Dont le résultat peut être évalué On obtient une valeur
Exemples • Expressions numériques:
• Expressions booléennes :
2.3123*a + b/5
age >= 18(n MOD 2 ) =? 0(a>b) ET (a ≠ 0)
Une Expression ... n'est PAS une instruction
une expression ne FAIT rien, elle a une valeur
Les instructions utilisent des expressions• les expressions booléennes sont utilisées dans les conditions des tests et des boucles
• Une expression peut être affectée à une variable
Si (age >= 18) Alorsafficher(‘il est majeur’)
Fin Si
estMajeur (age >= 18)s 3*a + b/5
Point et virgule
Attention : • Pour les francophones : 3,14
• le séparateur décimal est la virgule
• Dans les langages de programmation 3.14 • le séparateur décimal est le point • La virgule est utilisée pour séparer différents
éléments (arguments, etc.)
Proncipaux Opérateurs
• + - * /
• division entière : DIV
• modulo : MOD(reste de la division entière)
9 / 4 donne 2.259 DIV 4 donne 29 MOD 4 donne 1