variable, type - moodle.uphf.fr

35
Variable, Type et expressions Déclaration Affectation, Affichage, Saisie

Upload: others

Post on 04-Feb-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Variable, Type et expressions

DéclarationAffectation, Affichage, Saisie

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

Opérateurs de comparaison

x =? y

x ≠ y

Opérateurs logiques

Non (A et B) = (Non A) ou (non B)

A Non ANot

Vrai FauxFaux Vrai

A B A et Band

A ou Bor

Vrai Vrai Vrai VraiVrai Faux Faux VraiFaux Vrai Faux VraiFaux Faux Faux Faux