S. Tabbone
http://cours.univnancy2.fr/course/view.php?id=89
Introduction lAlgorithmique
Un algorithme, cest une suite dinstructions, qui une fois excute correctement, conduit un rsultat donn lalgorithmique exprime les instructions rsolvant un problme donn indpendamment des particularits de tel ou tel langage :
Pour fonctionner, un algorithme doit donc contenir uniquement des instructions comprhensibles par celui qui devra lexcuter la vrification mthodique, pas pas, de chacun de vos algorithmes reprsente plus de la moiti du travail accomplir... et le gage de vos progrs.
Conventions dcriture
une reprsentation graphique, avec des carrs, des losanges, etc. quon appelait des organigrammes pseudo-code ressemble un langage de programmation authentique dont on aurait vacu la plupart des problmes de syntaxe.
Les Variables
Dans un programme informatique, on va avoir en permanence besoin de stocker provisoirement des valeurs de types diffrents: utilisation de variables une variable est une bote, que le programme (lordinateur) va reprer par une tiquette. Pour avoir accs au contenu de la bote, il suffit de la dsigner par son tiquette.
Il sagit de crer la bote et de lui coller une tiquette. Le nom de la variable (ltiquette de la bote) obit des impratifs changeant selon les langages:
Un nom de variable correct commence imprativement par une lettre. comporte des lettres et des chiffres, mais qui exclut la plupart des signes de ponctuation, en particulier les espaces.
Le type de la boite prcise ce que lon voudra mettre dedans, car de cela dpendent la taille de la bote
Types numrique
Une variable destine recevoir des nombres.
Type Numrique Plage Byte (octet) Entier simple Entier long 0 255 -32 768 32 767 -2 147 483 648 2 147 483 647 -3,40x1038 -1,40x1045 pour les valeurs ngatives 1,40x10-45 3,40x1038 pour les valeurs positives
Rel simple
Rel double
1,79x10308 -4,94x10-324 pour les valeurs ngatives 4,94x10-324 1,79x10308 pour les valeurs positives
Pseudo-code
Variable g en Numrique
ou encore
Type alphanumrique
Le nombre maximal de caractres pouvant tre stocks dans une seule variable string dpend du langage utilis.
viter la confusion:
entre des nombres et des suites de caractres chiffres. entre le nom d'une variable et son contenu
Type boolen
uniquement les valeurs logiques VRAI et FAUX: (TRUE et FALSE) ou des nombres (0 et 1) le type boolen est trs conomique en termes de place mmoire occupe, puisque pour stocker une telle information binaire, un seul bit suffit.
Linstruction daffectation
affecter une variable cest lui attribuer une valeur i.e mettre un contenu dans la boite En pseudo-code, l'instruction d'affectation se note avec le signe
Comptabilit entre le contenant et le contenu Une variable dsign doit tre au pralable dclare
Exemple daffectation
Dbut Fin
Dbut Fin
Lordre dans lequel les instructions sont crites va jouer un rle essentiel dans le rsultat final.
Exercice 1.1 Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes ? Variables A, B en Entier Dbut A1 BA+3 A3 Fin Fin corrig
Corrig
Aprs La valeur des variables est : A1 A=1 B=? BA+3 A=1 B=4 A3 A=3 B=4
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 A5 B3 CA+B A2 CBA Fin corrig -
Corrig
Aprs La valeur des variables est : A5 A=5 B =? C=? B3 A=5 B= 3 C=? CA+B A=5 B= 3 C=8 A2 A=2 B= 3 C=8 CBA A=2 B=
Exercice 1.3 Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes ? Variables A, B en Entier Dbut A5 BA+4 AA+1 BA4 Fin corrig -
Corrig
Aprs La valeur des variables est : A5 A=5 B=? BA+4 A=5 B=9 AA+1 A=6 B=9 BA4 A=6 B=2
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 A3 B 10 CA+B BA+B AC Fin corrig -
Aprs La valeur des variables est A3 A=3 B=? ? B 10 A=3 B = 10 CA+B A=3 B = 10 13 BA+B A=3 B = 13 13 AC A = 13 B = 13 13
C= C=? C= C= C=
Exercice 1.5 Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes ? Variables A, B en Entier Dbut A5 B2 AB BA 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 ? corrig -
Corrig
Aprs La valeur des variables est : A5 A=5 B=? B2 A=5 B=2 AB A=2 B=2 BA A=2 B=2 Les deux dernires instructions ne permettent donc pas dchanger les deux valeurs de B et A, puisque lune des deux valeurs (celle de A) est ici crase. Si lon inverse les deux dernires instructions, cela ne changera rien du tout, hormis le fait que cette fois cest la valeur de B qui sera crase.
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. corrig -
Dbut CA AB BC Fin On est oblig de passer par une variable dite temporaire (la variable C).
Exercice 1.7 Une variante du prcdent : on dispose de trois variables A, B et C. Ecrivez un algorithme transfrant B la valeur de A, C la valeur de B et A la valeur de C (toujours quels que soient les contenus pralables de ces variables). corrig -
Dbut DC CB BA AD Fin En fait, quel que soit le nombre de variables, une seule variable temporaire suffit
Expressions et oprateurs
Une expression est un ensemble doprandes, relies par des oprateurs, et quivalent une seule valeur Exemple dexpression (oprandes numriques):
7; 5+4; 123-45+844;Toto-12+5-Riri;
Oprateurs numriques
12 * 3 + 5 12*(3+5)
OU
A B A ou B
ET A
0 0 1 1
B 0 1 0 1
A ET B 0 0 0 1
0
0 1 1
0
1 0 1
0
1 1 1
NON
A
0 1
NON A
1 0
Exercice 1.8 Que produit lalgorithme suivant ? Variables A, B, C en Caractres Dbut A "423" B "12" CA+B Fin corrig -
Il ne peut produire quune erreur dexcution, puisquon ne peut pas additionner des caractres.
Exercice 1.9 Que produit lalgorithme suivant ? Variables A, B en Caractres Dbut A "423" B "12" CA&B