Vous êtes sur la page 1sur 24

INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.

com

Cours : INFORMATIQUE /Niveau : (Licence professionnelle)


Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

COURS D’INFORMATIQUE

CLASSE : LICENCE
PROFESSIONELLE

MONKAM Fabrice

Maître ès science en Bioinformatique et Biostatistique

Doctorant Ph.D en modélisation épidémiologique

Université de Yaoundé I/ Laboratoire de Biotechnologie

Cours : INFORMATIQUE /Niveau : (Licence professionnelle)


Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

Chapitre 0 :

NOTIONS FONDAMENTALES.

Une donnée: est la représentation d’une information sous la forme conventionnelle


destinée à faciliter son traitement.

Traitement : déroulement systématique d’une suite d’opérations sur les données.

Information : est l’élément de connaissance susceptible d’être codée pour être conservée,
traitée, communiquée ou expédiée.

Informatique : science du traitement automatique et rationnel des informations à partir d’un


ou des ordinateurs ; il dérive de deux mots : information et automatique.

Acronyme : mot qui dérive de deux autres mots.

Programme : suite d’instructions cohérentes écrites et bien documentées selon la syntaxe


d’un langage de programmation.

Syntaxe: ensemble des règles de grammaire et d’orthographe d’un langage de


programmation.

Logiciel : ensemble de programmes cohérents et bien documentés construits pour une


application.

Ludiciel : logiciel de jeux (NEO-GEO, ZUMA DELUXE, FIFA 2004…).

Progiciel : logiciel standard c'est-à-dire traitant d’une application dont les

Fonctionnalités sont connues et normalisées (cao, pao, dao, fao).

Software: c’est la partie logicielle ou logique de l’ordinateur.

Hardware : c’est la partie matérielle de l’ordinateur.

Imprimante : périphérique de sortie qui permet de transférer sur du papier

ou un transparent un texte ou une image.

Scanner: périphérique d’entrée qui permet de transférer un texte ou une image du papier vers
l’ordinateur.

Cours : INFORMATIQUE /Niveau : (Licence professionnelle)


Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

Modem: Périphérique d’entrée-sortie permettant l’échange d’informations entre ordinateurs


via les lignes téléphoniques. Il convertit ainsi le signal numérique en analogique et vice-versa.

Graveur de CD : Périphérique d’entrée-sortie qui permet la lecture et l’enregistrement


des données sur des CD – ROM.

Lecteur de disquette : Périphérique d’entrée-sortie qui permet l’enregistrement des


données sur bandes magnétiques.

Ecran: Périphérique de sortie qui permet l’affichage et la visualisation des données

Souris : Périphérique d’entrée-sortie qui permet de déplacer, sélectionner et manipuler les


objets à l’écran.

Bit: binary digit c’est à dire 0 ou 1 en numérotation binaire ; plus petite unité d’information
manipulable par une machine numérique.

L’octet(en anglais Byte) ou B sous les numérotations ou notations est une unité d’information
composée de huit bits, il permet par exemple de stocker les caractères tels qu’une lettre ou un
chiffre.

De façon générale, l’ordinateur est constitué de deux parties essentielles : le matériel


et le logiciel.

Le matériel ou hardware est l’ensemble de tous les éléments physiques de l’ordinateur.

Le logiciel ou software est l’ensemble des programmes intouchables qui contrôlent le


fonctionnement de l’ordinateur.

Dans cette leçon, seule la partie matérielle sera évoquée. Le hardware est constitué de
trois éléments principaux.

I-L’UNITE CENTRALE.
Elle est le cœur du système, elle comprend :

1. L’unité de command

C’est l’unité qui coordonne le fonctionnement de tous les autres organes de l’unité centrale.
Elle est reliée aux autres unités par le bus de commande.

2. L’unité arithmétique et logique (U.A.L).

Cette unité permet :

- l’exécution des opérations arithmétiques.


Cours : INFORMATIQUE /Niveau : (Licence professionnelle)
Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

- La comparaison et la prise de décisions logiques.

L’ensemble (UAL+ UC) est appelé Microprocesseur

3. La mémoire centrale.

