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.
disp(x) // affiche la valeur de x
disp(x1, x2, ..., xn) // affiche plusieurs valeurs
// (du dernier vers le premier)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))hello 3. 1. 2. 3. 4. 5. 6. La valeur de a est : 3
| Méthode | Exemple | Affiche le nom ? | Usage recommandé |
|---|---|---|---|
| Évaluation directe | a (sans ;) | ✅ Oui (a = 3.) | Console interactive |
disp(x) | disp(a) | ❌ Non (3. seul) | Scripts et fonctions |
mprintf | mprintf("a = %d\n", a) | ❌ Non | Format précis (C-like) |
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+002. 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.
x = input("message") // lecture d'une valeur numérique
str = input("message", "string") // lecture d'une chaîne de caractères| Forme | Type 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ères | Du 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))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 + " !")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)=== Calcul de l'aire d'un rectangle === Longueur (cm) : 12.5 Largeur (cm) : 4 Aire = 12.50 × 4.00 = 50.00 cm²
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)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
| Fonction | Rôle | Syntaxe clé | Point d'attention |
|---|---|---|---|
disp | Afficher une valeur | disp(x) | N'affiche pas le nom de la variable |
disp (multi) | Afficher plusieurs valeurs | disp(x1, x2) | Ordre d'affichage inversé |
mprintf | Affichage formaté | mprintf("%f\n", x) | Format C-like, plus flexible |
input (numérique) | Lire un nombre | x = input("msg") | Évalue l'expression saisie |
input (chaîne) | Lire du texte | s = 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.