Académique Documents
Professionnel Documents
Culture Documents
Algorithmique et Programmation
SOMMAIRE
I. INTRODUCTION ................................................................................................................ 2 II. LES STRUCTURES DE BASE DUN LANGAGE DE PROGRAMMATION............ 3 A. LA SEQUENCE DINSTRUCTIONS .................................................................................... 3 1. Les Oprations sur les variables............................................................................... 3 2. Le dialogue avec lutilisateur ................................................................................... 5 B. LA STRUCTURE ALTERNATIVE ....................................................................................... 7 C. LA STRUCTURE REPETITIVE .......................................................................................... 8 1. La boucle TantQue .................................................................................................... 9 2. La Boucle Rpter Jusqu .................................................................................... 10 3. La Boucle Pour ....................................................................................................... 11 D. LA DECLARATION DES VARIABLES .............................................................................. 13 1. Les types de Variables ............................................................................................ 14 E. LES FONCTIONS ET PROCEDURES ................................................................................ 16 1. Procedure ................................................................................................................ 16 2. Fonction .................................................................................................................. 17 III. LES REGLES DE PROGRAMMATION ..................................................................... 19 IV. LA COMPILATION ....................................................................................................... 20 V. RESUME .......................................................................................................................... 21
Page 1
Support de Cours
Algorithmique et Programmation
I. Introduction
Quand une personne dbute dans le domaine de linformatique, il commence gnralement travailler avec des logiciels qui existent ou qui sont cres pralablement par quelquun dautre, On lappelle cependant Utilisateur. Mais un jour ces logiciels ne satisferont plus tous les besoins de cet utilisateur. Ce nest qu ce moment l quil va penser crer ses propres applications ou programmes et passer du stade dutilisateur au stade du Programmeur.
Programmer est facile dire, mais comment ? . La rponse est simple, il suffit de suivre les tapes suivantes : Raliser un cahier de charges ; Construire un organigramme ou schma reprsentant lenchane-ment des instructions dun programme et lacheminement des traitements ; En dduire lAlgorithme ou pseudo-langage ( langage comprhen-sible ) en suivant des rgles bien dtermines ; Traduire lAlgorithme en un langage de programmation afin quil devient comprhensible pour la machine ; Compiler le programme pour pouvoir dterminer les erreurs de syntaxes et les corriger ; Excuter le programme ; Ceci dit, tablir Un cahier de charges est ltape la plus difficile et dlicate. Cest en quelque sorte linventaire de ce quon a, ce quon veut obtenir, par quel moyen, et dans combien de temps. En dautre manire cest le cahier dans lequel on va : Expliquer ce quon veut raliser exactement ; Dterminer les donnes en sortie, cest dire les donnes quon veut obtenir aprs traitement ; En dduire les donnes en entres, cest dire les donnes dont la machine a besoin pour raliser les traitements voulus ; Dterminer les traitements ncessaires pour obtenir les donnes en sortie partir des donnes en entres ; Le cahier ainsi tablit, il reste linformatiser, mais comment ? . Cest ce que nous proposons de voir dans le prsent rapport.
Page 2
Support de Cours
Algorithmique et Programmation
A. La squence dinstructions
Une instruction est une action que lordinateur est capable dexcuter. Chaque langage de programmation fournit une liste dinstructions qui sont implmentes et que lon peut donc utiliser sans les rcrire. Dans notre pseudo-langage, nous naurons que la liste minimal dinstructions, ncessaire et suffisante pour les programmes que nous aurons crire. 1. Les Oprations sur les variables Tout au long dun programme, une variable peut subir plusieurs changements issu de certaines oprations (Affectation, Incrmentation, Decrmentation, Arithmtique ) et del un changement de sa valeur. Affectation
Oprations
Dans un organigramme, elles sont reprsentes ainsi : Formalisme dune Squence dinstructions dOprations
Page 3
Support de Cours
Algorithmique et Programmation
Dans le pseudo-langage, elles scrivent ainsi : Variable Variable Variable Variable Valeur Val1 + Val2 * . Variable + Val Variable - Val
A S B A
Par exemple : 5 3 + (2 * 3) / 6 A + ( 20 * S) A - 1
a) Laffectation
Une affectation cest le fait de mmoriser une valeur un endroit dans la mmoire nomm variable ou dont ladresse est le nom de la variable. Variable Valeur
Vrai
b) LIncrmentation et la Decrmentation
Incrmenter une variable cest le fait de lui ajouter une valeur sa valeur initiale. Decrmenter une variable cest le fait de soustraire une valeur de sa valeur initiale. Cette notion est souvent utilise dans le cas ou on a besoin de crer un compteur. Variable Variable + Val
I J
Page 4
Support de Cours
Algorithmique et Programmation
c) LInitialisation
Cest le fait de donner une valeur initiale une variable avant de lincrmenter ou de la decrmenter. Cette notion est souvent employe lorsquon utilise un compteur. Var ValI
I I
Les oprations arithmtiques courantes sont laddition, soustraction, multiplication et division. Ces oprations scrivent de la manire suivante : Variable Val1 + Val2 Variable Val1 - Val2 Variable Val1 * Val2 Variable Val1 / Val2 On doit toujours affecter le rsultat dune opration dans une variable Par exemple : A 5+2 ; B
A1; C
(B / 2) 1 + A
2. Le dialogue avec lutilisateur Pour permettre au programme de dialoguer avec lutilisateur, cest dire dafficher un rsultat lcran et de lire une entre au clavier, il faut au moins deux instructions une pour lire et lautre pour afficher lcran ou pour imprimer. Dans un organigramme, elles sont reprsentes ainsi : Formalisme dune Squence dinstructions de dialogue avec lutilisateur
Page 5
Support de Cours
Algorithmique et Programmation
Dans le pseudo-langage, elles scrivent ainsi : Lire Variable Lire Variable1, Variable2,. Afficher Texte Afficher Variable Afficher Texte , Variable Imprimer Texte Imprimer Variable Imprimer Texte , Variable La premire lit tous les caractres qui sont saisis au clavier, jusqu ce que lutilisateur appuie sur la touche entre, et stocke le rsultat dans la variable. La seconde affiche sur lcran le ou les textes et la valeur des variables. La troisime imprime le ou les textes et la valeur des variables. Par exemple : Cette squence dinstructions va permettre de dialoguer avec lutilisateur. En organigramme elle sera reprsente comme suit :
En pseudo-langage : Afficher Quel est ton nom ? : Lire Nom Afficher Ton nom est : , Nom Afficher Le mien est Khalil
Page 6
Support de Cours
Algorithmique et Programmation
B. La structure alternative
Il est souvent ncessaire lorsque lon crit un programme de distinguer entre plusieurs cas conditionnant lexcution de telles ou telles instructions. Pour ce faire, on utilise une structure alternative (Conditionnelle) : Si on est dans tel cas on fait cela sinon on fait ceci. Le formalisme de cette structure dans un organigramme sera comme suit : Formalisme dune Structure alternative
Non
Condition
Oui
Actions 2
Actions 1
La syntaxe de cette structure en pseudo-langage est la suivante : SI Condition ALORS Actions1 [ SINON Actions2 ] FINSI NB : Les crochets signifient que la partie sinon est facultative. Les actions Les actions qui suivent le Sinon ou le Alors peuvent tre : Une simple instruction Une suite dinstructions Une autre structure alternative Une autre structure rptitive Les conditions Pour exprimer les conditions on utilise les oprateurs conditionnels suivants : = gal ; < Infrieur ; > Suprieur ; <= Infrieur ou gal ; >= Suprieur ou gal ; <> diffrents ;
Page 7
Algorithmique et Programmation
On peut combiner des conditions l'aide des oprateurs logiques suivant : Ou ; Et ; XOR; Par exemple : (A<>B) ET (A>=5) ((A<0) ET ((B=0) OU (C<>A)) XOR (D=1)) Lorsque lon crit de telles conditions, il est recommand de mettre toutes les parenthses afin dviter les erreurs. Par exemple : Programme permettant de calculer la valeur absolue dun nombre : Organigramme :
Non
A<0
Oui
ABS
ABS
A*(-1)
Ce qui donnera en pseudo-langage : Si (A<0) Alors ABS A* (-1) Sinon ABS A FINSI
C. La Structure rptitive
Un programme a presque toujours pour rle de rpter la mme action un certain nombre de fois. Pour ce faire, on utilise une structure permettant de dire Excuter telles actions jusqu ce que telle condition soit remplie . Bien quune seule soit ncessaire, la plupart des langages de programmation proposent trois types de structures rptitives. Voici celles de notre pseudo-langage.
Page 8
Support de Cours
Algorithmique et Programmation
1. La boucle TantQue Le formalisme de cette structure dans un organigramme sera comme suit :
Non
Condition
Oui
Actions
La syntaxe de cette structure en pseudo-langage est la suivante : TantQue Condition Faire Actions Fin TantQue Ce qui signifie tant que la condition est vraie, on excute les actions. Par exemple : Ceci est un programme qui va permettre de calculer la somme des nombres entiers Infrieurs N : Organigramme : Lire N
S I 0 0
Non
I<N
Oui
Afficher S
I S
I+1 S+I
Page 9
Support de Cours
Algorithmique et Programmation
Algorithme (Pseudo-langage) : Lire n I 0 S 0 TantQue ( I< n ) Faire I I+1 S S+ I FinTQ Afficher S 2. La Boucle Rpter Jusqu Cette boucle va pouvoir excuter les actions au moins une fois la vrification de la condition se fait la fin de la boucle contrairement la boucle tant que.
Actions
Condition
Oui
Non
La syntaxe de cette structure en pseudo-langage est la suivante Rpter Actions Jusqu Condition Ce qui signifie que lon excute les actions jusqu ce que la condition soit vraie.
Page 10
Support de Cours
Algorithmique et Programmation
Par exemple : Le mme exemple avec la boucle rpter jusqu : Organigramme : Lire N
S I
0 0
S I
S+I I+1
I >= N
Oui
Non
Afficher S
Algorithme ou pseudo-langage : Lire n I 0 S 0 Rpter S S+I I I+1 Jusqu ( I >= n ) Afficher S 3. La Boucle Pour Trs souvent, on utilise une structure rptitive avec un compteur et on sarrte lorsque le compteur a atteint sa valeur finale.
Page 11
Support de Cours
Algorithmique et Programmation
Par exemple : Lire n I 0 S 0 Rpter S S+I I I+1 Jusqu ( I >= n ) Afficher S Cest pourquoi la plupart des langages de programmation offrent une structure permettant dcrire cette rptitive plus simplement. Dans le pseudo-langage cest la structure POUR. Lorganigramme de cette structure peut tre reprsenter comme suit :
POUR Variable Allant de Valeur initiale A Valeur finale [PAS Valeur du pas] Faire
La syntaxe de cette structure en pseudo-langage est la suivante POUR Variable Allant de Valeur initiale A Valeur finale [PAS Valeur du pas] Faire Actions
Suivant Variable
Lorsque le pas est Omis, il est suppos gale (+1).
Page 12
Support de Cours
Algorithmique et Programmation
Par exemple : Ceci est un programme qui va permettre de calculer la somme des nombres entiers Infrieurs N : Organigramme :
Lire N
0
S+I
Suivant I
Afficher s Algorithme ou pseudo-langage : Lire n S 0 Pour I Allant de 0 A N Faire S S+I Suivant I Afficher S
STRUCTURES ET INSTRUCTIONS
La partie instruction contient les instructions excuter. La partie donnes contient toutes les variables utilises par le programme.
Page 13
Support de Cours
Algorithmique et Programmation
Un programme excutable est charg dans la mmoire centrale de lordinateur, les valeurs que lon a affectes aux variables doivent tre conserves tout le temps du droulement du programme. Par consquent il faut que le programme soit capable de rserver la place ncessaire aux variables. Pour ce faire, les variables doivent tre dclares afin que le compilateur sache quelle place elles vont occuper. 1. Les types de Variables Les variables que lon utilise dans le programme ne sont pas toutes de mme nature, il y a des nombres, des caractres, on dit que les variables sont types. Il est ncessaire de donner un type aux variables, car cela permet dune part de contrler leur utilisation ( on ne peut pas deviser un caractre par un nombre) et dautre part cela indique quelle place il faut rserver pour la variable. Gnralement les variables peuvent tre des types suivants : Entier Il sagit des variables destines contenir un nombre entier positif ou ngatif. Dans notre Pseudo-langage, on crira la dclaration des variables de type entier comme suit : Variable1, Variable2 : Entier Gnralement un entier occupe deux octets, ce qui limite les valeurs de 32768 +32768. Cependant cela dpend des machines, des compilateurs et des langages. Certains langages distinguent les entiers courts (1 octets ), les entiers longs (4 octets) et les entiers simples (2 octets). Variable1, Variable2 : Entier Simple Variable1, Variable2 : Entier Long REEL Il sagit des variables numriques qui ne sont pas des entiers, cest dire qui comporte des dcimales. Gnralement un nombre rel est cod sur 4 octets. Il existe deux types de rel : simple et double. Dans notre pseudo-langage, la dclaration des variables de ce type sera comme suit : Variable1, Variable2, : REEL Variable1, Variable2, : Rel Double
Page 14
Support de Cours
Algorithmique et Programmation
CARACTERE Les variables de type caractre contiennent des caractres alphabtiques ou numriques (de 0 9 ), mais dans ce cas ils ne sont pas considrs comme tant des nombres et on ne peut pas faire doprations dessus. Un caractre occupe 1 octet. Dans notre pseudo-langage, une variable de type caractre de dclare ainsi : Variable1, Variable2, : CAR Chane de caractres Ce type de variable peut contenir plusieurs caractres. Dans le pseudo-langage, on le dclarera ainsi : Variable1, Variable2, : Chane BOOLEEN Il est souvent ncessaire lorsque lon crit un programme dintroduire des variables qui prennent les valeurs Vrai ou Faux ou les valeurs Oui ou Non. Pour cela Il Existe un type particulier dont les variables ne peuvent prendre que 2 valeurs : Vrai ou Faux. Dans notre pseudo-langage Ce type de variable se dclare de la manire suivante. Variable1, Variable2, : BOOLEEN Les TABLEAUX On peut regrouper plusieurs variables sous un mme nom, chacune tant alors repre par un numro. Cest ce que lon appelle un tableau. On peut faire un tableau avec des variables de nimporte quel type. Dans tous les cas le ime lment dun tableau appel TAB sera adress par TAB(i). Gnralement on fait des tableaux une dimension, mais il existe galement des tableaux deux dimensions, dans ce cas TAB(i,j) reprsente la jme colonne et la ime ligne. Dans notre pseudo-langage un tableau est dclarer de la manire suivante : Variable : TABLEAU [ Longeur ] Type Variable : TABLEAU [ nb_ligne , nb_col ] Type Par exemple : mot : TABLEAU [10] CAR Liste_nbr : TABLEAU [25] Mots : TABLEAU [10,20] CAR
Page 15
Support de Cours
Algorithmique et Programmation
Page 16
Support de Cours Sinon Long = Longueur FinSI Pour I allant de 1 long Faire Chane(i) =Caractre FinPour Fin Procdure On lutilise ainsi : Remplir_Chaine (12, *, Ligne) Ou Remplir_Chaine(longmot, rep, message) 2. Fonction
Algorithmique et Programmation
Une fonction est une procdure dont le but est de dterminer une valeur et de la retourner au programme appelant. Dans notre pseudo-langage, elle se dclare de la manire suivante : Fonction Nom_Fonction (Val Variable : Type , , Var Variable : Type ) : Type Dclaration des variables locales Dbut Fonction Actions Nom_Fonction = Valeur Fin Fonction Les mme remarques pour la procdure sapplique pour une fonction. De plus il faut noter que la fonction retourne une valeur (ou le contenu dune variable), donc on doit indiquer son type. Lappel dune fonction scrit : Variable = Nom_Fonction (Variable, , Valeur ) Une fonction ne peut donc pas retourner un tableau. Par exemple : Fonction Valeur_Absolue ( Val nombre : Entier ) : Entier Dbut Fonction Si (nombre<0) Alors Valeur_Absolue = (nombre*(-1))
Page 17
Support de Cours Sinon Valeur_Absolue = nombre FinSi Fin Fonction On lutilise ainsi : I = Valeur_Absolue(I) L= Valeur_Absolue(-120)
Algorithmique et Programmation
Page 18
Support de Cours
Algorithmique et Programmation
En ce qui concerne les fonctions et procdures, il y a aussi des rgles respecter : On doit toujours tre capable de donner un nom significatif une procdure ou une fonction. Le nombre de paramtres ne doit pas tre trop grand (en gnral infrieur 5) car cela nuit la lisibilit du programme. Une procdure ou une fonction doit tre la plus gnrale possible de manire pouvoir tre rutilise dans dautres circonstances. Si le but dune procdure et de calculer une valeur simple, il est prfrable den faire une fonction. Il est souvent plus claire dcrire une fonction boolenne plutt quune condition complexe.
Page 19
Support de Cours
Algorithmique et Programmation
IV. La compilation
Un langage de programmation sert crire des programmes de manire les excuter. Des outils, appels Compilateurs, permettant de traduire le langage crit par le programmeur en langage machine. Il fonctionne de la manire suivante :
Instruction1.. Instruction2..
Editeur de Lien
Erreurs de Compilation
Erreurs dExcution
Le compilateur analyse le langage source afin de vrifier la syntaxe et de gnrer un fichier objet en langage intermdiaire assez proche du langage machine. Tant quil y a des erreurs de syntaxe, le compilateur est incapable de gnrer le fichier objet. Souvent on utilise dans un programme des fonctions qui soit, on t crite par quelquun dautre soit sont fournies dans une bibliothque (Sous forme de Fichier). Dans ce cas, le compilateur ne les connat pas et ne peut donc pas gnrer le langage intermdiaire correspondant. Cest le travail de lditeur de liens que daller rsoudre les rfrences non rsolues. Cest dire que lorsquil y a appel dans le fichier objet des fonctions, procdures ou variables externes, lditeur de liens recherche les objets ou bibliothque concerns et gnre lexcutable. Lorsque lditeur de liens ne trouve pas ces rfrences il se produit une erreur.
Page 20
Support de Cours
Algorithmique et Programmation
V. Rsum
Structure Gnrale dun Algorithme Programme Nom_Programme Dclarations des Variables Globales : Nom_Var : Type Nom_Tab : Tableau [ i ,J ] Type (Type = Entier, Rel, Car, Chane ou Boolen ) Dclarations Dclaration Des Fonctions : Fonction Nom_Fonction ( Val nom : Type , Var nom : Type ) : Type Dclaration de variables Locales Dbut Fonction Actions Fin Fonction Dclarations des Procdures : Procdure Nom_Fonction ( Val nom : Type , Var nom : Type ) Dclaration de variables Locales Dbut Procdure Actions Fin Procdure Dbut Programme Suite dInstructions : Oprations (Arithmtique , Incmentation,..) Instructions dEntre / Sortie (Lire , Afficher ..) Appel de procdure ou de Fonction - Nom_Procedure - Var Nom_Fonction (Vars ou Vals,) Structure : Structure Alternative Si Condition Alors Action1 Sinon Action2 FinSi Structure rptitive Rpter Actions Jusqu' Condition TantQue Condition Faire Actions FinTQ Pour Var Allant de Vali Valf [Pas de Val] Faire Actions Suivant Var Structure Complexe ( Combine les deux ) Fin Programme
Actions
Page 21
Support de Cours
Algorithmique et Programmation
Condition : Condition Operateur_Logique Condition Variable Oprateur_Conditionnel Valeur Variable Oprateur_Conditionnel Variable Oprateurs Logiques : Et , Ou , Non , Xor Oprateurs Conditionnels : =, < , > , >= , >= , <> Structure gnrale dun organigramme
Dbut
Instruction d E / S
Structure Rptitive
Oprations
Oui
Condition
Non
Non
Structure Rptitive lintrieur dune structure Alternative
Condition
Oui
Actions
Actions
Instruction D E / S
Fin
Page 22