You are on page 1of 9

Cours Algorithmique

Dfinition : Un algorithme est une suite dinstructions, qui, une fois excute correctement, conduit un rsultat donn. Il sagit de fournir la solution un problme, en passant par les tapes suivantes :

tapes d'un algorithme Le langage de description utilis pour crire le rsultat de lanalyse est appel Langage algorithmique ou bien (Pseudo-code). Ltape suivante consiste traduire lalgorithme dans un langage de programmation spcifique, il sagit de la phase de programmation. Exemples :

trier une liste par ordre alphabtique. trouver un chemin pour aller dune station de mtro une autre. calculer la factorielle dun nombre. Trouver les solutions relles approches dune quation de la forme : a x + b x + c = 0. .

Structure dun algorithme :


Nom_du_programmeVariables Gnralement :Nom Dbut du programme (Entte)Variables instruction 1 Dbut instruction 2 Corps Fin Fin

Remarque : pour stocker des donnes pendant le traitement de lalgorithme on utilise les variables.

Les types des variables :

Une variable est comme une bote qui a un nom et contient une valeur. On peut changer le contenu de la bote (la valeur) volont. Elle est caractrise par un nom et un type. Nom de variable : suite continue des caractres, dalphabet et des numros et (-,_). un nom de variable ne peut jamais commencer par un numro. Type de variable : Le type dune variable indique au compilateur ce que cette variable est suppose reprsenter. Une variable peut contenir un entier, une valeur relle, un caractre, ladresse dune autre variable la liste est longue. Il est donc important que le compilateur sache quel type de variable il doit attendre. Plus encore, tant donn que les diffrents types de variables peuvent avoir des tailles en mmoire diffrentes, le compilateur a besoin de savoir absolument quelle quantit de mmoire il doit allouer. La syntaxe pour dclarer une variable en prcisant son type est : Nom_de_variable : type;

Les types des variables :


Les types lmentaires : Type Byte (octet) Entier simple Entier long Rel simple Plage

0 255 -32 768 32 767 -2 147 483 648 2 147 483 647 -3,40E38 -1,40E-45 pour les valeurs Type ngatives1,40E-45 3,40E38 pour les valeurs Numrique positives Rel double 1,79E308 -4,94E-324 pour les valeurs ngatives4,94E-324 1,79E308 pour les valeurs positives .. . Deux valeurs (Vrai, Faux), (0,1), (Oui, Non), Types non Boolen numriques Alphanumrique Char, LongChar, .

Les types structurs :


le type TABLEAU ou MATRICE ( une ou plusieurs dimensions). le type ENREGISTREMENT ou LISTE (ou type compos).

Remarque : Une constante est un objet qui ne peut pas tre modifi par lalgorithme. Affectation : Dfinition : laffectation est lopration qui consiste stocker une valeur dans une variable. Cette opration se fait laide de la syntaxe suivante :

Nom_Variable Valeur ; Expressions arithmtiques : La formulation des expressions arithmtiques est aussi similaire la notation mathmatique :

2+3 17 * 73 + 2 7 mod 2 7 div 2 (vaut 3 : division entire) 7 / 2 (vaut 3.5 : division relle) 0.3 * 168.2 + (4. + 0.11)/5. .. .

Exemple 1 : Programme Somme; variables entier x, y, z; dbut Ecrire( Somme de 2 valeurs ); Ecrire( Entrez la 1ere valeur ); x lire(); Ecrire( Entrez la 2eme valeur ); y lire(); z x+y; afficher( La somme vaut : ); afficher(z); fin

Exemple 2 : Programme Surface_cercle; constantes

rel pi vaut 3.14159; variables rel rayon, surface; dbut Ecrire( entrez la valeur du rayon du cercle : ); rayon lire(); surface pi * rayon*rayon; Ecrire( La surface vaut : , surface); fin

Les instructions :
Les instructions lmentaires.

La lecture au clavier du contenu dune ou plusieurs variables. Syntaxe : LIRE(variable) ; LIRE(x,y); Remarques : la lecture au clavier sachve ds que lon presse la touche entre ou ( retour chariot ). La donne tape doit tre du mme type que la variable qui la reoit. Laffichage lcran (ou ldition sur imprimante) dun objet (nombre, chane, ) du contenu dune ou plusieurs variables, dune expression,

Syntaxe : ECRIRE(la somme est ,x+y); Les instructions composes.

Un bloc dinstructions est une suite dinstructions (lmentaires ou non) spares par des points-virgules et encadres des deux mots DEBUT et FIN. Dans la suite, instruction dsignera soit une instruction lmentaire soit un bloc.

Les instructions conditionnelles : Lalternative : On effectue un test pour choisir entre deux instructions possibles : SI <condition> ALORS instruction_1 SINON instruction_2; Fin Si

Le rsultat de lexpression logique (ou condition) est un boolen. Quand lexpression logique est vraie alors la suite dactions situe aprs le mot ALORS (instruction_1) est excute. Si le rsultat est faux , on excute la suite dactions situe aprs le mot SINON (instruction_2).

Exemple : SI x>=0 ALORS Ecrire( Positif ) SINON Ecrire( ngatif ) Fin Si;

