Leçon 3 sur 20

Chapitre 3 — Variables, constantes et types de données

Mémoriser, nommer, typer et convertir les données d’un algorithme

 

Fiche pédagogique du chapitre

Objectifs d’apprentissage

À la fin de ce chapitre, l’étudiant devra être capable de :

  • expliquer le rôle d’une variable dans un algorithme ;
  • distinguer le nom, la valeur, le type et la zone mémoire associés à une variable ;
  • appliquer des règles de nommage claires et cohérentes ;
  • distinguer une variable d’une constante ;
  • utiliser des constantes symboliques pour améliorer la lisibilité et la maintenance ;
  • choisir un type de donnée simple adapté à une information ;
  • reconnaître les types entier, réel, booléen, caractère et chaîne de caractères ;
  • réaliser une conversion de type simple ;
  • repérer les risques de perte d’information ou d’échec lors d’une conversion ;
  • concevoir des algorithmes simples de calcul et de conversion.

Prérequis

  • connaître la structure générale d’un algorithme ;
  • savoir utiliser les instructions Lire, Écrire et l’affectation ;
  • maîtriser les opérations arithmétiques élémentaires ;
  • comprendre l’exécution séquentielle d’une suite d’instructions.

Plan du chapitre

3.1 Notion de variable

3.2 Constantes

3.3 Types de données simples

3.4 Conversion de types

Applications, synthèse, exercices et corrigé indicatif

Organisation pédagogique indicative

Activité

Durée indicative

Objectif principal

Cours3 hPrésenter les données, leurs types et les conversions.
Travaux dirigés2 hChoisir les types, tracer les valeurs et corriger des déclarations.
Travaux pratiques2 hMettre en œuvre les calculs et conversions dans un langage.

 

Idée directrice du chapitre

Un algorithme traite des données. Pour les mémoriser correctement, il faut leur attribuer un nom, connaître leur nature, prévoir les valeurs qu’elles peuvent prendre et choisir le type adapté.


 

 

3.1 Notion de variable

3.1.1 Définition

Une variable est une information mémorisée pendant l’exécution d’un algorithme. Elle est identifiée par un nom et peut recevoir différentes valeurs compatibles avec son type. On peut la comparer à une boîte étiquetée : l’étiquette représente le nom de la variable, la nature de la boîte représente son type et le contenu représente sa valeur actuelle.

Définition à retenir

Une variable est une zone de mémoire nommée, destinée à contenir une valeur susceptible de changer au cours de l’exécution d’un algorithme.

Élément

Interprétation

Exemple

NomIdentifiant utilisé dans l’algorithme.age
TypeNature des valeurs autorisées.Entier
ValeurContenu actuel de la variable.21
Zone mémoireEmplacement réservé au stockage.Emplacement géré par le système

 

Exemple simple

Variables
    age : Entier

Début
    age ← 21
    Écrire(age)
Fin

Dans cet exemple, la variable age est déclarée comme un entier. L’affectation age ← 21 place la valeur 21 dans la zone mémoire associée à cette variable. L’instruction Écrire(age) affiche ensuite la valeur mémorisée.

3.1.2 Nom d’une variable

Le nom d’une variable permet de la repérer et de l’utiliser dans les instructions. Un nom bien choisi doit indiquer clairement ce que la variable représente. Des noms explicites réduisent les erreurs et facilitent la lecture de l’algorithme par d’autres personnes.

Nom

Appréciation

Explication

temperatureBonLe contenu de la variable est immédiatement compréhensible.
nombre_etudiantsBonLe nom est précis et indique une quantité.
moyenne_notesBonLe nom décrit le résultat mémorisé.
xAcceptable dans un contexte mathématique courtPeu explicite dans un algorithme long.
a1À éviter sans contexteLe rôle de la variable n’est pas identifiable.
variableÀ éviterLe nom ne renseigne pas sur l’information stockée.

 

Bon réflexe

Le nom d’une variable doit permettre de comprendre son rôle sans lire toutes les instructions qui l’utilisent.

3.1.3 Valeur d’une variable

La valeur est le contenu actuel de la variable. Elle peut être fournie par l’utilisateur, calculée par l’algorithme ou modifiée par une nouvelle affectation. Une variable ne possède qu’une seule valeur à un instant donné : une nouvelle affectation remplace l’ancienne valeur.

Évolution d’une variable

compteur ← 2
compteur ← compteur + 1
compteur ← compteur × 4

Après l’instruction

Valeur de compteur

Explication

compteur ← 22La valeur initiale devient 2.
compteur ← compteur + 13La valeur 2 est lue, augmentée de 1, puis remplacée par 3.
compteur ← compteur × 412La valeur 3 est multipliée par 4, puis remplacée par 12.

 

