Chapitre 1 Introduction à l’informatique et à l'algorithmique
1 Introduction
1.1 Ordinateur
L’informatique intervient aujourd’hui dans de nombreux secteurs d’activité. Parmi les
applications courantes on peut citer
la bureautique,
la gestion ( établissement de factures de paie , gestion des stocks,…)
le calcul scientifique,
la communication, l’accès à des ressources d’information (au travers d’internet en
particulier), le multimédia,
les jeux etc.
Ces applications ne sont possibles que grâce à un ordinateur. Cependant, l’ordinateur seul ne
suffit pas. Pour chaque application, il est nécessaire de lui fournir un logiciel (ou programme)
adapté.
1.2 Architecture d'un ordinateur
1.2.1 Matériel
En première approche, on peut considérer qu’un ordinateur est constitué des éléments
suivants :
une unité centrale (contenant le processeur ) .
une mémoire centrale.
des organes périphériques permettant :
la communication avec l'utilisateur : écran, clavier, souris, imprimante ...
le stockage : disque dur, lecteurs de cd, de dvd, ...
des composants matériels divers : cartes son, vidéo, ...
1.2.2 Logiciel
Un ordinateur ne peut pas fonctionner seul. Il doit être doté d’un système d’exploitation.
(Ex : windows, unix, linux, ...)
Le système d’exploitation est le programme de base d’un ordinateur, il permet notamment :
la gestion de la mémoire,
la gestion des périphériques,
l’exécution des programmes,
la gestion des fichiers.
Les programmes (ou logiciels) d’application s’exécutent généralement en s’appuyant sur le
système d’exploitation.
Ces programmes peuvent être très divers : logiciels de bureautique (traitements de textes,
tableurs, présentation graphique...), logiciels de calcul, systèmes de gestion de bases de
données, environnements de programmation, logiciels de jeux, ...
1
2 Définitions :
2.1 Informatique : l’informatique est la science du traitement automatique de l’information.
2.2 Information : est constitué d’un fait ou d’un ensemble de faits dont la connaissance
fournie par un support quelconque nous permet d’entreprendre une action.(elle peut être le
nom d’une personne,son âge, une note …)
2.3 Traitement des informations : traiter des informations c’est recueillir et exploiter des
informations (données) fournies par un support pour en obtenir des résultats, ces derniers
constituent de nouvelles informations susceptibles d’entraîner une action.
Informations reçues Traitement Informations rendues
(entrées ou données) ( Sorties ou résultats )
Informations consultées
Fig 1 schéma d’un traitement d’informations
Exemples
1/ calcul de la moyenne des notes des élèves
Un ensemble de notes Calcul de la moyenne Moyennes obtenues
2/ traduction d’un texte du français à l’anglais
Un texte en français Traduire le texte Texte traduit
Dictionnaire Français/Anglais
Ordinateur : un ordinateur est une machine programmable destinée à traiter
automatiquement des informations.
Un ordinateur est capable de mettre en mémoire un programme qu’on lui a fourni et
de l’exécuter.
L’ordinateur en exécutant le programme fourni, on dit qu’il a traité automatiquement
des informations
Programme : est un ensemble de directives nommées instructions qui spécifient les
opérations élémentaires à exécuter selon la façon dont elles s’enchaînent.
D’ou viennent les données ?
Elles sont fournies par l’utilisateur au programme en utilisant comme support
(clavier/souris)
L’ordinateur doit communiquer avec l’être humain.
2
Elles sont déjà archivées et l’ordinateur y accède directement
L’ordinateur doit communiquer avec ses archives ( disque)
Exemple : calcul mensuel de la paie , la liste des employés est archivée.
Ou vont les résultats ?
Ils sont fournis par le programme à l’utilisateur ( écran / imprimante)
Sont directement archivés
2.4 Information et codage :
Les informations manipulées par l’ordinateur doivent être codées pour être
compréhensibles. Pour l’ordinateur tout doit être mis sous forme binaire (2 symboles 0
et 1 )
Un bit (binary digit) est un élément binaire. Sa valeur est donc 0 ou 1.
Un octet (ou byte) est un ensemble de 8 bits.
Les longueurs couramment utilisées sont des ensembles de 16, 32 ou 64 bits.
Un kilo-octet (abréviation : Ko) correspond à 1024 octets, soit 210 octets.
Un méga-octet (Mo) correspond à 1024 Ko, soit 210 Ko.
Un giga-octet (Go) est un ensemble de 1024 Mo, soit 210 Mo.
Ces unités de mesures sont fréquemment utilisées pour indiquer des tailles (ou
capacités) de mémoires.
3 Notions de programme et d’algorithme
Un algorithme représente l'enchaînement des actions (instructions) nécessaires pour
résoudre un problème donné. Un algorithme s'écrit le plus souvent en pseudo-langage
de programmation (appelé langage algorithmique).
Un algorithme n'est donc pas exécutable directement par aucune machine. Mais il
a l'avantage d'être traduit facilement dans tous les langages de programmation.
Un programme est un assemblage et un enchaînement d’instructions élémentaires
écrit dans un langage de programmation, et exécuté par un ordinateur afin de
traiter les données d’un problème et renvoyer un ou plusieurs résultats.
Pour résoudre un problème, il est vivement conseillé de réfléchir d'abord à
l'algorithme (langage naturel) avant de programmer (langage compréhensible par la
machine) à proprement dit, c'est-à-dire d'écrire le programme en langage de
programmation
Problème Etapes de Algorithme programme
Analyse résolutionfo formalisme langage
Propriétés d’un algorithme
1/ Finitude : l’algorithme doit être fini c'est-à-dire toutes les actions doivent être exécutées
en un temps fini.
2/ Déterministe : l’algorithme doit donner les mêmes résultats pour les mêmes données.
3/ Cohérence : les champs d’application des données doivent être précisés.
3
4/ Généralité : l’algorithme doit traiter tous les cas particuliers
Syntaxe générale de l’algorithme
Algorithme truc ;
/* les constantes : il est obligatoire de leur donner une valeur dès leur déclaration */
Constantes
variable1 = 10 ;
variable2 = "bonjour!";
// les variables au sens strict
Variables
variable3, variable4 : réels
variable5 : chaîne
Début
instructions
Fin
4 Notion de variables et déclarations
4.1 Présentation
Les programmes ont pour but de traiter différentes données afin de produire des résultats. Les
résultats peuvent eux-mêmes être des données pour d'autres programmes.
Donnée(s) Programme Résultat(s)
Les données d'un programme doivent être récupérées en mémoire centrale soit
à partir du clavier
ou d'un fichier par exemple
Pour pouvoir être traitées par le processeur qui exécute le programme. Ainsi, toutes les
données d'un programme sont mémorisées en mémoire centrale, dans des sortes de
cases que l'on appelle variables.
Une variable peut être représentée par une case mémoire, qui contient la valeur d'une
donnée. Chaque variable possède un nom unique appelé identificateur par lequel on
peut accéder à son contenu.
Par exemple, on peut avoir en mémoire une variable prix et une variable quantité qui
contiennent les valeurs 10.5 et 20 :
prix 10.5 quantité 20
On lit la variable prix contient la valeur 10.5( prix c’est le contenant et 10.5 c’est le contenu )
Remarques :
Deux variables peuvent avoir la même valeur, mais une variable ne peut pas avoir
plusieurs valeurs en même temps.
la valeur d'une variable peut varier au cours du programme. L'ancienne valeur est tout
simplement écrasée et remplacée par la nouvelle.
4
Les variables dont la valeur ne change pas au cours de l'exécution du programme sont
appelées variables constantes ou plus simplement constantes.
Exemples de constantes
Pi=3.14
Lettre=’d’
X=8
T=true
4.2 Déclaration des variables
Pour qu'un programme puisse utiliser une variable, il faut au préalable que cette variable ait
été déclarée, c'est-à-dire que le programme lui ait réservé une place en mémoire et ait attribué
l'identificateur à cette place et préciser aussi son type qui définit l'ensemble des valeurs
pouvant être mémorisées sous son nom .
Donc la déclaration d'une variable indique deux choses :
Son identificateur (son nom) ;
Son type (sa taille).
Un identificateur peut être composé
de lettres et de chiffres
ne peut pas commencer par un chiffre
ne peut comporter d'espaces.
Exemples d’identificateurs non permis :
moy g , (car il contient un espace , moyg : juste)
1note ( faux car il commence par un chiffre , donc note1 , n1ote : justes)
En algorithmique, on distingue 5 types principaux :
les caractères (lettres, chiffres, ponctuation, code des opérations, espace, retour
chariot, et plus généralement toutes les touches que l'on peut trouver sur une machine
à écrire)
les chaînes de caractère (suites de caractères) ;
les entiers (les nombres sans virgule) ;
les réels (les nombres à virgule et sans virgule) ;
les booléens (qui n'ont que deux valeurs possibles: soit VRAI, soit FAUX).
Expression: Une expression est une formule pouvant être :
soit une constante, par exemple la constante entière : 1789, la constante réelle :
3.1415926536, la chaîne de caractères : 'bonjour Monsieur', le booléen : vrai,
soit une variable, on écrit alors son nom, par exemple : Prix, Montant,
soit la combinaison par une opération d'une ou plusieurs expressions.
Une expression a :
5
un type, que l'on peut déduire de son écriture et des types de ses constituants
une valeur, qui est calculée à l'exécution : on parle d'évaluation de l'expression.
Les parenthèses permettent ici d'indiquer dans quel ordre, doivent s'effectuer les opérations.
5 Les opérateurs
Les opérateurs arithmétiques
Ce sont les quatre opérations connues : addition (+) , soustraction (-) ,multiplication ( * ) ,
division ( / )
l’ordre de priorité est le suivant : ( ) , puissance , * et / , ensuite + et -
Remarque : pour une même priorité l’évaluation se fait de gauche à droite .
Puissance est notée : ^ ou **
Exemples :
1) A + B * C 3) A * B / C + D 5) A + B * * 3 / D
2 1 1 2 3 3 1 2
2) A + B - C + D 4) A * B – ( C + D )
1 2 3 2 3 1
Note : Pour les entiers, la division peut être notée DIV. Elle est nommée division entière
Les entiers supportent une opération supplémentaire appelée modulo,notée MOD et qui
renvoie le reste de la division entière.
Exemples : 7 / 2 donne 3.5 7 Div 2 donne 3 7 Mod 2 donne 1
Les opérateurs logiques
ET (AND) OU (OR) NON (NOT)
A B A and B A B A OR B
0 0 0 1 0 1 A Non A
0 1 0 0 1 1 0 1
1 0 0 0 0 0 1 0
1 1 1 1 1 1
Tables de vérité ( and or not )
Exemples
A = vrai B = faux C = vrai
1/ A and B or C donne comme résultat vrai
2/ (A and B ) or ( A and C ) vrai
6
On peut appliquer des opérateurs de comparaison relationnels ( > < >= <= <> = )dans
les expressions booléennes .
Exemples
A = 20 B = 10 C=8
1/ ( A <= B) or ( C > B ) faux 2/ ( A > B ) and ( C <> B) vrai
6 Les instructions élémentaires
Les instructions élémentaires les plus courantes sont :
l'affectation : donner une nouvelle valeur à une variable ;
l'affichage sur l'écran ;
la saisie à travers le clavier
L’affectation
L’affectation consiste tout simplement à placer une valeur dans une variable (ce qui revient à
changer le contenu de cette variable).
La nouvelle valeur est évaluée à partir d'une expression, qui peut être :
Soit une autre variable ou constante ;
Soit une valeur littérale ; {exemple ville ‘batna’ (ville de type chaine de caractères}
Soit une combinaison de variables, de valeurs littérales et d'opérateurs
Syntaxe:
Nom de variable Expression (qui se lit : la variable prend pour valeur l'expression)
A noter que :
Les types de l'expression et de la variable doivent être compatibles.
La valeur de la variable avant l'affectation, est définitivement oubliée après.
Exemples d'algorithme
Algorithme exp1
Var x,y : entier
début
x 12 // 1
y x + 4 // 2
x 3 // 3
fin
Schéma de l'évolution de l'état des variables instruction par instruction :
Instructions x y
1 12
2 16
3 3
7
Algorithme exp2
Var R , X , Y : entier
début
R 10 { R a pour valeur 10 }
XR { X prend la valeur de R , donc X a pour valeur 10 }
YR { Y prend la valeur de R , donc Y a pour valeur 10}
R R+1 {R a pour valeur la valeur initiale de R ( 10 ) + 1 , R=11}
Y R – X { y = 11- 10 , y = 1 }
{ les valeurs finales X = 10 Y = 1 R = 11 }
fin
Exercice d’application 1
Quelles seront les valeurs de a et b après l’exécution de l’algorithme suivant :
Algorithme aetb
Variables
a, b : Entier
Début
a 5
b a+4
a a+1
b a-4
Fin
Exercice d’application 2 : la permutation
Comment échanger les valeurs de deux variables a et b ? Écrire l’algorithme correspondant.
Que pensez-vous de l’algorithme suivant ? Permet-il de résoudre notre problème ?
Algorithme ex2
Variables
a, b : Entier
Début
a 3
b 5
a b
b a
Fin
Exercice d’application 3 : Permutation circulaire de trois variables
Etant donnés 3 variables a , b , c contenant respectivement les valeurs 5 8 et 2 , Ecrire
l’algorithme qui met la valeur de a dans b et la valeur de b dans c et la valeur de c dans a.
La saisie
L’instruction de saisie permet de communiquer des données au programme. Cette instruction
assigne une valeur entrée au clavier dans une variable. Tant que l'utilisateur n'entre rien au
clavier, le déroulement du programme est stoppé.
Syntaxe lire(variable1 , variables2, …)
Exemples :
Lire ( x ) Cette instruction va lire la valeur saisie au clavier et l'affecte à la variable x.
8
Lire( x, y )Cette instruction lit la première valeur saisie au clavier et l'affecte à x, puis
lit la deuxième valeur saisie et l'affecte à y.
Utilité de la saisie:
Si on utilise une instruction de saisie, le choix de la valeur se fait en cours d’exécution du
programme. On peut donc utiliser le programme autant de fois que l’on veut avec des données
différentes sans avoir à modifier le programme.
L'affichage
La plupart des programmes nécessitent de communiquer à l’utilisateur un certain nombre de
résultats. Pour cela, ils utilisent des instructions d'affichage.
L'instruction d'affichage permet de fournir des résultats sous forme directement
compréhensible pour l'utilisateur à travers l'écran.
Syntaxe Ecrire (expression1, [expression2], )
Expression1 peut être :
Le nom d’une variable c'est-à-dire on affiche sa valeur
Un texte écrit entre ‘ ‘
Expression : affichage de sa valeur
ou bien une combinaison de deux ou trois cas cités ci-dessus.
Exemples :
Ecrire (A) : permet d'afficher la valeur de la variable A à l'écran.
Ecrire ("Bonjour") : Celle-ci permet d'afficher la chaîne littérale Bonjour à
l'écran.
Ecrire( A, B ) : afficher les valeurs de A et B .
Si A vaut 5 et B vaut 10, on obtient alors à l'écran : 5 10
Ecrire ( A+B ) : permet d’afficher l’addition de A et B
Ecrire ( ‘A’ ) : affiche la lettre A et non pas la valeur de la variable A
Ecrire ( "Voici les résultats : x = ", x, " et y = ", y )
Ils apparaîtront dans l’ordre. Nous aurons donc à l’écran (en supposant que les valeurs de x et
y sont respectivement 5 et 10) :
Voici les résultats : x = 5 et y = 10
Exemple :
Un algorithme qui calcule l'âge de l'utilisateur en fonction de son année de naissance.
Algorithme age
Constantes
année = 2010
Variables
ddn : entier // date de naissance
Début
9
Ecrire("Entrez votre année de naissance sur 4 chiffres")
Lire( ddn );
Ecrire("Vous avez,ou aurez dans l'année ",année,’ ‘,année – ddn,"ans")
Fin
Exercice d’application 4
A partir des exemples d’exécution présents ci-dessous , écrire l’algorithme associé.
Jour de ta naissance ? Jour de ta naissance ?
15 18
Mois de ta naissance ? Mois de ta naissance ?
03 09
Année de ta naissance? Année de ta naissance?
1988 1990
Tu es né le 15/03/1988 Tu es né le 18/09/1990
Exercice d’application 5
Ecrire un algorithme qui demande un nombre à l’utilisateur, puis calcule et affiche le carré de
ce nombre.
Exercice d’application 6
Ecrire l’algorithme permettant de lire deux entiers, puis affiche leur somme et leur différence.
7 Trace de l’algorithme
L'algorithme peut être exécuté à la main étape par étape. On fait la trace de l'algorithme en
suivant chaque instruction.
Cette étape de déroulement à la main permet de contrôler que l'algorithme correspond aux
attentes, c'est-à-dire que pour les entrées testées, il fournit les résultats attendus.
jeu de test algorithme résultat
Les tests sur l'algorithme ne permettent cependant pas d'assurer que l'algorithme est correct
quelles que soient les entrées, ils permettent de dire que pour le jeu de tests effectué, les
résultats correspondent aux attentes. Pour s'assurer qu'un algorithme fournira toujours le
résultat espéré quelles que soient les données en entrée, il faut recourir à la logique et faire ce
qu'on appelle une preuve.
10