Vous êtes sur la page 1sur 11

DAIGL1

- Chapitre 1 Introduction l'algorithmique

A. Notion de programme
Un ordinateur sans programme pour le faire fonctionner na aucune utilit relle. Lordinateur ne fonctionne quavec des ordres lmentaires : ces ordres lmentaires sont appels instructions et sont rassembles au sein d'un programme. Comme l'ordinateur a l'avantage d'excuter trs rapidement et sans erreurs les ordres qu'on lui donne (les instructions), il excute beaucoup de traitements complexes plus vite et plus srement qu'un homme. Pour donner des ordres l'ordinateur, il est ncessaire de pouvoir communiquer avec lui. Cette communication passe par un langage de programmation, dans lequel est crit le programme. Un programme est un assemblage et un enchanement dinstructions lmentaires crit dans un langage de programmation, et excut par un ordinateur afin de traiter les donnes dun problme et renvoyer un ou plusieurs rsultats. Un algorithme reprsente l'enchanement des actions (instructions) ncessaires pour faire excuter une tche un ordinateur(rsoudre un problme). Un algorithme s'crit le plus souvent en pseudo-langage de programmation (appel langage algorithmique). Un algorithme n'est donc pas excutable directement par aucune machine. Mais il a l'avantage d'tre traduit facilement dans tous les langages de programmation. L'algorithmique, l'art d'crire des algorithmes, permet de se focaliser sur la procdure de rsolution du problme sans avoir se soucier des spcificits d'un langage particulier. Pour rsoudre un problme, il est vivement conseill de rflchir d'abord l'algorithme (langage naturel) avant de programmer (langage comprhensible par la machine) proprement dit, c'est dire d'crire le programme en langage de programmation.

Olivier Mondet http://unidentified-one.net

Thme 1 - Chap 1 - Introduction l'algorithmique.doc Page 1 sur 11

om2000-2001

Donnes Analyse du problme Rflexion Algorithme Traduction

Donnes

Programme

Rsultats

Rsultats

B. Notion de variables et dclarations


B.1. Prsentation
Les programmes ont pour but de traiter diffrentes donnes afin de produire des rsultats. Les rsultats peuvent eux-mmes tre des donnes pour d'autres programmes.

Donne(s)

Programme

Rsultat(s)

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 variables quantit qui contiennent les valeurs 10.5 et 20 :

10.5 Prix

20 Quantit

Attention ne pas confondre la variable et son contenu. Une variable est un contenant, c'est dire une sorte de bote, alors que le contenu d'une variable est une valeur numrique, alphanumrique ou boolenne, ou de tout autre type.

Thme 1 - Chap 1 - Introduction l'algorithmique.doc Page 2 sur 11

om2000-2001

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. Les variables dont la valeur ne change pas au cours de l'excution du programme sont appeles variables constantes ou plus simplement constantes.

B.2. Dclaration des variables


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. Donc la dclaration d'une variable indique deux choses : - son identificateur (son nom) ; - son type (sa taille). 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. En algorithmique, on distingue 5 types principaux : - 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)

Olivier Mondet http://unidentified-one.net

Thme 1 - Chap 1 - Introduction l'algorithmique.doc Page 3 sur 11

om2000-2001

B.3. Les oprateurs de lalgorithmique


Type rel Exemple -15.69 ; 0.36 Oprations possibles addition soustraction multiplication division exposant comparaisons addition soustraction multiplication division division entire modulo exposant comparaisons comparaisons concatnation comparaison Symbole ou mot cl correspondant + * / ^ <, =, >, <=, >=, <> + * / DIV MOD ^ <, =, >, <=, >=, <> <, =, >, <=, >=, <> + ou & <, =, >, <=, >=, <>

entier

-10 ; 689

3;

caractre chane boolen

'B' ; 'h' ; ' ' ; '? ' ; '\n' "Bts" ; "2001" VRAI ; FAUX

Nota : Pour les entiers, la division peut tre 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. Exemples : 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 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 + (ou &) sert concatner des chanes de caractre, ce qui signifie transformer plusieurs chanes en une seule en les ajoutant les unes la suite des autres. Exemple : "Salut " & "les petits loups" donne "Salut les petits loups"

Olivier Mondet http://unidentified-one.net

Thme 1 - Chap 1 - Introduction l'algorithmique.doc Page 4 sur 11

om2000-2001

B.4. Syntaxe gnrale de lalgorithmique


Algo truc /* les constantes : :il est obligatoire de leur donner une valeur ds leur dclaration */ Constantes variable1 10 : entier variable2 "bonjour!" : chane // les variables au sens strict Variables variable3, variable4 : rels variable5 : chane Dbut Corps de lalgorithme

Dclaration s

/* instructions */

