Sunteți pe pagina 1din 12

Universit Mohamed Premier

cole Nationale des Sciences Appliques Al-Hoceima


Dpartement de Mathmatiques et Informatique

Module CP-25 : Infomatique II


Support de cours

A. Moussa
amoussa@in2p3.fr

Anne universitaire

2014-2015

Table des matires


I

Algorithmique

1 Introduction lAlgorithmique
1.1 Introduction . . . . . . . . . . . . . . . . .
1.2 Variables et constantes . . . . . . . . . . .
1.2.1 Variables . . . . . . . . . . . . . .
1.2.2 Constantes . . . . . . . . . . . . .
1.2.3 Type de variables . . . . . . . . . .
1.3 Instructions . . . . . . . . . . . . . . . . .
1.3.1 Instructions de lecture et dcriture
1.3.2 Affectation . . . . . . . . . . . . .
1.4 Structure dun algorithme . . . . . . . . .
2 Les structures de contrle
2.1 Instructions conditionnelles . . .
2.2 Instructions de rptition . . . .
2.2.1 La boucle tant_que . . .
2.2.2 La boucle pour . . . . . .
2.2.3 La boucle faire tant_que
2.3 Exercices . . . . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

3
3
3
3
4
4
6
6
6
6

.
.
.
.
.
.

7
7
8
8
9
10
10

Premire partie

Algorithmique

Chapitre 1

Introduction lAlgorithmique
1.1

Introduction

Lcriture dun programme dans un langage de programmation nest que ltape finale dun dveloppement
qui se droule en trois phases : Lanalyse, lalgorithme et la programmation.
Analyse : Le but de tout dveloppement est de fournir une solution informatique un problme donn.
Ltape danalyse tend cerner compltement le sujet et apporter des solutions aux problmes dvoils par
ltude. Lanalyse conditionne le dveloppement futur, car ce sont les solutions proposes cette tape qui
seront programmes, ainsi une mauvaise analyse produira un logiciel mdiocre ou qui ne rpondra pas aux
attentes initiales quelque soit la qualit de lalgorithme ou de la programmation.
Algorithme : Le rle de lalgorithme est avant tout dorganiser et de structurer lensemble des solutions
apportes par lanalyse pour aboutir la solution globale. Il doit surtout prsenter la logique aboutissant
au rsultat final et tre dissoci de lesprit technique des langages de programmation. Il est gnralement
prsent par un langage simplifi (pseudo-langage). Historiquement, plusieurs types de notations ont reprsent des algorithmes. Il y a eu notamment une reprsentation graphique, avec des carrs, des losanges,
etc. quon appelait des organigrammes. Aujourdhui, cette reprsentation est quasiment abandonne, elle est
remplace par une srie de conventions appele pseudocode , qui ressemble un langage de programmation authentique dont on aurait vacu la plupart des problmes de syntaxe. Ce pseudo-code nest pas un
langage normalis (donc il est susceptible de varier lgrement dun livre un autre). Cest bien normal : le
pseudo-code, encore une fois, est purement conventionnel, aucune machine nest cense le reconnatre. Bien
que ce langage soit librement choisi par le dveloppeur, il respecte certaines rgles et conventions usuelles
qui seront dcrite dans ce cours.
Implmentation (programmation) : Une fois lalgorithme est dcrit, il faut le traduire en un programme source. Cest--dire crire dans un fichier texte la traduction de lalgorithme en un langage de
programmation. Le choix du langage dimplmentation se fait en fonction du domaine dapplication et aux
contraintes lies lalgorithme. En effet les langages de programmation sont fait pour rpondre des besoins spcifiques, par exemple : Java est conu pour le dveloppement web, C et C++ excellent dans les
applications systme et rseau, et Fortran ddi au calcul scientifique.

1.2
1.2.1

Variables et constantes
Variables

