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
3. Le langage R
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 là). 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
Code-source PHP de cette page.
Retour à la page principale de (gH)