Vous êtes sur la page 1sur 29

Introduction à la programmation

Introduction à l’architecture des ordinateurs. Aperçu des langages machine et


des langages de programmation. Notion de programme. Spécification
fonctionnelle. Étapes dans la vie d’un programme. Qualités d’un programme.
Historique et avantages du langage Python. Environnement de
programmation en Python.
Qu’est-ce qu’un ordinateur ?
Appareil capable d’effectuer des calculs et de prendre des décisions logiques des
millions, voire des milliards de fois plus rapidement que le cerveau humain.
Ordinateur personnel Cerveau humain
100 millions d’additions /sec. plusieurs dizaines d’années

Superordinateur Cerveau humain


plusieurs centaines de milliards des centaines de milliers de personnes
d’additions /sec. en une année.
Les ordinateurs traitent des données au moyen d’une série d’instructions ou
d’opérations élémentaires connues sous le nom de programme.
Les programmeurs sont les personnes chargées de traduire des algorithmes
en une série d’instructions.
Les différents composants d’un ordinateur sont désignés par le terme matériel et
les programmes qui y sont exécutés, par le terme logiciels.
On peut se servir d’un ordinateur sans programmer (Excel, Word, PowerPoint, …).
Applications diverses :
° génération de films d’animation, mise en orbite d’un engin spatial,
° paiement d’une facture par l’entremise d’une succursale bancaire, etc.
Fonction d’un ordinateur
Machine capable de recevoir, de conserver, de traiter et de transmettre des
données.
Exécute pas à pas, très rapidement, une suite d’instructions que l’on nomme
« programme ».

Données Données
PROGRAMME
d’entrée de sortie

domaine fonction image


Historique
ENIAC, le 1e ordinateur électronique (1946) : 18 000 lampes env. reliées par un câblage.
Organisation d’un ordinateur
Quelle que soit leur apparence physique, la plupart des ordinateurs sont
habituellement divisés en 6 unités logiques.
1. Unité d’entrée
Celle qui reçoit l’information (données et programmes) provenant des différents
périphériques d’entrée et qui met cette information à la disposition des autres
unités afin qu’elle puisse être traitée.
Ex. : clavier, souris, numériseur(« scanners »), joystick, …

Gants de données
(« datagloves »)

Système optique
de
captures de mouvement
Organisation d’un ordinateur
2. Unité de sortie
Celle qui prend l’information traitée par l’ordinateur et qui la distribue aux différents
périphériques de sortie pour la rendre utilisable à l’extérieur de la machine.

Ex. : écran, imprimante, …


Organisation d’un ordinateur
3. Unité de mémoire
(désignée aussi sous le terme de mémoire ou mémoire principale)
Elle conserve l’information provenant de l’unité d’entrée de façon à la rendre
immédiatement disponible pour tout traitement.

Elle conserve également l’information traitée jusqu’à ce qu’elle puisse être


distribuée éventuellement aux périphériques de sortie.

Il existe deux types de mémoire :

(i) La mémoire en lecture-écriture: un stockage primaire rapide mais onéreux,


elle perd ses données en cas de coupure de courant (« Random Access
Memory »)
Permet le stockage de données ou de programmes n’ayant pas à être
disponibles en permanence.

(ii) La mémoire en lecture seule (« Read Only Memory »):


renferme certains programmes qui doivent toujours être présents.

On peut identifier une cellule mémoire à partir de son adresse ou de sa position.


Organisation d’un ordinateur
4. Unité arithmétique et logique

Serviteur de l’unité centrale de traitement.

Responsable de l’exécution des calculs (addition, soustraction, multiplication,


division, …) et des mécanismes de décision (par ex., la comparaison de 2
données en mémoire pour déterminer si elles sont égales ou non).
Organisation d’un ordinateur
5. Unité centrale de traitement
Coordonne la machine et supervise le fonctionnement des autres unités.
Exécute les opérations : accède aux instructions, les interprète et
active les unités appropriées.
Indique à l’unité d’entrée quand lire l’information en mémoire, indique à l’UAL
quand utiliser l’information provenant de la mémoire pour des calculs et
synchronise l’unité de sortie pour diriger l’information de la mémoire aux
périphériques de sortie.