Attention

Dans une affectation, la partie droite est évaluée en premier. Le résultat obtenu est ensuite placé dans la variable située à gauche de la flèche.

3.1.4 Type d’une variable

Le type précise la catégorie de valeurs qu’une variable peut contenir ainsi que les opérations qui peuvent lui être appliquées. Par exemple, on additionne des nombres, on concatène des chaînes de caractères et on applique des opérations logiques à des booléens.

Variable

Type adapté

Valeur possible

Opération typique

nombre_absencesEntier3Addition, comparaison
prixRéel149,90Calcul numérique
est_admisBooléenVraiET, OU, NON
initialeCaractère'Y'Comparaison
nom_completChaîne"Sara Amrani"Concaténation

 


 

 

3.1.5 Zone mémoire

Lorsqu’une variable est déclarée, le système réserve une zone de mémoire pour stocker sa valeur. Dans le pseudo-code, on ne manipule généralement pas l’adresse exacte de cette zone : on utilise le nom de la variable. Le langage de programmation et le système se chargent d’associer ce nom à un emplacement mémoire.

Nom symbolique

Type

Valeur actuelle

Représentation conceptuelle

ageEntier21Boîte contenant 21
moyenneRéel14,75Boîte contenant 14,75
admisBooléenVraiBoîte contenant Vrai

 

La quantité réelle de mémoire dépend du langage, de l’ordinateur et du type choisi. Un booléen, un entier, un réel ou une chaîne ne nécessitent pas nécessairement la même place. À ce niveau du cours, l’objectif est surtout de comprendre que chaque variable correspond à un espace de stockage distinct.

3.1.6 Déclaration, initialisation et modification

Trois opérations doivent être distinguées :

  • Déclaration : création de la variable et indication de son type.
  • Initialisation : première affectation d’une valeur à la variable.
  • Modification : remplacement de la valeur actuelle par une nouvelle valeur.
Variables
    note : Réel              // Déclaration

Début
    note ← 0                 // Initialisation
    Lire(note)               // Modification par une saisie
    note ← note + 1          // Nouvelle modification
Fin

Variable non initialisée

Utiliser une variable avant de lui attribuer une valeur conduit à un résultat indéterminé ou à une erreur. Une variable doit être initialisée avant toute lecture de son contenu.

3.1.7 Règles de nommage

Les conventions peuvent varier selon les langages, mais les règles suivantes constituent une base sûre pour le pseudo-code et la programmation :

  • commencer le nom par une lettre ;
  • utiliser des lettres, des chiffres et le caractère de soulignement « _ » ;
  • ne pas utiliser d’espace ;
  • éviter les accents et les caractères spéciaux dans les identifiants destinés à être traduits en programme ;
  • ne pas utiliser un mot réservé comme Début, Fin, Si, Pour ou TantQue ;
  • adopter un nom significatif ;
  • respecter une convention uniforme dans tout l’algorithme.

Nom proposé

Valide ?

Correction ou commentaire

ageOuiNom simple et explicite.
prix_totalOuiLes mots sont séparés par un soulignement.
note2OuiUn chiffre est autorisé après le premier caractère.
2noteNonLe nom ne doit pas commencer par un chiffre.
prix totalNonLes espaces ne sont pas autorisés.
prix-totalNonLe tiret peut être interprété comme une soustraction.
RéelÀ éviterIl s’agit du nom d’un type.
PourNonMot réservé utilisé pour une structure répétitive.

 

Conventions courantes

Convention

Exemple

Description

snake_casenombre_etudiantsMots en minuscules séparés par des soulignements.
camelCasenombreEtudiantsPremier mot en minuscule, suivants avec une majuscule initiale.
PascalCaseNombreEtudiantsChaque mot commence par une majuscule.
MAJUSCULESTAUX_TVASouvent réservées aux constantes symboliques.

 

Cohérence

Aucune convention n’est universellement obligatoire dans un pseudo-code. En revanche, mélanger plusieurs conventions sans raison rend le travail difficile à lire.


 

 

3.2 Constantes

3.2.1 Définition d’une constante

Une constante est une donnée dont la valeur est fixée une fois pour toutes et ne doit pas changer pendant l’exécution de l’algorithme. Elle représente généralement une valeur de référence : un taux, une limite, une constante mathématique, une taille maximale ou un message fixe.

Déclaration de constantes symboliques

Constantes
    PI = 3,141592
    TAUX_TVA = 0,20
    NOTE_MAXIMALE = 20
    SECONDES_PAR_MINUTE = 60

Définition à retenir

Une constante symbolique associe un nom explicite à une valeur qui reste inchangée pendant toute l’exécution.

