TP 1 : Algo & Python


Extrait du TP1 d'algo des premières années de DUT Info de Yann Secq.


I- Introduction à Unix


Au commencement était le terminal ! Le terminal est le suppôt du système d'exploitation : par son intermédiaire, il vous est possible de le questionner et de lui soumettre des requêtes (auquel il répondra prestement). Votre première mission consiste donc à trouver ce terminal en farfouillant dans les antres des menus de votre gestionnaire de fenêtres (ou window manager, qui doit être Gnome normalement). Baladez-vous dans les menus, jusqu'à trouver un item terminal.

Une fois identifié, sélectionnez cet item et le suppôt apparaîtra sous la forme d'une fenêtre supplémentaire, tout de noir excepté une étrange phrase en haut à gauche. Cette phrase est l'invite du terminal: il vous identifie et attend vos requêtes. Malheureusement, le suppôt de l'OS parle un anglais médiocre. Il vous faudra donc faire preuve de qualité linguistique lorsque vous vous adresserez à lui. Nous allons voir les rudiments de sa langue, ce qu'il vous sera nécessaire de maîtriser pour pouvoir ensuite créer vos premiers algorithmes.

Savoir où l'on se trouve: LiSt ou LS

Lorsque vous ouvrez un terminal, il vous accueille généralement chez vous, c'est-à-dire à la racine de votre compte (ie. votre petit espace personnel qui contiendra bientôt tous les parchemins et grimoirs nécessaires à votre progression dans l'art de l'informatique ;). Commencez donc par taper la commande ls dans le terminal (en minuscule et en validant avec un retour à la ligne). Une liste de mots devrait s'afficher, vous présentant ce que contient votre répertoire (normalement, les répertoires que vous avez créé lors du TP0).

Savoir se déplacer: Change Directory ou CD

Pour ne pas mélanger toutes vos recettes et vos expérimentations, vous allez demander au terminal de vous emmener dans votre répertoire dédié à l'algorithmique (ap ou ap1 ou ap12, peu importe). Pour ce faire, utiliser la commande cd à laquelle vous devez indiquer le répertoire dans lequel vous désirez vous rendre: cd ap12 (en supposant que ap12 soit le répertoire que vous avez créé lors du TP0). Vous devriez constater suite à l'exécution de cette commande que la phrase d'accueil du terminal (ou prompt) s'est légèrement modifiée pour faire apparaître le répertoire dans lequel vous vous trouvez.

Vous pouvez maintenant LiSter le contenu de ce répertoire pour voir ce qu'il contient ... et pour l'instant, il n'y a pas grand chose.

Dernière petite chose, même si il est intéressant de pouvoir "s'enfoncer" dans une arborescence, encore faut-il en "remonter" parfois. Si vous désirez revenir dans le répertoire précédent (c'est-à-dire dans ap12 lorsque vous êtes dans tp1, il vous suffit d'utiliser la commande: cd .. (le ".." veut dire répertoire précédent !).

Savoir créer un répertoire: MaKe DIRectory ou MKDIR

Toujours dans la soucis de maintenir votre intérieur rangé et ordonné, vous devrez lors de chaque séance créer un nouveau répertoire. Ainsi, pour ce premier Travail Pratique, vous allez créer le répertoire tp1 (en minuscules) en implorant gentiment le terminal avec la commande: mkdir tp1 (qui se traduitl  littéralement par make directory tp0, que je ne vous ferez pas la honte de traduire :).

Un petit coup de ls pour vérifier que le suppôt de l'OS ne nous ait pas joué de vilain tour ... et vous devriez voir apparaître le nouveau répertoire. Placez-vous dans ce dernier pour que nous puissions passer au deuxième guide fondamental : celui vous permettant de créer des textes.

Avant cela cependant, il faudrait faire un peu de ménage et déplacer les fichiers que vous avez créé lors du TP0. Pour cela, commencez par créer un répertoire tp0 (mkdir tp0 après avoir fait un cd .. pour que le répertoire tp0 soit créé dans le répertoire ap12) et utilisez ensuite la commande MoVe pour déplacer tous les fichiers commençant par "h" dans le répertoire

tp0 : mv h* tp0.


II- EMACS Survivor Guide


Avant de pouvoir écrire vos programmes, encore faut-il disposer d'un papier et d'un crayon ! Traduit dans le contexte informatique, il vous faut un outil que l'on nomme avec raison un éditeur de texte et qui comme son nom l'indique permet ... (je vous laisse compléter cette phrase :). Il existe de nombreux éditeurs de texte, mais deux d'entre eux sont des stars de la galaxie UNIX (ie. le bon côté de la Force) : vi et emacs. Le premier est un frêle chevalier juste vétu d'un pagne et ne payant pas de mine (un lointain frère de Yoda paraît-il). Le second est plus proche d'un transformer: en fonction de son interlocuteur, il peut ressembler à un vélo ou au Faucon Millenium !


Nous allons donc passer directement à une étude (très) sommaire de ce couteau suisse de l'édition qu'est emacs. Un peu de généalogie: emacs est un gros bébé né de l'imagination de Richard Stallman (si vous ne le connaissez pas, demandez à votre ami google ce qu'il en pense) initialement conçu pour participer à la création du projet GNU (pareil). L'intérêt de cet outil (tout comme vi) est que vous le trouverez sur tous les UNIX existants et qu'il vous permettra de créer de multiples textes quelques soit les langages que vous utilisez.

