Cours algorithme 2
S. Tabbone
Cours en ligne
n
http://www.pise.info/algo/introduction.
htm
nhttp://cours.univ-
nancy2.fr/course/view.php?id=89
Introduction à l
Algorithmique
nUn algorithme, c est une suite d
instructions, qui une fois exécutée
correctement, conduit à un résultat
donné
nlalgorithmique exprime les instructions
résolvant un problème donné
indépendamment des particularités de
tel ou tel langage :
nstructure logique X langage de programmation
nPour fonctionner, un algorithme doit
donc contenir uniquement des
instructions compréhensibles par
celui qui devra l exécuter
nla vérification méthodique, pas à
pas, de chacun de vos algorithmes
représente plus de la moitié du
travail à accomplir... et le gage de
vos progrès.
Conventions décriture
nune représentation graphique, avec des
carrés, des losanges, etc. quon appelait
des organigrammes
n« pseudo-code » ressemble à un
langage de programmation authentique
dont on aurait évacué la plupart des
problèmes de syntaxe.
Les Variables
nDans un programme informatique, on
va avoir en permanence besoin de
stocker provisoirement des valeurs de
types différents: utilisation de variables
nune variable est une boîte, que le
programme (lordinateur) va repérer par
une étiquette. Pour avoir accès au
contenu de la boîte, il suffit de la
désigner par son étiquette.
Déclaration des variables
nIl s agit de créer la boîte et de lui
coller une étiquette.
nLe nom de la variable (létiquette de la
boîte) obéit à des impératifs changeant
selon les langages:
n Un nom de variable correct commence
impérativement par une lettre.
ncomporte des lettres et des chiffres, mais qui
exclut la plupart des signes de ponctuation, en
particulier les espaces.
nLe type de la boite précise ce que lon
voudra mettre dedans, car de cela
dépendent la taille de la boîte
n Types numériques
nType alphanumérique
nType booléen
Types numérique
Une variable destinée à recevoir des
nombres.
Type Numé rique Plage
Byte (octet) 0 à 255
Entier simple -32 768 à 32 767
Entier long -2 147 483 648 à 2 147 483 647
-3,40x1038 à -1,40x104 5 pour les valeurs négatives
Réel simple
1,40x10-4 5 à 3,40x1038 pour les valeurs positives
1,79x10308 à -4,94x10-324 pour les valeurs négatives
Réel double
4,94x10-324 à 1,79x10308 pour les valeurs positives
§Définir le type en fonction des besoins
Pseudo-code
nVariable g en Numérique
ou encore
nVariables PrixHT, TauxTVA, PrixTTC
en Numérique
Type alphanumérique
négalement appelé type caractère,
type chaîne ou en anglais, le type
string
nlettres, signes de ponctuation, espaces, ou
même de chiffres.
nLe nombre maximal de caractères
pouvant être stockés dans une seule
variable string dépend du langage
utilisé.
nune chaîne de caractères est toujours
notée entre guillemets
néviter la confusion:
nentre des nombres et des suites de caractères
chiffres.
nentre le nom d'une variable et son contenu
Type booléen
nuniquement les valeurs logiques VRAI et
FAUX: (TRUE et FALSE) ou des nombres
(0 et 1)
nle type booléen est très économique en
termes de place mémoire occupée,
puisque pour stocker une telle
information binaire, un seul bit suffit.
Linstruction daffectation
naffecter une variable cest lui attribuer une
valeur i.e mettre un contenu dans la boite
nEn pseudo-code, l'instruction d'affectation
se note avec le signe
nToto 24 //Attribue la valeur 24 à la variable Toto
n Comptabilité entre le contenant et le contenu
n Une variable désigné doit être au préalable
déclarée
Exemple daffectation
n Tutu Toto n Début
Riri "Loulou"
n Tutu Toto + 4 Fifi "Riri"
Fin
n Tutu Tutu + 1
n Début
Riri "Loulou"
Fifi Riri
Fin
n Variable A en n Variable A en
Numérique Numérique
Début Début
A 34 A 12
A 12 A 34
Fin Fin
L ordre dans lequel les instructions sont écrites va
jouer un rôle essentiel dans le résultat final.
n Exercice 1.1
n Quelles seront les valeurs des variables A et B
après exécution des instructions suivantes ?
n Variables A, B en Entier
Début
A 1
B A+3
A 3
Fin
Fin
n corrigé -
Corrigé
nAprès La valeur des variables est :
A 1 A=1 B=?
B A+3 A=1 B=4
A 3 A=3 B=4
n Exercice 1.2
n Quelles seront les valeurs des variables A, B
et C après exécution des instructions
suivantes ?
n Variables A, B, C en Entier
Début
A 5
B 3
C A+B
A 2
C B A
Fin
n corrigé -
Corrigé
nAprès La valeur des variables est :
A 5 A=5 B=?
C=?
B 3 A=5 B=3
C=?
C A+B A=5 B=3
C=8
A 2 A=2 B=3
C=8
C B A A=2 B=3
n Exercice 1.3
n Quelles seront les valeurs des variables A et B
après exécution des instructions suivantes ?
n Variables A, B en Entier
Début
A 5
B A+4
A A+1
B A 4
Fin
n corrigé -
Corrigé
nAprès La valeur des variables est :
A 5 A=5 B=?
B A+4 A=5 B=9
A A+1 A=6 B=9
B A 4 A=6 B=2
n Exercice 1.4
n Quelles seront les valeurs des variables A, B
et C après exécution des instructions
suivantes ?
n Variables A, B, C en Entier
Début
A 3
B 10
C A+B
B A+B
A C
Fin
n corrigé -
n Après La valeur des variables est :
A 3 A=3 B=? C=?
B 10 A=3 B = 10 C=?
C A+B A=3 B = 10 C=
13
B A+B A=3 B = 13 C=
13
A C A = 13 B = 13 C=
13
n Exercice 1.5
n Quelles seront les valeurs des variables A et B après
exécution des instructions suivantes ?
n Variables A, B en Entier
Début
A 5
B 2
A B
B A
Fin
n Moralité : les deux dernières instructions permettent-elles
déchanger les deux valeurs de B et A ? Si lon inverse les
deux dernières instructions, cela change-t-il quelque
chose ?
n corrigé -
Corrigé
n Après La valeur des variables est :
A 5 A=5 B=?
B 2 A=5 B=2
A B A=2 B=2
B A A=2 B=2
n Les deux dernières instructions ne permettent donc
pas déchanger les deux valeurs de B et A, puisque l
une des deux valeurs (celle de A) est ici écrasée.
Si lon inverse les deux dernières instructions, cela ne
changera rien du tout, hormis le fait que cette fois c
est la valeur de B qui sera écrasée.
nExercice 1.6
nPlus difficile, mais cest un classique
absolu, quil faut absolument maîtriser :
écrire un algorithme permettant d
échanger les valeurs de deux variables
A et B, et ce quel que soit leur contenu
préalable.
ncorrigé -
nDébut
C A
A B
B C
Fin
nOn est obligé de passer par une variable
dite temporaire (la variable C).
nExercice 1.7
nUne variante du précédent : on dispose
de trois variables A, B et C. Ecrivez un
algorithme transférant à B la valeur de
A, à C la valeur de B et à A la valeur de
C (toujours quels que soient les
contenus préalables de ces variables).
ncorrigé -
n Début
D C
C B
B A
A D
Fin
n En fait, quel que soit le nombre de variables,
une seule variable temporaire suffit
Expressions et opérateurs
n Une expression est un ensemble dopérandes,
reliées par des opérateurs, et équivalent à
une seule valeur
n Exemple d expression (opérandes
numériques):
7; 5+4; 123-45+844;Toto-12+5-Riri;
n Opérandes: numérique, alphanumérique,
booléen
n Opérateurs numériques
n + : addition
n - : soustraction
n * : multiplication
n / : division
n ^ : puissance
n
n Priorité des opérateurs: * et /sur + et -
n 12 * 3 + 5 12*(3+5)
n Opérateur alphanumérique : &
n Variables A, B, C en Caractère
Début
A "Gloubi"
B "Boulga"
C A&B
Fin
n Opérateurs logiques (ou booléens)
n Ou, ET, NON,
nOU
A B A ou B n ETA B A ET B
0 0 0 0 0 0
0 1 1 0 1 0
1 0 1 1 0 0
1 1 1 1 1 1
n NON
A NON A
0 1
1 0
nExercice 1.8
nQue produit lalgorithme suivant ?
nVariables A, B, C en Caractères
Début
A "423"
B "12"
C A+B
Fin
ncorrigé -
nIl ne peut produire quune erreur d
exécution, puisquon ne peut pas
additionner des caractères.
nExercice 1.9
nQue produit lalgorithme suivant ?
nVariables A, B en Caractères
Début
A "423"
B "12"
C A&B
n A la fin de lalgorithme "42312".