3.2.2 Différence entre variable et constante

Critère

Variable

Constante

ValeurPeut changer pendant l’exécution.Reste fixe pendant l’exécution.
DéclarationNom et type, puis affectations possibles.Nom associé à une valeur définie.
UsageRésultats intermédiaires, saisies, compteurs.Taux, limites, valeurs de référence.
Exempleprix_ttc, age, compteurPI, TAUX_TVA, NOTE_MAXIMALE
RéaffectationAutorisée si le type reste compatible.Interdite par principe.

 

Variable et constante dans un même algorithme

Constantes
    TAUX_REMISE = 0,10

Variables
    prix, remise, prix_final : Réel

Début
    Lire(prix)
    remise ← prix × TAUX_REMISE
    prix_final ← prix - remise
    Écrire(prix_final)
Fin

Dans cet exemple, TAUX_REMISE ne change pas. En revanche, prix, remise et prix_final dépendent de la saisie et des calculs : ce sont donc des variables.

3.2.3 Utilisation de constantes symboliques

Une constante symbolique remplace une valeur littérale par un nom porteur de sens. Cette pratique améliore la qualité de l’algorithme de plusieurs manières :

  • Lisibilité : TAUX_TVA est plus explicite que la valeur 0,20 répétée dans plusieurs calculs.
  • Maintenance : si le taux change, une seule valeur doit être modifiée.
  • Réduction des erreurs : la même référence est utilisée partout.
  • Documentation : le nom explique la signification de la valeur.
  • Réutilisation : la constante peut servir dans plusieurs expressions.

Écriture peu conseillée

Écriture conseillée

prix_ttc ← prix_ht + prix_ht × 0,20TAUX_TVA = 0,20
prix_ttc ← prix_ht + prix_ht × TAUX_TVA
surface ← 3,141592 × rayon × rayonPI = 3,141592
surface ← PI × rayon × rayon
minutes ← secondes DIV 60SECONDES_PAR_MINUTE = 60
minutes ← secondes DIV SECONDES_PAR_MINUTE

 

Valeurs littérales et valeurs symboliques

Une valeur littérale est écrite directement dans une instruction, par exemple 2, 60 ou 3,141592. Une valeur symbolique est représentée par un nom. Toutes les valeurs littérales ne doivent pas nécessairement devenir des constantes : les petites valeurs évidentes et utilisées une seule fois peuvent rester directement dans l’expression. Il convient surtout de nommer les valeurs qui possèdent une signification métier ou qui sont susceptibles d’être modifiées.

Exemple

Dans la formule du périmètre d’un rectangle P = 2 × (L + l), la valeur 2 fait partie de la formule et reste compréhensible. En revanche, un taux de taxe ou une durée maximale gagne à être défini comme constante symbolique.


 

 

3.3 Types de données simples

3.3.1 Pourquoi utiliser des types ?

Le type d’une donnée indique les valeurs possibles, les opérations autorisées et la manière dont la donnée est représentée en mémoire. Choisir le bon type permet d’éviter des calculs incohérents, de mieux contrôler les saisies et de traduire plus facilement l’algorithme dans un langage de programmation.

Type

Valeurs typiques

Opérations usuelles

Exemple de variable

Entier-5, 0, 27+, −, ×, DIV, MOD, comparaisonsnombre_enfants
Réel-2,5 ; 0,0 ; 19,75+, −, ×, /, comparaisonstemperature
BooléenVrai, FauxET, OU, NONest_connecte
Caractère'A', '7', '?'comparaisonreponse
Chaîne"Maroc", "A12"concaténation, longueur, comparaisonnom

 

3.3.2 Type entier

Le type entier représente les nombres sans partie décimale. Il convient aux quantités dénombrables, aux indices, aux compteurs, aux années, aux âges exprimés en années entières et aux résultats de certaines divisions entières.

  • nombre d’étudiants dans un groupe ;
  • nombre de tentatives ;
  • année de naissance ;
  • position d’un élément dans un tableau ;
  • nombre total de secondes.
Variables
    nombre_etudiants, absents : Entier

Début
    nombre_etudiants ← 32
    absents ← 3
    Écrire(nombre_etudiants - absents)
Fin

Division entière et reste

Deux opérations sont particulièrement utiles avec les entiers :

  • DIV : donne le quotient entier d’une division.
  • MOD : donne le reste de la division entière.

Expression

Résultat

Interprétation

17 DIV 53Le nombre 5 entre trois fois entièrement dans 17.
17 MOD 52Il reste 2 après avoir retiré 3 × 5.
60 DIV 601Une minute complète.
125 MOD 605Cinq secondes restantes après deux minutes.

 