On appelle mémoire tout dispositif permettant de recevoir, conserver et restituer les


informations. Cependant l’ordinateur utilise deux types de mémoires: la mémoire centrale et
les mémoires de masse mais seules les mémoires centrales sont directement intégrées à
L’unité Centrale.

a- La RAM (Random Access Memory).

La RAM ou mémoire vive est une mémoire de travail. Elle perd son contenu

lorsque l’alimentation électrique est coupée, c’est pourquoi on dit qu’elle est volatile.

b- La ROM (Read Only Memory).

Le constructeur utilise cette mémoire pour enregistrer les programmes correspondant


aux fonctions automatiques. Elle ne peut être modifiée par l’utilisateur.

II-LES PERIPHERIQUES DE COMMUNICATION.


Il s’agit de tous les matériels permettant à l’homme de dialoguer avec la machine.

1- les Périphériques d’Entrée.

C’est l’ensemble des matériels chargés d’approvisionner l’unité centrale en informations. Ils
sont reliés à l’unité centrale par les bus de données. On distingue : la souris, le clavier, le
crayon optique, la table traçante, le scanner.

2- Les Périphériques de sortie.

C’est l’ensemble des matériels chargés de procurer ou restituer les résultats. Nous pouvons
citer l’écran, l’imprimante, les haut-parleurs.

3- Les Périphériques d’entrée/sortie.

Ces matériels jouent à la fois les rôles des Périphériques d’entrée et de sortie. On peut citer
le disque dur, le modem, le lecteur de CD/DVD-RW, la disquette, la clé USB.

III- LES MEMOIRES DE MASSE OU DE STOCKAGE.


Ce type de mémoire vient pallier les insuffisances des mémoires centrales. On peut citer :
Cours : INFORMATIQUE /Niveau : (Licence professionnelle)
Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

• Le disque dur.

• La disquette.

• La clé USB.

NB : On appelle Bus les pistes du circuit qui servent de liaisons physiques entre es
éléments matériels de l’ordinateur. On distingue trois types de bus : bus de données,
d’adresse et de commande. Pour rendre un ordinateur plus performant, on eut y augmenter
une carte d’extension.

Exemple de carte d’extension : carte graphique, carte son, carte T.V, carte eau.

Cours : INFORMATIQUE /Niveau : (Licence professionnelle)


Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

Chapitre 2 :

LE SYSTEME D’EXPLOITATION

Pour qu'un ordinateur soit capable de faire fonctionner un programme


informatique (appelé parfois application ou logiciel), la machine doit être en mesure
d'effectuer un certain nombre d'opérations préparatoires afin d'assurer les échanges entre le
processeur, la mémoire, et les ressources physiques(périphériques).

Le système d'exploitation (noté SE ou OS, abréviation du terme anglais Operating


System), est chargé d'assurer la liaison entre les ressources matérielles, l'utilisateur et les
applications (traitement de texte, jeu vidéo, ...). Ainsi lorsqu'un programme désire accéder à
une ressource matérielle, il ne lui est pas nécessaire d'envoyer des informations spécifiques au
périphérique, il lui suffit d'envoyer les informations au système d'exploitation, qui se
charge de les transmettre au périphérique concerné via son pilote. En l'absence de pilotes il
faudrait que chaque programme reconnaisse et prenne en compte la communication avec
chaque type de périphérique.

Le système d'exploitation permet ainsi de \"dissocier\" les programmes et le matériel, afin


notamment de simplifier la gestion des ressources et offrir à l'utilisateur une interface
HOMME-MACHINE (notée «IHM») simplifiée afin de lui permettre de s'affranchir de la
complexité de la machine physique.

I- ROLES DU SYSTEME D’EXPLOITATION


Cours : INFORMATIQUE /Niveau : (Licence professionnelle)
Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

Les rôles du système d'exploitation sont divers :

•Gestion du processeur: le système d'exploitation est chargé de gérer l'allocation du


processeur entre les différents programmes grâce à un algorithme d'ordonnancement. Le type
d'Ordonnanceur est totalement dépendant du système d'exploitation, en fonction de l'objectif
visé.