Microprocesseur
Organisation d’un ordinateur
6. Unité de stockage secondaire
De grande capacité, elle permet l’entreposage de données à long terme.
Les données ou les programmes qui ne sont pas utilisés de façon active sont nor-
malement rangés dans ces unités secondaires (disques, disquette, carte USB, …).

Demande plus de temps pour accéder à des données rangées en mémoire


secondaire mais le coût par unité de stockage secondaire est moins élevé
comparativement à la mémoire principale.
Disque dur
Note : Les données et les programmes
sont stockés sur disque dur et
chargés en mémoire RAM au
démarrage du programme.

Carte USB
Coûts de fabrication et de développement
Les coûts de fabrication du matériel informatique ont énormément diminué au
cours des dernières années.

Les ordinateurs personnels sont devenus un produit d’usage courant.

Le coût de développement des logiciels n’a pas cessé de croître.

Constat Les entreprises sont inondées de données.


La complexité des problèmes à traiter a augmenté considérablement.
Équipes de développement importantes.
Un seul individu ne peut comprendre toutes les subtilités d’un modèle
de conception.
Conséquences Le logiciel est généralement livré en retard.

Ses coûts excèdent souvent les budgets prévus.


Le logiciel est souvent défectueux et difficile à modifier.
Un programme utilisé sera modifié On augmente sa complexité, à moins de
lutter contre ce phénomène.
Coûts de développement
Évolution des systèmes d’exploitation
Les systèmes d’exploitation sont des logiciels spécialisés qui furent développés
pour faciliter l’utilisation des ordinateurs et augmenter leur capacité de traitement.
Les premiers systèmes permettaient aux ordinateurs de n’exécuter qu’une seule
opération ou tâche à la fois.

La machine exécute un seul programme à la fois


(traitement par lot mono-utilisateur).
Les travaux étaient soumis à un centre de service informatique au moyen
de cartes perforées (délais rencontrés : plusieurs heures voire des jours
avant de recevoir le résultat du programme).
Les systèmes suivants permettent de partager les ressources de l’ordinateur entre
de nombreuses opérations pour permettre leur exécution en « simultané »
(multiprogrammation). demeure vrai.
Dans les années 60, on introduit des systèmes à temps partagé où des utilisateurs
branchés à leur propre terminal partagent une seule machine en même temps.
Dans les faits, celle-ci n’exécute pas tous les travaux en même temps mais
exécute plutôt une petite partie de la tâche d’un utilisateur, puis passe à celle
du suivant. L’ordinateur étant plus rapide, cela donne l’impression que les
programmes s’exécutent simultanément.
Informatique personnelle, distribuée et client/serveur
L’informatique personnelle a vu le jour en 1977 (Apple); le prix plus abordable
des ordinateurs a permis d’en faire une utilisation personnelle ou pour le travail.
En 81, IBM lançait le « IBM personal Computer ». Du jour au lendemain,
ce fut un bouleversement.
Les ordinateurs personnels étaient reliés en réseaux à l’intérieur d’une organisation,
soit sur des lignes téléphoniques, soit en réseaux locaux.
Le traitement informatique était distribué vers les différents postes de travail
à travers les réseaux au lieu d’un traitement central unique.
Pour faciliter la communication entre les ordinateurs d’un réseau, des machines
appelés serveurs de fichiers, offrent un stock de programmes et de données dont
peuvent se servir les ordinateurs clients répartis sur le réseau.
L’informatique parallèle permet d’exécuter des tâches en parallèle.

Un ordinateur parallèle possède plusieurs unités de traitement.

Il existe 2 types d’architectures parallèles :