Attention

Un entier ne convient pas à une mesure qui doit conserver une partie décimale. Stocker 14,75 dans une variable entière provoquerait une perte d’information ou une erreur selon le langage.

3.3.3 Type réel

Le type réel représente les nombres qui peuvent comporter une partie décimale. Il est adapté aux mesures, aux moyennes, aux prix, aux distances, aux températures et aux résultats de divisions non entières.

Information

Exemple

Pourquoi Réel ?

Moyenne14,75La valeur peut contenir des décimales.
Température22,6 °CLa mesure n’est pas toujours entière.
Prix149,90Les centimes doivent être représentés.
Surface31,4159Le résultat d’un calcul géométrique peut être décimal.

 

Variables
    note1, note2, moyenne : Réel

Début
    note1 ← 13,5
    note2 ← 16
    moyenne ← (note1 + note2) / 2
    Écrire(moyenne)
Fin

Précision des réels

Dans un programme, certains nombres décimaux ne peuvent pas être représentés exactement en mémoire. Des écarts très faibles peuvent apparaître. Pour les calculs financiers exigeants, on utilise souvent des types décimaux spécialisés ou des montants exprimés en unités minimales.


 

 

3.3.4 Type booléen

Le type booléen ne possède que deux valeurs : Vrai et Faux. Il sert à représenter une situation logique, le résultat d’une comparaison ou l’état d’une condition.

Variable booléenne

Signification de Vrai

Signification de Faux

est_admisL’étudiant est admis.L’étudiant n’est pas admis.
mot_de_passe_valideLe mot de passe respecte les règles.Au moins une règle n’est pas respectée.
est_majeurL’âge est supérieur ou égal à 18.L’âge est inférieur à 18.
porte_ouverteLa porte est ouverte.La porte est fermée.

 

Variables
    age : Entier
    est_majeur : Booléen

Début
    Lire(age)
    est_majeur ← age >= 18
    Écrire(est_majeur)
Fin

Opérateurs logiques

Opérateur

Signification

Exemple

ETVrai seulement si les deux conditions sont vraies.(age >= 18) ET (age <= 30)
OUVrai si au moins une condition est vraie.(jour = "samedi") OU (jour = "dimanche")
NONInverse la valeur logique.NON(est_connecte)

 

3.3.5 Type caractère

Le type caractère représente un seul symbole : une lettre, un chiffre considéré comme symbole, un signe de ponctuation ou un espace. Un caractère est généralement placé entre apostrophes dans le pseudo-code.

Valeur

Type

Interprétation

'A'CaractèreUne lettre majuscule.
'7'CaractèreLe symbole 7, non le nombre entier 7.
'?'CaractèreUn signe de ponctuation.
7EntierLe nombre sept, utilisable dans un calcul.
"A"ChaîneUne chaîne contenant un seul caractère.

 

Variables
    reponse : Caractère

Début
    Écrire("Continuer ? O/N")
    Lire(reponse)
Fin

Caractère ou entier ?

Le caractère '5' représente un symbole. L’entier 5 représente une quantité. On ne peut pas additionner directement le caractère '5' et l’entier 2 sans conversion préalable.

3.3.6 Type chaîne de caractères

Une chaîne de caractères est une suite de zéro, un ou plusieurs caractères. Elle sert à mémoriser des noms, des phrases, des codes, des adresses ou toute information textuelle. Une chaîne est généralement placée entre guillemets.

Valeur

Type conseillé

Commentaire

"Youssef"ChaîneNom composé de plusieurs caractères.
"A12B"ChaîneCode alphanumérique.
"2026"Chaîne ou Entier selon l’usageTexte si aucun calcul ; entier si opérations numériques.
""Chaîne videNe contient aucun caractère.
"Bonjour le monde"ChaînePhrase contenant des espaces.

 

Concaténation

La concaténation consiste à assembler plusieurs chaînes. Selon la convention utilisée, elle peut être notée avec l’opérateur + ou avec un opérateur spécifique.

prenom ← "Sara"
nom ← "Amrani"
nom_complet ← prenom + " " + nom
Écrire(nom_complet)             // Affiche : Sara Amrani

Attention

La chaîne "12" et l’entier 12 n’ont pas le même type. "12" + "3" peut produire "123" par concaténation, tandis que 12 + 3 produit 15.


 

 

3.3.7 Choisir le type adapté

Le type doit être choisi en fonction de la nature de l’information et des traitements prévus. Il ne suffit pas d’observer l’apparence de la valeur : il faut également savoir comment elle sera utilisée.

Information

Type recommandé

Justification