• Gestion de la mémoire vive : le système d'exploitation est chargé de gérer l'espace mémoire
alloué à chaque application et, le cas échéant, à chaque usager. En cas d'insuffisance de
mémoire physique, le système d'exploitation peut créer une zone mémoire sur le disque dur,
appelée «mémoire virtuelle».La mémoire virtuelle permet de faire fonctionner des
applications nécessitant plus de mémoire qu'il n'y a de mémoire vive disponible sur le
système. En contrepartie cette mémoire est beaucoup plus lente.

• Gestion des entrées/sorties : le système d'exploitation permet d'unifier et de contrôler


l'accès des programmes aux ressources matérielles par l'intermédiaire des pilotes (appelés
également gestionnaires de périphériques ou gestionnaires d'entrée/sortie).

• Gestion de l'exécution des applications : le système d'exploitation est chargé de la bonne


exécution des applications en leur affectant les ressources nécessaires à leur bon
fonctionnement. Il permet à ce titre de «tuer» une application ne répondant plus correctement.

• Gestion des droits : le système d'exploitation est chargé de la sécurité liée à l'exécution
des programmes en garantissant que les ressources ne sont utilisées que par les programmes et
utilisateurs possédant les droits adéquats.

• Gestion des fichiers: le système d'exploitation gère la lecture et l'écriture dans le système
de fichiers et les droits d'accès aux fichiers par les utilisateurs et les applications.

• Gestion des informations : le système d'exploitation fournit un certain

nombre d'indicateurs permettant de diagnostiquer le bon fonctionnement de la machine.

II- LES COMPOSANTES DU SYSTEME D’EXPLOITATION


Le système d'exploitation est composé d'un ensemble de logiciels permettant de gérer les
interactions avec le matériel. Parmi cet ensemble de logiciels on distingue généralement
les éléments suivants :

• Le noyau (en anglais Kernel) représentant les fonctions fondamentales du système


d'exploitation telles que la gestion de la mémoire, des processus, des fichiers, des
entrées-sorties principales, et des fonctionnalités de communication.

Cours : INFORMATIQUE /Niveau : (Licence professionnelle)


Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

• L'interpréteur de commande (en anglais Shell, traduisez «coquille» par opposition au


noyau) permettant la communication avec le système d'exploitation par l'intermédiaire d'un
langage de commandes, afin de permettre à l'utilisateur de piloter les périphériques en
ignorant tout des caractéristiques du matériel qu'il utilise, de la gestion des adresses
physiques, etc.

• Le système de fichiers (en anglais «file system», noté FS), permettant d'enregistrer les
fichiers dans une arborescence.

III- VIRUS ET ANTIVIRUS


A - DEFINITION

Un virus informatique est un logiciel malveillant écrit dans le but de se dupliquer sur
d'autres ordinateurs. Il peut aussi avoir comme effet, recherché ou non, de nuire en perturbant
plus ou moins gravement le fonctionnement de l'ordinateur infecté. Il peut se répandre à
travers tout moyen d'échange de données numériques comme l'Internet, mais aussi les
disquettes, les CD-ROM, les clefs USB, etc. Son appellation provient d'une analogie avec
le virus biologique puisqu'il présente des similitudes dans sa manière de se propager et
de se reproduire.

Les virus font souvent l'objet de fausses alertes que la rumeur propage,
encombrant les messageries. Certaines d'entre elles, jouant sur l'ignorance en
informatique des utilisateurs, leur font parfois détruire des éléments de système
d'exploitation totalement sains.

B- LES DIFFERENTS TYPES DE VIRUS ET ANTIVIRUS

1- les Virus

• Le virus classique est un morceau de programme, souvent écrit en assembleur, qui s'intègre
dans un programme normal, le plus souvent à la fin, mais aussi au début ou même au milieu.
Chaque fois que l'utilisateur exécute ce programme « infecté », il active le virus qui en profite
pour aller s'intégrer dans d'autres programmes exécutables. De plus, lorsqu'il contient une
charge virale, il peut, après un certain temps (qui peut être très long) ou un évènement
particulier, exécuter une action prédéterminée. Cette action peut aller d'un simple message
anodin à la corruption de certaines fonctions du système d'exploitation ou la corruption de
certains fichiers ou même la destruction complète de toutes les données de l'ordinateur. On
parle dans ce cas de bombe logique et de charge utile.