Fin Les mots du langage algorithmique sont crits en gras ou souligns. Un algorithme commence par le mot Algo suivi de son identificateur (le nom du programme). Ensuite viennent les dclarations: dans un premier temps celles des constantes, annonce par Constantes, puis celle des variables, annonce par Variables. Pour dclarer une variable, on indique son identificateur suivi d'un double point et de son type. La valeur des constantes est donne ds leur dclaration, avec le signe ) prcd de son identificateur. Le corps du programme commence par Dbut et se termine par Fin. On peut insrer des commentaires, soit entre les balises /* */ (commentaire crit sur plusieurs lignes), soit aprs // jusqu' la fin de la ligne.

C. Les instructions lmentaires


C.1. Prsentation gnrale
L'excution d'un programme est constitue : - d'changes d'informations en mmoire ; - de calculs. Une instruction est un ordre lmentaire que peut excuter directement l'ordinateur. 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. Les instructions lmentaires les plus courantes sont : - l'affectation : donner une nouvelle valeur une variable ; - l'affichage sur l'cran ; - la saisie travers le clavier. Thme 1 - Chap 1 - Introduction l'algorithmique.doc Page 5 sur 11 om2000-2001

C.2. Laffectation
C.2.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. En algorithmique, pour reprsenter lopration daffectation, on va utiliser le symbole dutiliser le symbole = pour ne pas le confondre avec lgalit mathmatique. Exemples : a 5; a y; a 5+8; a 5+y; Les instructions daffectation sont formes de deux parties : - A gauche du symbole , on trouve toujours le nom dune variable destine recevoir une valeur. - A droite, on trouve lexpression qui va donner la valeur quon veut affecter la variable en question. Linstruction daffectation agit en deux temps : Tout dabord elle dtermine la valeur de lexpression droite du ; puis elle range la rsultat dans la variable situe gauche. .On vite

C.2.2.

Laffectation est diffrente de lgalit mathmatique

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. Voici les principales diffrences entre laffectation et lgalit mathmatique : Linstruction x y na pas la mme signification que linstruction y x contrairement aux mathmatiques o x = y est quivalent y = x. L'instruction x y signifie que x va prendre la valeur de y. Au contraire y x signifie que y va prendre la valeur de x. On ne peut affecter de valeur qu une variable. Il est impossible daffecter une valeur une expression. Ainsi, par exemple, linstruction a + 5 b na pas de sens, alors que a + 5 = b a une signification en mathmatiques. Il est possible de retrouver la mme variable droite et gauche de lexpression. crire a a + 3 a un sens en programmation, alors que a = a + 3 n'a pas de sens en mathmatiques. Cela signifie que lon value a + 3 avec l'ancienne valeur de a et quon range le rsultat dans a. La valeur de a sera donc augmente de 3 par cette opration. Olivier Mondet http://unidentified-one.net

Thme 1 - Chap 1 - Introduction l'algorithmique.doc Page 6 sur 11

om2000-2001

Exemple : Algo machin Variables a, b : entiers //a et b ont une valeur indtermine Dbut 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 toujours 5 b b + 1 // b vaut 6 Fin Application 1 : On considre les variables simples suivantes : Nom Type X Rel U Entier Y Chane caractres

de

Complter le tableau suivant en veillant au type des lments rfrencs dans les membres gauche et droit de laffectation : Instructions : X 24.5 U X U 33 X U Y U Y "U" Mmoire : X Y U

Application 2 : la permutation Comment changer les valeurs de deux variables a et b ? crire lalgorithme correspondant. Que pensez-vous de lalgorithme suivant ? Permet-il de rsoudre notre problme ? Algo bidule Variables a, b : Entier Dbut a 3 b 5 a b b a Fin Application 3 : Algo bidule Variables X, Y, Z : Entier K: Dbut X 3 Y 5 Z 1 K X X Y Y Z Z K Fin Thme 1 - Chap 1 - Introduction l'algorithmique.doc Page 7 sur 11 om2000-2001

Quel doit tre le type de la variable K pour garantir la cohrence de lalgorithme ? Complter le tableau suivant afin de montrer lexcution pas pas de lalgorithme. Quel est le but de cet algorithme ? Instructions : X 3 Y 5 Z 1 K X X Y Y Z Z K Mmoire : X

C.2.3.

Complments

C.2.3.1. Laffectation de caractres et de chanes


Les valeurs numriques, nous lavons vu, scrivent de faon naturelle, sans avoir les accompagner de symboles supplmentaires. Il nen est pas de mme avec les caractres et les chanes, quil faut entourer de guillemets ou d'apostrophe. Sinon, en effet, le programme pourrait confondre le caractre ou la chane avec le nom dune variable. Les chanes sont entoures de guillemets et les caractres de simples apostrophes. Exemples : rponse 'o' mot "bonjour"

C.2.3.2. Linitialisation des variables