Âge en années complètesEntierUne valeur entière suffit pour ce besoin.
Date de naissance écrite 15/07/2000Chaîne ou type Date dans un langageLes séparateurs font partie de la représentation.
Numéro de téléphoneChaîneOn ne réalise pas de calcul et le zéro initial doit être conservé.
Code postalChaînePeut contenir des zéros initiaux selon les pays.
Moyenne généraleRéelLa valeur peut comporter des décimales.
Réponse Oui/NonBooléen ou CaractèreBooléen pour l’état ; caractère pour une saisie O/N.
CIN ou identifiantChaînePeut contenir lettres, chiffres et zéros initiaux.

 

Compatibilité des opérations

Expression

Valide ?

Résultat ou problème

12 + 3Oui15, calcul entier.
12,5 + 3Oui15,5, calcul réel.
"12" + "3"Oui selon la convention"123", concaténation.
"12" + 3Non directementTypes incompatibles sans conversion.
Vrai ET FauxOuiFaux.
'A' + 2Non directementConversion ou traitement spécifique nécessaire.

 

Exercice guidé : choisir les types

Pour une application simple de gestion d’étudiants, proposer le type de chaque donnée : matricule, nom, note, nombre d’absences et état d’admission.

Donnée

Type proposé

Raison

matriculeChaînePeut contenir des lettres et des chiffres.
nomChaîneInformation textuelle.
noteRéelPossibilité de décimales.
nombre_absencesEntierQuantité dénombrable.
est_admisBooléenDeux états possibles : Vrai ou Faux.

 

3.4 Conversion de types

3.4.1 Définition et utilité

Une conversion de type transforme une valeur d’un type vers un autre type. Elle est nécessaire lorsqu’une donnée a été lue sous forme de texte mais doit être utilisée dans un calcul, lorsqu’un entier doit participer à une opération réelle ou lorsqu’un résultat doit être affiché dans une chaîne de caractères.

Exemple courant

Une saisie clavier peut être reçue comme la chaîne "25". Pour calculer "25" + 5 comme une addition numérique, il faut convertir la chaîne en entier 25.

3.4.2 Conversion d’un entier en réel

La conversion d’un entier en réel ajoute la possibilité de représenter une partie décimale. Elle ne provoque généralement pas de perte d’information pour les petites valeurs entières. Elle peut être réalisée explicitement ou automatiquement par le langage lorsque l’entier participe à une opération réelle.

Variables
    nombre : Entier
    valeur_reelle : Réel

Début
    nombre ← 7
    valeur_reelle ← Réel(nombre)
    Écrire(valeur_reelle)          // 7,0
Fin

Avant conversion

Après conversion

Observation

7 (Entier)7,0 (Réel)La valeur numérique est conservée.
-3 (Entier)-3,0 (Réel)Le signe est conservé.
0 (Entier)0,0 (Réel)La représentation devient réelle.

 

Division entière et division réelle

La présence d’un type réel peut modifier le résultat d’une division. Il faut distinguer le quotient entier du résultat décimal.

Expression

Résultat possible

Nature

7 DIV 23Division entière.
7 / 23,5Division réelle.
Réel(7) / 23,5Conversion explicite avant la division.

 

3.4.3 Conversion d’une chaîne en nombre

Une chaîne peut contenir des chiffres sans être pour autant un nombre. Pour l’utiliser dans un calcul, il faut vérifier son format puis effectuer une conversion vers Entier ou Réel.

Variables
    texte_age : Chaîne
    age : Entier

Début
    texte_age ← "21"
    age ← Entier(texte_age)
    Écrire(age + 1)             // Affiche 22
Fin

Chaîne source

Conversion demandée

Résultat attendu

"25"Entier25
"-8"Entier-8
"14,75"Réel14,75 si le format décimal est reconnu
"12A"EntierÉchec : présence d’une lettre
"bonjour"RéelÉchec : contenu non numérique
""EntierÉchec ou valeur à traiter explicitement

 

Validation préalable

Avant de convertir une chaîne saisie par l’utilisateur, il faut vérifier qu’elle respecte le format attendu. Une conversion ne doit pas être considérée comme toujours réussie.

Conversion d’un nombre en chaîne

L’opération inverse est utile pour construire un message ou concaténer une valeur numérique avec du texte.

age ← 21
message ← "Vous avez " + Chaîne(age) + " ans."
Écrire(message)

3.4.4 Conversion explicite et implicite

Une conversion explicite est demandée clairement par l’algorithme. Une conversion implicite est réalisée automatiquement par le langage lorsqu’il estime que les types sont compatibles.

Conversion

Description

Exemple

ExpliciteLe programmeur indique le type cible.reel ← Réel(entier)
ImpliciteLe langage convertit automatiquement une valeur.reel ← entier + 0,5
Explicite avec risqueLe type cible peut perdre de l’information.entier ← Entier(12,9)

 