• Les macro-virus

Cours : INFORMATIQUE /Niveau : (Licence professionnelle)


Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

• Les virus-vers,

- Leur mode de propagation est lié au réseau, comme des vers, en général via
l'exploitation de failles de sécurité.
- Comme des vers, leur action se veut discrète, et non-destructrice pour les
utilisateurs de la machine infectée.
- Comme des vers, ils poursuivent des buts à visée large, tels que l'attaque par
saturation (Denial Of Service) d'un serveur web par des milliers de
machines infectées se connectant simultanément.

D'autres menaces existent en informatique, se distinguant souvent par l'absence de système


de reproduction caractéristique des virus : On parle alors de logiciel malveillant (en
anglais malware).

2- Les logiciels antivirus

Les antivirus sont des logiciels capables de détecter des virus, détruire, mettre en
quarantaine et parfois de réparer les fichiers infectés sans les endommager. Ils utilisent pour
cela de nombreuses techniques, parmi lesquelles :

• la reconnaissance de séquences d'octets caractéristiques (signatures) d'un virus


particulier ;

• la détection d'instructions suspectes dans le code d'un programme (analyse


heuristique);

• la création de listes de renseignements sur tous les fichiers du système, en vue de


détecter d'éventuelles modifications ultérieures de ces fichiers par un virus ;

• la détection d'ordres suspects ;

• la surveillance des lecteurs de supports amovibles : disquettes, CDROM, ...

Cours : INFORMATIQUE /Niveau : (Licence professionnelle)


Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

CHAPITRE 3 : ALGORITHME

1. Définitions

Un algorithme est une suite ?nie d’opérations élémentaires, à appliquer dans un ordre
déterminé, à des données. Sa réalisation permet de résoudre un problème donné.

Exemples: suivre une recette de cuisine, suivre un plan, faire une division euclidienne à la
main sont des exemples d’algorithme.

Remarque :
1. Un algorithme doit être lisible de tous. Son intérêt, c’est d’être codé dans un langage
informatique afin qu’une machine (ordinateur, calculatrice, etc.) puisse l’exécuter rapidement
et efficacement.

2. Les trois phases d’un algorithme sont, dans l’ordre :


(a) l’entrée des données
(b) le traitement des données
(c) la sortie des résultats

Lors de l’exécution d’un algorithme, on va avoir besoin de stocker des données, voire des
résultats. Pour cela, on utilise des variables. On attribue un nom à chaque variable.

Remarque :
1. Une variable est comme une boîte, repérée par un nom, qui va contenir une information.
Pour utiliser

2. Dans l’écriture d’un algorithme, on prendra l’habitude de préciser des le départ le nom des
variables utilisées en indiquant leur type (nombre, chaîne de caractère, liste, etc.). Cette étape
est appelée déclaration des variables. Définition :
Les instructions de base sur des variables sont les suivantes :
— la saisie: on demande à l’utilisateur de l’algorithme de donner une valeur à la variable ;
— l’affectation: le concepteur de l’algorithme donne une valeur à la variable. Cette valeur
peut-être le Résultat d’un calcul ;
— l’affichage: on affiche la valeur de la variable.

Exemple :
L’algorithme 1 est un exemple d’algorithme calculant l’image d’un réel x par la fonction f :

Remarque :
1. Dans l’algorithme 1, l’utilisateur saisit la variable x , alors que la variable y estaffectée au
cours du traitement.
Cours : INFORMATIQUE /Niveau : (Licence professionnelle)
Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

2. On suivra toujours la structure de l’algorithme 1 lors de l’écriture d’algorithmes.


Exercices :

Un type abstrait est un triplet composé : d'un nom, d'un ensemble de valeurs, d'un ensemble
d'opérations définies sur ces valeurs.
Les types abstrait de bases de l'algorithmique sont : entier, caractères, booléen, réel

. Les Expressions sont constituées à l'aide de variables déjà Déclarées, de valeurs, de


parenthèses et d'opérateurs du (des)type(s) des variables concernées.