Un programme informatique a besoin en permanence de stocker provisoirement des valeurs. Il peut sagir
de donnes issues du disque dur, entres par lutilisateur au clavier, des trames rseau, un fichier. . .etc.
Ces donnes peuvent tre de nimporte quels types (entier, rel, textes . . .). Pour stocker ces donnes on
utilise des variables.
3

CHAPITRE 1. INTRODUCTION LALGORITHMIQUE


Une variable est donc un emplacement dans la mmoire de lordinateur, cet emplacement est repr par
une tiquette (nom de la variable) ainsi pour accder au contenu de lemplacement il suffit de le dsigner par
son tiquette (nom de la variable).

Exemple
On considre par exemple lnonc suivant : crire lalgorithme qui demande lutilisateur de saisir deux
valeurs entires et affiche le rsultat de leur somme.
On remarque que le programme aura besoin de deux valeurs que lutilisateur doit fournir. Ces deux valeurs,
vont donner naissance donc deux variables. Si on suppose que nous aurons besoin de la somme calcule par
le programme pour dautres traitements (par exemple, tester si la somme est suprieure 10 puis afficher
"valid" si oui, et "non valid" dans le cas contraire), nous aurons alors la possibilit dutiliser une troisime
variable pour stocker le rsultat de la somme.
Une variable est caractrise par un nom (tiqute), un type (entier, caractre, rel. . .), une valeur et une
adresse. La valeur de la variable peut tre modifie au cours de lexcution de lalgorithme.
Pour pouvoir utiliser les variables il faut les dclarer en dbut de lalgorithme, cela aura pour consquence
de rserver un espace dans la mmoire.
Syntaxe
Dclarations :
Variables Var1, Var2,Var3...,VarN : TypeVariable ;
Exemple
Dclarations :
compteur : Entier;

1.2.2

Constantes

Une constante est une variable dont la valeur reste inchange durant le droulement dun algorithme, le
type dune constante dcoule de sa valeur.
Syntaxe
Constantes NomConstante = Valeur ;
Exemple
Constantes Pi = 3.141559;

1.2.3

Type de variables

Nous allons examiner les types de base appels aussi types primitifs, dfinis et utilisables dans le langage
algorithmique : les entiers, les rels, les caractres, les chanes et les boolens.
ENSAH-A. MOUSSA

CHAPITRE 1. INTRODUCTION LALGORITHMIQUE


