On l'a vu, un ordinateur ne comprend qu'un seul langage, le langage machine ( constitué uniquement de 0 et de 1...), très peu compréhensible pour les humains...
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é.
De plus, il existe un langage machine différent pour chaque architecture matérielle : pour chaque type d'ordinateur, il faut donc écrire, pour le même programme, un code
en langage machine différent.
Langage 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, dans tous les cas, 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.
Un langage de haut niveau permet alors de s'abstraire du matériel sur lequel le programme que l'on écrit doit s’exécuter : le même programme écrit par exemple en Python s’exécutera aussi bien sur un PC,
un Mac, un ordinateur à base d'architecture ARM, etc.
Langages compilés ou interprétés
Pour "traduire" un langage donné en langage machine, il y a deux possibilités :
soit le code source est transformé avant l'exécution du programme en langage machine ( on parle de compilation du code-source ), et c'est ce code là qui est exécuté par la machine.
soit le code source est transformé au cours de l’exécution du programme en instructions écrites dans un langage intermédiaire ( interprétation ), qui seront elles-même traduites en langage machine
et enfin exécutées par la machine.
L'avantage des langages compilés est souvent une vitesse d'exécution plus grande, au prix d'une programmation plus délicate.
Langages compilés
Langages interprétés
C / C++
Python
Java
JavaScript
...
...
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...
Python est un langage interprété. Les instructions de ce type de langage 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 que l'on exécute ensuite.
De nombreux moyens existent pour programmer en Python; vous utiliserez au lycée :
soit un EDI ( Environnement de Développement Intégré ), comme le logiciel Pyzo, ou tout autre IDE de votre choix, comme Thonny, Spyder,
VSCode ou autre...
soit un environnement de travail directement intégré dans une page web et pour lequel seul un navigateur internet suffit, sans avoir besoin de rien d'autre à installer.
Prise en main de Pyzo
On le lance à partir du menu Programmation > 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 )
Les éditeurs en ligne/Basthon
Dans chaque page comprenant des exercices, vous trouverez pour chacun d'entre eux un éditeur intégré, qui vous permettra d'écrire/d'exécuter un script en vous évitant de "faire la navette"
entre la page d'énoncé de l'exercice, et l'IDE que vous utilisez; de plus, ces éditeurs seront le moyen le plus sûr de transmettre à vos professeurs le travail que vous aurez fait.
Le site Basthon, accessible depuis l'onglet "Python en ligne" dans l'en-tête des pages, permet également de programmer en Python "en ligne", mais ne permet pas d'envoyer le travail fait.
: exécute le script entré dans l'éditeur; la sortie texte et les graphiques s'affichent dans la partie
droite.
: enregistre sur l'ordinateur le script entré dans l'éditeur.
: ouvre un script enregistré sur l'ordinateur et l'affiche dans l'éditeur.
: charge un fichier quelconque dans le système de fichiers ( virtuel ) de l'éditeur, de façon à pouvoir
l'utiliser avec le script.
: charge un module complémentaire Python.
/ : bascule l'affichage de la partie
droite entre la sortie texte et la sortie graphique.
Une fois connecté ( bouton dans l'en-tête des pages ) avec le même
identifiant/mot de passe que votre compte Linux, un bouton s'affiche et vous permet d'envoyer directement
aux professeurs le script entré dans l'éditeur. Attention, un seul envoi est possible, vérifiez bien auparavant que votre programme est terminé et fonctionnel.
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 des EDI ), 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 :
Variables
Conditions
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 :
un cours succinct sur la notion abordée
des exercices ( corrigés ) pour s'approprier cette notion
un QCM d'entraînement évalué
des applications, sous forme de programmes à écrire pour résoudre une tache donnée plus ou moins complexe
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 :