Valid XHTML     Valid CSS2    

DECRA : Décomposition, Conception et Réalisation d'Applications

Cours 3 : Les langages de script Python et R ; algorithmique avec GALG

Table des matières cliquable

  1. Les langages de script

  2. Le langage Python

  3. Le langage R

  4. Algorithmique et langages de programmation

1. Les langages de script

Il existe beaucoup de langages de programmation. Parmi ceux-ci les langages de script occupent une part importante, qui progresse sans doute de plus en plus chaque année, à cause de leur implication dans le développement Web. Parcourir la partie 1 de mon cours Langages de scripts et développement Web devrait être suffisant pour une introduction générale à ces langages.

2. Le langage Python

Il existe de nombreux tutoriels, livres, cours et vidéos sur Python. Comme indiqué dans notre tuteur Python qui nous servira de première référence, un cours soutenu de Python (v3) en français que nous conseillons est celui de B. Cordeau, avec ses exercices corrigés, disponible sur le site iut orsay (copies locales ici et ). On pourra aussi lire l'ouvrage de Swinnen (copie locale) et enfin Python pour lycéens. En anglais, on pourra bien sûr consulter diveIntoPython3 et la documentation officielle Python v3 documentation.

3. Le langage R

Là encore, il y a foison de tutoriels, livres, cours et vidéos sur le logiciel R. Comme nous nous intéressons surtout à l'aspect langage et programmation de ce logiciel, mon tuteur de programmation R servira d'introduction. Ensuite, on pourra parcourir mes mini-présentations R15 et R5 pour comprendre ce qu'est globalement le logiciel R avant de consulter la documentation officielle. On y trouvera des documents en français après le premier tiers de la page.

4. Algorithmique et langages de programmation

Si on veut décrire une idée, une méthode algorithmique, utiliser un langage de programmation biaise sans doute la représentation de la méthode. C'est pourquoi il nous semble qu'un langage algorithmique simplifié "idéalement parfait" devrait être utilisé pour communiquer ces idées avant de choisir le langage de programmation adapté et de traduire l'algorithme dans ce langage.

Nous avons écrit le langage  GALG  et son interface pour répondre à ce besoin.

Voici un exemple d'algorithme en GALG :


     # algorithme xmp14.alg ; auteur gh
     
     ##-##
     ##-##    **********************************************************************
     ##-##    *                                                                    *
     ##-##    *    on montre ici ce qui peut arriver si                            *
     ##-##    *    on épuise les ressources de la machine                          *
     ##-##    *                                                                    *
     ##-##    **********************************************************************
     ##-##
     ##-##    En principe, l'interface de G-ALG est capable de le détecter et de le gérer...
     ##-##
     ##-##    Pour éviter les choix du tirage aléatoire, il est possible de forcer
     ##-##    l'affectation de la variable nombre de la ligne 41 via
     ##-##
     ##-##       AFFECTER nombre <-- 1 # ou 2 ou 3 ou même 0
     ##-##
     
     ############################ une "jolie" fonction récursive
     
     FONCTION ACK(m,n)
     
       SI (m=0)
          ALORS
            RENVOYER n+1
          SINON
     
            SI n=0
               ALORS
                 RENVOYER ACK(m-1,1)
               SINON
                 RENVOYER ACK(m-1,ACK(m,n-1))
            FIN_SI # 2
     
       FIN_SI # 1
     
     FIN_FONCTION # ACK
     
     ###############################################################
     
     AFFECTER nombre <-- entierAuHasard(0,3)
     ECRIRE "CALCUL avec le nombre " , nombre
     
     SI nombre=0
        ALORS
          ECRIRE "Vous avez de la chance, je ne fais aucun calcul ce coup-ci."
          QUITTER
     FIN_SI # 0
     
     SI nombre=1 # une boucle POUR très très longue
        ALORS
          ECRIRE "Patience..."
          AFFECTER nbVal <-- 1234567890
          AFFECTER x     <-- 0
          POUR ind DE1A nbVal
              # on calcule mais on n'affiche rien
              AFFECTER x <-- x + 1
              AFFECTER x <-- x - 1
              AFFECTER x <-- x * 1
          FIN_POUR # boucle sur ind
     FIN_SI # 1
     
     SI nombre=2 # une boucle TANT QUE qui n'en finit pas
        ALORS
          ECRIRE "Dommage Eliane !"
          AFFECTER x     <-- 0
          TANT_QUE x <10
              # on calcule mais on n'affiche rien
              AFFECTER x <-- x + 1
              AFFECTER x <-- x - 1
          FIN_TANT_QUE # x <10
     FIN_SI # 2
     
     SI nombre=3 # de nombreux appels récursifs
        ALORS
          ECRIRE "Il ne faut pas confondre Ackermann avec du champagne. "
          AFFECTER  p<-- 2
          POUR ind DE1A 4
              ECRIRE " ACK( " , ind , " , " , p , " ) = " , formatEntier( ACK(ind,p) , 4 )
          FIN_POUR # ind
     FIN_SI # 3
     
     ECRIRE "FIN DE CALCUL numéro " , nombre
     

       retour au plan de cours  

 

Code-source PHP de cette page.

 

retour gH    Retour à la page principale de   (gH)