2. Introduction au langage de programmation Scilab Sommaire 2.1. Variables, typ
2. Introduction au langage de programmation Scilab Sommaire 2.1. Variables, types et opérateurs • Règles de nommage des variables • Le type double (nombres entiers et à virgule flottante) • Le type booléen • Le type chaîne de caractères (string) 2.2. Les conditions • L'instruction if • L'instruction else • L'instruction elseif 2.3. Les boucles • L'instruction while • L'instruction for • L'instruction break • L'instruction continue 2.4. Les fonctions 2.5. Complément sur les tableaux à une dimension (vecteurs) Lycée Algoud-Laffemas de Valence ; Fabrice Sincère ; Version 0.0.5web 1/17 2.1. Variables, types et opérateurs • Règles de nommage des variables Les noms de variables doivent commencer par une lettre ou l'un des caractères suivants : % _ # ! ? $ Les caractères suivants peuvent être des lettres ou des chiffres, ou bien des caractères parmi les suivants : _ # ! ? $ % est exclu. La différence entre minuscules et majuscules est prise en compte. Les lettres accentuées sont acceptées. Parmi ces noms de variables, quels sont ceux qui ne sont pas valides ? Âge %determinant% $ville Poids_2 #masse prénom 3cube • Le type double (nombres entiers et à virgule flottante) // création de la variable a avec affectation de la valeur -17 --> a = -17 // modification du contenu de la variable a --> a = a + 1 a = // nouvelle affectation de la variable a --> a = -7.201e3 --> b = 3.4587e-2 --> c = a*(b – 2)/(5 + a) c = /* ------------------------ Fonctions mathématiques –------------------------ */ // puissance --> val = 12^3 // ou --> val = 12**3 // racine carrée --> val2 = sqrt(5) // cosinus --> val3 = cos(0) // sinus --> val4 = sin(%pi/6) // fonction exponentielle --> val5 = exp(-2.5) Lycée Algoud-Laffemas de Valence ; Fabrice Sincère ; Version 0.0.5web 2/17 // fonction ln (logarithme népérien) --> val6 = log(2) Calculer : e − 1 3√2π --> • Le type booléen Deux valeurs sont possibles : %t ou %T (vrai) %f ou %F (faux) Les opérateurs de comparaison : Opérateur Signification < strictement inférieur <= inférieur ou égal > strictement supérieur >= supérieur ou égal == égal ~= ou <> différent --> val = %T --> val2 = (15<8) --> val3 = (val == val2) Les opérateurs logiques : & et logique | ou logique ~ non logique (complément) --> note = 13.4 --> mentionAssezBien = (note>=12 & note<14) --> noteInvalide = (note<0 | note>20) --> noteValide = ~noteInvalide • Le type chaîne de caractères (string) Lycée Algoud-Laffemas de Valence ; Fabrice Sincère ; Version 0.0.5web 3/17 --> nom = 'Dupont' --> prenom = "Pierre" // on peut aussi utiliser des guillemets --> "aujourd''hui" // ici il est nécessaire de doubler l’apostrophe La concaténation désigne la mise bout à bout de plusieurs chaînes de caractères. La concaténation utilise l'opérateur + --> Nom = nom + prenom --> age = 18 age = 18. --> nom + ' ' + prenom + ' âge ' + age Quel est le problème ? La fonction string() transforme un type double en type chaîne de caractères : --> string(age) ans = 18 --> nom + ' ' + prenom + ' âge ' + string(age) 2.2. Les conditions • L'instruction if Syntaxe if expression then bloc d'instructions end // suite du programme Si l'expression est vraie alors le bloc d'instructions est exécuté. Si l'expression est fausse, on passe directement à la suite du programme. Premier programme Dans la console Scilab, démarrer l’éditeur de programme SciNotes : Applications → SciNotes Saisir le code suivant : // programme Condition1.sce note = input("Note sur 20 : ") if note >= 10 then Lycée Algoud-Laffemas de Valence ; Fabrice Sincère ; Version 0.0.5web 4/17 // ce bloc est exécuté si l'expression (note >= 10) est vraie disp("J''ai la moyenne") end disp("Fin du programme") Fichier → Enregistrer sous Exécuter (touche F5) Quelques remarques : input() attend une valeur (à saisir au clavier dans la console, et à valider avec la touche Enter) disp() est une fonction d’affichage Résultat du programme : • L'instruction else Une instruction else est toujours associée à une instruction if Syntaxe if expression then bloc d'instructions 1 else bloc d'instructions 2 end // suite du programme Si l'expression est vraie alors le bloc d'instructions 1 est exécuté. Si l'expression est fausse alors c'est le bloc d'instructions 2 qui est exécuté. A tester : // programme Condition2.sce note = input("Note sur 20 : ") if note >= 10 then // ce bloc est exécuté si l'expression (note >= 10) est vraie disp("J''ai la moyenne") else // ce bloc est exécuté si l'expression (note >= 10) est fausse disp("C''est en dessous de la moyenne") end disp("Fin du programme") Résultat du programme : • L'instruction elseif Une instruction elseif est toujours associée à une instruction if Lycée Algoud-Laffemas de Valence ; Fabrice Sincère ; Version 0.0.5web 5/17 Syntaxe if expression 1 then bloc d'instructions 1 elseif expression 2 then bloc d'instructions 2 elseif expression 3 then bloc d'instructions 3 // ici deux instructions elseif, mais il n'y a pas de limitation else // facultatif bloc d'instructions 4 end // suite du programme Si l'expression 1 est vraie alors le bloc d'instructions 1 est exécuté, et on passe à la suite du programme. Si l'expression 1 est fausse alors on teste l'expression 2 : si l'expression 2 est vraie on exécute le bloc d'instructions 2, et on passe à la suite du programme. si l'expression 2 est fausse alors on teste l'expression 3, etc. Le bloc d'instructions 4 est donc exécuté si toutes les expressions sont fausses (c'est le bloc "par défaut"). // programme Condition3.sce note = input("Note sur 20 : ") if note == 0 then disp("Lamentable !") elseif note == 20 then disp("Excellent !") elseif note < 10 & note > 0 then disp("C''est en dessous de la moyenne") elseif note >= 10 & note < 20 then disp("J''ai la moyenne") else disp("Note invalide !") end disp("Fin du programme") Résultat du programme : Exercice if01 Écrire un programme qui demande la note au bac et qui affiche la mention correspondante. Par exemple : --> Note au bac (sur 20) : 13.5 Bac avec mention Assez Bien --> Note au bac (sur 20) : 10.9 Bac avec mention Passable --> Note au bac (sur 20) : 4 Lycée Algoud-Laffemas de Valence ; Fabrice Sincère ; Version 0.0.5web 6/17 Recalé Exercice if02 Écrire un programme qui résout dans l’ensemble l'équation du second degré : ax² + bx + c = 0 ℝ Par exemple : --> Coefficient a ? 1 Coefficient b ? -0.9 Coefficient c ? 0.056 Discriminant : 0.586 Deux solutions : 0.0672468158199 0.83275318418 --> Coefficient a ? 2 Coefficient b ? 1.5 Coefficient c ? 4 Discriminant : -29.75 Il n'y a pas de solution. 2.3. Les boucles Une boucle permet d'exécuter une portion de code plusieurs fois de suite. • L'instruction while Syntaxe while expression bloc d'instructions end // suite du programme Si l'expression est vraie le bloc d'instructions est exécuté, puis l'expression est à nouveau évaluée. Le cycle continue jusqu'à ce que l'expression soit fausse : on passe alors à la suite du programme. Exemple : un programme qui compte de 1 à 4 // programme Boucle1.sce // initialisation de la variable de comptage compteur = 1 while compteur < 5 // ce bloc est exécuté tant que la condition (compteur < 5) est vraie disp(compteur) compteur = compteur + 1 // incrémentation du compteur end disp("Fin de la boucle") Résultat du programme : Un autre exemple : table de multiplication par 8 Lycée Algoud-Laffemas de Valence ; Fabrice Sincère ; Version 0.0.5web 7/17 // programme Boucle2.sce // initialisation de la variable de comptage compteur = 1 while compteur <= 10 // ce bloc est exécuté tant que la condition (compteur <= 10) est vraie disp(string(compteur) + '*8 = ' + string(compteur*8)) compteur = compteur + 1 // incrémentation du compteur end disp("Et voilà !") Résultat du programme : • L'instruction for Préambule : les vecteurs Un vecteur est une sorte de tableau de nombres. C’est une liste de nombres indexée. L’opérateur « : » permet de définir simplement un « vecteur » de nombres régulièrement espacés. // vecteur d’entiers de 0 à 10 avec un incrément de 1 --> 0:10 ans = 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. // vecteur de nombres de 2 à 5 avec un pas de 0.5 --> 2:0.5:5 ans = 2. 2.5 3. 3.5 4. 4.5 5. // vecteur de nombres avec décrémentation --> 5:-1:1 ans = 5. 4. 3. 2. 1. Syntaxe de la boucle for for variable=expression bloc d'instructions end // suite du programme où expression est un vecteur. Exemple : // programme Boucle3.sce for i=1:5 disp(i) end disp("Fin de la boucle") Résultat du programme : Lycée Algoud-Laffemas de Valence ; Fabrice Sincère ; Version 0.0.5web 8/17 • L'instruction break L'instruction break provoque une sortie immédiate d'une boucle while ou d'une boucle for. Dans l'exemple uploads/s3/ 02-calcul-numerique-scilab6.pdf
Documents similaires










-
30
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jul 25, 2022
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 0.1616MB