Les bases de la programmation

Un programme est une suite d'instructions qui permettent de faire réaliser à un ordinateur une tâche plus ou moins complexe.
Chaque instruction traduit une partie de l'algorithme utilisé pour "faire tourner" le programme.

Ces instructions se succèdent les unes après les autres dans le temps, ce qui constitue le flux d’exécution du programme.
Chaque instruction correspond à une action élémentaire que l'on souhaite faire réaliser à l'ordinateur.

Langages de programmation

Les ordinateurs ne comprennent qu'un seul langage, le langage machine ( constitué uniquement de 0 et de 1...), très peu compréhensible pour les humains...

Dodo chez les robots...

Pourquoi 0 et 1 ?

Le fonctionnement d'un ordinateur est basé sur des dispositifs électroniques appelés transistors, qui sont analogues à des interrupteurs commandés, pouvant être soit ouverts ( le courant ne passe pas ), soit fermés ( le courant passe ), sans position intermédiaire ; le premier état correspond à un « 0 » et le second à « 1 ».
L'enchaînement très rapide d'ouvertures et de fermetures de ces « interrupteurs » traduit le traitement de l'information fait au sein d'un ordinateur...

Eniac

Le problème est donc qu'un ordinateur ne comprend que des « mots » formés avec ces deux lettres ; dans les premiers temps de l'informatique, on programmait d'ailleurs les ordinateurs en basculant une multitude d'interrupteurs en position « 1 » ou « 0 » , ce qui nécessitait un temps très long et un risque d'erreur très élevé ( vous pratiquerez ça un peu plus tard dans l'année, vous verrez, c'est très formateur !! ).

Langages de haut niveau

Pour s'affranchir de ces problèmes, on a développé ensuite des langages de programmation qui permettent de programmer dans un langage beaucoup plus compréhensible par l'homme.

Les programmes s'écrivent donc maintenant dans des langages de plus haut niveau, c'est à dire de plus en plus éloigné du langage machine, mais en même temps de plus en plus près du langage naturel.
Cependant, le code-source écrit en langage de haut niveau devra être traduit en langage machine pour pouvoir être exécuté par l'ordinateur ; les langages qui existent se distinguent notamment par la manière dont on écrit le code ( la syntaxe du langage ) et celle utilisée pour le transcrire en langage machine.

Le langage Python

Le langage qui servira de base à cet apprentissage est Python ( version 3 )..
Il est d'un abord plus facile que d'autres langages ( comme Java ou C++ ) mais permet toutefois de réaliser des applications complexes, avec graphiques éventuellement.
Les notions acquises à l'aide de Python se réutilisent de toute manière dans tous les langages...

Logo Python

