Fonctions de lecture et écriture en Scilab

01 Feb 2020 01 Feb 2020 4958 vues ESSADDOUKI Mostafa 5 min de lecture

Entrées / Sorties en Scilab

Scilab fournit deux fonctions essentielles pour l'interaction avec l'utilisateur : disp pour afficher des données dans la console, et input pour lire une valeur saisie au clavier.

1. Affichage — disp

La fonction disp affiche dans la console la valeur de n'importe quelle variable : nombre, matrice, chaîne de caractères. Contrairement à l'évaluation directe d'une expression, disp n'affiche pas le nom de la variable, seulement sa valeur.


Syntaxe — disp Scilab
disp(x)              // affiche la valeur de x
disp(x1, x2, ..., xn)  // affiche plusieurs valeurs
                        // (du dernier vers le premier)
Attention — Ordre d'affichage avec plusieurs arguments Quand disp reçoit plusieurs arguments, il les affiche dans l'ordre inverse (du dernier au premier). Pour un affichage dans l'ordre, utiliser plusieurs appels séparés ou mprintf:
a = 3
disp('salam', a)   // affiche 3. puis salam (ordre inversé)

// ✅ Ordre garanti — appels séparés
disp('salam')
disp(a)

Exemple n°1 — Usages de disp

// Afficher une chaîne
disp('hello')

// Afficher un nombre
a = 3
disp(a)

// Afficher une matrice
M = [1 2 3 ; 4 5 6]
disp(M)

// Afficher un message formaté (nombre converti en chaîne)
disp("La valeur de a est : " + string(a))
Sortie
 hello

   3.

   1.   2.   3.
   4.   5.   6.

 La valeur de a est : 3
MéthodeExempleAffiche le nom ?Usage recommandé
Évaluation directea (sans ;)✅ Oui (a = 3.)Console interactive
disp(x)disp(a)❌ Non (3. seul)Scripts et fonctions
mprintfmprintf("a = %d\n", a)❌ NonFormat précis (C-like)
Astuce — Affichage formaté avec mprintf Pour un contrôle fin du format d'affichage (nombre de décimales, alignement…), préférer mprintf à disp:
x = 3.14159265
mprintf("Valeur approchée : %.2f\n", x)   // 3.14
mprintf("Valeur exacte    : %.8f\n", x)   // 3.14159265
mprintf("En notation sci  : %e\n",   x)   // 3.141593e+00

2. Lecture — input

La fonction input interrompt l'exécution du programme, affiche un message d'invite, attend que l'utilisateur saisisse une valeur et appuie sur Entrée, puis reprend l'exécution en retournant la valeur saisie.


Syntaxe — input Scilab
x   = input("message")           // lecture d'une valeur numérique
str = input("message", "string") // lecture d'une chaîne de caractères
FormeType retournéL'utilisateur saisit
input("msg")Numérique (double)Une expression Scilab : 4.5, 2+3, [1 2 3]
input("msg", "string")Chaîne de caractèresDu texte brut (sans guillemets)

Exemple n°2 — Lire une valeur numérique

x = input("Saisir une valeur : ")
disp("Valeur saisie : " + string(x))
disp("Son carré     : " + string(x^2))
Sortie
Saisir une valeur :
4.5
Valeur saisie : 4.5
Son carré     : 20.25

Exemple n°3 — Lire une chaîne de caractères

nom    = input("Saisir votre nom    : ", "string")
prenom = input("Saisir votre prénom : ", "string")
disp("Bonjour, " + prenom + " " + nom + " !")
Sortie
Saisir votre nom    :
DUPONT
Saisir votre prénom :
Marie
Bonjour, Marie DUPONT !

Exemple n°4 — Programme interactif complet

// Programme de calcul de l'aire d'un rectangle
disp("=== Calcul de l'aire d'un rectangle ===")

longueur = input("Longueur (cm) : ")
largeur  = input("Largeur  (cm) : ")

aire = longueur * largeur

mprintf("Aire = %.2f × %.2f = %.2f cm²\n", longueur, largeur, aire)
Sortie
=== Calcul de l'aire d'un rectangle ===
Longueur (cm) :
12.5
Largeur  (cm) :
4
Aire = 12.50 × 4.00 = 50.00 cm²
Remarque — input évalue l'expression saisie En mode numérique, input évalue l'expression Scilab saisie. L'utilisateur peut donc entrer directement des expressions comme 2+3, sqrt(16) ou même [1 2 3]— la valeur retournée sera le résultat de l'évaluation :
x = input("Entrer une valeur : ")
// Si l'utilisateur tape : sqrt(9)+1
// Alors x vaut 4. (expression évaluée)
Danger — Ne pas utiliser input pour des chaînes sans "string" Sans le second argument "string", si l'utilisateur saisit du texte brut (sans guillemets), Scilab tente de l'évaluer comme une expression et génère une erreur :
// ❌ L'utilisateur tape : Dupont → erreur "Undefined variable: Dupont"
nom = input("Nom : ")

// ✅ Correct — mode chaîne explicite
nom = input("Nom : ", "string")

Récapitulatif

FonctionRôleSyntaxe cléPoint d'attention
dispAfficher une valeurdisp(x)N'affiche pas le nom de la variable
disp (multi)Afficher plusieurs valeursdisp(x1, x2)Ordre d'affichage inversé
mprintfAffichage formatémprintf("%f\n", x)Format C-like, plus flexible
input (numérique)Lire un nombrex = input("msg")Évalue l'expression saisie
input (chaîne)Lire du textes = input("msg","string")Ne pas oublier "string"

Discussion (0)

Soyez le premier à laisser un commentaire !

Laisser un commentaire

Votre commentaire sera visible après modération.