- l’une où les unités de traitement partagent une mémoire commune,
- l’autre où chaque unité de traitement possède son bloc de mémoire.
Langages machine, d’assemblage et de haut niveau
Il existe des centaines de langages de programmation permettant de traduire un
algorithme en une suite d’opérations élémentaires connues de l’ordinateur
(C, C++, FORTRAN, JAVA, PASCAL, COBOL, SIMSCRIPT, GPSS, ADA, APL, …).
Des instructions qui ressemblent Programme écrit dans un Un programme doit respecter
scrupuleusement les conventions
à la langue naturelle et au langage langage de haut niveau du langage.
mathématique.
Spécifique pour
Ex. : PaieBrute = PaieReguliere + PaieSupplementaire Compilateur chaque langage.
(traducteur en langage d’assemblage)
Un peu plus clair pour les humains. Programme écrit en
Ex. : LOAD PaieReguliere
langage d’assemblage
ADD PaieSupplementaire
STORE PaieBrute Assembleur (traducteur en langage machine)

L’ordinateur ne peut comprendre


directement que son propre langage
Programme écrit en
machine. langage machine

Chaque programme est une suite


+1300042774
de nombres - une série de 1 et de 0 - Ex. : +1400593419 Instructions très primitives.
fastidieux pour les humains. +1200274027
Interpréteur
La compilation et l’assemblage d’un programme écrit en langage de haut niveau
peut prendre un temps considérable.

C’est pourquoi on développa des interpréteurs capables d’exécuter directement


des programmes en langage de haut niveau sans compilation.

Les programmes interprétés s’exécutent


plus lentement que ceux compilés.
La version compilée n’est produite qu’une fois le programme
complété, assurant ainsi un fonctionnement plus efficace.
Historique de Python
Python est un langage de programmation apparu officiellement en 1991.
Guido van Rossum l’a conçu à la fin des années 1980 à l’institut national de
recherche en mathématique et informatique aux Pays-Bas.

Le nom du langage étant inspiré de la série Monty Python(1), cela donne une
idée de la philosophie derrière Python : la programmation doit être un plaisir.

Python est un puissant langage de programmation portable, orienté objet et


dynamique, avec une bibliothèque standard très importante.
Python a des similarités avec des langages de script comme Perl ainsi qu’avec
d’autres langages comme Java et C.

(1) Monty Python : Sacré Graal ! (Monty Python and the Holy Grail) est un film britannique écrit et réalisé par Terry Jones et
Terry Gilliam des Monty Python. Cette comédie, sorti en 1975, a pour thème la légende d'Arthur, des Chevaliers de la Table
ronde et de la quête du Graal.
Caractéristiques de base de PYTHON
Python est portable sur différents environnements tels que Unix et Windows.
Logiciel libre.
La syntaxe du langage est simple.
Python gère lui-même l’espace mémoire disponible.

Python est doté d’un typage dynamique car il n’y a pas de déclaration explicite de
variables ni de spécification de types; le type d’une variable est déterminé à
l’exécution seulement de même que l’allocation de l’espace mémoire.
Il existe des interpréteurs en Python.

Il existe des compilateurs en Python qui produisent un code intermédiaire, appelé