La conditionnelle simple : mme structure mais la deuxime instruction est vide : SI <condition> ALORS instruction_1; Dans ce cas si la condition est vrifie, linstruction 1 sera excute. si non le pointeur passe la suite du programme. La conditionnelle multiple : Pour faire plusieurs tests on utilise la syntaxe suivante : SELON NomVar Cas_1 : Instruction_1; Cas_2 : Instruction_2; Cas_n : Instruction_n; FIN; Dans ce cas les instruction sexcutent selon la valeur de NomVar. Les boucles (Structures itratives). Un ensemble dactions qui se rpte toujours dans un ordre prcis, un nombre dtermin de fois constitue un traitement itratif. La boucle POUR : Si on connat exactement le nombre de rptitions effectuer. On utilise un compteur de boucles : POUR var1 VARIANT DE valeur1 A valeur2

EFFECTUER Instruction; FinPour; Instruction peut tre simple ou compose. La boucle TANT_QUE : Si le nombre de rptition dpend dune condition, on utilise la boucle TANT_QUE. TANT_QUE <condition> EFFECTUER instruction; FinTantQue; Instruction peut tre simple ou compose. La structure Rpterjusqu.. Rpter Instructions Jusqu <expression logique> Dans ce cas la suite des instructions est excute au moins une fois, car le test de lexpression logique est effectu aprs lexcution de lensemble dactions.

Les tableaux.
Pour calculer la moyenne de 15 notes on doit dclarer 15 variables (m = var1 + var2 + var3 +.+ var15)/15) se qui est non pratique. Et pour viter ce problme on utilise les tableaux. Donc un tableau est une variable qui rassemble plusieurs variables en 1 seul, au sein de laquelle chaque valeur sera dsigne par un numro. (N[1],N[2],N[15]) se qui est plus pratique. Dfinition : Un tableau est un ensemble de valeurs portant le mme nom de variables et repr par un indice. Dclaration : la dclaration dun tableau se fait laide de la syntaxe suivante : Tableau Nom_Tableau(Nombre_d_indices) en Type. Exemple :Tableau Note(15) en Entier. Utilisation : Lnorme avantage des tableaux, cest quon va pouvoir les traiter en faisant des boucles. Par exemple, pour effectuer notre calcul de moyenne, cela donnera par exemple : Tableau Note(15) en entier Variables Moy, Som en entier DbutSom 0; Pour i 0 15 faire Ecrire ( Entrez la note n , i) ;

Lire Note(i); FinPour; Pour i 0 15 faire Som Som + Note(i) ; FinPour;Moy Som / 15 ; Ecrire( la moyenne est : ,Moy) ; Fin

Les fonctions.
Si lutilisation dune suite des instructions se rpte plusieurs fois dans un programme (Par exemple la moyenne de N notes), on utilise les fonctions. Dfinition : Une fonction est une suite des instructions permettant de raliser une tache. Une fonction est caractrise par un nom est par des paramtres et elle peut retourner une valeur ou non. Dclaration : la dclaration dune fonction se fait laide de la syntaxe suivante : Fonction Nom_Fonction (Variable1 en type1, Variable2 en type2, ) en type_fonction instruction 1 ; instruction 2 ; instruction n ; Fin Fonctin;

Exemples : Fonction Moyenne (x, y, z , t en entier) en reelvariable moy en reel;ecrire( donner lavaleur de x ); lire(x); ecrire( donner lavaleur de y ); lire(y); ecrire( donner lavaleur de z ); lire(z);

ecrire( donner lavaleur de t ); lire(t); moy = (x+y+z+t)/4; renvoyer moy; Fin Fonction;

Fonction ChoixDuMot() Tableau Liste() en Caractre Variables Nbmots, Choisi en Numrique Ouvrir Dico.txt sur 1 en Lecture Nbmots -1 Tantque Non EOF(1) Nbmots Nbmots + 1 Redim Liste(Nbmots) LireFichier 1, Liste(Nbmots) FinTantQue Fermer 1 Choisi Ent(Alea() * Nbmots) Renvoyer Liste(Choisi) FinFonction

Les procdures.
Une fonction renvoie une seule valeur mais les procdures renvoient plusieurs ou rien. Alors une fonction se caractrise par les mots-cls Fonction Fin Fonction et une procdure est identifie par les mots-cls Procdure Fin Procdure. Toute fonction doit, pour cette raison, comporter linstruction Renvoyer . Pour la mme raison, linstruction Renvoyer nest jamais utilise dans une procdure. La fonction est une valeur calcule, qui renvoie son rsultat vers la procdure principale. La procdure, elle, est un traitement ; elle ne vaut rien. Remarque : Les fonctions, ne sont finalement quun cas particulier des procdures. Exemple : Procdure AffichageMot(m en Caractre par Valeur, t() en Boolen par Valeur) Variable Aff en Caractere Variable i en Numerique Aff Pour i 0 len(m) 1 Si Non t(i) Alors Aff Aff & -

Sinon Aff Aff & Mid(mot, i + 1, 1) FinSi i suivant Ecrire Aff FinProcdure Youssef NEJJARI

You might also like