Introduction
INTRODUCTION
I.Introduction
1. Définitions
a. L’information
L’information est le support formel d’un élément de connaissance humaine
susceptible d’être représentée à l’aide de conventions (codages) afin d’être
conservée, traitée ou communiquée.
b. La donnée
Une donnée est la représentation d’une information sous une forme
conventionnelle (codée) destinée à faciliter son traitement.
c. Traitement de l’information
Le traitement de l’information consiste à appliquer un ou plusieurs opérations sur
une information en entrée pour générer des résultats en sortie
d. L’ordinateur
Un ordinateur est une machine électronique programmable destinée au
traitement de l’information.
e. L’informatique
L’informatique est la science du traitement de l’information dans les domaines
scientifiques, techniques, économiques et sociaux.
Exemples de traitements de l’information par informatique :
-démontrer un théorème (mathématique)
-faire jouer aux échecs (intelligence artificielle)
-dépouiller un sondage (économie)
-gérer un robot industriel (atelier)
-facturation de produits (entreprise)
-traduire un texte (linguistique)
-imagerie médicale (médecine)
-formation à distance (éducation)
-Internet (grand public)...etc
1/23
TDI CHAPITRE I
Introduction
f. Le système informatique
Ensemble de matériels (ordinateurs, réseaux) et de logiciels permettant
d'acquérir, de stocker, de traiter, de communiquer des données pour répondre
aux besoins en information de ses utilisateurs.
g. Le système d’information
En télécommunications et en informatique, le terme système d'information (ou
SI) possède les significations suivantes :* Un système, automatisé ou manuel, qui
comprend des hommes, des machines et des méthodes organisés pour assembler,
transmettre et répandre des données qui représentent de l'information pour les
utilisateurs. ...
2/23
TDI CHAPITRE II
Algorithmique (Notions de base)
ALGORITHMIQUE
(NOTIONS DE BASE)
I Introduction
1. Notion de programme informatique
Un programme, informatique, se définit comme une série d’instructions dans un
langage que l’ordinateur comprend. Un bon programme doit :
- fonctionner
- fonctionner selon les spécifications
- pouvoir être modifié facilement
- être prêt à temps
- être très bien documenté
- utiliser la mémoire efficacement
2. Notion d’algorithme
- Un algorithme décrit un traitement sur un certain nombre, fini, de données
(éventuellement aucune).
- Un algorithme est la composition d'un ensemble fini d'étapes, chaque étape
étant formée d'un nombre fini d'opérations dont chacune est :
- définie de façon rigoureuse et non ambiguë;
- effective, c'est-à-dire pouvant être effectivement réalisée par une
machine: cela correspond à une action qui peut être réalisée avec un
papier et un crayon en un temps fini; par exemple la division entière est
une opération effective, mais pas la division avec un nombre infini de
décimales.
- Quelle que soit la donnée sur laquelle il travaille, un algorithme doit
toujours se terminer après un nombre fini d'opérations, et fournir un
résultat.
Un algorithme doit répondre aux 5 caractéristiques suivantes :
La finitude
La précision
Le domaine des entrées
Le domaine des sorties
L’exécutabilité
3. Organigramme et pseudo-code
Historiquement, plusieurs types de notations ont représenté des algorithmes.
Il y a eu notamment une représentation graphique, avec des carrés, des losanges,
etc. qu’on appelait des organigrammes. Aujourd’hui, cette représentation est
quasiment abandonnée, pour deux raisons. D’abord, parce que dès que
l’algorithme commence à grossir un peu, ce n’est plus pratique du tout. Ensuite
3/23
TDI CHAPITRE II
Algorithmique (Notions de base)
4. Algorithmique et programmation
Les ordinateurs, quels qu’ils soient, ne sont fondamentalement capables de
comprendre que quatre catégories d'ordres (en programmation, on n'emploiera
pas le terme d'ordre, mais plutôt celui d'instructions). Ces quatre familles
d'instructions sont :
• l’affectation de variables
• la lecture / écriture
• les tests
• les boucles
4/23
TDI CHAPITRE II
Algorithmique (Notions de base)
b. Les variables
Pour employer une image, une variable est une boîte, que le programme
(l’ordinateur) va repérer par une étiquette (Nom de variable). Pour avoir accès au
contenu de la boîte, il suffit de la désigner par son étiquette.
Dans l’ordinateur, physiquement, il y a un emplacement de mémoire, repéré par
une adresse binaire. Si on programmait dans un langage directement
compréhensible par la machine, on devrait désigner nos données par des chiffres
binaires (0 et 1).
Les langages informatiques plus évolués (ce sont ceux que presque tout le monde
emploie) se chargent précisément, entre autres rôles, d’épargner au
programmeur la gestion fastidieuse des emplacements mémoire et de leurs
adresses. Il est beaucoup plus facile d’employer des noms de variables de son
choix, que de devoir manier des adresses binaires.
La première chose à faire avant de pouvoir utiliser une variable est de créer la
boîte et de lui coller une étiquette. Ceci se fait tout au début de l’algorithme,
avant même les instructions proprement dites. C’est ce qu’on appelle la
déclaration des variables Le nom de la variable (l’étiquette de la boîte) obéit à
des impératifs changeant selon les langages. Toutefois, une règle absolue est
qu’un nom de variable peut comporter des lettres et des chiffres, mais qu’il
exclut la plupart des signes de ponctuation, en particulier les espaces. Un nom de
variable correct commence également impérativement par une lettre. Quant au
nombre maximal de signes pour un nom de variable, il dépend du langage utilisé.
En pseudo-code algorithmique, on est bien sûr libre du nombre de signes pour un
nom de variable.
Lorsqu’on déclare une variable, il ne suffit pas de créer une boîte (réserver un
emplacement mémoire) ; encore doit-on préciser ce que l’on voudra mettre
dedans, car de cela dépendent la taille de la boîte (de l’emplacement mémoire) et
le type de codage utilisé.
2. Expression et opérateur
Une expression est un ensemble de valeurs, reliées par des opérateurs, et
équivalent à une seule valeur
Par exemple, voyons quelques expressions de type numérique. Ainsi :
5/23
TDI CHAPITRE II
Algorithmique (Notions de base)
7
5+4
123-45+844
T-12+5-R
sont toutes des expressions valides, à condition que T et R soient bien des
nombres. Car dans le cas contraire, la quatrième expression n’a pas de sens. En
l’occurrence, les opérateurs employés sont l’addition (+) et la soustraction (-).
Un opérateur est un signe qui relie deux valeurs, pour produire un résultat.
Les opérateurs possibles dépendent du type des valeurs qui sont en jeu. On peut
avoir :
a. Opérateurs numériques :
Ce sont les quatre opérations arithmétiques :
+ : addition
- : soustraction
* : multiplication
/ : division
Mentionnons également le ^ qui signifie « puissance ». 45 au carré s’écrira donc
45 ^ 2.
Enfin, on a le droit d’utiliser les parenthèses, avec les mêmes règles qu’en
mathématiques. La multiplication et la division ont « naturellement » priorité sur
l’addition et la soustraction. Les parenthèses ne sont ainsi utiles que pour
modifier cette priorité naturelle.
Cela signifie qu’en informatique, 12 * 3 + 5 et (12 * 3) + 5 valent strictement la
même chose, à savoir 41. Pourquoi dès lors se fatiguer à mettre des parenthèses
inutiles ?
En revanche, 12 * (3 + 5) vaut 12 * 8 soit 96. Rien de difficile là-dedans, que du
normal.
6/23
TDI CHAPITRE II
Algorithmique (Notions de base)
3. L’affectation
Consiste à mettre la valeur d’une variable dans une autre variable
Pseudo-code : Variable1 Variable2
Exemple x10 ; yx
4. Lecture et écriture
La lecture permet d’attribuer une valeur à un objet en allant lire sur un
périphérique d’entrée (exemple clavier) et elle range cette valeur dans l’objet.
Pseudo-code Organigramme
Pseudo-code Organigramme
Début
début
.
.
Fin
fin
7/23
TDI CHAPITRE II
Algorithmique (Notions de base)
Pseudo-code Organigramme
Si condition alors
Fausse Vrai
Bloc d’instructions condition
Sinon
Bloc d’instructions
Traitement si Traitement si
Fin si condition fausse condition vrai
Exemple : si x>=0 alors
Ecrire (x,« est positif »)
Sinon
Ecrire(x,« est négatif »)
Fin si
b. L’instruction SELON
L’instruction selon permet d’évaluer plusieurs cas pour des valeurs d’une variable
de type simple tel que caractère ou entier. C’est une structure que l’on trouve
dans tous les langages de programmation et qui permet d’éviter des si imbriqués
Pseudo-code Organigramme
8/23
TDI CHAPITRE II
Algorithmique (Notions de base)
Répéter
Bloc d’instructions
Jusqu'à condition Traitement
Exemple :
X10
Répéter Fausse
Vrai condition
Xx-1
Jusqu'à x=0
c. La boucle pour
La boucle pour est une structure qui existe dans la majorité des langages de
programmation et qui permet de répéter un traitement un certain nombre de
fois, le nombre de répétition est connu à l’avance. La boucle pour utilise une
variable compteur qui sera incrémentée ou décrémentée automatiquement selon
la valeur du pas
Pseudo-code
Traitement de la boucle
Fin pour
Exemple
Début
Pour i=5 à 100 pas 5
Ecrire (i, « est un multiple de 5 »)
Fin pour
Répéter
Bloc d’instructions
Tant que condition Traitement
Exemple :
X10
Répéter Fausse
condition
Xx-1 Vrai
Tant que x>0
9/23
TDI CHAPITRE II
Algorithmique (Notions de base)
10/23
TDI CHAPITRE III
Algorithmique (Les tableaux)
CHAPITRE II
I.Introduction
1. Définition :
Une liste est une suite d’éléments de même type. Dans un programme, pour
ranger les éléments d’une liste on peut utiliser plusieurs variables simples mais
lorsque le nombre d’éléments Atteint une certaine limite il devient impossible
d’adopter cette solution.
Exemple :
Considérons le tableau T suivant :
45 20 13 5 95 10 7 T:
Début
I0
Tant que i<N
I I + 1
Lire(T(i))
Fin Tq
Fin
11/23
TDI CHAPITRE III
Algorithmique (Les tableaux)
1. La recherche séquentielle :
La recherche séquentielle consiste à balayer le tableau séquentiellement
en partant du 1er élément ou du dernier jusqu'à trouver l’élément recherché ou
arriver à la fin du tableau.
12/23
TDI CHAPITRE III
Algorithmique (Les tableaux)
Fin
13/23
TDI CHAPITRE III
Algorithmique (Les tableaux)
14/23
TDI CHAPITRE III
Algorithmique (Les tableaux)
15/23
TDI CHAPITRE III
Algorithmique (Les tableaux)
Fin Tq
T(j)p
Fin pour
Fin
c. Tri bulle
-Méthode :
En commençant du 1er élément on compare chaque élément à son suivant si c’est
supérieur on permute et on passe à l’élément suivant après avoir compté le
nombre de permutation on continu jusqu'à la fin du tableau, on répète ce
traitement jusqu'à ce que le nombre de permutation est nul.
-Algorithme
Début
Répéter
Permuter=faux
I1
Répéter
Si T(i)>T(i+1) alors
Permutervrai
X<-T(i)
T(i)T(i+1)
T(i+1)x
Fin si
Ii+1
Jusqu'à i=N
Jusqu'à permuter=faux
Fin
16/23
TDI CHAPITRE III
Algorithmique (Les tableaux)
Sinon
Ii+1
Fin si
Fin Tq
Fin
17/23
TDI CHAPITRE IV
Algorithmique (Les procédures et les fonctions)
CHAPITRE III
I. INTRODUCTION
Lorsqu'un programme est long, il est irréaliste d'écrire son code d'un seul
tenant. En fait, on décompose le programme en plusieurs parties plus petites, on
donne un nom à chacune de ces parties, et on les assemble pour former le
programme final. C'est le principe de la programmation structurée ou
modulaire, qui repose sur l'écriture de sous-programmes.
Un sous-programme est, comme son nom l'indique, un programme réalisant un
traitement particulier qui s'exécute à l'intérieur d'un autre programme.
Les sous-programmes sont utilisés pour deux raisons essentielles :
- quand un même traitement doit être réalisé plusieurs fois dans un
programme (ou qu'il est utilisé dans plusieurs programmes): on écrit un sous-
programme pour ce traitement et on l'appelle à chaque endroit où l'on en a
besoin. On évite ainsi de réécrire plusieurs fois le code du traitement.
- pour organiser le code , améliorer la conception et la lisibilité des gros
programmes. En effet, le découpage en sous-programmes permet de traiter
séparément les difficultés.
Certains sous-programmes ont déjà été écrits et peuvent être utilisés
directement dans n'importe quel programme. Ce sont des sous-programmes
standards ou prédéfinis. C'est le cas par exemple des sous programmes
permettant de faire des calculs mathématiques (racine carrée, exposant, sinus,
log …). La nature et le nombre de programmes standards dépendent des langages.
Mais les sous-programmes prédéfinis ne suffisent pas pour découper un gros
programme : le programmeur est amené à écrire le code de ses propres sous-
programmes.
Il existe deux sortes de sous-programmes : les procédures et les fonctions
Nous allons étudier d'abord les procédures simples, puis les fonctions.
18/23
TDI CHAPITRE IV
Algorithmique (Les procédures et les fonctions)
Procédure ligneEtoile( )
Var
i : entier
Début
Pour i = 1 jusqu'à 10 Faire
Ecrire ('*')
FinPour
Ecrire('\n') //retour à la ligne
FinProc
Cette procédure permet d'afficher une ligne de 10 étoiles puis passe à la ligne.
Programme RectangleEtoile
Var
nlignes: entier
cpt : entier
Début
Ecrire("Ce programme dessine un rectangle d'étoiles. Combien voulez-vous de
lignes?")
Lire(nlignes)
Pour cpt=1 jusqu'à nlignes Faire
ligneEtoile ( ) Appel de la
procédure ligneEtoile
FinPour
Fin
Lorsque le processeur rencontre l'appel d'une procédure, il arrête
momentanément l'exécution du programme appelant pour aller exécuter les
instructions de la procédure. Quand il a terminé l'exécution de la procédure, le
processeur reprend l'exécution du programme appelant là où il s'était arrêté.
Une procédure peut être appelée soit par un programme, soit par un autre sous-
programme (qui lui même a été appelé). Les appels de sous-programmes peuvent
s'imbriquer autant qu'on le désire.
19/23
TDI CHAPITRE IV
Algorithmique (Les procédures et les fonctions)
Procédure ligneEtoile( )
Var
i : entier
Début
Pour i=1 jusqu'à 10 Faire
Ecrire('*')
FinPour
Ecrire('\n')
FinProc
20/23
TDI CHAPITRE IV
Algorithmique (Les procédures et les fonctions)
i : entier
Début
Ecrire("Ce programme dessine un rectangle d'étoiles.")
Ecrire("Combien voulez-vous d'étoiles par ligne?")
Lire(netoiles)
Ecrire("Combien voulez-vous de lignes?")
Lire(nlignes)
Pour i=1 jusqu'à nlignes Faire
ligneEtoile (netoiles)
FinPour
Fin paramètre effectif
21/23
TDI CHAPITRE IV
Algorithmique (Les procédures et les fonctions)
déclaration du
paramètre formel
Exemple :
22/23
TDI CHAPITRE IV
Algorithmique (Les procédures et les fonctions)
/*Cette fonction permet de faire saisir à l'utilisateur un nombre positif qui est
alors retourné*/
Var
nb_saisi :entier
Début
Ecrire( "Veuillez entrer un nombre positif")
Lire( nb_saisi)
Tantque nb_saisi < 0 Faire
Ecrire( "Erreur. Saisissez un nombre supérieur à 0 s'il vous plait !")
Lire( nb_saisi)
FinTantque
Retourne nb_saisi
FinFonction
Remarque :
Les paramètres d'une fonction sont toujours de type donnée. La valeur des
paramètres effectifs à l'appel est recopiée dans les paramètres formels qui
servent à réaliser le traitement de la fonction.
23/23