Vous êtes sur la page 1sur 74

L'essentiel en technologies de

l'information
plan
• Découvrir les notions de base de la
programmation informatique
• Manipuler les données avec un
tableur Excel
• Protéger les données personnelles et
la vie privée
Découvrir les notions de base de la
programmation

Chapitre 1 : Rôle des algorithme dans


l’informatique
• C’est quoi un probleme?
• C’est quoi un algoritheme?
Les algorithmes sont omniprésents et dirigent
notre économie, notre société et peut-être
même la façon dont nous pensons.

Mais en fait, qu’est-ce qu’un algorithme ?

Dans le domaine des mathématiques, dont le


terme est originaire, un algorithme peut être
considéré comme un ensemble d’opérations
ordonné et fini devant être suivi dans l’ordre
pour résoudre un problème.
Pour effectuer une tâche, quelle qu’elle soit, un
ordinateur a besoin d’un programme
informatique. Or, pour fonctionner, un
programme informatique doit indiquer à
l’ordinateur ce qu’il doit faire avec précision,
étape par étape.
L’ordinateur ” exécute ” ensuite le programme,
en suivant chaque étape de façon mécanique
pour atteindre l’objectif. Or, il faut aussi dire à
l’ordinateur ” comment ” faire ce qu’il doit faire.
C’est le rôle de l’algorithme informatique.
Les algorithmes informatiques fonctionnent par
le biais d’entrées (input) et de sortie (output).

Ils reçoivent l’input, et appliquent chaque étape


