Académique Documents
Professionnel Documents
Culture Documents
Un ordinateur est un système de traitement de l'information programmable tel que défini par Turing et qui
fonctionne par la lecture séquentielle d'un ensemble d'instructions, organisées en programmes, qui lui font exécuter
des opérations logiques et arithmétiques.
Sa structure physique actuelle fait que toutes les opérations reposent sur la logique binaire et sur des nombres formés
à partir de chiffres binaires.
Dès sa mise sous tension, un ordinateur exécute, l'une après l'autre, des instructions qui lui font lire, manipuler, puis
réécrire un ensemble de données déterminées par une mémoire morte d'amorçage (Boot ROM, BIOS, UEFI, etc.).
Les données à manipuler sont obtenues, soit par la lecture de mémoires, soit par la lecture d'information en
provenance de périphériques internes ou externes (déplacement d'une souris, touche appuyée sur un clavier,
température, vitesse, compression…).
Une fois utilisés, ou manipulés, les résultats sont écrits, soit dans des mémoires, soit dans des composants qui peuvent
transformer une valeur binaire en une action physique (écriture sur une imprimante ou sur un moniteur, accélération
ou freinage d'un véhicule, changement de température d'un four…).
2) La carte mère
La carte mère est le cœur de tout ordinateur compatible PC. Elle est essentiellement composée de circuits
imprimés et de ports de connexion qui assurent la liaison de tous les composants et périphériques propres
à un micro-ordinateur (disques durs, mémoire vive, microprocesseur, cartes filles, etc.) afin qu'ils puissent
être reconnus et configurés par le microprocesseur grâce au programme contenu dans le BIOS, au
travers de la carte, afin d'assurer la configuration et le démarrage correct de tous les équipements.
3) Le microprocesseur
Le processeur est connu comme étant le cerveau de l’ordinateur, il exécute les instructions et traite les
données des programmes. Il est mesuré en Hertz. Lorsque ce dernier est élevé, le signal de l’exécution
devient de plus en plus rapide.
Un microprocesseur est un processeur dont tous les composants ont été suffisamment miniaturisés pour être
regroupés dans un unique boitier.
La complexité de son architecture se mesure par le nombre de transistors qu’il contient.
La puissance du microprocesseur qui s’exprime en « millions d'instructions par seconde » (MIPS).
La vitesse de l’horloge : le rôle de l’horloge est de cadencer le rythme du travail du microprocesseur. Plus la
vitesse de l’horloge augmente, plus le microprocesseur effectue d'instructions en une seconde.
Lorsque l’ordinateur est sous tension, le disque dur, qui stocke durablement les données, se lance et vient
charger dans cette mémoire vive le système d’exploitation (Windows, OS X, Linux), puis les différentes
applications que vous ouvrez (par exemple, un navigateur internet, ou un nouveau document). Et lorsque vous
travaillez sur votre document, tant qu’il n’est pas enregistré sur le disque dur, c’est sur cette mémoire vive que
la sauvegarde est effectuée.
Les cartes mémoires se présentent sous 2 formats aux appellations singulières : DIMM pour les ordinateurs
de bureau et SO-DIMM pour les portables.
L’avantage de cette mémoire vive, par rapport au disque dur, c’est qu’elle est très rapide. Elle réagit au
quart de tour pour transmettre des données à traiter au processeur et les exploiter. Elle peut faire transiter des
données à plus de 10 Go/s, alors qu’un disque plafonne autour de 200 Mo/s en pratique. De même, le temps
d’accès aux données, autrement dit son temps de réaction, se compte en nanosecondes, alors que pour un
disque dur on parle de millisecondes.
En revanche, contrairement au disque dur dont la capacité de stockage est colossale et peut atteindre plusieurs
Téraoctets (1000 Gigaoctets), la mémoire vive se limite à 2, 4, 8, voire 16 Gigaoctets. 4 Go est une quantité
toutefois suffisante pour des travaux de bureautique, mais il faut retenir que plus il y a de capacité et moins
cette mémoire vive est engorgée. Dès qu’elle l’est, l’ordinateur va générer de la fausse mémoire vive sur le
disque dur. Pour le coup, c’est à partir de ce moment que l’on peut dire que « ça rame » ! C’est pourquoi,
lorsque l’on est fan de jeux ou d’arts graphiques, 8 Go présentent le strict minimum et 16 Go offrent plus de
fluidité pour des jeux 3D de plus en plus gourmands en mémoire.
L’ordinateur doit être muni d’un disque dur pour pouvoir stocker vos données. A la différence de la mémoire
vie, le disque dur peut conserver toutes vos données le plus longtemps possible. Toutefois, s’il se détériore,
les données seront perdues et vous perdrez tout ce que vous avez enregistré dans le disque dur. Il est préférable
dans de cas d’avoir un stockage amovible pour conserver la copie de vos données.
5) Le BIOS
Lors du démarrage, la carte mère a besoin de savoir quels périphériques lui sont connectés.
Pour effectuer cette tâche, elle dispose d'un firmware initialement appelé BIOS (de l'anglais Basic Input
Output System « signifiant système d'entrée/sortie de base ») ou sur les ordinateurs plus récent de son
équivalent l'UEFI. L'un et l'autre sont contenus dans une puce de « mémoire morte » soudée à même la
carte mère. Le microprocesseur lance ce code automatiquement lorsque la carte est mise sous tension —
autrement dit, lorsque l'utilisateur allume son ordinateur.
Le BIOS
Le microprocesseur utilise le code contenu dans le BIOS pour configurer chaque périphérique connecté
à la carte mère (mémoire vive, disques durs, cartes d'extension, etc.). Si le microprocesseur ne peut
pas afficher un message d'erreur, ni lancer le « configurateur du BIOS », la carte émet une série de
bips qui permettent d'informer l'utilisateur du problème empêchant de continuer (entre autres si l'écran,
le clavier ou la souris n'ont pas été détectés) — ces signaux sont propre à chaque carte. La signification
de l'erreur liée à cette série de bips est précisée dans le manuel de la carte mère.
Lorsque tous les périphériques ont été configurés, le microprocesseur exécute les instructions
contenues dans le Master Boot Record trouvé sur le périphérique identifié comme celui contenant le
premier système disponible contenu dans un des périphériques de stockage de masse (CDROM, disque
dur, SSD, clé USB, etc.).
L'UEFI
L'UEFI est le nouveau type de BIOS lié aux évolutions technologiques depuis les années 2000. Un
consortium de constructeurs a mis au point un nouveau standard de firmware (micrologiciel
intermédiaire entre les éléments composants de la carte mère et le système d'exploitation). L'UEFI (de
l'anglais Unified Extensible Firmware Interface) offre quelques avantages sur le BIOS : fonctionnalités
réseau en standard, interface graphique haute résolution, gestion intégrée d'installations multiples de
systèmes d’exploitation et affranchissement de la limite des disques à 2,2 To. L'UEFI est écrit en
langage C
Le système binaire est utile pour représenter le fonctionnement de l'électronique numérique utilisée dans les
ordinateurs. Il est donc utilisé par les langages de programmation de bas niveau.
Le système binaire le plus courant est la base deux mathématique, permettant de représenter des nombres à
l'aide de la numération de position avec seulement deux chiffres : le 0 et le 1.
Dans ce type de codage, chaque nombre est représenté de façon unique par une suite ordonnée de chiffres.
Valeur
Valeur binaire
décimale
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111
… 8 bits = 28 = 256
255 11111111
16 bits = 216 = 65 536
Je me suis arrêté sur la valeur 255 qui correspond à 8 bits
(vous voyez en face du 255 il y a 8 chiffres 1).
Ces 8 bits correspondent à ce que l’on appelle un octet
(venant de octal : 8). Pour votre culture …
Un octet (ou byte) est un multiple de 8 bits codant une information : ex : 11101011 .
En fait l’ordinateur ne calcule jamais sur 1 bit à la fois, mais sur un ou plusieurs octets (ce qui fait 8 bits ou
plus, mais toujours des multiples de 8 bits).
Les premiers ordinateurs personnels étaient 8 bits (ils ne comptaient que sur 1 octet à la fois)
un octet permet de représenter 28 nombres, soit 256 valeurs différentes.
un octet permet de coder des valeurs numériques ou jusqu'à 256 caractères différents.
Les systèmes d’exploitation ont évolué pour passer de 8 bits à 16 bits (la série des windows 1 à Windows
3.xx), à 32 bits (Windows 95 à Windows 7 32 bits) et enfin à 64 bits (Windows XP 64 bits à Windows 8).
Les nouveaux ordinateurs sont 64 bits (c’est à dire qu’ils calculent sur 8 octets à la fois (8 octets x 8 bits = 64
bits)). Les éléments qui composent l’ordinateur (Processeur, bus de données, etc) sont en 64 bits. Ils peuvent
donc ainsi adresser plus d’informations en une seule fois (2 fois plus qu’en 32 bits).
L’octet est couramment utilisé pour indiquer la capacité de mémorisation des mémoires.
Le plus grand entier naturel que l’on puisse coder sur 8 bits est : 11...1 255
8 un
2
Le plus grand entier naturel que l’on puisse coder sur 16 bits est : 11...1 65 536
16 un
2
Le plus grand entier naturel que l’on puisse coder sur 64 bits est : 11...1 264 1
64 un
2
11...1 1 10...0 1 2 256 donc 11...1 255
8
Démonstrations :
8 un 2 8 un 2 8 un 2
11...1 1 10...0 2 donc 11...1 264 1
64
64 un
64 un 2 64 un 2 2
Ordre de grandeur du résultat :
6 6
210 1024 103 donc 264 210 24 103 16 1,6 1019
264 18446744073709551614 1,84 1019
7) Le système hexadécimal
Le code binaire génère des messages souvent beaucoup trop longs à exploiter, ce qui sature les mémoires et
ralentit le fonctionnement de la machine.
On utilise le langage hexadécimal pour alléger les écritures, en base 16 alphanumérique, avec 16 symboles :
les dix premiers chiffres et les lettres A à F pour les six suivants.
Base
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
décimale
Base
0 1 2 3 4 5 6 7 8 9 A B C D E F
hexadécimale
Base binaire 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
8) Le code ASCII
La mémoire de l'ordinateur conserve toutes les données sous forme numérique. Il n'existe pas de méthode pour
stocker directement les caractères. Chaque caractère possède donc son équivalent en code numérique :
c'est le code ASCII (American Standard Code for Information Interchange - traduisez « Code Americain
Standard pour l'Echange d'Informations »). Le code ASCII de base représentait les caractères sur 7 bits (c'est-
à-dire 128 caractères possibles, de 0 à 127).
Les codes 0 à 31 ne sont pas des caractères. On les appelle caractères de contrôle car ils permettent
de faire des actions telles que :
o retour à la ligne (CR)
o Bip sonore (BEL)
Les codes 65 à 90 représentent les majuscules
Les codes 97 à 122 représentent les minuscules
Pour le dire autrement, l’ordinateur gère tous les caractères comme des nombres en base 16.
Cours de Python – 2 : Pourquoi Python ?
Python est un langage de programmation, dont la première version est sortie en 1991.
Créé par Guido van Rossum, il a voyagé du Macintosh de son créateur, qui travaillait
à cette époque au Centrum voor Wiskunde en Informatica aux Pays-Bas, jusqu'à se
voir associer une organisation à but non lucratif particulièrement dévouée, la Python
Software Foundation, créée en 2001.
1) Le langage machine
Python est un langage de programmation interprété, c’est-à-dire que les instructions que vous lui envoyez
sont « transcrites » en langage machine au fur et à mesure de leur lecture.
D'autres langages (comme le C / C++) sont appelés « langages compilés » car, avant de pouvoir les exécuter,
un logiciel spécialisé se charge de transformer le code du programme en langage machine. On appelle cette
étape la « compilation ». À chaque modification du code, il faut rappeler une étape de compilation.
Les avantages d'un langage interprété sont la simplicité (on ne passe pas par une étape de compilation avant
d’exécuter son programme) et la portabilité (un langage tel que Python est censé fonctionner aussi bien sous
Windows que sous Linux ou Mac OS, et on ne devrait avoir à effectuer aucun changement dans le code pour
le passer d'un système à l'autre). Cela ne veut pas dire que les langages compilés ne sont pas portables, loin de
là ! Mais on doit utiliser des compilateurs différents et, d'un système à l'autre, certaines instructions ne sont
pas compatibles, voire se comportent différemment.
En contrepartie, un langage compilé se révélera bien plus rapide qu'un langage interprété (la traduction
à la volée de votre programme ralentit l’exécution), bien que cette différence tende à se faire de moins en
moins sentir au fil des améliorations. De plus, il faudra installer Python sur le système d’exploitation que
vous utilisez pour que l'ordinateur puisse comprendre votre code.
Langages assembleurs :
Assembleur, Fortran (1954), Lisp (1958), Cobol (1960) (applications gestions),
Basic (1964), C (1970), SQL (1978) (langage de requêtes),
C++ (1985), Python (1990), Java (1995), JavaScript (1995), PHP (1995), C♯ (2000), Swift (2014)
(applications IOS).
Dans l’ordre de popularité : Java, C, C++, Python
Le classement TIOBE 2017 sur l’utilisation des langages
3) À quoi peut servir Python ?
Il est, en outre, très facile d'étendre les fonctionnalités existantes, comme nous allons le voir. Ainsi, il existe
ce qu'on appelle des bibliothèques qui aident le développeur à travailler sur des projets particuliers. Plusieurs
bibliothèques peuvent ainsi être installées pour, par exemple, développer des interfaces graphiques en Python.
de petits programmes très simples, appelés scripts, chargés d'une mission très précise sur votre
ordinateur ;
des programmes complets, comme des jeux, des suites bureautiques, des logiciels multimédias, des
clients de messagerie…
des projets très complexes, comme des progiciels (ensemble de plusieurs logiciels pouvant fonctionner
ensemble, principalement utilisés dans le monde professionnel).
pas de taille max pour les entiers, cela dépend de la mémoire physique de l’ordinateur
: rappeler la dernière instruction
2.01023 : 8.98846567431158e+307
2.01024 : saturation overflow error 21024 existe
taille max : environ 10307
En base 2 : stockage de 52 chiffres possible après la virgule
Tests et booléens :
Test : 3*2 6 réponse TRUE
2*0.1 0.2 réponse TRUE
3*0.1 0.3 réponse FALSE
Explications !!! En base 10 : En base 16 :
1 3 1 5
10 0,33… 10 16 0,33…
10 10 16
1 1
Ainsi 0,333...10 et 0,333...16
3 5
1
Or 3 00112 donc 0, 001100110011...2
5
Or seules 52 décimales sont stockées en mémoire, on perd les dernières décimales, ce qui induira une erreur.
dans les tests, demander si la différence est inférieure à 1015
L’arithmétique sur les flottants est très compliquée
1 2** 52 1 réponse FALSE 1, 0...1
52 bits
• si (IF) la condition est vraie, alors le bloc d’instructions qui suit est exécuté,
• sinon si (ELIF) : si le premier test a échoué, on peut effectuer un deuxième test,
• sinon (ELSE), c’est-à-dire si la (ou les) condition est fausse, alors c’est ce bloc d’instructions qui est
exécuté.
Comparaison de nombres
Vous aurez souvent à comparer des nombres. Voici une liste des opérateurs que vous pourrez utiliser.
• x == y est vrai quand x est égal à y,
• x != y est vrai quand x est différent de y,
• x > y est vrai quand x est strictement supérieur à y,
• x < y est vrai quand x est strictement inférieur à y,
• x >= y est vrai quand x est supérieur ou égal à y, et
• x <= y est vrai quand x est inférieur ou égal à y.
Exercice 1 :
nb = float(input("Entrer un nombre plus petit que 100 :"))
if nb < 100:
print("Ce nombre convient.")
else:
print("Ce nombre est trop grand.")
IF : le test commence :
• si (IF) la condition (nb < 100) est vraie, alors le bloc d’instructions qui suit (ici une seule instruction)
est exécuté,
• sinon (ELSE), c’est-à-dire si la condition (nb < 100) est fausse, alors c’est l’autre bloc d’instructions
qui est exécuté.
ELIF : « sinon si »
Subtilité : supposons que l’on veuille que variable i prenne successivement les valeurs 4,7,10,… jusqu’à 31 :
on saisit : for i in range(4,32,3): le troisième paramètre définit le pas de variation
par défaut, le pas vaut 1
le pas doit être un nombre entier
Si on veut afficher les carrés des entiers de 1 à 7 :
for i in range(1, 8): # pour i allant de 1 à 7
print(i**2)
1
4
9
16
25
36
49
Puis terminons sur un exemple classique qui est le calcul de la somme des premiers entiers. Disons ici que
30
l’on s’arrête à 30. Autrement dit, on veut calculer 1 2 3 ... 30 que l’on note aussi
i 1
i:
Ex : i = 1
while i <= 3: # tant que i reste inférieur ou égal à 3, on reste dans la boucle
print(i)
i=i+1 1
2
3
Ici tant que (while) la condition i 3 est vraie, le bloc d’instructions (il y en a deux dans notre cas) est
exécuté.
Regardons ce code pas à pas pour bien comprendre ce qu’il se passe.
1 i=1
2 while i <= 3:
3 print(i)
4 i=i+1
La deuxième instruction i = i + 1 est primordiale car elle assure que l’on va sortir de la boucle. En effet, ce
qu’il faut éviter avec les boucles tant que, c’est de construire une boucle sans fin. C’est ce qui peut se produire
si la condition du while n’est jamais vérifiée.
Pour savoir combien de fois la boucle while est exécutée, il peut être utile d’utiliser une variable qui servira
de compteur, c’est-à-dire une variable (qu’il ne faut pas oublier d’initialiser) et incrémentée de 1 dans le bloc
d’instructions.
5 55 6 55
La bonne réponse est 5 car : 1 2 3 4 5 1 4 9 16 25 55
2 2 2 2 2
Boucle infinie : pour arrêter un programme qui tourne sans fin et consomme toute la mémoire :
Control K control KILL
Notre Dame de La Merci
Exercices sur Python avec les boucles :
Exercice 1 :
Écrire un programme qui demande un nombre flottant puis calcule le plus grand entier dont le carré est plus
petit que ce nombre.
Exercice 2 :
Saisir un nombre puis calculer la somme des n premiers carrés : 12 22 32 ... n2
Exercice 3 :
1 1 1 1
Saisir un nombre puis calculer la somme des n premiers inverses : ...
1 2 3 n
Exercice 4 :
1 1 1 1
Saisir un nombre puis calculer la somme des n premiers inverses : 2 2 2 ... 2 .
1 2 3 n
2
Pour de grandes valeurs de n, comparer le résultat obtenu avec .
6
Exercice 6 :
Demander à la machine de choisir aléatoirement un numéro entier entre 1 et 20.
Le joueur rejoue jusqu’à ce qu’il trouve le nombre secret :
le programme vous répond si votre nombre est trop petit, trop grand ou égal à celui trouvé par le programme.
le programme affiche le nombre d’essais ayant mené au bon résultat.
Exercice 7 :
Lors de la construction d’un barrage, on a créé un lac artificiel contenant initialement 80 millions de m3 d’eau.
Chaque année, on estime qu’on prélève 10 % du volume du lac pour produire de l’électricité. Ce lac est par
ailleurs alimenté par une rivière qui lui apporte 6 millions de m3 d’eau par an. Écrire un programme qui
calcule, année après année la capacité du lac.
Exercice 9 :
Saisir un nombre puis afficher tous les nombres premiers inférieurs à ce nombre.