La conversion explicite rend l’intention plus visible et facilite la relecture. La conversion implicite peut alléger l’écriture, mais son comportement dépend davantage du langage utilisé. Dans un cours d’algorithmique, il est préférable d’indiquer explicitement les conversions importantes.

3.4.5 Risques liés aux conversions

Risque

Exemple

Conséquence

Perte de décimalesEntier(12,9)Le résultat peut devenir 12 selon la règle utilisée.
Chaîne non numériqueEntier("12A")Échec de conversion.
Dépassement de capacitéValeur trop grande pour le type cibleErreur ou valeur incorrecte selon le langage.
Séparateur décimal"14,5" ou "14.5"Le format reconnu peut dépendre du langage ou de la locale.
Confusion concaténation/addition"10" + "5"Produit "105" au lieu de 15.
ArrondiRéduction du nombre de décimalesValeur approximative.
Conversion booléenne ambiguëBooléen("Faux")Une chaîne non vide peut parfois être interprétée comme vraie.

 

Bonnes pratiques

  • choisir le bon type dès la déclaration ;
  • valider les données saisies avant la conversion ;
  • indiquer explicitement les conversions susceptibles de modifier la valeur ;
  • prévoir le cas où la conversion échoue ;
  • ne pas utiliser un entier lorsque les décimales sont importantes ;
  • vérifier le séparateur décimal attendu ;
  • tester les valeurs limites et les entrées incorrectes.

Principe de prudence

Une conversion doit être justifiée. Transformer une donnée uniquement pour contourner une incompatibilité peut masquer un mauvais choix de type au début de l’algorithme.


 

 

Applications

Application 1 — Calcul de la surface d’un cercle

Analyse du problème

Élément

Contenu

EntréeRayon du cercle, de type Réel.
ConstantePI = 3,141592.
Traitementsurface ← PI × rayon × rayon.
SortieSurface du cercle, de type Réel.

 

Algorithme Surface_Cercle

Constantes
    PI = 3,141592

Variables
    rayon, surface : Réel

Début
    Écrire("Saisir le rayon : ")
    Lire(rayon)
    surface ← PI × rayon × rayon
    Écrire("Surface : ", surface)
Fin

Rayon

Calcul

Surface approximative

23,141592 × 2 × 212,566368
53,141592 × 5 × 578,5398

 

Point pédagogique

Le rayon et la surface sont réels, car ils peuvent comporter des décimales. PI est une constante symbolique, car sa valeur ne change pas pendant le calcul.

Application 2 — Conversion d’une température

La conversion des degrés Celsius vers les degrés Fahrenheit utilise la formule F = C × 9 / 5 + 32.

Élément

Contenu

EntréeTempérature en degrés Celsius, type Réel.
Traitementfahrenheit ← celsius × 9 / 5 + 32.
SortieTempérature en degrés Fahrenheit, type Réel.

 

Algorithme Celsius_Vers_Fahrenheit

Variables
    celsius, fahrenheit : Réel

Début
    Lire(celsius)
    fahrenheit ← celsius × 9 / 5 + 32
    Écrire(fahrenheit)
Fin

Celsius

Calcul

Fahrenheit

00 × 9 / 5 + 3232
2020 × 9 / 5 + 3268
3737 × 9 / 5 + 3298,6

 

Attention à la division

Dans certains langages, une écriture entièrement entière peut provoquer une division entière. Utiliser des variables réelles ou écrire 9,0 / 5,0 permet de rendre l’intention explicite.


 

 

Application 3 — Calcul de l’âge approximatif

Une première approximation de l’âge peut être obtenue en soustrayant l’année de naissance de l’année actuelle. Cette méthode ne tient pas compte du mois et du jour de naissance ; elle peut donc différer de l’âge exact d’une unité.

Élément

Contenu

EntréesAnnée actuelle et année de naissance, type Entier.
Traitementage_approximatif ← annee_actuelle - annee_naissance.
SortieÂge approximatif, type Entier.

 

Algorithme Age_Approximatif

Variables
    annee_actuelle, annee_naissance, age_approximatif : Entier

Début
    Lire(annee_actuelle)
    Lire(annee_naissance)
    age_approximatif ← annee_actuelle - annee_naissance
    Écrire(age_approximatif)
Fin

Année actuelle

Année de naissance

Résultat

2026200026 ans approximativement
2026199531 ans approximativement

 

Limite du modèle

Pour calculer l’âge exact, il faudrait comparer la date complète de naissance avec la date actuelle. L’algorithme présenté est volontairement simplifié pour illustrer les variables entières.