. L'affectation est l'instruction qui permet de stocker une valeur dans une variable.

Toute variable doit être déclarée et recevoir une valeur initiale.

2. Types de base
Booléens
Une variable de type booléen prend comme valeur VRAI ou FAUX. Les opérations usuelles
sont ET, OU et NON qui sont données dans les tables qui suivent.

Cours : INFORMATIQUE /Niveau : (Licence professionnelle)


Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

Entiers
Une variable de type entier peut prendre comme valeur l'ensemble des nombres entiers
signés. Les opérations associées sont les opérations usuelles +,-,*, /.

Réels
Une variable de type réél peut prendre comme valeur l'ensemble des nombres réels. Les
opérations associées sont les opérations usuelles +,-,*,/.

Caractères
Une variable de type car peut prendre comme valeur l'ensemble des caractères imprimables.
On notera les valeurs entre guillemets. On considère souvent que les caractères sont ordonnés
dans l'ordre alphabétique.

Attention
Les valeurs "1" qui est un caractère, 1 qui est un entier, 1. qui est un réel sont différentes et
ne seront pas codés de la même manière dans la mémoire de la machine.

Comparaison
Les opérateurs <, =, ==, !=, >, = permettent de comparer les valeurs de type entier, réel et
caractère. Le résultat de cette comparaison est une valeur booléenne.

3. Structures importantes

3.1 L’instruction conditionnelle

Cours : INFORMATIQUE /Niveau : (Licence professionnelle)


Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

Remarque :

1. Il est important de respecter les espaces laissés au début de chaque ligne, car ils permettent
une meilleure lisibilité de l’algorithme.

2. Le « Sinon » n’est pas obligatoire. S’il n’est pas présent, aucune tâche ne sera effectuée si
la condition n’est pas remplie.

Cours : INFORMATIQUE /Niveau : (Licence professionnelle)


Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

Cours : INFORMATIQUE /Niveau : (Licence professionnelle)


Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

3.2. La boucle itérative ‘TantQue’


On peut dire en fait que les boucles constituent la seule vraie structure logique caractéristique
de la programmation. Si vous avez utilisé un tableur comme Excel, par exemple, vous avez
sans doute pu manier des choses équivalentes aux variables (les cellules, les formules) et aux
tests (la fonction SI…). Mais les boucles, ça, ça n'a aucun équivalent. Cela n'existe que dans
les langages de programmation proprement dits.

 A quoi cela sert-il donc ?

Prenons le cas d’une saisie au clavier (une lecture), où par exemple, le programme pose une
question à laquelle l’utilisateur doit répondre par O (Oui) ou N (Non). Mais tôt ou tard,
l’utilisateur maladroit, risque de taper autre chose que la réponse attendue. Dès lors, le
programme peut planter soit par une erreur d’exécution (parce que le type de réponse ne
correspond pas au type de la variable attendu) soit par une erreur fonctionnelle (il se déroule
normalement jusqu’au bout, mais en produisant des résultats fantaisistes).

Alors, dans tout programme un tant soit peu sérieux, on met en place ce qu’on appelle un
contrôle de saisie, afin de vérifier que les données entrées au clavier correspondent bien à
celles attendues par l’algorithme.

A vue de nez, on pourrait essayer avec un SI. Voyons voir ce que ça donne :

Variable Rep en Caractère


Début
Ecrire "Voulez vous un café ? (O/N)"

Cours : INFORMATIQUE /Niveau : (Licence professionnelle)


Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

Lire Rep
Si Rep <> "O" et Rep <> "N" Alors
  Ecrire "Saisie erronnée. Recommencez"
  Lire Rep
FinSi
Fin

Si l’on veut également bétonner en cas de deuxième erreur, il faudrait rajouter un SI. La
solution consistant à aligner des SI… en pagaille est donc une impasse. La seule issue est
donc de flanquer une structure de boucle, qui se présente ainsi :

TantQue booléen
 …
  Instructions
 …
FinTantQue