bytecode lequel est transmis à un interpréteur pour l’exécution finale.
Il offre des possibilités pour la programmation orientée objets.
Une approche « jeu de construction » pour concevoir des programmes :
ne pas essayer de réinventer la roue mais se servir de pièces existantes
chaque fois que c’est possible (réutilisation de logiciels).
Il possède une bibliothèque très riche (interfaces graphiques, bases de données,
protocoles Internet, …).
Avantages du langage PYTHON
universel : non orienté vers un domaine d’applications particulières comme en
FORTRAN ou en COBOL.
compact : basé sur un noyau de fonctions et d’opérateurs limité, permettant la
formulation d’expressions simples mais efficaces.
moderne : Python offre les opportunités rencontrées dans les autres langages de
haut niveau.
intégration : On peut utiliser Python sur une plate-forme JAVA et Python peut
contenir du code C ou C++ par exemple.
ouvert : C’est un langage Open Source. Il peut de ce fait être librement utilisé et
distribué.
simplicité : la syntaxe claire et lisible facilite considérablement la création de
programmes et leur mise au point. Renferme peu de mots-clés.
portable : on peut utiliser le même programme sur presque tous les systèmes
d’exploitation (Linux/UNIX, Windows, Mac, OS/2, …).
extensible : le langage possède tout un ensemble de librairies d’outils, notamment
dans le domaine de l’accès aux bases de données, les interfaces
graphiques, le développement pour le WEB, etc. Permet de compléter
ou d’adapter leurs outils afin d’être plus productifs.
Avantages du langage PYTHON
langage de haut niveau :
niveau

I Code machine

II Langage d’assemblage

III Fortran, C, Pascal

IV C++, JAVA Langage totalement orientée objets renfermant comme


extension plusieurs librairies qui permettent notamment
de gérer des structures de données de haut niveau.

V Perl, Python Langages de script.


Python renferme des structures de données de haut
niveau intégrées au langage ce qui est beaucoup plus
simple à utiliser que les librairies précédentes.

robuste: permet au programmeur d’identifier les causes d’erreur et de fournir


une routine de traitement lorsque ces erreurs se produisent.
Discipline de programmation
Danger de PYTHON.

PYTHON est un langage de programmation structuré mais ne nous force pas


à adopter un certain style de programmation.

La tentation de programmer du code « spaghetti » peut être grande.

Le programmeur a beaucoup de liberté mais des responsabilités;


il doit veiller lui-même à adopter un style de programmation de qualité.
Qualités d’un programme
Correct : S’il obéit à ses spécifications.

Exemple :
Entrée : 2 entiers positifs, un numérateur et un dénominateur.
Sortie : la valeur de l’expression : numérateur / dénominateur.
Le programme doit accepter 2 entiers positifs en entrée seulement
et fournir uniquement le résultat escompté.

Précision souhaitée des données : Lors des calculs effectués, indiquer la


précision souhaitée (# de décimales).
Valide : Lorsque le programme est une composante d’un système, il doit
fonctionner sur une base individuelle mais aussi à l’intérieur du système.

Exemple : Calcul de la cotisation Régime d’emploi d’un


syndicale d’un employé employé
Fiable : Il fait ce qu’on s’attend tout le temps.

Exemple : Programme de calcul de l’inverse d’une matrice carrée


éprouvant de la difficulté lorsque le déterminant est près de 0.
Qualités d’un programme
Complet :
Il doit manipuler tous les échantillons de données possibles correctement.
Exemple : Calcul de la moyenne des notes à un examen sachant que
les notes n’ont pas encore été saisies.

Calcul du nombre de jours ouvrables écoulés depuis le début


des travaux de construction d’une maison. On doit prendre en
compte, le cas échéant, les 2 semaines de vacances de la
construction.

Il doit protéger le système contre des données erronées.

Il doit satisfaire à tous les besoins identifiés lors de la définition du problème.


Robuste : Le programme peut fonctionner même lorsque le système est en état
de défaillance.
Exemple : Erreur survenue lors de la saisie d’une donnée au clavier.

Utile : à nos besoins.


Qualités d’un programme
Efficace :
S’il exige comme ressources des quantités limitées.

Exemple : Calcul de 1 + 2 + 3 + … + 1 000 000 = 500 000 * 1 000 001


= 100 000 * 5 000 005
= 500 000 500 000.
Vérifiable : Si l’on peut démontrer formellement qu’il est correct.

Maintenance facile : Mise à jour facile.

Exemple : Changement de millénaire.

Programme bien documenté

Impression bien soigné


Trucs pour faciliter la bonne programmation
1. Définir le problème exactement.
2. Pensez en premier, programmer plus tard.
La Loi de Murphy, aussi connue sous le nom de Loi de l'Emmerdement Maximum (LEM).

Il existe de nombreuses variantes de cette loi, basés sur le fait que toute catastrophe possible a une fâcheuse
tendance à se produire. La plus connue est sans doute la Loi de la tartine beurrée, selon laquelle "Toute tartine
beurrée livrée à elle-même tombera du côté beurré." (Ça marche aussi avec de la confiture, et c'est encore plus
efficace si vous avez un tapis en dessous).