Application 4 — Conversion d’une durée

On souhaite convertir une durée totale exprimée en secondes en heures, minutes et secondes. Cette application met en évidence l’utilité des entiers, de DIV et de MOD.

Élément

Contenu

EntréeDurée totale en secondes, type Entier.
ConstantesSECONDES_PAR_HEURE = 3600 ; SECONDES_PAR_MINUTE = 60.
TraitementQuotients entiers et restes successifs.
SortiesNombre d’heures, de minutes et de secondes restantes.

 

Algorithme Convertir_Duree

Constantes
    SECONDES_PAR_HEURE = 3600
    SECONDES_PAR_MINUTE = 60

Variables
    duree, heures, minutes, secondes, reste : Entier

Début
    Lire(duree)
    heures ← duree DIV SECONDES_PAR_HEURE
    reste ← duree MOD SECONDES_PAR_HEURE
    minutes ← reste DIV SECONDES_PAR_MINUTE
    secondes ← reste MOD SECONDES_PAR_MINUTE
    Écrire(heures, " h ", minutes, " min ", secondes, " s")
Fin

Durée totale

Heures

Reste après heures

Minutes

Secondes

3 725 s1125 s25
7 380 s2180 s30
59 s059 s059

 

Résultat pour 3 725 secondes

3 725 secondes correspondent à 1 heure, 2 minutes et 5 secondes.


 

 

Synthèse du chapitre

Notion

Définition essentielle

Exemple

VariableZone mémoire nommée dont la valeur peut changer.age : Entier
NomIdentifiant significatif permettant d’utiliser une donnée.nombre_etudiants
ValeurContenu actuel de la variable.32
TypeNature des valeurs et des opérations autorisées.Réel
ConstanteValeur symbolique qui ne change pas.PI = 3,141592
EntierNombre sans partie décimale.-4, 0, 18
RéelNombre pouvant comporter une partie décimale.14,75
BooléenValeur logique Vrai ou Faux.est_admis
CaractèreUn seul symbole.'A'
ChaîneSuite de caractères."Algorithmique"
ConversionTransformation d’une valeur vers un autre type.Entier("25")

 

À retenir

  • une variable doit être déclarée et initialisée avant l’utilisation de sa valeur ;
  • le nom d’une variable doit être valide, cohérent et significatif ;
  • une nouvelle affectation remplace l’ancienne valeur ;
  • une constante symbolique améliore la lisibilité et la maintenance ;
  • le type dépend de la nature de l’information et des traitements prévus ;
  • les identifiants et numéros non calculés sont souvent mieux représentés par des chaînes ;
  • une conversion peut échouer ou perdre de l’information ;
  • les saisies doivent être validées avant une conversion numérique.

Erreurs fréquentes

Erreur

Pourquoi est-ce incorrect ?

Correction

Utiliser total avant son initialisationLa valeur de départ est inconnue.Initialiser total, souvent à 0.
Déclarer une moyenne comme EntierLes décimales peuvent être perdues.Utiliser le type Réel.
Stocker un téléphone comme EntierLe zéro initial peut disparaître et aucun calcul n’est utile.Utiliser une Chaîne.
Modifier PI pendant l’exécutionPI doit rester une valeur de référence fixe.Déclarer PI comme constante.
Additionner "12" et 3Les types chaîne et entier sont incompatibles.Convertir "12" en Entier.
Nommer une variable 2noteUn identifiant ne commence pas par un chiffre.Utiliser note2.

 

Travaux dirigés et exercices d’application

Exercice 1 — Identifier les composants d’une variable

On considère la déclaration et les instructions suivantes :

Variables
    prix : Réel

Début
    prix ← 120,50
    prix ← prix + 10
Fin

1. Indiquer le nom et le type de la variable.

2. Donner sa valeur après la première affectation.

3. Donner sa valeur finale.

4. Expliquer ce qui arrive à l’ancienne valeur après la seconde affectation.

Exercice 2 — Corriger les noms

Pour chaque identifiant, indiquer s’il est valide. Lorsqu’il ne l’est pas, proposer une correction : 1note, nom étudiant, prix-total, moyenne_generale, Pour, adresseEmail, TAUX_TVA.

Exercice 3 — Variable ou constante ?

Classer les données suivantes : taux de TVA fixé, prix saisi par le client, nombre maximal de tentatives, compteur de tentatives, valeur de PI, température mesurée, note maximale 20, moyenne calculée.

Exercice 4 — Choisir le type

Proposer le type le plus adapté pour : le prénom, le nombre de pages, le prix d’un livre, la réponse O/N, l’état de connexion, un numéro de téléphone, la note moyenne et un code produit comme A-203.

Exercice 5 — Tracer les variables