Le principe est simple : le programme arrive sur la ligne du TantQue. Il examine alors la
valeur du booléen (qui, je le rappelle, peut être une variable booléenne ou, plus fréquemment,
une condition). Si cette valeur est VRAI, le programme exécute les instructions qui suivent,
jusqu’à ce qu’il rencontre la ligne FinTant Que. Il retourne ensuite sur la ligne du TantQue,
procède au même examen, et ainsi de suite. Le manège enchanté ne s’arrête que lorsque le
booléen prend la valeur FAUX.

Illustration avec notre problème de contrôle de saisie. Une première approximation de la


solution consiste à écrire :

Variable Rep en Caractère


Début
Ecrire "Voulez vous un café ? (O/N)"
TantQue Rep <> "O" et Rep <> "N"
  Lire Rep
FinTantQue
Fin

Là, on a le squelette de l’algorithme correct. Mais de même qu’un squelette ne suffit pas pour
avoir un être vivant viable, il va nous falloir ajouter quelques muscles et organes sur cet
algorithme pour qu’il fonctionne correctement.

Son principal défaut est de provoquer une erreur à chaque exécution. En effet, l’expression
booléenne qui figure après le TantQue interroge la valeur de la variable Rep.
Malheureusement, cette variable, si elle a été déclarée, n’a pas été affectée avant l’entrée dans
la boucle. On teste donc une variable qui n’a pas de valeur, ce qui provoque une erreur et
l’arrêt immédiat de l’exécution. Pour éviter ceci, on n’a pas le choix : il faut que la variable
Cours : INFORMATIQUE /Niveau : (Licence professionnelle)
Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

Rep ait déjà été affectée avant qu’on en arrive au premier tour de boucle. Pour cela, on peut
faire une première lecture de Rep avant la boucle. Dans ce cas, celle-ci ne servira qu’en cas de
mauvaise saisie lors de cette première lecture. L’algorithme devient alors :

Variable Rep en Caractère


Début
Ecrire "Voulez vous un café ? (O/N)"
Lire Rep
TantQue Rep <> "O" et Rep <> "N"
  Lire Rep
FinTantQue
Fin

Une autre possibilité, fréquemment employée, consiste à ne pas lire, mais à affecter
arbitrairement la variable avant la boucle. Arbitrairement ? Pas tout à fait, puisque cette
affectation doit avoir pour résultat de provoquer l’entrée obligatoire dans la boucle.
L’affectation doit donc faire en sorte que le booléen soit mis à VRAI pour déclencher le
premier tour de la boucle. Dans notre exemple, on peut donc affecter Rep avec n’importe
quelle valeur, hormis « O » et « N » : car dans ce cas, l’exécution sauterait la boucle, et Rep
ne serait pas du tout lue au clavier. Cela donnera par exemple :

Variable Rep en Caractère


Début
Rep ← "X"
Ecrire "Voulez vous un café ? (O/N)"
TantQue Rep <> "O" et Rep <> "N"
  Lire Rep
FinTantQue
Fin

Cette manière de procéder est à connaître, car elle est employée très fréquemment.

Il faut remarquer que les deux solutions (lecture initiale de Rep en dehors de la boucle ou
affectation de Rep) rendent toutes deux l’algorithme satisfaisant, mais présentent une
différence assez importante dans leur structure logique.

En effet, si l’on choisit d’effectuer une lecture préalable de Rep, la boucle ultérieure sera
exécutée uniquement dans l’hypothèse d’une mauvaise saisie initiale. Si l’utilisateur saisit une
valeur correcte à la première demande de Rep, l’algorithme passera sur la boucle sans entrer
dedans.

En revanche, avec la deuxième solution (celle d’une affectation préalable de Rep), l’entrée de
la boucle est forcée, et l’exécution de celle-ci, au moins une fois, est rendue obligatoire à
chaque exécution du programme. Du point de vue de l’utilisateur, cette différence est tout à
Cours : INFORMATIQUE /Niveau : (Licence professionnelle)
Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

fait mineure ; et à la limite, il ne la remarquera même pas. Mais du point de vue du


programmeur, il importe de bien comprendre que les cheminements des instructions ne seront
pas les mêmes dans un cas et dans l’autre.