Au dbut dun programme, les variables nont pas encore reues de valeur ; on dit quelles sont indfinies. Toutes les variables doivent tre initialises, cest--dire recevoir une valeur initiale, avant leur utilisation ( droite d'une affectation ou dans une expression conditionnelle). Sinon, le contenu de la variable nest pas vide, il n'est pas forcement nul, il est quelconque. Ainsi, lorsquon utilise une variable indfinie (qui na pas encore reue de valeur), le comportement du programme va tre alatoire. De l vient la ncessit de toujours bien initialiser les variables avant dutiliser leur valeur (sauf pour les variables saisies au clavier). Linitialisation seffectue gnralement au dbut du programme, juste aprs les dclarations. Elle prend la forme d'une simple affectation ou dune saisie au clavier. Algo initialisation /*dclarations*/ Variables x , y : entiers a : chane Dbut /* initialisation */ x 0 y 10 a "hello" /* autres instructions */ Fin

Thme 1 - Chap 1 - Introduction l'algorithmique.doc Page 8 sur 11

om2000-2001

C.3. 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. Syntaxe Saisir variable1 [, variables2, ]* 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 Saisir 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. Sans instruction de saisie (ou de lecture sur un priphrique quelconque), un programme fournirait toujours le mme rsultat.

C.4. L'affichage
La plupart des programmes ncessitent de communiquer lutilisateur un certain nombre de rsultats par lintermdiaire dun priphrique. Pour cela, ils utilisent des instructions d'affichage. L'instruction d'affichage permet de fournir des comprhensible pour l'utilisateur travers l'cran. Syntaxe Afficher expression1, [expression2] Exemples : Afficher toto Cette instruction permet d'afficher la valeur de la variable toto l'cran Si toto est une chane qui vaut "Salut !", cette instruction affichera Salut ! 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 On peut mlanger l'affichage de valeur littrales et de variables. Cela est particulirement utile si on veut voir apparatre un libell (texte accompagnant la saisie des donnes ou l'dition des rsultats, permettant de guider l'utilisateur). rsultats sous forme directement

Thme 1 - Chap 1 - Introduction l'algorithmique.doc Page 9 sur 11

om2000-2001

Exemple : Afficher "Voici les rsultats : x = ", x, " et y = ", y Ils apparatront dans lordre. Nous aurons donc lcran (en supposant que les valeurs de x et y sont respectivement 5 et 10) : Voici les rsultats : x = 5 et y = 10 Exemple : Un algorithme qui calcule l'ge de l'utilisateur en fonction de son anne de naissance. Algorithme age Constantes anne 2001 Variables ddn : entier // date de naissance Dbut Afficher "Entrez votre anne de naissance sur 4 chiffres" Saisir ddn Afficher "Vous avez, ou aurez dans l'anne " , anne ddn , " ans." Fin Application 1 : A partir des exemples dexcution prsents ci dessous, crire lalgorithme associ. Jour de ta naissance ? 15 Mois de ta naissance ? 09 Anne de ta naissance ? 1982 Tu es n le 15/09/1982 Jour de ta naissance ? 18 Mois de ta naissance ? 03 Anne de ta naissance ? 1980 Tu es n le 18/03/1980

Application 2 : Lalgorithme suivant doit calculer la consommation aux 100 km dun vhicule. Complter les zones marques par des points dinterrogation. Algo kilom Variables km, litre : Entiers conso : ?? Dbut Afficher "Nombre de kilomtres ?" Saisir km Afficher "Nombre de litres consomms ?" Saisir litre ???? Afficher "La consommation aux 100 km est de :", conso Fin

Olivier Mondet http://unidentified-one.net

Thme 1 - Chap 1 - Introduction l'algorithmique.docPage 10 sur 11

om2000-2001

Application 3 : On considre lalgorithme suivant : Algo trucmuche Variables X, Y : Entiers Dbut Afficher "Entrer un premier nombre" Saisir X Afficher "Entrer un second nombre" Saisir Y X X+Y Y X-Y X X-Y Fin Terminer la trace de lalgorithme et en dduire son objectif. Instructions : X X+Y Y X-Y X X-Y Mmoire : X 10 12 Y

Application 4 : La librairie Editor accorde tous ses clients, durant le mois de novembre, une rduction de 5% sur le montant des achats. Voici lalgorithme qui calcule le montant de la remise ainsi que le montant payer. Algo reduc Variables Mtt, Rem, Map : Rels Dbut Afficher "Montant des achats ?" Saisir Mtt Rem Mtt * 5/100 Afficher "Remise de 5% :", Rem Map Mtt - Rem Afficher "Montant payer :", Map Fin Pour des actions promotionnelles ponctuelles, les responsables dEditor souhaiteraient disposer dun algorithme ayant les mmes fonctions que celui expos ci-dessus mais dans lequel le taux de remise serait saisi. crire cet algorithme.

Olivier Mondet http://unidentified-one.net

Thme 1 - Chap 1 - Introduction l'algorithmique.docPage 11 sur 11

om2000-2001

Vous aimerez peut-être aussi