Type numrique
Les variables de type numrique sont les variables de type entier ou rel.
Les oprations utilisables sur les lments de ces deux types sont tous les oprateurs arithmtiques classiques :
laddition(+), la soustraction (-), le produit (*) et la division (/).
On peut utiliser, sur les lments de type entier ou rel, les oprateurs de comparaison classique :
>; <; ; ; 6=; =
On peut utiliser aussi deux oprateurs spcifiques aux entiers : la division entire (DIV) et le modulo MOD.
Exemple
un nombre X est pair si X MOD 2 gale 0.
Conversion :
Convertir un entier en rel est naturel : cette opration nentrane pas de perte dinformation. Par exemple
lentier 16 deviendra 16.0
Convertir un rel en entier entrane une perte dinformation : perte des chiffres dcimaux. Par exemple le
rel 13.12 deviendra 13.
Type caractre
Domaine constitu des caractres alphanumriques et de ponctuation. Exemple : 3, A, a, P, ...
Les oprations possibles sur les caractres sont
>; <; ; ; 6=; =
En effet chaque caractre est associ une valeur numrique entire (code ASCII , Unicode, ou autre ) et
les comparaisons porteront sur ces valeurs numriques. La prcdence des caractres dans lalphabet dune
machine est dpendante du code de caractres utilis. Pour le code ASCII, nous pouvons constater lordre
suivant : ... 0, 1, 3, ... ,9, ..., A, B, ..., Z, ..., a, b, c,...,z.
Les symboles spciaux (, +, -, /, { , [, ...) et les lettres accentues ( , , , , ...) se trouvent rpartis autour
des trois grands groupes de caractres (chiffres, majuscules, minuscules). Leur prcdence ne correspond
aucune rgle dordre spcifique.
Exemple : 0 est infrieur Z, not 0 < Z .
Type logique boolen
Le domaine des boolens est lensemble form par les deux valeurs : Vrai et Faux. Les oprations possibles
sur les boolens sont les oprations logiques : disjonction (OU), conjonction (ET) et la ngation (NON).
Chane de caractres
Une chane de caractres est une suite de caractres alphanumrique. Par exemple : "ENSAH" , "Cycle
prpa", ...
Les oprations possibles sur les chanes de caractres sont :
La concatnation : loprateur + pourra tre utilis pour concatner les chanes de caractres. Par
exemple : "ENSAH" + "Al-Hoceima" = "ENSAHAl-Hoceima"
Les oprations de comparaison : >; <; ; ; 6=; =
En effet la prcdence lexicographique des chanes de caractres est dfinie en se basant sur la relation de
prcdence alphabtique des caractres. Cette relation de prcdence suit lordre du dictionnaire et elle est
dfinie dune faon rcurrente :
ENSAH-A. MOUSSA

CHAPITRE 1. INTRODUCTION LALGORITHMIQUE


1. La chane vide "" prcde lexicographiquement toutes les autres chanes.
2. La chane A = "A1A2 ... An" (n caractres) prcde lexicographiquement la chane B = "B1B2 ...Bm"
(m caractres) si lune des deux conditions suivantes est remplie
(a) A1 < B1
(b) A1 = B1 et "A2A3...An" prcde lexicographiquement "B2B3...Bm"
Exemple
"ENSAH" prcde "ENSAO"

1.3

Instructions

Les instructions sont les actions excutables par le processeur de la machine programmable.

1.3.1

Instructions de lecture et dcriture

Ecriture : Ecrire (Variable) ;


Lecture : Lire (Variable) ;
Exemple
Ecrire ("Bonjour ENSAH") ;
Ecrire("La solution de lquation ax+b=0 est :",-b/a) ;
Lire(val) ;

1.3.2

Affectation

En algorithmique, on appel lopration qui consiste donner une valeur une variable affectation et il
est reprsent par une flche. Ainsi lopration suivante a 3 donne la valeur 3 la variable a.
La variable a doit tre de type Entier (par ce que 3 est un entier). Si a a t dfini dans un autre
type, cette instruction provoquera une erreur.

1.4

Structure dun algorithme

Programme Nom_Programme
Dclarations
Constantes const1 = valeur1 ; const2 = valeur2 ;... ; constN = valeurN;
Variables NomVar1, NomVar2, NomVar3 ..., NomVarN : TypeVariable ;
Dbut
Instruction1;
Instruction2;
...
InstructionN;
Fin
Les lignes entre Dbut et Fin reprsente le corps de lalgorithme.

ENSAH-A. MOUSSA

Chapitre 2

Les structures de contrle


2.1

Instructions conditionnelles

Un algorithme est constitu dune suite dinstructions qui sexcutent les unes aprs les autres de la
premire la dernire. Linstruction conditionnelle nous autorise dsormais concevoir un algorithme qui
nexcutera pas certains blocs dinstructions.
Syntaxe
Si (Condition) alors
{
instruction11 ;
instruction12 ;
...
instruction1N ;
}
Sinon
{
instruction21 ;
instruction22 ;
...
instruction2N ;
}
Les instructions entre accolades forment un bloc dinstructions.
Exemple
Lalgorithme suivant permet de rsoudre lquation ax + b = 0.
Programme Prog_Equation
Dclarations
Variables a,b : Rel ;
Dbut
Ecrire ("Entrer a :") ;
Lire(a) ;
Ecrire ("Entrer b :") ;
Lire(b) ;
Si(a=0) alors
{
si(b=0)
7

CHAPITRE 2. LES STRUCTURES DE CONTRLE


{
Ecrire ("Lensemble des solutions est lensemble R") ;
}
sinon
{
Ecrire ("Lensemble des solutions est lensemble vide") ;
}
}
sinon
{
Ecrire ("Lensemble des solutions est lunique lment :" ,-b/a) ;
}
Fin
Cas particulier : linstruction conditionnelle simple :
Une version plus simple est utilise si lalternative est absente. La syntaxe de cette instruction est alors :
Syntaxe
Si (Condition) alors
{
instruction1 ;
instruction2 ;
...
instructionN ;
}

Remarque
Dans le cas o le bloc dinstructions est constitu dune seule instruction on peut omettre les accolades :
Si (Condition) alors
instruction1 ;
Sinon
instruction2 ;

2.2

Instructions de rptition

Les instructions de rptition, appeles boucles, permet dexcuter plusieurs fois conscutives un mme
bloc dinstructions. La rptition seffectue tant que la valeur de lexpression boolenne est gale Vrai.

2.2.1

La boucle tant_que

Syntaxe
tant_que (Condition) faire
{
instruction1 ;
instruction2 ;
...
instructionN ;
}
ENSAH-A. MOUSSA

CHAPITRE 2. LES STRUCTURES DE CONTRLE


Le bloc dinstructions sera excut tant que la condition est vrifie. La condition est une expression boolenne.
Exemple
Lalgorithme suivant permet de calculer la somme S = 1 + 2 + . . . + N .
Programme Prog_Somme_N_Premier_Entiers
Dclarations
Variables n, s, i : Entier ;
Dbut
Ecrire ("Entrer un entier positif :") ;
Lire(n) ;
s 0 ;
i 1 ;
tant_que (in) faire
{
s s+i ;
i i+1 ;
}
Ecrire ("La somme est :" , s) ;
Fin

2.2.2

La boucle pour

Cette boucle est frquemment utilise en programmation pour ritrer une excution un nombre de fois
connu lavance, elle est trs utilise avec les tableaux puisque on connait le nombre dlments quils
contiennent.
Syntaxe
pour compteur n jusqu m faire
{
instruction1 ;
instruction2 ;
...
instructionN ;
}
Exemple
Lalgorithme suivant permet de calculer le factoriel dun entier (N ! = 1 2 3 . . . N ) :
Programme Prog_Factoriel
Dclarations
Variables produit, i ,n : Entier ;
Dbut
Ecrire ("Entrer un entier positif :") ;
Lire(n) ;
produit 1 ;
pour i 2 jusqu n faire
{
produit produit * i ;
}
Ecrire ("Le factoriel de ", n , " est : ", produit ) ;
Fin
ENSAH-A. MOUSSA

CHAPITRE 2. LES STRUCTURES DE CONTRLE

2.2.3

La boucle faire tant_que

La boucle faire tant_que effectue lvaluation de la condition boolenne aprs avoir effectu la premire
itration de la boucle.
Syntaxe
faire
{
instruction1 ;
instruction2 ;
...
instructionN ;
} tant_que (Condition)
Exemple
Programme FaireTantQue
Dclarations
variables N : Entier ;
Dbut
faire
{
crire ("Entrer un entier entre 1 et 10 : ") ;
Lire(N)
} tant_que(N < 1 OU N > 10);
crire(N);
Fin

2.3

Exercices

1. crire un algorithme qui demande lge dun enfant lutilisateur. Ensuite, il linforme de sa catgorie :
"Poussin" de 6 7 ans
"Pupille" de 8 9 ans
"Minime" de 10 11 ans
"Cadet" aprs 12 ans
2. crire un algorithme qui affiche lcran les entiers de 1 10 en utilisant les boucles tant_que, pour
et faire tant_que.
3. crire un algorithme qui lit un entier au clavier et ensuite affiche la table de multiplication de ce
nombre. Par exemple si lutilisateur entre lentier 5 :
Table de 5 :
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
...
5 x 10 = 50

ENSAH-A. MOUSSA

10

S-ar putea să vă placă și