You are on page 1of 25

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

SOMMAIRE
I. INTRODUCTION .................................................................................................................. II. LES STRUCTURES DE BASE DUN LANGAGE DE PROGRAMMATION.............. A. LA SEQUENCE DINSTRUCTIONS ...................................................................................... 1. Les Oprations sur les variables................................................................................. 2. Le dialogue avec lutilisateur ..................................................................................... B. LA STRUCTURE ALTERNATIVE ......................................................................................... C. LA STRUCTURE REPETITIVE ............................................................................................ 1. La boucle TantQue...................................................................................................... 2. La Boucle Rpter Jusqu ........................................................................................ 3. La Boucle Pour ........................................................................................................... D. LA DECLARATION DES VARIABLES .................................................................................. 1. Les types de Variables ................................................................................................ E. LES FONCTIONS ET PROCEDURES .................................................................................... 1. Procedure.................................................................................................................... 2. Fonction ...................................................................................................................... III. LES REGLES DE PROGRAMMATION......................................................................... IV. LA COMPILATION ...........................................................................................................

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la 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.

Comment Programmer?
Il suffit de suivre les tapes suivantes :

! Raliser un cahier de charges ; ! Construire un organigramme ou schma reprsentant lenchanement des instructions dun programme et lacheminement des traitements ; ! En dduire lAlgorithme ou pseudo-langage (langage comprhensible) 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. tablir Un cahier Cest :

! 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 ;

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

II. Les structures de base dun langage de programmation


Dans ce qui suit, nous allons voir comment tablir un organigramme puis en dduire le pseudo-langage correspondant et del le programme. Nous commencerons tout dabord par dfinir quest ce quun programme. Un programme est une suite dinstructions excutes par la machine. Une instruction est un ordre quon demande la machine dexcuter. Ces instructions peuvent soit senchaner les unes aprs les autres, on parle alors de SEQUENCE D INSTRUCTIONS ; Ou bien sexcuter dans certains cas et pas dans dautres, on parle alors de STRUCTURE ALTERNATIVE ; Ou se rpter plusieurs fois, on parle alors de STRUCTURE REPETITIVE.

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 le 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

Initialisation Oprations Arithmtiques Incrmentation / Decrmentation

Dans un organigramme, elles sont reprsentes ainsi : Formalisme dune Squence dinstructions dOprations

Variable Variable Variable Variable

Valeur Val1 + Val2 * . Variable + Val Variable - Val

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

Dans le pseudo-langage, elles scrivent ainsi : Variable Variable Variable Variable Valeur Val1 + Val2 * . Variable + Val Variable - Val

Par exemple : A 5 S 3 + (2 * 3) / 6 B A + (20 * S) A 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

Ce qui se lit Variable reoit valeur . Par exemple : I 5 ; Termine

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

Par exemple : I I+1 J j2

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la 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

Par exemple : I I 0 I+1

d) Les oprations arithmtiques


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

Lire Variable Afficher Message Afficher Variable

Imprimer Variable Imprimer Message

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la 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 instruction 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 :

Afficher Quel est ton nom ? Lire Nom


Afficher Ton nom est : , Nom Afficher Le mien est Mohamed

En pseudo-langage : Afficher Quel est ton nom ? : Lire Nom Afficher Ton nom est : , Nom Afficher Le mien est Mohamed

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la 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

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

! Les conditions Pour exprimer les conditions on utilise les oprateurs conditionnels suivants :
= gal ; < Infrieur ; > Suprieur ; <= Infrieur ou gal ; >= Suprieur ou gal ;<> diffrents ;

Par exemple : (A<1) ET (A<=B) .. 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 Sinon ABS FINSI

A* (-1) A

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

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 vrifie . Bien quune seule soit ncessaire, la plupart des langages de programmation proposent trois types de structures rptitives. Voici celles de notre pseudo-langage. 1. La boucle TantQue Le formalisme de cette structure dans un organigramme sera comme suit :

Formalisme dune Boucle TantQue

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 vrai, on excute les actions. Par exemple : Ceci est un programme qui va permettre de calculer la somme des nombres entiers Infrieurs N :

10

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

Organigramme :

Lire N S I 0 0

Non

I<N
Oui

Afficher S

I S

I+1 S+I

Algorithme (Pseudo-langage) : Lire n I 0 S 0 TantQue ( I< n ) Faire I I+1 S S+ I FinTQ Afficher S

11

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

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.

Formalisme dune Boucle Rpter jusqu

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.

Par exemple : Le mme exemple avec la boucle rpter jusqu :