Pour terminer, remarquons que nous pourrions peaufiner nos solutions en ajoutant des
affichages de libellés qui font encore un peu défaut. Ainsi, si l’on est un programmeur zélé, la
première solution (celle qui inclut deux lectures de Rep, une en dehors de la boucle, l’autre à
l’intérieur) pourrait devenir :

Variable Rep en Caractère


Début
Ecrire "Voulez vous un café ? (O/N)"
Lire Rep
TantQue Rep <> "O" et Rep <> "N"
  Ecrire "Vous devez répondre par O ou N. Recommencez"
  Lire Rep
FinTantQue
Ecrire "Saisie acceptée"
Fin

 Boucler en comptant, ou compter en bouclant

Une boucle peut être utilisée pour augmenter la valeur d’une variable. Cette utilisation des
boucles est très fréquente, et dans ce cas, il arrive très souvent qu’on ait besoin d’effectuer un
nombre déterminé de passages. Or, a priori, notre structure Tant Que ne sait pas à l’avance
combien de tours de boucle elle va effectuer (puisque le nombre de tours dépend de la valeur
d’un booléen).

C’est pourquoi une autre structure de boucle est à notre disposition :

Variable Truc en Entier


Début
Truc ← 0
TantQue Truc < 15
  Truc ← Truc + 1
  Ecrire "Passage numéro : ", Truc
FinTantQue
Fin

3.3. La boucle itérative ‘pour’

Cours : INFORMATIQUE /Niveau : (Licence professionnelle)


Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

3.3. Tests imbriqués


Graphiquement, on peut très facilement représenter un SI comme un aiguillage de
chemin de fer (ou un aiguillage de train électrique, c’est moins lourd à porter). Un SI ouvre
donc deux voies, correspondant à deux traitements différents. Mais il y a des tas de situations
où deux voies ne suffisent pas. Par exemple, un programme devant donner l’état de l’eau
selon sa température doit pouvoir choisir entre trois réponses possibles (solide, liquide ou
gazeuse).

Une première solution serait la suivante :

Variable Temp en Entier


Début
Ecrire "Entrez la température de l’eau :"
Lire Temp
Si Temp =< 0 Alors
Cours : INFORMATIQUE /Niveau : (Licence professionnelle)
Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

  Ecrire "C’est de la glace"


FinSi
Si Temp > 0 Et Temp < 100 Alors
  Ecrire "C’est du liquide"
Finsi
Si Temp > 100 Alors
  Ecrire "C’est de la vapeur"
Finsi
Fin

Vous constaterez que c’est un peu laborieux. Les conditions se ressemblent plus ou moins, et
surtout on oblige la machine à examiner trois tests successifs alors que tous portent sur une
même chose, la température de l'eau (la valeur de la variable Temp). Il serait ainsi bien plus
rationnel d’imbriquer les tests de cette manière  :

Variable Temp en Entier


Début
Ecrire "Entrez la température de l’eau :"
Lire Temp
Si Temp =< 0 Alors
  Ecrire "C’est de la glace"
Sinon
  Si Temp < 100 Alors
    Ecrire "C’est du liquide"
  Sinon
    Ecrire "C’est de la vapeur"
  Finsi
Finsi
Fin

Nous avons fait des économies : au lieu de devoir taper trois conditions, dont une composée,
nous n’avons plus que deux conditions simples. Mais aussi, et surtout, nous avons fait des
économies sur le temps d’exécution de l’ordinateur. Si la température est inférieure à zéro,
celui-ci écrit dorénavant « C’est de la glace » et passe directement à la fin, sans être ralenti par
l’examen d’autres possibilités (qui sont forcément fausses).

Cette deuxième version n’est donc pas seulement plus simple à écrire et plus lisible, elle est
également plus performante à l’exécution.

Les structures de tests imbriqués sont donc un outil indispensable à la simplification et à


l’optimisation des algorithmes. 

Cours : INFORMATIQUE /Niveau : (Licence professionnelle)


Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

De l’aiguillage à la gare de tri

« J'ai l'âme ferroviaire  : je regarde passer les vaches » (Léo Ferré)

Cette citation n’apporte peut-être pas grand chose à cet exposé, mais je l’aime bien, alors
c’était le moment ou jamais.