Python est un langage interprété, c'est à dire que les instructions du programme sont traduites en langage machine et exécutées successivement les unes après les autres. Les instructions peuvent être :

  • soit entrées directement dans un logiciel appelé interpréteur et exécutées immédiatement
  • soit écrites dans un fichier ( d'extension .py ) nommé script Python à l'aide d'un logiciel appelé Environnement de Développement Intégré ( IDE en anglais ), que l'on exécute ensuite.

Pour plus d'information, voir le site Python.

Outil utilisé pour la programmation Python

De nombreux logiciels existent pour le développement Python; vous utiliserez principalement un IDE complet mais facile à prendre en main, le logiciel Pyzo.

Prise en main de Pyzo

On le lance à partir de l'Explorateur de fichiers : Applis(V:) > WinPython-64bits-3.7.0.2 > Pyzo

Pyzo
  • l’interpréteur ( = shell Python ) est une zone où vous pouvez entrer des instructions qui seront immédiatement exécutées à l'appui de la touche ENTREE. Pratique pour tester rapidement le résultat d'une ou de quelques instructions(s)...
    C'est aussi là que s'afficheront les résultats de l'exécution d'un script.
  • l'éditeur est la grande zone de gauche, c'est la zone d'écriture des scripts.
  • l'explorateur de fichiers permet d'aller chercher un script enregistré et d'afficher son code.
  • d'autres fenêtres peuvent être affichées, nous en reparlerons plus tard pour certaines.

Vous pouvez déjà commencer à utiliser l’interpréteur en vous en servant, par exemple, comme d'une calculatrice.
Tapez quelques instructions, et Python en affiche immédiatement le résultat.

					
>>> 7+3
10

>>> 10*33
330

>>> 7/3
2.3333333333333335

>>> print("Salut les filles et les gars !")
Salut les filles et les gars !
					
				

Un premier programme...

Mais il est plus intéressant d'écrire un premier "script".

Entrer les lignes de code suivantes dans l'éditeur. Vous pouvez copier-coller ce code à l'aide du bouton Copier à droite du bloc.
Bien respecter le retrait, appelé indentation au début des quatrième et cinquième ligne ( il s'agit d'une tabulation ) :

					
from tkinter import *
def repondre():
 	# BIEN RESPECTER L'INDENTATION
	nom = reponse.get()
	affichage['text'] = 'Salut ' + nom + '\n Bienvenue en NSI !!'

Fenetre = Tk()
Fenetre.title('Mon premier programme...')
nom = Label(Fenetre, text = 'Votre nom :')
reponse = Entry(Fenetre)
valeur = Button(Fenetre, text ='Valider', command=repondre)
affichage = Label(Fenetre, width=30)
nom.pack()
reponse.pack()
valeur.pack()
affichage.pack()
Fenetre.mainloop()
 					
				
  • Pensez à enregistrer régulièrement votre travail ( Fichier > Enregistrer )
  • Pour lancer l’exécution du programme, faire Exécuter / Démarrer le script
  • Il est possible également de faire exécuter le script non pas d'une seule traite mais pas à pas, de façon à pouvoir étudier le résultat de chaque instruction successivement. Bien pratique pour déterminer ce qui pose problème dans un script ( "déboguer" un script ). Sélectionner une instruction et faire Exécuter > Exécuter la sélection ( et avancer )

Quelques remarques générales sur l'écriture d'un script Python :

  • n'hésitez pas à sauter des lignes pour "aérer" votre code, Python ne tient pas compte de ces sauts de ligne à l'exécution.
  • Vous remarquerez que Pyzo fournit une coloration syntaxique du code, c'est à dire qu'il donne une couleur particulière à certains éléments de code ( par exemple, ce qui se rapporte à des textes apparaît en mauve )
  • tout ce qui est écrit après un signe dièse ("#") est un commentaire et ne sera pas exécuté par Python.
    C'est une EXCELLENTE habitude de BEAUCOUP commenter son code-source...Cela permettra à vous ou une autre personne qui relit votre code de comprendre ce que vous vouliez faire ( vous aurez de toute manière tout oublié au bout de 2 semaines, et un code « brut » n'est jamais très parlant !! )
  • il est IMPÉRATIF dans le cas du langage Python de respecter les retraits de ligne que l'on appelle "indentation" : toute la logique du langage est basée là-dessus.
    Cette indentation, de une, deux,... tabulation(s) ( une tabulation équivaut par défaut à 4 espaces, mais ceci est réglable dans les paramètres de Idle ), permet ainsi de délimiter les instructions qui appartiennent à un même bloc logique d'instructions ( dans l'exemple ci-dessus, ce sont les deux lignes en retrait qui appartiennent à un bloc appelé "fonction" ).

La suite de ce cours présente les éléments "de base" qu'un langage de programmation doit proposer pour être pleinement opérationnel.
Ces éléments constituent le noyau impératif de ce langage, qui comprend les notions de :

  1. Variables
  2. Conditions
  3. Boucles

Chacune des pages suivantes présente une de ces notions. Chaque cours peut être suivi selon trois niveaux différents : débutant, intermédiaire ou avancé.

Sur chaque page on trouvera :

Des éléments du langage qui permettent de résoudre les exercices ou de faire les applications sont présentés dans des paragraphes tel celui-ci.
Ces éléments complètent la connaissance du langage Python.

Des aides, et les solutions des exercices et des applications, sont fournies par un survol ou un clic à la souris des mots ou caractères en blanc sur fond rouge :

SOLUTION
Solution, ou élément d'aide