de l’algorithme à cette information pour générer
un output.
Exemple
• un moteur de recherche est un algorithme
recevant une requête de recherche en guise
d’input. Il mène une recherche dans sa base
de données pour des éléments correspondant
aux mots de la requête, et produit ensuite les
résultats
Les ordinateurs ne comprennent pas le langage
humain, et un algorithme informatique doit
donc être traduit en code écrit dans un langage
de programmation. Il existe de nombreux
langages tels que Java, Python, C, C++…
chacun présente des spécificités et convient
davantage à un cas d’usage spécifique.
le programme binaire est constitué d’un
ensemble de valeurs constituées de 0 et 1 c’est
ce qu’on appelle les bits.
Du coup un bit est l’élément de base avec lequel
travaille l’ordinateur (nous pouvons le comparer
avec vrai/faux, on/off…). Et voici quelques
exemples de valeurs décimales converties en
binaires.
Système binaire
• Ce système dit de base 2 comprend deux
symboles différents : 0 et 1.
• Chacun d’eux est aussi appelé bit qui est la
contraction de l’anglais binary digit (élément
binaire).
• Exemple : (1001 1011)2 est un nombre binaire
de 8 bits.
• Pour écrire un chiffre on ne peut utiliser que
ces deux symboles. Ainsi l'écriture suivante est
correcte : N = (11001)2.
Par contre l'écriture suivante ne l'est pas : N =
(201253)2.
Dans cette dernière écriture les symboles 2, 3 et
5 sont interdits car la base utilisée est la base
binaire(indiquée par l'indice 2).
mais que vaut le chiffre (11001)2 dans
la base 10 (qui est pour nous la base
naturelle) ?
• Tout d'abord nous allons décomposer le
nombre dans sa base (comme ci-dessus). Nous
avons
• donc :
• N = (11001)2 = 1.24 + 1.23+ 0.22+ 0.21+ 0.20
• Il ne reste plus qu'à calculer ce que nous
venons d'écrire, ainsi N vaut (25)10.
• En utilisant n bits, on peut former 2n nombres
différents et le plus grand d’entre eux est égal
à 2n-1.
• Par exemple avec un dispositif à 3 bits (n = 3),
on peut représenter 23 = 8 nombres différents
dont le plus grand est (111)2 = (7)10.
Quelques définitions :
• Mot binaire : En informatique, l’unité de
traitement de l’information est le mot binaire (en
anglais Binary Word).
• Note :
- Un ensemble de 4 bits (Ou Mot de 4 bits) =
Quartet
- Un ensemble de 8 bits (Ou Mot de 8 bits) = Octet.
• Octet : Un octet (en anglais byte) est composé de
8 bits :
• Octet : Un octet (en anglais byte) est composé
de 8 bits :

On distingue :
- Le bits de poids fort b7 (MSB : Most Significant Bit).
- Le bits de poids faible b0 (LSB : Least Significant Bit).
• Autres unités :
• Un kilooctet (Ko) = 210 octets = 1024 octets
• Un Mégaoctet (Mo) = 220 octets = 1024 Ko = 1
048 576 octets
• Un Gigaoctet (Go) = 230 octets = 1024 Mo = 1
073 741 824 octets
• Un Téraoctet (To) = 240 octets = 1024 Go = 1
099 511 627 776 octets
• Remarque : Il est utile de noter que la
communauté internationale dans son
ensemble utilise préférentiellement le nom de
"byte" plutôt que le terme "octet" purement
francophone. Cela donne les notations
suivantes pour kilobyte, mégabyte, gigabyte et
terabyte : KB, MB, GB, TB. Notez l'utilisation
d'un B majuscule pour différencier Byte et bit.
• Un octet est un ensemble de 8 bits, en fait un
ordinateur ne calcule jamais sur 1 bit à la fois
mais sur un ou plusieurs octets. Pour simplifier
1Byte = 1 octet= 8 Bits.
Système octal
• Le système octal utilise un système de
numération ayant comme base 8 (octal =>
latin octo = huit).
• Il faut noter que dans ce système nous n'aurons
que 8 symboles seulement : 0, 1, 2, 3, 4, 5, 6, 7
• Ainsi, un nombre exprimé en base 8 pourra se
présenter de la manière suivante : (745)8
• Lorsque l'on écrit un nombre, il faudra bien
préciser la base dans laquelle on l'exprime pour
lever les éventuelles indéterminations (745 existe
aussi en base 10).
• Ainsi le nombre sera mis entre parenthèses (745
dans notre exemple) et indicé d'un nombre
représentant sa base (8 est mis en indice).
• Cette base obéira aux même règles que la base
10, vue précédemment, ainsi on peut
décomposer
• (745)8 de la façon suivante :
• (745)8 = 7 × 8 + 4 × 8 + 5 × 8
2 1 0

• (745)8 = 7 × 64 + 4 × 8 + 5 × 1
• (745)8 = 448 + 32 + 5
• Donc : (745)8 = (485)10
Système hexadécimal
• Le système hexadécimal est le système de numération à base
16. Il est utilisé dans les calculateurs numériques car la
représentation d’un nombre décimal est plus claire que sa
représentation binaire. En effet, (3561)16 = (0011 0101 0110
0001)2.
• Ce système comprend 16 symboles constitués par les dix
chiffres du système décimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 et les 6
premières lettres de l’alphabet A, B, C, D, E, F.
• Les valeurs des différentes lettres sont : A=10, B=11, C=12,
D=13, E=14 et F=15.
• Exemple : N = (5AF)16 . Ce nombre N peut se
décomposer comme suit :
• (5AF)16 = 5 × 16 + A × 16 + F × 16
2 1 0

• En remplaçant A et F par leur équivalent en


base 10, on obtient :
• (5AF)16 = 5 × 16 + 10 ×16 + 15 × 16
2 1 0

• (5AF)16 = 5 × 256 + 10 ×16 + 15 × 1


• Donc : (5AF)16 = (1455)10
Changement de base
Conversion d’un nombre d’une base «
b » en un nombre décimal
• Avec ce que nous venons de voir, la
transformation est relativement facile. Il suffit
de suivre les étapes suivantes :
• 1. Décomposer le nombre dans sa base.
• 2. Remplacer éventuellement les symboles
dans leur équivalent décimal.
• 3. Effectuer l'opération pour avoir un résultat
en base 10.
• N’existe pas
Conversion d’un nombre décimal en
un nombre d’une autre base
• Méthode : diviser le nombre décimal à convertir par la
base b et conserver le reste de la division.
• Le quotient obtenu est divisé par b et conserver le reste.
Il faut répéter l’opération sur chaque quotient obtenu.
• Les restes successifs sont écrits, en commençant par le
dernier, de la gauche vers la droite pour former
l’expression de (N)10 dans le système de base b. Cette
méthode est dite Méthode de la
• division successives.
• Exemple : Convertir N = (413)10 en binaire.
• Pour le nombre décimal 413, nous obtenons :
• Une « suite des dividendes », 413, 206, 103, 51, 25, 12, 6, 3, 1
• Une « suite des quotients », 206, 103, 51, 25, 12, 6, 3, 1, 0
• Une « suite des restes », 1, 0, 1, 1, 1, 0, 0, 1, 1
• La méthode classique pour obtenir le codage Binaire Naturel
est de juxtaposer les nombres de la suite des restes, prise à
l’envers, soit : (413)10 = (110011101)2
• On peut aussi considérer la suite des dividendes, prise à
l’envers, suite qui commence toujours par 1, soit ici : 1, 3, 6,
12, 25, 51, 103, 206, 413. En remplaçant par 1 les nombres
impairs et 0 les nombres pairs, on obtient: 1, 1, 0, 0, 1, 1, 1, 0,
1, une suite de chiffres qui, juxtaposés, donnent le codage
Binaire Naturel.
Conversion d’un nombre hexadécimal
en binaire
• Chaque symbole du nombre écrit dans le
système hexadécimal est remplacé par son
équivalent écrit dans le système binaire.
Conversion d’un nombre binaire en
hexadécimal
• C’est l’inverse de la précédente. Il faut donc
regrouper les 1 et les 0 du nombre par 4 en
commençant par la droite, puis chaque
groupe est remplacé par le symbole
hexadécimal correspondant.
Conversion d’un nombre octal en
binaire
• on regroupe les bits par groupe de 3 (en
commençant par la droite)
Exercice
• 25
• 140
• 4356
• 986745
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 traduit " 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). Le huitième bit est un bit de parité.
• Parité
• L'intérêt particulier des contrôles de parité est
de vérifier qu'aucune erreur simple ne se
produit lors du transfert d'un mot d'une
mémoire à une autre.
• Les codes 0 à 31 sont des caractères de contrôle
car ils permettent de faire des actions telles que
le retour à la ligne (CR), un Bip sonore (BEL)...
• Les majuscules sont représentées par Les codes
65 à 90 et les minuscules par les codes 97 à 122.
• En modifiant le 6ème bit nous passons de
majuscules à minuscules, c'est-à-dire en ajoutant
32 au code ASCII en base décimale.
• Le code ASCII a été mis au point pour la
langue anglaise, il ne contient donc pas de
caractères accentués, ni de caractères
spécifiques à une langue. Pour coder ce type
de caractère il faut recourir à un autre code.
Le code ASCII a donc été étendu à 8 bits (un
octet) pour pouvoir coder plus de caractères
(on parle d'ailleurs de code ASCII étendu).
Exemple d'une table de code étendu :
• Remarque : Mais malgré l’utilisation du code
ASCII étendu certains caractères comme les
caractères des langues qui n'ont pas d'alphabet
latin (comme l'arabe ou le chinois) ne peuvent
pas être codé.
• Le code ASCII tend à être remplacé par le
standard unicode. Ce standard code chaque
caractère sur 16 bits, ce qui laisse 65536
possibilités. Cela en laisse assez pour coder
toutes les langues du mondes (ou presque) ainsi
que des caractères spéciaux.
Tableau récapitulatif des différents
codes binaires
2- Construction d’un algorithme
Pour chaque problème, il vous est demandé de
définir clairement :
• Les données d’entrée du problème en
précisant leurs types et leur rôle,
• Les données de sortie du problème en
précisant leurs types,
• Les différentes instructions permettant
d’obtenir les données de sorties à partir des
données d’entrée.
• Les données (d’entrée et de sortie)
manipulées par un algorithme peuvent être de
nature différente (entiers, réels, caractères,
chaînes de caractères, booléens...). En
programmation, on parle de type plutôt que
de la nature de la donnée.

• Le type d'une donnée spécifie la taille occupée


par la donnée en mémoire, les opérations qui
lui sont applicables ainsi que l'intervalle de
valeurs autorisées.
Il faut savoir que Les types de bases, types
primitifs, types élémentaires ou encore types
simples, sont :
• Entier : représente l'ensemble des entiers
relatifs
• Réel : l'ensemble des réels
• Booléen : le domaine des booléens (vrai /
faux)
• Caractère : le domaine des caractères
alphanumériques
• Chaîne : le domaine des textes
Les primitives d’entrée et de sortie
Les primitives d'entrée/sortie permettent un
échange d'information entre l'algorithme et
l'utilisateur.

afficher(expression) // permet d’afficher sur


l’écran
saisir(nomVariable) // lecture par clavier
3- La structure d’un algorithme
La structure d’un algorithme est la suivante :
Algorithme nomAlgorithme
// déclaration des variables
Début
// liste des instructions
Fin
Un algorithme est constitué par un en-tête et un corps, ce
dernier étant constitué de deux parties.
• L'en-tête permet de donner un nom à l'algorithme. Ce
nom n'a pas de signification particulière mais doit respecter
les règles de formation des identifiants. Le fait de nommer
les algorithmes permet de les différencier.
• La première partie du corps, encadrée par les mots
Algorithme et Début, a un rôle descriptif. En particulier, elle
décrit les variables et constantes utilisées dans l'algorithme.
• La seconde partie du corps, encadrée par les mots Début
et Fin, a un rôle constructif. Elle décrit les traitements à
réaliser pour aboutir au résultat recherché. Chaque ligne
comporte une seule instruction.
L'algorithme commence son exécution sur le mot Début, se
déroule séquentiellement (ligne après ligne, de la première
à la dernière, dans cet ordre) et se termine sur le mot Fin.
Déclaration d’une variable
Une variable est un élément informatique
permettant de mémoriser une information dont
l'algorithme aura besoin au cours de son
exécution. Elle désigne donc un emplacement
mémoire qui permet de stocker une valeur.
Une variable est définie par :
• Un nom (ou identifiant) unique qui la désigne,
• Un type (appelé aussi domaine de définition)
unique qui définit de quel « genre » est
l'information associée à l'élément informatique,
• Une valeur attribuée et modifiée au cours du
déroulement de l'algorithme.
Pour la syntaxe de la déclaration d’une variable
est la suivante :
variable nomVariable : TypeVariable
Les instructions élémentaires
Une instruction peut etre :
• Un appel à une fonction prédéfinie ou une
procédure,
• Utilisation des primitives d’entrée et de sortie,
• Affection d’une variable,
• Structures conditionnelles,
• Structures répétitives,
• Structures à choix multiple,
• Structures itératives,
• Etc.
Structures conditionnelles
• Exemple 1
• Lire un nombre réel, et dire s'il est positif ou
strictement négatif.
ALGORITHME POS-NEG
VAR A : réel
DEBUT
ECRIRE("Donner un nombre ")
LIRE(A)
SI (A < 0) ALORS
ECRIRE(A, " est négatif ")
SINON
ECRIRE(A, " est positif ")
FINSI
FIN
Structures à choix multiples
Ecrire l'algorithme qui permet de saisir un
numéro de couleur de l'arc-en-ciel et d'afficher
la couleur correspondante : 1: rouge, 2 : orangé,
3 : jaune, 4 : vert, 5 : bleu, 6 : indigo et 7 : violet.
Structures répétitives
Ecrire l'algorithme qui permet de saisir les
moyennes des N étudiants de la classe
Informatique et de calculer la moyenne générale
de la classe.
ALGORITHME MOYENNE
VAR i, N : entier
MOY, MC : réel
DEBUT
ECRIRE("Donner le nombre d'étudiants")
LIRE(N)
SI (N > 0) ALORS
S ¬ 0 {Initialisation de S}
POUR i DE 1 A N FAIRE {Le pas égale 1 par défaut}
ECRIRE("Donner la moyenne de l'étudiant n°", i)
LIRE(MOY)
S ¬ S + MOY {on rajoute la moyenne du iième étudiant à la somme}
FIN FAIRE
MC ¬ S / N
ECRIRE("La moyenne de la classe est : ", MC)
SINON
ECRIRE("Erreur dans le nombre d'étudiants")
FINSI
FIN
Structures itératives
Types complexes
Nous avons vu au début les types des données
primitives , maintenant nous allons voir les
types complexes.
Les types complexes permettent de représenter
un ensemble organisé des données, à savoir :
• Les tableaux à une dimension,
• Les tableaux à plusieurs dimensions,
• Les structures des données.
Qu’est ce qu’un tableau ?
• Un tableau unidimensionnel ou tableau linéaire
est une variable indicée permettant de stocker
plusieurs valeurs de même type.
• Le nombre maximal d'éléments, qui est précisé à
la déclaration, s'appelle la dimension (ou
capacité) du tableau.
• Le type du tableau est le type de ses éléments.
• La position d'un élément s'appelle indice ou rang
de l'élément.
La déclaration d’un tableau à une dimension :

Variable nomVariable : TypeVariable [dimension]


Exercice
Ecrire un algorithme qui demande à l’utilisateur
un nombre compris entre 1 et 3 jusqu’à ce que
la réponse convienne.
Variable N : Entier
Debut
N←0
Ecrire "Entrez un nombre entre 1 et 3"
TantQue N < 1 ou N > 3
Lire N
Si N < 1 ou N > 3 Alors
Ecrire "Saisie erronée. Recommencez”
FinSi
FinTantQue
Fin

Vous aimerez peut-être aussi