Emacs, c'est un peu le saxophone de l'édition de texte: il suffit de savoir souffler  pour faire un son ... par contre, il faut des années de pratique pour participer à "A Kinf of Blue" ! Vous allez donc commencer vos premiers pas d'emacsien en apprenant à le lancer et à éditer un petit texte.

Lancer emacs: emacs & (et on n'oublie pas le & avant de valider!)

Tout est dans le titre: placez-vous dans le terminal et demandez gentiment à ce dernier de lancer emacs en tapant la commande suivante emacs &. N'oubliez pas le & ! Vous verrez plus tard lors de vos explorations système la signification de ce petit canard. Une fois la commande validée, vous devriez voir apparaître la fenêtre de l'éditeur (pas très sexy, il faut le reconnaître, mais n'oubliez pas que l'habit de ne fait pas le moine).

La fenêtre d'emacs se décompose en trois importantes parties: la barre de menu, la fenêtre d'édition et le mini-buffer. La barre de menu permet d'accéder aux fonctionnalités les plus courantes de l'éditeur, n'hésitez pas à sélectionner chacun des items pour voir ce qu'il y a au menu. La fenêtre d'édition arbore un magnifique gnu stylisé (quel joli animal) et quelques messages abscons de bienvenue. Le mini-buffer est un élément très important de l'éditeur: généralement, lorsqu'emacs cherche à communiquer avec vous, il le fait par l'intermédiaire de cette ligne, ne le perdez donc jamais de vue !

Dernière petite chose, Stallman a les doigts crochus et aime apparemment les solos de Satriani ! Dit autrement, vous allez devoir maîtriser des enchaînements de touche digne des meilleurs solos d'Hendrix ... Vos meilleurs amies deviendront les touches CONTROL (CTRL) et ESCAPE (ESC), auxquelles vous adjoindrez d'autres lettres pour lancer diverses commandes et entrer en symbiose avec emacs.

Les commandes de base: CTRL-X-F et CTRL-X-S, sans oublier ESC ESC ESC ....

Pour débuter vous allez créer l'inévitable HelloWorld qui constitue le arreuh de l'informaticien :) Pour cela, enfoncez la touche CTRL (et maintenez là enfoncée), puis enfoncez la touche (vous pouvez la relâcher) et finalement la touche XF et relâchez tout ! Et là ? Rien ne se passe ?!?!! Et pourtant, si vous avez retenu l'important message du paragraphe précédent et en portant votre regard sur le mini-buffer vous constaterez qu'emacs a réagi à votre appel et vous indique le répertoire courant. Placez-vous dans le répertoire tp1 (ci ce n'est pas déjà le cas) en appuyant deux fois sur la touche tabulation (la zone d'édition se retrouve scindée en deux et la partie basse vous indique la LiSte des fichiers et répertoires présents dans le répertoire courant. Vous pouvez ensuite taper t et tabulation et emacs devancera vos désirs en complétant promptement le fichier ou le répertoire indiqué. Une fois dans le répertoire tp1, écrivez (dans le mini-buffer) helloworld.py et validez.



Ca y est, vous êtes prêts à créer votre premier code source !

Pour cela, recopiez (à la main, pas de copier/coller paresseux!) le texte ci-contre (en respectant exactement ce qui est écrit).


# Mon premier programme


print ("Hello World")



Pour ne pas perdre votre précieux travail, utilisez la combinaison magique CTRL-X-S pour sauvegarder votre fichier (emacs vous indique qu'il a compris votre requête avec un message de confirmation dans le mini-buffer).



III- Utilisation de Python


1- Mon premier programme


Pour exécuter un programme python, le fichier helloworld.py sauvegardé, retournez sur la fenêtre du terminal et tapez :


python helloworld.py


Ceci aura pour effet d'exécuter votre fichier helloworld.py à l'aide d'un interpréteur python.

Normalement, vous devriez voir s'afficher la phrase "Hello World" sur votre écran.

Bravo, vous venez de faire votre premier programme !


Maintenant essayons d'aller plus loin, modifiez votre fichier helloworld.py, pour qu'il affiche "Bonjour le monde".

Une fois le fichier modifié, enregistrez le et ré-exécutez le : python helloworld.py



2- Utiliser une variable



Maintenant créez une autre fichier que vous nommerez exo2.py.
Dans ce fichier copier/coller ce code.



# exo2.py

hello = 'hello world'

print (hello)



Enregistrez le fichier et exécutez le : python exo2.py

A quoi sert hello = 'hello world' ?

Maintenant, modifiez le fichier exo2.py, pour qu'il affiche "Bonjour Monsieur Dujardin".



3- Entrées et Sorties



Créez les fichiers exo3.py et exo4.py et exécutez les.


# exo3.py

var = input("Donnez la valeur de la variable hello ?")

print (var)


# exo4.py

personne = input ("A qui dire hello ?")

print ("hello ", personne)



A quoi sert var et personne, quel est leur fonction ?


A quoi sert la fonction input ?



4- Les calculs


Créez le fichiers exo5.py et exécutez le.


# exo5.py

addition = 1234 + 56

soustraction = 1234 - 56

multiplication = 1234 * 56

division = 1234 / 56

divisonEntiere = 1234 // 56

reste = 1234 % 56

print ("addition : ",addition)

print ("soustraction : ",soustraction)

print ("multiplication : ",multiplication)

print ("division : ",division)

print ("divison entiere : ",divisonEntiere)

print ("reste : ",reste)




Modifiez le fichier afin de pouvoir demander lors de l'exécution de votre programme 2 opérandes (comme 1234 et 56) à saisir au clavier et d'effectuer les calculs avec ces 2 opérandes.


Une fois cela, termine, feuilletez votre guide pour python et jusqu'au 1.4.



5- Les types


Exécutez les commandes suivantes dans le shell et expliquez les résultats affichés par python :


# exo6.py

r, pi = 5, 3.14

r = 2 * pi * r

s = pi * r ** 2

print c, s

print type(r), type(pi), type(c), type(s)




6- Périmètres, Aires et Volumines


Parallélépipède rectangle (pavé droit)

Volume = abc

Aire = 2(ab+ac+bc)

 

Parallélépipède non-rectangle.

Volume = ach = abc sin

Aire = 2(ah + bc + ca) = 2(ab sin + bc + ac)

 

Sphère.

Volume =

Aire =

 

Cylindre droit.

 Volume =

Aire =

 

Cylindre non-droit.

 Volume = =

Aire latérale = =



Tronc de cylindre.

Volume =



Cone droit.

Volume =

Aire latérale = =



Pyramide

A désigne l'aire de la base.

Volume =







Calotte sphérique.

 Volume =

Aire =



Zone sphérique.

 Volume =

Aire latérale =



Tonneau.

Volume =



Tore.

Volume =

Aire =




Calculez les périmètres et les surfaces des figures suivantes : Triangle, rectangle, carré, losange, trapèze




Périmètre

Surface

Triangle

a+b+c

base * hauteur / 2

Rectangle

2*Longueur + 2*largeur

Longueur * largeur

Carré

4 * côté

côté * côté

Losange

4 * côté

Base * hauteur / 2

Trapèze

Base + base + côté1 + côté2

Base * hauteur / 2




Calculez les volumes des figures suivantes : Cube, Sphère, Pyramide, Tonneau



Volume

Cube

arête 3

Sphère

4Πr/3

Pyramide, cône :

(aire de la base) * hauteur / 3

Tonneau :

Πh(2D2 + d2)/12