Programmation et Algorithmique (ENSIBS_FISA_TD_1_intro_partie_1 PDF)
Document Details
Uploaded by Deleted User
ENSIBS
Owein THUILLIER
Tags
Related
- Flinn Scientific Student Safety Contract PDF
- Structure de la Terre et tectonique PDF
- Aprender a Aprender un Segundo Idioma. TFG Julia Cuenca
- Julia Sudbury's Celling Black Bodies: Black Women in the Global Prison Industrial Complex (PDF)
- Bases Biológicas de la Patología - Tema 15: Insuficiencia Cardíaca - PDF
- Computational Physics in Julia 2024-12-09 PDF
Summary
These are course notes covering programming and algorithms for a Génie Industriel 4.0 (GI3) course at ENSIBS. The notes introduce the Julia programming language and provide basic instructions, data types, and operations. These notes also include installation, usage, and management instructions for the Julia Language.
Full Transcript
Programmation et Algorithmique Génie Industriel 4.0 (GI3) Responsable : Alexandru OLTEANU Intervenant : Owein THUILLIER [email protected] 1 Organisation du cours ▌ Plan général Théorie algorithmique : ≈ 50 % - Introduction (notions de base...
Programmation et Algorithmique Génie Industriel 4.0 (GI3) Responsable : Alexandru OLTEANU Intervenant : Owein THUILLIER [email protected] 1 Organisation du cours ▌ Plan général Théorie algorithmique : ≈ 50 % - Introduction (notions de base, expressions, instructions élémentaires) - Instructions de choix - Instructions répétitives Séances 1-6 - Structures de données de base (enregistrements & tableaux) - Sous-algorithmes (fonctions & procédures) Programmation : ≈ 50 % - Introduction à Julia Séances 8-11 - Algorithme → Programme 2 Avant-propos ▌ Pour les curieux, des ressources utiles : https://cheatsheet.juliadocs.org/ (manuel synthéthique) https://learnxinyminutes.com/docs/julia/ (synthèse des fonctionnalités) https://julialang.univ-nantes.fr/ (Prof. Xavier Gandibleux) https://perso.ensta-paris.fr/~diam/julia/ (Maurice Diamantini) https://docs.julialang.org/en/v1/ (manuel officiel) https://en.wikibooks.org/wiki/Introducing_Julia (excellent wiki) https://cp-algorithms.com/ (algorithmes pour la compétition) https://www.bigocheatsheet.com/ (au-delà de ce cours mais très utile) 3 Installation de Julia https://julialang.org/ 4 Installation de Julia Prendre la dernière version stable et cliquer sur « Add Julia to PATH » lors de l’installation 5 Premiers pas avec le REPL (Read, Evaluate, Print, Loop) ▌ Cliquer sur l’icône Julia (ou chercher Julia dans le menu « Rechercher) ▌ Ou, depuis un terminal, écrire « julia » 6 Premiers pas avec le REPL (Read, Evaluate, Print, Loop) ▌ Quelques commandes à connaître : Interrompre une exécution : [Ctrl] + [c] Récupérer le dernier résultat : ans Historique des dernières instructions : ↑ (flèche du haut) Rechercher dans l’historique : [Ctrl] + [r] Complétion automatique : caractères + [Tab] Conversion automatique : commande + [Tab] Effacer l’écran : [Ctrl] + [l] Quitter la session : exit() ou [Ctrl] + [d] 7 Premiers pas avec le REPL (Read, Evaluate, Print, Loop) ▌ Mode « aide » : ? (écrire le point d’interrogation) Retourner au mode « normal » : [Backspace] sur ligne vide 8 Premiers pas avec le REPL (Read, Evaluate, Print, Loop) ▌ Mode « shell » : ; (écrire le point-virgule) 9 Plus facile d’utilisation sur un environnement Linux… Premiers pas avec le REPL (Read, Evaluate, Print, Loop) ▌ Mode « management de paquet » : ] (écrire le crochet fermant) 10 Premiers pas avec le REPL (Read, Evaluate, Print, Loop) ▌ Quelques commandes à connaître pour le mode « management de paquet » Ajouter un paquet : add Supprimer un paquet : remove ou rm Résumé synthétique des paquets installés : status ou st Mise à jour des paquets : update ou up Aide en ligne : help 11 Gestion des paquets : utilisation ▌ Pour utiliser un paquet (à effectuer avant toute première utilisation) 12 Gestion des paquets : ajout ▌ Liste des paquets : https://juliahub.com/ui/Packages ▌ Pour ajouter un paquet (deux méthodes) 13 Instructions élémentaires ▌ Affectation (=) 14 Instructions élémentaires ▌ Écrire (print ou println) ▌ Afficher une expression (@show) 15 Instructions élémentaires ▌ Lire (readline + opération de conversion si le type souhaité n’est pas une chaine de caractères) 16 Noms de variables ▌ Julia supporte les caractères unicodes comme noms de variables https://docs.julialang.org/en/v1/manual/unicode-input/ 17 Constantes ▌ Déclaration d’une constante ▌ Constantes primitives (intégrées) 18 Commentaires ▌ Deux façons d’écrire un commentaire (sur une ligne ou sur plusieurs lignes) 19 Types de données ▌ Connaître le type d’une expression 20 Types de données cont’d ▌ Connaître le type parent et les types enfants d’un type donné 21 Types de données cont’d ▌ Hiérarchie partielle pour les nombres (source : Wikipedia) 22 Types de données cont’d ▌ Connaître la taille mémoire utilisée pour un type donné ▌ Connaître la plage de valeurs autorisées pour un type donné 23 Opérations de manipulation des données : entiers et réels ▌ Comparaison entre données : opérations à valeurs booléennes Opérateur Expression Signification == a == b égalité != ou ≠ (\ne) a != b Inégalité (différent) < a= ou ≥ (\geq) a >= b supérieur ou égal Avec a et b deux variables 24 Opérations de manipulation des données : entiers et réels ▌ Opérations mathématiques : opérations à valeur numérique Opérateur Expression Signification - -a Inversion du signe (unaire) + a+b somme - a–b différence * a*b produit / a/b division ^ ou pow a^b puissance % ou mod a%b modulo ÷ (\div) ou div a÷b division entière Avec a et b deux variables 25 Opérations de manipulation des données : entiers et réels ▌ Opérations mathématiques : opérations de mise à jour Opérateur Expression Équivalence += a += b a=a+b -= a -= b a=a-b *= a *= b a=a*b /= a /= b a=a/b ^= a ^= b a = a^b %= a %= b a=a%b ÷= a ÷= b a=a÷b Avec a et b deux variables 26 Opérations de manipulation des données : entiers et réels ▌ Opérations mathématiques : quelques fonctions utiles 27 Opérations de manipulation des données : entiers et réels ▌ Arrondis et transtypage (coercition) 28 Opérations de manipulation des données : entiers et réels ▌ Opérations mathématiques : quelques fonctions utiles bis 29 Opérations de manipulation des données : booléens ▌ Opérations de bases Opérateur Expression Signification && a && b et logique (and) || a || b ou logique (or) ! !a non logique (not) 30 Opérations de manipulation des données : caractères et chaines ▌ Opérations de base 31 Opérations de manipulation des données : caractères et chaines ▌ Comparaison entre données : opérations à valeur booléenne 32 Opérations de manipulation des données : caractères et chaines ▌ Opérations sur les chaines de caractères 33 Exécuter un programme externe depuis le REPL ▌ Fichier « test.jl » depuis un bloc-note ▌ Exécution depuis le REPL (être dans le même dossier !!) 34 Installation d’un éditeur de code (Visual Studio Code) ▌ Il est possible de faire mieux avec une interface intégrant tout un environnement (terminal, REPL, gestion des fichiers, visualisation, debugging, etc.) 35 Installation d’un éditeur de code (Visual Studio Code) ▌ Installer l’extension « Julia » 36 Installation d’un éditeur de code (Visual Studio Code) ▌ Créer un dossier et se déplacer dedans (« Open folder ») ▌ Créer un premier fichier avec l’extension «.jl » 37 Installation d’un éditeur de code (Visual Studio Code) ▌ Créer une instance d’un terminal (« Terminal » puis « New Terminal ») ▌ Écrire « julia » pour lancer Julia puis « include(nom_fichier) » pour exécuter le programme 38 Instructions de choix : conditionnelle simple (« si-alors ») 39 Instructions de choix : conditionnelle (« si-alors-sinon») 40 Instructions de choix : conditionnelle multiple (imbriquées) 41 Instructions répétitives : boucle itérative « tant que » À partir d’ici, on encapsule le tout dans une fonction main() (algorithme principal) 42 Instructions répétitives : boucle itérative « pour » 43 Instructions répétitives : boucles itératives « pour » imbriquées 44 Instructions répétitives : mots-clés « break » et « continue » 45 Instructions répétitives : boucle itérative « répéter » 46