Documente Academic
Documente Profesional
Documente Cultură
Jérôme Darmont
http://eric.univ-lyon2.fr/jdarmont/
Année 2019-2020
Définitions
Algorithme
Un algorithme est une suite finie et non ambiguë d’opérations ou d'instructions permettant de résoudre un problème ou d'obtenir un résultat.1
Un algorithme peut prendre des données en entrée et fournit au moins un résultat en sortie.2
Un algorithme est souvent exprimé avec une notation indépendante de tout langage de programmation.3
Programme
1
Wikipedia. https://fr.wikipedia.org/wiki/Algorithme
2
Donald E. Knuth. The Art of Computer Programming, Vol. 1. 3e edition, 1997. Addison-Wesley.
3
Robert Strandh, Irène Durand. Initiation à l’informatique. 2003. http://dept-info.labri.fr/ENSEIGNEMENT/INITINFO/initinfo/supports/book/
4
Robert Cordeau. Introduction à Python 3. http://www.maths-et-tiques.fr/telech/Python3v1-1.pdf
Le langage algorithmique en français proposé dans ce support et relativement standard, si tant est qu’il existe un standard en la matière. Il est volontairement
indépendant et différent des autres langages abordés dans cet enseignement (plus rigoureux).
Blockly
Blockly5 est un langage graphique open-source de Google qui vise à démocratiser le développement informatique en limitant les possibilités d’erreurs de
syntaxe grâce à l’agencement de blocs de code par glisser-déposer. Il est inspiré de Scratch6, un langage similaire développé par le MIT. Il permet de générer
automatiquement du code, notamment dans les langages JavaScript, PHP et Python. Il est considéré ici comme un langage algorithmique en anglais.
Python
Python7 est un langage de programmation sous licence libre promu par la Python Software Foundation. Il fonctionne sur la plupart des systèmes d’exploitation
et fait partie des langages les plus utilisés pour apprendre la programmation. Il inclut l’environnement de développement IDLE8, qui vise à faciliter la
programmation en Python. Les programmes Python sont placés dans des fichiers d’extension « .py ».
5
https://developers.google.com/blockly/
6
https://scratch.mit.edu
7
https://www.python.org
8
http://tarball69.developpez.com/articles/python/idle-presentation-rapide/
âge ← 44 + 1 age = 44 + 1
âge ← âge + 1 age = age + 1 ou age += 1
Calculs salaire ← salaire x 1,05 salaire = salaire * 1.05
quotient ← a ÷ b quotient = a / b
nom ← nom | " Darmont" nom = nom + " Darmont"
Opérateurs
+ - x ÷ ^ div mod + - x ÷ ^ + - * / ** // %
arithmétiques
Écrire("Âge ", âge, "Salaire ", salaire) print("Âge", age, "Salaire", salaire)
i ←1
i=1
Tant que i ≤ 10 faire
Boucles while i <= 10:
Écrire(7 x i)
tant que print(7 * i)
i ←i+1
i += 1
Fin tant que
i=1
i ←1
while True: # Boucle infinie
Boucles Répéter
print(7 * i)
répéter Écrire(7 x i)
i += 1
jusqu’à i ←i+1
if i > 10:
Jusqu’à i > 10
break # Très inélégant
(Fonctionne comme un while)
Pour i de 1 à 5 faire
Pour j de 1 à 5 faire for i in range(1, 6):
Boucles
Écrire(i x j) for j in range(1, 6):
imbriquées
Fin pour print(i * j)
Fin pour
{Déclaration}
Var lst : Liste d’entiers
lst = [ ] # Liste vide
lst ← ( ) {Liste vide} lst = [1, 5, 7]
print(lst[1])
lst ← (1, 5, 7)
lst2 = [1, 3.14, "ok", [ ]] # Multitype !
Écrire(lst(2))
lst.append(9) # Ajout en fin
lst( ) ← 9 {Ajout en fin}
lst.insert(1, 4) # Ajout en 2e position
Ajouter(lst, 2, 4) {Ajout 2e position}
lst[1] = 3 # Modification
lst(2) ← 3 {Modification}
lst.pop(2) # Suppression 3e pos.
Listes Suppr(lst, 3) {Suppression 3e pos.}
taille = len(lst)
taille ← Longueur(lst)
lst.sort()
Trier(lst)
pos = lst.index(3)
pos ← ChercherPosition(lst, 3) mots = txt.split(" ")
mots ← Découper(txt, " ")
# Parcours de liste
{Parcours de liste} for nombre in lst:
Pour nombre dans lst faire print(nombre)
Écrire(nombre)
Fin pour
Opérateurs élémentaires
Soient deux variables booléennes (prenant les valeurs Vrai ou Faux) C1 et C2.
Quel est le résultat des tests « Si non C1 », « Si C1 et C2 », « Si C1 ou C2 » ?
C1 C2 non C1 C1 et C2 C1 ou C2
Vrai Vrai Faux Vrai Vrai
Définition
Un module (ou bibliothèque) est un fichier Python (extension .py) qui contient des fonctions pouvant être employées depuis plusieurs programmes.
Python inclut de plusieurs bibliothèques standards. De nombreuses bibliothèques externes sont également disponibles9.
1. Importer une/des fonction(s) d’un module : from os import chdir # Fonction « chdir » du module « os »
from math import * # Toutes les fonctions du module « math »
2. Utiliser les fonctions : chdir("D:/Jérôme") # Plus besoin de préfixer la fonction par le nom du module
racine_carree = sqrt(4)
9
https://fr.wikibooks.org/wiki/Programmation_Python/Biblioth%C3%A8ques_pour_Python
# Fenêtre
fenetre = Tk() # Création de la fenêtre
fenetre.title("Formulaire test") # Titre de la fenêtre
# Etiquette textuelle
etiq_nom = Label(fenetre, text = "Saisir votre nom :") # Création de l’étiquette
etiq_nom["fg"] = "black" # Couleur du texte
etiq_nom["bg"] = "white" # Couleur de l’arrière-plan de l’étiquette
etiq_nom.pack() # Affichage de l’étiquette
# Zone de saisie
nom = Entry(fenetre) # Création de la zone de saisie
nom.pack() # Affichage de la zone de saisie
# Bouton de commande
bouton = Button(fenetre, text = "Valider", command = afficher_nom) # Création du bouton de commande
bouton.pack() # Affichage du bouton de commande
# Image
logoPython = PhotoImage(file = "pythonmini.png") # Création de l'image
etiq_image = Label(fenetre, image = logoPython) # Association de l'image à une étiquette
etiq_image.pack() # Affichage de l'étiquette
Algorithmique
Bouazza El Benani, Awatef Sayah. Cours d’informatique – Partie 1. Université Mohammed V Rabat, 2008.
https://web.archive.org/web/20180920202742/http://www.fsr.ac.ma/cours/informatique/elbenani/Partie1.pdf
Python
Pierre-Antoine Champin. Bonnes pratiques de programmation. Université Claude Bernard Lyon 1, 2015.
http://liris.cnrs.fr/pierre-antoine.champin/enseignement/algo/cours/algo/bonnes_pratiques.html
Raphaël Seban. IDLE – présentation rapide. L’environnement de développement standard Python. Developpez.com, 2014.
http://tarball69.developpez.com/articles/python/idle-presentation-rapide/