Académique Documents
Professionnel Documents
Culture Documents
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.
om2000-2001
Donnes
Programme
Rsultats
Rsultats
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.
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.
om2000-2001
entier
-10 ; 689
3;
'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"
om2000-2001
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.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.
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
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
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
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
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.
om2000-2001