Corollaire sur la programmation :


Plus tôt vous commencez à coder votre programme (au-lieu de penser),
plus tard vous finirez.
3. Utiliser une technique de programmation (par ex., une approche « top-down »).

4. Utiliser autant que possible des structures linéaires (éviter les « GOTO »).

5. Utiliser immédiatement une syntaxe correcte.

6. Éviter l’usage d’éléments qui dépendent d’une installation donnée.

7. N’assumer jamais que l’ordinateur a assumé quelque chose (valeurs par défaut).
8. Vérifier à la main votre programme avant de le faire exécuter.
Étapes dans la vie d’un programme
1. Définir le problème avec précision.

2. Une approche de solution est choisie pour résoudre le problème.

3. Définition d’un algorithme.

4. Traduction en un langage de programmation au choix.

5. Mise au point d’un programme (validation).

6. Documentation.

7. Maintenance.
Environnement de programmation Python
Nous pouvons écrire nos programmes en mode interactif en dialoguant directement depuis
le clavier. Nous pouvons aussi créer nos programmes à l’aide d’un éditeur et les ranger
dans des fichiers sur disque.
Nous choisissons le mode interactif pour le moment avec comme environnement de travail
IDLE sous Windows. La fenêtre ressemblera à ceci :

File Edit Shell Debug Options Windows Help


Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.

****************************************************************
Personal firewall software may warn about the connection IDLE
makes to its subprocess using this computer's internal loopback
interface. This connection is not visible on any external
interface and no data is sent to or received from the Internet.
****************************************************************

IDLE 1.2.2
>>>

Prêt à exécuter une commande.


Téléchargement et installation de Python
Les différentes versions de Python (pour Windows, Unix, etc.), son tutoriel original,
son manuel de référence, la documentation des bibliothèques de fonctions, etc. sont
disponibles gratuitement, à partir du site officiel: http://www.python.org .

On peut alors télécharger et installer Python à partir de cet emplacement en tenant compte
de la plate-forme utilisée.

Par exemple, sous Windows, vous devez télécharger le fichier python-2.5.msi à partir du
site officiel et l’exécuter pour installer Python. Le dossier d’installation est dans C:\Python,
puis les fichiers de la bibliothèque standard dans C:\Python\Lib.

Vous pouvez alors utiliser Python à partir de l’environnement de programmation IDLE.


Exécution de Python
Trois façons différentes de démarrer Python :
Lancer l’interpréteur en mode interactif, en saisissant à chaque fois une seule ligne
de Python pour l’exécuter directement.

Sous Windows, dans le menu Démarrer on presse sur la touche Exécuter


puis, on saisit au clavier la commande python.

Exécuter un script écrit en Python en appelant l’interpréteur avec le nom du script.


On procède comme dans le cas précédent sauf que l’on saisit au clavier la
commande python suivie du nom du script (un fichier avec l’extension .py)
renfermant un programme Python.
Ex.: python E:\essai.py
On peut aussi cliquer deux fois sur le fichier directement afin de l’éditer.

Lancer l’interpréteur à partir d’une interface graphique dans un environnement de


développement qui offre des outils additionnels tels qu’un débogueur intégré, un
éditeur de texte, etc.
Avec la plate-forme Windows, l’environnement IDLE est disponible.
En pratique, on crée simplement sur le bureau un raccourci vers
C:\Python25\libs\Lib\idlelib sur lequel il suffit de cliquer 2 fois.

Vous aimerez peut-être aussi