a ← 5
b ← 2
a ← a + b
b ← a × 2
a ← b - 3

Compléter un tableau indiquant la valeur de a et de b après chaque instruction.

Exercice 6 — Conversions

1. Convertir la chaîne "48" en entier, puis ajouter 2.

2. Convertir l’entier 7 en réel, puis le diviser par 2.

3. Expliquer pourquoi la conversion Entier("4A") échoue.

4. Donner la différence entre "12" + "5" et 12 + 5.

5. Indiquer le risque de convertir le réel 19,8 en entier.

Exercice 7 — Algorithme à concevoir

Écrire un algorithme qui lit un prix hors taxe, utilise une constante TAUX_TVA, calcule le montant de la TVA et affiche le prix toutes taxes comprises. Les données numériques doivent être de type Réel.

Exercice 8 — Durée

Écrire un algorithme qui convertit une durée en minutes en un nombre d’heures et de minutes. Exemple : 135 minutes donnent 2 heures et 15 minutes.


 

 

Corrigé indicatif

Correction de l’exercice 1

  • Nom : prix.
  • Type : Réel.
  • Après prix ← 120,50 : la valeur est 120,50.
  • Après prix ← prix + 10 : la valeur finale est 130,50.
  • L’ancienne valeur est lue pour effectuer le calcul, puis remplacée par la nouvelle valeur.

Correction de l’exercice 2

Identifiant

Réponse

Correction possible

1noteInvalidenote1
nom étudiantInvalidenom_etudiant
prix-totalInvalideprix_total
moyenne_generaleValideAucune correction.
PourInvalidenombre_iterations ou autre nom explicite.
adresseEmailValideConvention camelCase.
TAUX_TVAValide pour une constanteConvention claire.

 

Correction de l’exercice 3

Donnée

Catégorie

Taux de TVA fixéConstante
Prix saisiVariable
Nombre maximal de tentativesConstante
Compteur de tentativesVariable
PIConstante
Température mesuréeVariable
Note maximale 20Constante
Moyenne calculéeVariable

 

Correction de l’exercice 4

Information

Type proposé

PrénomChaîne
Nombre de pagesEntier
Prix d’un livreRéel
Réponse O/NCaractère
État de connexionBooléen
Numéro de téléphoneChaîne
Note moyenneRéel
Code produit A-203Chaîne

 

Correction de l’exercice 5

Instruction exécutée

a

b

a ← 55Non initialisée
b ← 252
a ← a + b72
b ← a × 2714
a ← b - 31114

 

Correction de l’exercice 6

  • Entier("48") + 2 donne 50.
  • Réel(7) / 2 donne 3,5.
  • "4A" contient une lettre et ne représente pas un entier valide.
  • "12" + "5" peut donner "125" par concaténation, alors que 12 + 5 donne 17.
  • La conversion de 19,8 vers Entier peut supprimer la partie décimale et produire 19 selon la règle du langage.

Correction de l’exercice 7

Algorithme Calculer_Prix_TTC

Constantes
    TAUX_TVA = 0,20

Variables
    prix_ht, montant_tva, prix_ttc : Réel

Début
    Lire(prix_ht)
    montant_tva ← prix_ht × TAUX_TVA
    prix_ttc ← prix_ht + montant_tva
    Écrire(montant_tva, prix_ttc)
Fin

Correction de l’exercice 8

Algorithme Convertir_Minutes

Constantes
    MINUTES_PAR_HEURE = 60

Variables
    duree, heures, minutes : Entier

Début
    Lire(duree)
    heures ← duree DIV MINUTES_PAR_HEURE
    minutes ← duree MOD MINUTES_PAR_HEURE
    Écrire(heures, " h ", minutes, " min")
Fin

Auto-évaluation

L’étudiant peut vérifier ses acquis en répondant aux questions suivantes :

  • Suis-je capable d’expliquer la différence entre une variable et une constante ?
  • Puis-je choisir un nom de variable valide et significatif ?
  • Sais-je distinguer une valeur, un type et une zone mémoire ?
  • Puis-je choisir entre Entier, Réel, Booléen, Caractère et Chaîne ?
  • Sais-je expliquer la différence entre le caractère '7', la chaîne "7" et l’entier 7 ?
  • Puis-je utiliser DIV et MOD dans une conversion de durée ?
  • Sais-je expliquer pourquoi une conversion peut échouer ?
  • Puis-je concevoir un algorithme simple utilisant variables et constantes ?

Conclusion

La maîtrise des variables, des constantes et des types constitue une base indispensable. Les structures conditionnelles et répétitives étudiées ensuite s’appuieront constamment sur des données correctement déclarées, mises à jour et comparées.