Professional Documents
Culture Documents
CHAPITRE 1 : Introduction la
programmation
I. Notion de programme
Rappel:
Un algorithme n'est donc excutable directement par aucune machine. Mais il a l'avantage
d'tre traduit facilement dans tous les langages de programmation. L'algorithmique, l'art
L3-M1-M2-INFORMATIQUE-TELECOMS 1
K. Zabo Intro l'algo Centre Universitaire Professionnalis
Rflexion codage
Les donnes d'un programme doivent tre rcupres en mmoire centrale, partir du
clavier ou d'un fichier par exemple, pour pouvoir tre traites par le processeur qui excute le
programme. Ainsi, toutes les donnes d'un programme sont mmorises en mmoire centrale,
dans des sortes de cases que l'on appelle variables.
Une variable peut tre reprsente par une case mmoire, qui contient la
valeur d'une donne.
Chaque variable possde un nom unique appel identificateur par lequel on
peut accder son contenu.
Par exemple, on peut avoir en mmoire une variable prix et une variable quantit qui
contiennent les valeurs 500 et 15
500 15
Prix quantit
Deux variables peuvent avoir la mme valeur, mais une variable ne peut pas avoir
plusieurs valeurs en mme temps.
En revanche, la valeur d'une variable peut varier au cours du programme.
L'ancienne valeur est tout simplement crase et remplace par la nouvelle.
L3-M1-M2-INFORMATIQUE-TELECOMS 2
K. Zabo Intro l'algo Centre Universitaire Professionnalis
Les variables dont la valeur ne change pas au cours de l'excution du programme sont
appeles variables constantes ou plus simplement constantes.
Pour qu'un programme puisse utiliser une variable, il faut au pralable que cette
variable ait t dclare, c'est--dire que le programme lui ait rserv une place en mmoire et
ait attribu l'identificateur cette place.
Mais toutes les variables n'ont pas besoin de la mme place en mmoire. Un grand
nombre prend plus de place qu'un caractre. Selon le type de l'objet, il faudra lui rserver plus
ou moins de place: c'est pourquoi il faut dclarer le type des variables et pas seulement leur
nom. Par ailleurs, selon le type des variables, les oprations possibles seront diffrentes.
Un identificateur peut tre compos de lettres et de chiffres mais il ne peut pas commencer par
un chiffre et ne peut comporter d'espaces.
L'identificateur des variables doit tre suffisamment signifiant pour qu'on reconnaisse leur
fonction aisment. Par exemple pour des variables reprsentant un prix et une quantit, vitez
a et b mais utilisez plutt prix et quant.
- les caractres (lettres, chiffres, ponctuation, code des oprations, espace, retour chariot,
et plus gnralement toutes les touches que l'on peut trouver sur une machine crire)
- les chanes de caractre (suites de caractres)
- les entiers (les nombres sans virgule)
- les rels (les nombres virgule et sans virgule)
- les boolens (qui n'ont que deux valeurs possibles: soit VRAI, soit FAUX)
Les oprations possibles sur les variables dpendent de leur type (voir page suivante)
Synthse:
identificateur type
variable
- commence par - dtermine le domaine de
une lettre valeur de la variable
- pas d'espace
valeur
1-dans certains langages, il est possible de ne pas dclarer le type des variables. Ce sont des langages
faiblement typs. Mais ceci n'est pas recommand, c'est pourquoi en algorithmique, nous prendrons l'habitude de
toujours dclarer le type des variables
L3-M1-M2-INFORMATIQUE-TELECOMS 3
K. Zabo Intro l'algo Centre Universitaire Professionnalis
caractre 'B' 'h' '' '?' '\n' comparaisons <, ,>, , =, ref(7)
L3-M1-M2-INFORMATIQUE-TELECOMS
K. Zabo Intro l'algo Centre Universitaire Professionnalis
conjonction ET
disjonction OU
DAIGL BTS IG 1 4
L3-M1-M2-INFORMATIQUE-TELECOMS
K. Zabo Intro l'algo Centre Universitaire Professionnalis
Pour les entiers, la division est note Div. Elle est nomme division entire
et diffre un peu de la division que l'on trouve sur les calculettes. Elle ne
donne que le chiffre avant la virgule du rsultat (elle renvoie un entier).
Les entiers supportent une opration supplmentaire appele modulo,
note mod et qui renvoie le reste de la division entire.
Exemple:
7 / 2 donne 3.5
7 Div 2 donne 3
7 Mod 2 donne 1
Les caractres sont compars selon lordre du code ASCII. Cest ainsi quon peut
Ref(7)
comparer tous les caractres entre eux. Par exemple la lettre Z (majuscule), de code ASCII
90 est infrieure la lettre a (minuscule) de code ASCII 97. Lordre ASCII des lettres de
la mme casse suit lordre alphabtique, de sorte que A<B<C<D<
Loprateur & sert concatner des chanes de caractre, ce qui signifie transformer
ref(8)
plusieurs chanes en une seule en les ajoutant les unes la suite des autres. Ex : Bonjour
& tous donne Bonjour tous
PROGRAMME toto
DEBUT
corps du
/* instructions*/ programme
FIN
6
K. Zabo Intro l'algo Centre Universitaire Professionnalis
1. Prsentation gnrale
Une instruction est un ordre lmentaire que peut excuter directement l'ordinateur. Une
instruction revient dplacer une information d'un endroit un autre de la mmoire.
Les informations (donnes) manipules par les instructions peuvent prendre plusieurs
formes:
- des variables proprement dites
- des variables constantes
- des valeurs littrales (crites telles qu'elles dans le programme: ex "bonjour", 45, VRAI)
- des messages (libells) envoys l'utilisateur (quelles donnes sont entrer, quels
rsultats sont affichs), qui sont des valeurs littrales particulires
- des expressions complexes (combinaisons de variables, constantes et valeurs littrales
avec des oprateurs) ex : 2 * r * 3.14
D'autres instructions permettent de lire et d'crire sur d'autres priphriques: nous les
tudierons plus tard.
mmoire cran
cran
variables et constantes
clavier
messages du programme
saisir
afficher
affectation
L3-M1-M2-INFORMATIQUE-TELECOMS
7
K. Zabo Intro l'algo Centre Universitaire Professionnalis
B. Laffectation
1. Prsentation dtaille
Laffectation consiste tout simplement placer une valeur dans une variable (ce qui
revient changer le contenu de cette variable)
La nouvelle valeur est value partir d'une expression, qui peut tre
- soit une autre variable ou constante,
- soit une valeur littrale
- soit une combinaison de variables, de valeurs littrales et d'oprateurs
Exemple:
Supposons que rayon soit une variable de valeur 5
2 * rayon * 3.14 est une expression qui vaut 31.4
x 5;
x y;
x 5+8;
x 5+y;
Quand on dit qu'une variable prend pour valeur une autre variable, a ne veut
pas dire qu'elles seront toujours gales! Cela veut seulement dire qu'au moment
de l'instruction, la premire variable va prendre la valeur de la seconde.
8
K. Zabo Intro l'algo Centre Universitaire Professionnalis
en maths en programmation
Illustration:
VAR
a, b : entiers
//a et b ont une valeur indtermine
DEBUT
a 3 // a vaut 3
// b na pas encore de valeur (ou plus exactement a une valeur indtermine)
b a + 2 // b vaut 5, a vaut toujours 3 a b * 2 // a vaut 10, b vaut 5
b b + 1 // b vaut 6
FIN
Application : la permutation
L3-M1-M2-INFORMATIQUE-TELECOMS
9
K. Zabo Intro l'algo Centre Universitaire Professionnalis
3. Complments
De l vient la ncessit de toujours bien initialiser les variables avant dutiliser leur
valeur. Linitialisation seffectue gnralement au dbut du programme, juste aprs les
dclarations. Elle prend la forme d'une simple affectation ou dune saisie au clavier.
Programme initialisation
/*dclarations*/
VAR x , y : entiers
a : chane
DEBUT
/*initialisation*/
x 0
y 10
a "hello"
/* autres instructions */
FIN
C. La saisie
Linstruction de saisie permet de communiquer des donnes au programme.
Cette instruction assigne une valeur entre au clavier dans une variable. Tant
que l'utilisateur n'entre rien au clavier, le droulement du programme est stopp
L3-M1-M2-INFORMATIQUE-TELECOMS
10
K. Zabo Intro l'algo Centre Universitaire Professionnalis
Syntaxe
Exemples:
Saisir x
Cette instruction va lire la valeur saisie au clavier et l'affecte la variable x
Saisir x, y
Cette instruction lit la premire valeur saisie au clavier et l'affecte x, puis lit la deuxime
valeur saisie et l'affecte y
Utilit de la saisie
On pourrait se dire que linstruction de saisie est inutile car on dispose dj un moyen
dattribuer une valeur aux variables, par linstruction daffectation. Mais en fait, linstruction
de saisie (ou de lecture sur un priphrique autre que le clavier) est indispensable pour
permettre dutiliser le mme programme sur des donnes diffrentes sans avoir changer les
valeurs du programme chaque fois.
Par exemple, linstruction lire x laquelle on fournirait 5, pourrait tre remplace par x 5.
Mais alors si on veut utiliser le programme avec une autre valeur, il faudra aller changer le
programme. En revanche, si on utilise une instruction de saisie, le choix de la valeur se fait en
cours dexcution du programme. On peut donc utiliser le programme autant de fois que lon
veut avec des donnes diffrentes sans avoir modifier le programme.
Exemple:
Le traitement qui consiste calculer le primtre d'un cercle partir de son rayon peut
s'effectuer pour toutes les valeurs possibles de rayon. A chaque excution du programme, on
fournit une valeur diffrente au rayon, ce qui va donner un primtre diffrent.
2 excution
saisie affichage
7 2 *3.14 * 7
43.74 ect
L3-M1-M2-INFORMATIQUE-TELECOMS 11
K. Zabo Intro l'algo Centre Universitaire Professionnalis
Syntaxe
Exemples
Afficher toto
Cette instruction permet d'afficher la valeur de la variable toto l'cran
Si toto est une chane qui vaut "tutu", cette instruction affichera tutu l'cran
Afficher "Bonjour!"
Celle-ci permet d'afficher la chane littrale Bonjour! l'cran
Afficher a, b
Quand on veut afficher deux objets la suite, on les spare d'une virgule Si a
vaut 5 et b vaut 10, on obtient alors l'cran:
5 10
Remarque: dans la plupart des langages (dont le C++), il faut ajouter dans le programme un
espace entre les diffrentes expressions afficher, mais en algorithmique on ne s'embte avec
ces dtails.
Exemple
L3-M1-M2-INFORMATIQUE-TELECOMS 12
K. Zabo Intro l'algo Centre Universitaire Professionnalis
SYNTHESE
Raliser un algorithme, cest exprimer, dans un langage prcis (le langage algorithmique), les
rgles de traitement dun problme pour le soumettre un ordinateur (par un programme).
Les donnes dun programme sont mmorises dans des variables qui sont des cases mmoire.
Une variable est un contenant, qui contient une et une seule valeur un moment donn.
Une variable est caractrise par :
un identificateur (son nom)
une valeur (qui peut varier au cours du programme, sauf pour les constantes)
un type (qui dtermine sa taille et les oprations possibles)
Exemple complet
Nous allons crire un algorithme qui calcule l'ge de l'utilisateur en fonction de son anne de
naissance.
PROGRAMME ge
DEBUT
Afficher "Entrez votre anne de naissance sur 4 chiffres"
Saisir ddn
Afficher "Vous avez, ou aurez dans l'anne" , anne ddn , "ans."
FIN
saisie donnes
traitement
rsultats
affichage
utilisateur ordinateur
L3-M1-M2-INFORMATIQUE-TELECOMS 13
K. Zabo Intro l'algo Centre Universitaire Professionnalis
Exercice 1.1
Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes ?
Variables A, B en Entier
Dbut
A 1
B A + 3
A 3
Fin
Exercice 1.2
Quelles seront les valeurs des variables A, B et C aprs excution des instructions suivantes ?
Variables A, B, C en Entier
Dbut
A 5
B 3
C A + B A
2
C B A
Fin
Exercice 1.3
Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes ?
Variables A, B en Entier
Dbut A 5
B A + 4
A A + 1
B A 4
Fin
Exercice 1.4
Quelles seront les valeurs des variables A, B et C aprs excution des instructions suivantes ?
Variables A, B, C en Entier
Dbut
A 3
B 10
C A + B
B A + B
A C
Fin
L3-M1-M2-INFORMATIQUE-TELECOMS 14
K. Zabo Intro l'algo Centre Universitaire Professionnalis
Exercice 1.5
Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes ?
Variables A, B en Entier
Dbut A 5
B 2
A B
B A
Fin
Moralit : les deux dernires instructions permettent-elles dchanger les deux valeurs de B et A ? Si lon
inverse les deux dernires instructions, cela change-t-il quelque chose ?
Exercice 1.6
Plus difficile, mais cest un classique absolu, quil faut absolument matriser : crire un algorithme
permettant dchanger les valeurs de deux variables A et B, et ce quel que soit leur contenu pralable.
Exercice 1.7
Exercice 1.8
Exercice 1.9
L3-M1-M2-INFORMATIQUE-TELECOMS 15
K. Zabo Intro l'algo Centre Universitaire Professionnalis
Exercice 1.10
Quel rsultat produit le programme suivant ?
Variables val, double numriques
Dbut
Val 231
Double Val * 2
Ecrire Val
Ecrire Double
Fin
Exercice 1.11
Ecrire un programme qui demande un nombre lutilisateur, puis qui calcule et affiche le carr de
ce nombre.
Exercice 1.12
Ecrire un programme qui lit le prix HT dun article, le nombre darticles et le taux de TVA, et qui
fournit le prix total TTC correspondant. Faire en sorte que des libells apparaissent clairement.
Exercice 1.13
Ecrire un algorithme utilisant des variables de type chane de caractres, et affichant quatre
variantes possibles de la clbre belle marquise, vos beaux yeux me font mourir damour . On ne
se soucie pas de la ponctuation, ni des majuscules.
L3-M1-M2-INFORMATIQUE-TELECOMS 16