Académique Documents
Professionnel Documents
Culture Documents
com
COURS D’INFORMATIQUE
CLASSE : LICENCE
PROFESSIONELLE
MONKAM Fabrice
Chapitre 0 :
NOTIONS FONDAMENTALES.
Information : est l’élément de connaissance susceptible d’être codée pour être conservée,
traitée, communiquée ou expédiée.
Scanner: périphérique d’entrée qui permet de transférer un texte ou une image du papier vers
l’ordinateur.
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.
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.
3. La mémoire centrale.
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.
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.
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.
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.
• 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.
Chapitre 2 :
LE SYSTEME D’EXPLOITATION
• 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 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.
• Le système de fichiers (en anglais «file system», noté FS), permettant d'enregistrer les
fichiers dans une arborescence.
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.
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
• 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.
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 :
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.
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
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
. L'affectation est l'instruction qui permet de stocker une valeur dans une variable.
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.
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
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.
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 :
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.
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 :
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 :
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
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 :
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).
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 :
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.
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
devienne :
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.
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.