Algorithme

Embed Size (px)

DESCRIPTION

Cours de programmation (Algorithmique)

Citation preview

http://www.ininfo.fr

par YOUSSEF NEJJARI

Algorithme.Dfinition : Un algorithme, cest une suite dinstructions, qui une fois excute correctement, conduit un rsultat donn. Il s'agit de fournir la solution un problme, en se passant par les tapes suivantes :Problme ------------> analyse ---------------------> Algorithmique

Le langage de description utilis pour crire le rsultat de l'analyse est appel algorithme. L'tape suivante consiste traduire l'algorithme dans un langage de programmation spcifique, il s'agit de la phase de programmation. Exemples : -trier une liste par ordre alphabtique. -trouver un chemin pour aller d'une station de mtro a une autre. -calculer la factorielle d'un nombre. -Trouver les solutions relles approches d'une quation de la forme : a x2 + b x + c = 0. - ....... Structure d'un algorithme : Nom_du_programme Variables Dbut instruction 1 instruction 2 ......... Fin Gnralement : Nom du programme (Entte) Variables Dbut Corps Fin

Remarque : pour stocker des donnes pendant le traitement de l'algorithme on utilise les variables. Variable : 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, l'alphabet et des numros et (-,_). un nom de variable ne peut jamais commencer par un numro. Type de variable : Le type d'une variable indique au compilateur ce que cette variable est suppose reprsenter. Une variable peut contenir un entier, une valeur relle, un caractre, l'adresse d'une 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 Type Numriq ue Byte (octet) 0 255 Plage

Entier simple Entier long Rel simple

-32 768 32 767 -2 147 483 648 2 147 483 647 -3,40E38 -1,40E-45 pour les valeurs ngatives 1,40E-45 3,40E38 pour les valeurs positives

Rel double

1,79E308 -4,94E-324 pour les valeurs ngatives 4,94E-324 1,79E308 pour les valeurs positives

........... Types Boolen non numriqu es Alphanumrique Les types structurs :

................ Deux valeurs (Vrai, Faux), (0,1), (Oui, Non), ...

Char, LongChar, ....

- 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 : l'affectation est l'opration qui consiste stocker une valeur dans une variable. cette opration se fait l'aide du syntaxe suivante : Nom_Variable Valeur ; Expressions arithmtiques : La formulation des expressions arithmtiques est elle 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 : 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 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 d'une ou plusieurs variables. Syntaxe : LIRE(variable) ; LIRE(x,y); Remarques : la lecture au clavier s'achve ds que l'on presse la touche "entre" ou ("retour chariot"). La donne tape doit tre du mme type que la variable qui la reoit. - L'affichage l'cran (ou l'dition sur imprimante) d'un objet (nombre, chane, ...) du contenu d'une ou plusieurs variables, d'une expression, ... Syntaxe : ECRIRE('la somme est ',x+y); Les instructions composes. - Un bloc d'instructions est une suite d'instructions (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 : L'alternative : On effectue un test pour choisir entre deux instructions possibles : SI 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>20 ALORS Ecrire("Positif") SINON Ecrire("ngatif") Fin Si; La conditionnelle simple : mme structure mais la deuxime instruction est vide : SI ALORS instruction_1; Dans cette cas si la condition est vrifie l'instruction 1 qui sera excute si non le pointeur passe la suite du programme. La conditionnelle multiple : Pour faire plusieurs testes on utilise la syntaxe suivante : SELON NomVar Cas_1 : Instruction_1; Cas_2 : Instruction_2; ... Cas_n : Instruction_n; FIN; Dans cette cas les instruction s'excutent 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 d'un condition on utilise la boucle TANT_QUE. TANT_QUE

EFFECTUER instruction; FinTantQue; Instruction peut tre simple ou compose. La structure Rpterjusqu.. Rpter Instructions Jusqu Dans ce cas la suite des instructions est excute au moins une fois, car le test de lexpression logique est effectue aprs excution de lensemble dactions. Les tableaux. Pour calculer la moyenne de 15 notes on doit dclarer 15 variables (m = var1 + var2 + var3 +....+ var15)/15) se qu'est non pratique. Et pour viter ce problme on utilise les tableaux. Donc un tableau est un 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 qu'est plus pratique. Dfinition : Un tableau est un ensemble de valeurs portant le mme nom de variables et reprs par un indice. Dclaration : la dclaration d'un tableau se fait l'aide du syntaxe suivant : 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 Dbut Som 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 l'utilisation d'une 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 instruction permettant de raliser une taches. Une fonction est caractrise par un nom est par des paramtres. et elle peut retourner un valeur ou non. Dclaration : la dclaration d'une fonction se fait l'aide du syntaxe suivant : Fonction Nom_Fonction (Variables1 en type1, Variable2 en type2, ...) en type_fonction instructions 1 ; instructions 2 ; ... instructions n ; Fin Fonctin; Exemples : Fonction Moyenne (x, y, z , t en entier) en reel variable 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 renvoi une seule valeur mais les procdures renvoient rien ou plusieurs. Alors une fonction se caractrisait par les mots-cls Fonction ... Fin Fonction et une procdure est identifie par les mots-cls Procdure ... Fin Procdure. Toute fonction devait, pour cette raison, comporter l'instruction "Renvoyer". Pour la mme raison, l'instruction "Renvoyer" n'est 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 qu'un 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 Voila un lien vers un cours plus dtall. Et un autre pour tlcharger un cours complet de l'algorithme au format pdf.