En effet, dans un programme, une structure SI peut être facilement comparée à un aiguillage
de train. La voie principale se sépare en deux, le train devant rouler ou sur l’une, ou sur
l’autre, et les deux voies se rejoignant tôt ou tard pour ne plus en former qu’une seule, lors du
FinSi. On peut schématiser cela ainsi :

Mais dans certains cas, ce ne sont pas deux voies qu’il nous faut, mais trois, ou même plus.
Dans le cas de l’état de l’eau, il nous faut trois voies pour notre « train », puisque l’eau peut
être solide, liquide ou gazeuse. Alors, nous n’avons pas eu le choix : pour deux voies, il nous
fallait un aiguillage, pour trois voies il nous en faut deux, imbriqués l’un dans l’autre.

Cette structure (telle que nous l’avons programmée à la page précédente) devrait être
schématisée comme suit :

Soyons bien clairs : cette structure est la seule possible du point de vue logique (même si on
peut toujours mettre le bas en haut et le haut en bas). Mais du point de vue de l’écriture, le
Cours : INFORMATIQUE /Niveau : (Licence professionnelle)
Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

pseudo-code algorithmique admet une simplification supplémentaire. Ainsi, il est possible


(mais non obligatoire, que l’algorithme initial :

Variable Temp en Entier


Début
Ecrire "Entrez la température de l’eau :"
Lire Temp
Si Temp =< 0 Alors
  Ecrire "C'est de la glace"
Sinon
  Si Temp < 100 Alors
    Ecrire "C’est du liquide"
  Sinon
    Ecrire "C’est de la vapeur"
  Finsi
Finsi
Fin

devienne :

Variable Temp en Entier


Début
Ecrire "Entrez la température de l’eau :"
Lire Temp
Si Temp =< 0 Alors
  Ecrire "C’est de la glace"
SinonSi Temp < 100 Alors
  Ecrire "C’est du liquide"
Sinon
  Ecrire "C’est de la vapeur"
Finsi
Fin

Dans le cas de tests imbriqués, le Sinon et le Si peuvent être fusionnés en un SinonSi. On


considère alors qu’il s’agit d’un seul bloc de test, conclu par un seul FinSi

Le SinonSi permet en quelque sorte de créer (en réalité, de simuler) des aiguillages à plus de
deux branches. On peut ainsi enchaîner les SinonSi les uns derrière les autres pour simuler un
aiguillage à autant de branches que l’on souhaite.

. Variables Booléennes
Cours : INFORMATIQUE /Niveau : (Licence professionnelle)
Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/
INSTITUT UNIVERSITAIRE DU GOLFE DE GUINEE/ www.iug-elearning.com

Jusqu’ici, pour écrire nos tests, nous avons utilisé uniquement des conditions. Mais vous vous
rappelez qu’il existe un type de variables (les booléennes) susceptibles de stocker les valeurs
VRAI ou FAUX. En fait, on peut donc entrer des conditions dans ces variables, et tester
ensuite la valeur de ces variables.

Reprenons l’exemple de l’eau. On pourrait le réécrire ainsi :

Variable Temp en Entier


Variables A, B en Booléen
Début
Ecrire "Entrez la température de l’eau :"
Lire Temp
A ← Temp =< 0
B ← Temp < 100
Si A Alors
  Ecrire "C’est de la glace"
SinonSi B Alors
  Ecrire "C’est du liquide"
Sinon
  Ecrire "C’est de la vapeur"
Finsi
Fin

A priori, cette technique ne présente guère d’intérêt : on a alourdi plutôt qu’allégé


l’algorithme de départ, en ayant recours à deux variables supplémentaires.

 Mais une variable booléenne n’a besoin que d’un seul bit pour être stockée. De ce
point de vue, l’alourdissement n’est donc pas considérable.

Cours : INFORMATIQUE /Niveau : (Licence professionnelle)


Par : MONKAM Fabrice, Maître ès science Bioinformatique Biostatistique
/Doctorant Ph. D en Modélisation épidémiologique/ BIOMETRICIEN
URL:https://www.iug-elearning.com/

Vous aimerez peut-être aussi