12

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

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

13

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

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. 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 :

Formalisme dune Boucle Pour

POUR Variable Allant de Valeur initiale A Valeur finale [PAS Valeur du pas] Faire

Actions Suivant Variable

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).

14

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

Par exemple : Ceci est un programme qui va permettre de calculer la somme des nombres entiers Infrieurs N : Organigramme :

Lire N
S 0

POUR I Allant de 0 A N faire

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

15

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

D. La dclaration des variables


Un programme est compos de deux parties :

PROGRAMME DECLARATION DES DONNEES

STRUCTURES ET INSTRUCTIONS
" La partie instruction contient les instructions excuter. " La partie donne contient toutes les variables utilises par le programme. 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.
16

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

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

! 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

17

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

! 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 dclar 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

18

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

E. Les fonctions et Procdures


Lorsque lalgorithme devient trop compliqu, on aura envie de le dcouper, de manire ce que chaque partie soit plus simple et donc plus lisible. De mme lorsquune partie de code doit tre excute plusieurs fois, des endroits diffrents, ou rutilise ultrieurement on pourra ne lcrire quune fois et lui donner un nom en faisant une Fonction ou une Procdure.

1. Procedure
Une procdure est une suite dinstructions servant raliser une tche prcise en fonction dun certain nombre de paramtres. Les paramtres sont de deux types. ! Les paramtres de type Val : il contienne une valeur qui sera utilise dans la procdure. ! Les paramtres de type Var : ils reprsentent une variable du programme appelant qui pourra tre lue et modifie si ncessaire. Dans notre pseudo-langage une procdure se dclare de la manire suivante : Procedure Nom_Procedure [ (Val Variable : Type , , Var Variable : Type ) ] Dclaration des Variables Locales Dbut Procedure Actions Fin Procedure Les variables que lon dclare localement dans la procdure ne sont connues que dans cette procdure. Pour utiliser ou appeler cette procdure partir dun programme, on crit : Nom_Procedure [ ( Variable1, Valeur1, ) ] A chaque paramtre de type VAR on associe un nom de variable connue dans le programme appelant, chaque paramtre de type Val, on associe une variable ou une valeur.

19

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

Par exemple : Procedure Remplir_Chaine ( Val Longueur : Entier , Val Caractere : CAR , Var Chaine : TABLEAU [MAXCAR] CAR ) I, long : Entier Dbut Procdure Si Longueur > MAXCAR Alors Long =MAXCAR 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
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 mmes 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.
20

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

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)) Sinon Valeur_Absolue = nombre FinSi Fin Fonction On lutilise ainsi : I = Valeur_Absolue(I) L= Valeur_Absolue(-120)

21

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

III. Les Rgles de programmation


Un programme doit tre le plus lisible possible, de manire ce quen le lisant nimporte qui dautre que lauteur soit capable de comprendre ce quil fait rien quen le lisant. Pour cela il faut suivre les quelques rgles suivantes : ! Le nom des variables doit tre significatif, cest dire indiquer clairement quoi elles servent. ! Un algorithme ne doit pas tre trop long (une page dcran). Sil est trop long il faut le dcouper en fonctions et procdures. ! Les structures de contrles doivent tre indenter, cest dire, par exemple, que les instructions qui suivent le Alors doivent toutes tre alignes et dcales dune tabulation par rapport au SI. Il en est de mme pour les rptitives. ! A chaque imbrication dune structure de contrle, on dcale dune tabulation. Mal crit Si (A<0) Alors ABS A* (-1) Sinon ABS A FINSI Mieux Ecrit Si (A<0) Alors ABS A* (-1) Sinon ABS A FINSI

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 clair dcrire une fonction boolenne plutt quune condition complexe.

22

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la 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 :

Bibliothque Programme Externe

#
Fichier Source Langage de Programmation

Instruction1.. Instruction2..

Editeur de Lien

Fichier Objet

"

!
Fichier Excutable (Langage Machine)

Erreurs de Syntaxe (Erreurs de compilation)

Erreurs de Compilation

Rvision et Correction du Programme Rvision et Correction du Programme

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.

23

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

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
24

Actions

Module LMD 1 anne Informatique 1 : Algorithmique et Initiation la programmation

! Structure gnrale dun organigramme

Dbut

Instruction d E / S

Structure Rptitive

Oprations

Structure Complexe Ou Imbrique

Oui

Condition
Non

Non
Structure Rptitive lintrieur dune structure Alternative

Condition
Oui

Actions

Actions

Instruction D E / S

Fin

25

You might also like