Vous êtes sur la page 1sur 40

Universit Abdelmalek Essadi Facult des Sciences et Techniques Tanger

Groupe :GEGMI

ALGORITHME & LANGAGE C


Prsent par : Mme Nihad ELGHOUCH
Anne Universitaire: 2011/2012

Algorithme
2

Dfinition: L'algorithme est le rsultat d'une dmarche logique de rsolution d'un problme pour la mise en uvre pratique sur lordinateur et afin d'obtenir des rsultats concrets il faut passer par l'intermdiaire d'un langage de propagation. Un algorithme dcrit une succession d'oprations qui, si elles sont fidlement excutes, produiront le rsultat dsir. Un algorithme est une suite d'actions que devra effectuer un automate pour arriver en un temps fini, un rsultat dtermin partir d'une situation donne. La suite d'oprations sera compose d'actions lmentaires appeles instructions.

Algorithme
3

Algorithmique: C'est la logique d'crire des algorithmes. Pour pouvoir crire des algorithmes, il faut connatre la rsolution manuelle du problme, connatre les capacits de l'ordinateur en terme d'actions lmentaires qu'il peut assurer et la logique d'excution des instructions. Etapes de rsolution d'un problme: 1. Comprendre l'nonc du problme 2. Dcomposer le problme en sous-problmes plus simple rsoudre 3. Associer chaque sous problme, une spcification Les donnes ncessaires Les donnes rsultantes La dmarche suivre pour arriver au rsultat en partant d'un ensemble de donnes. 1. Elaboration d'un algorithme.

Algorithme
4

Structure dun algorithme:

Une marque de terminaison (;) est utilise pour chaque instruction

Algorithme
5

Structure dun algorithme: Len-tte: Il permet tout simplement didentifier un algorithme. Les dclarations: Cest une liste exhaustive des objets, grandeurs utiliss et manipuls dans le corps de lalgorithme ; cette liste est place en dbut dalgorithme. Le corps: Dans cette partie de lalgorithme, sont places les tches (instructions, oprations) excuter. Les commentaires : Pour permettre une interprtation aise de lalgorithme, lutilisation de commentaires est vivement conseille.

Algorithme
6

Dclaration dune variable Une variable permet de rserver de lespace mmoire pour stocker des donnes (dpend du type de ces donnes : entiers, rels, caractres, etc.) La syntaxe est : variable<liste didentificateurs> : type Identificateur : cest le nom de la variable. Il est compos de lettres et de chiffres Type : il dtermine la nature de la variable (entier, rel, boolen, chane de caractres)

Algorithme
7

Dclaration dune constante Une constante permet de rserver de lespace mmoire pour stocker des donnes dont la valeur est fixe pour tout lalgorithme La syntaxe est : constante(<identificateur> : type) <expression> Identificateur : cest le nom de la constante . Il est compos de lettres et de chiffres Type : il dtermine la nature de la constante (entier, rel, boolen, chane de caractres)

Algorithme
8

Types de base : Il existe plusieurs types pour faire la dclaration des variables et des constantes : Entier : reprsente l'ensemble des entiers relatifs ; Rel : l'ensemble des rels ; Boolen : le domaine des boolens (vrai / faux) ; Caractre : le domaine des caractres alphanumriques; Chane de caractres : le domaine des textes.

Algorithme
9

Exemples: Variable prenom : Chane de caractres; Variable age : Entier; Variable k : Entier ; Variable c1 : Caractre; Variable x : Rel; Variable fini : Boolen; Constante (MAX : entier) 100; Constante (DOUBLEMAX : entier) MAX 2;

Algorithme
10

Les oprateurs: Oprateurs sur les entiers et les rels


Arithmtique +: Addition -: Soustraction *: Multiplication /, div: Division Mod: reste de division entire , ^: Puissance Comparaison > Suprieur < Infrieur Suprieur ou gal infrieur ou gal = Egal Diffrent

7 DIV 2 = 3; 7 MOD 2 = 1; 2^3 =8;

Algorithme
11

Les oprateurs: Oprateurs sur les entiers et les boolens


Fonctions Logiques Et: Fonction ET Ou: Fonction OU Non: Fonction NON >>:Dcalage droite <<:Dcalage gauche Fonctions de comparaison pour les boolens =: Egal : Diffrent

Algorithme
12

Les oprateurs: Oprateurs sur chaines de caractres


Fonctions de concatnation +: concatnation Fonctions de comparaison pour les chaines de caractres =: Egalit : Diffrent >: Suprieur <: Infrieur

Exemple:
A+ller: donne comme rsultat aprs concatnation : Aller alpha+numrique: donne comme rsultat aprs concatnation : alphanumrique

Algorithme
13

Affectation Elle permet daffecter une valeur une variable. Syntaxe : identificateur de la variable expression .Lexpression est une suite doprations sur des constantes ou des variables dj dclares. Exemples: constante (SEUIL : rel) 13.25; variables valA, valB: rels; compteur : entier; mot , texte: chanes de caractres; valA 0.56; valB valA; valA valA(10.5 + SEUIL); compteur 1; compteur compteur + 10; mot " Bonjour " te xte"Au revoir ! ";

Algorithme
14

Entrs/Sorties L'algorithme a besoin de donnes en entre, et fournit un rsultat en sortie. Lorsqu'on utilise un ordinateur, le clavier permet de saisir les donnes et l'cran d'afficher un rsultat ou des textes qui donnent des directives sur les donnes fournir. Lorsqu'on voudra afficher un texte sur l'cran, on utilisera une fonction nomme Ecrire qui est prsente dans une bibliothque. Cette fonction affiche l'cran les arguments qu'on lui demande d'afficher. On utilise galement une autre fonction nomme Lire qui permet de stocker la ou les donnes saisies au clavier dans des variables

Algorithme
15

Saisie des donnes: La syntaxe est :Lire(<liste de noms de variables>) Cette instruction permettant de placer en mmoire les informations fournies par l'utilisateur. Elle permet l'ordinateur d'acqurir des donnes partir de l'utilisateur . Exemples: Lire(unNombre); Lire(nom, prnom); Lire(val);

Algorithme
16

Ecrire une donne, un rsultat La syntaxe est :Ecrire(<liste de noms de variables, de constantes ou dexpressions>) Cette instruction permettant de visualiser les informations places en mmoire. Exemples: Ecrire(unNombre, "est diffrent de 0"); Ecrire("La somme de", unNombre, "et", val , "est", unNombre+ val);

Algorithme
17

Exemple: Algorithme exemple1 {Saisit un prix HT et affiche le prix TTC correspondant} Constantes (TVA : rel) 30.6 ; (Titre : chane de caractres) "Rsultat " ; Variables prixHT, prixTTC: rels; {dclarations} Dbut {prparation du traitement} Ecrire ("Donnez-moi le prix hors taxe :"); Lire (prixHT); prixTTC prixHT* (1+TVA/100); {calcul du prix TTC} Ecrire(Titre); {prsentation du rsultat} Ecrire(prixHT, " DH devient ", prixTTC, " DH"); Fin

Algorithme
18

Exemple: Algorithme exemple2 Variables valA, valB: rels; {dclarations} Dbut {prparation du traitement} Ecrire ("Donnez-moi deux valeurs :"); Lire (valA, valB); Ecrire("Vous m'avez donn ", valA, " et ", valB); valAvalB; valBvalA; {prsentation du rsultat} Ecrire ("Maintenant , mes donnes sont : ", valA, " et ", valB); Fin

Algorithme
19

Les structures algorithmiques :


Les oprations lmentaires relatives la rsolution dun problme

peuvent, en fonction de leur enchanement tre organises suivant quatre familles de structures algorithmiques. Structures linaires; Structures alternatives; Structures de choix; Structures itratives (ou rptitives).

Algorithme
20

Structure linaire La structure linaire se caractrise par une suite dactions excuter successivement dans lordre nonc. Notation : faire action ;

Algorithme
21

Structure alternative: La structure alternative noffre que deux issues possibles la poursuite de lalgorithme et sexcluant mutuellement. Il y a deux types de structures alternatives : une structure alternative rduite: La structure alternative rduite se distingue par le fait que seule la situation correspondant la validation de la condition entrane lexcution du traitement, lautre situation conduisant systmatiquement la sortie de la structure. Notation: si condition alors action ; fsi ;

Algorithme
22

Structure alternative une structure alternative complte: Dans cette structure lexcution dun des deux traitements distincts ne dpend que du rsultat dun test effectu sur la condition qui peut tre une variable ou un vnement ;
si la condition est vrifie seul le premier traitement est excut ;si la condition nest pas vrifie seul est effectu le second traitement.

Notation : si condition alors action1 ; sinon action2 ; fsi ;

Algorithme
23

Algorithme exemple3 {Cet algorithme saisit une valeur entire et affiche son double si cette donne est infrieure un seuil donn.} constante (SEUIL : entier) 10; Variable val : entier; dbut Ecrire("Donnez-moi un entier : ") ; { saisie de la valeur entire} Lire (val); si val < SEUIL alors val val 2; {comparaison avec le seuil } fsi Ecrire ("Voici la valeur finale : ", val); fin

Algorithme
24

Algorithme exemple4 {Cet algorithme saisit une valeur entire et affiche son double si cette donne est infrieure un seuil donn.} constante (SEUIL : entier) 10; Variable val : entier; dbut Ecrire ("Donnez-moi un entier : ") ; { saisie de la valeur entire} Lire(val); si val < SEUIL { comparaison avec le seuil} alors Ecrire ("Voici son double :" , val 2); sinon Ecrire ("Voici la valeur inchange :" , val); fsi fin

Algorithme
25

Structure de choix La structure de choix permet, en fonction de plusieurs conditions de type boolen, deffectuer des actions diffrentes suivant les valeurs que peut prendre une mme variable. Notation :

suivant valeur faire valeur1 : action1 ; valeur2 : action2 ; : : valeurN : actionN ; sinon actionN+1 ; fsuivant

Algorithme
26

Structure de choix Exemple: selon abrviation "M":Ecrire( "Monsieur ") "Mme":Ecrire( "Madame ") "Mlle": Ecrire( "Mademoiselle ") autres:Ecrire( "Monsieur, Madame ")

Algorithme
27

Structure itrative La structure itrative rpte lexcution dune opration ou dun traitement. Il y deux cas pour la structure Itrative : Le nombre de rptitions nest pas connu ou est variable: dans ce cas il existe deux type de structures (structure RPTER JUSQU et structure TANT QUE FAIRE). Le nombre de rptitions est connu: structure POUR PAS FAIRE

Algorithme
28

Structure itrative RPTER JUSQU Dans cette structure, le traitement est excut une premire fois puis sa rptition se poursuit jusqu ce que la condition soit vrifie. Par traitement on entend : soit une structure isole, soit une succession dinstructions. Laction est toujours excute au moins une fois. Notation: rpter (r)affectation de la (des) variable(s) de condition traitement {suite dinstructions} jusqu<expression logique (vraie)>

Algorithme
29

Structure itrative RPTER JUSQU Algorithme exemple5 {Cet algorithme a besoin dune valeur positive} variables valeur : entier; dbut rpter Ecrire("Donnez une valeur positive non nulle : ") ; Lire (valeur); jusqu valeur 0 Ecrire("La valeur positive non nulle que vous avez saisie est ", valeur ); {traitement de la valeur saisie} fin

Algorithme
30

Structure itrative TANT QUE FAIRE Dans cette structure, on commence par tester la condition ; si elle est vrifie, le traitement est excut. Par traitement on entend : soit une structure isole, soit une succession dinstructions. Laction peut ne jamais tre excute . Notation: amorage {initialisation de la (des) variable(s) de condition} tant que<expression logique (vraie)> faire traitement {suite dinstructions} relance {r-affectation de la (des) variable(s) de condition} ftq

Algorithme
31

Structure itrative TANT QUE FAIRE

Algorithme
32

Structure itrative TANT QUE FAIRE


Algorithme exemple6 {Cet algorithme fait la somme des donnes quil saisit, arrt la lecture de -1) constantes (STOP : entier) -1; (MAX : entier) 5; variables nbVal, val : entiers; dbut nbVal0; {compteles saisies traites} Lire (val); {saisie de la 1redonne} tant que val STOP et nbVal< MAX faire nbValnbVal+ 1; {traitement de la valeur saisie} Ecrire(val); {relance} ftq Ecrire(val, nbVal); {valeurs en sortie de boucle} fin

Algorithme
33

Comparaison boucles rpter et tant que:


rpter Ecrire("Donnez une valeur positive paire :"); Lire (valeur); jusqu (valeur < 0 ou(valeur % 2) 0) Equivaut : Ecrire("Donnez une valeur positive paire :"); Lire (valeur); tant que(valeur < 0 ou(valeur % 2) 0) faire Ecrire("Donnez une valeur positive paire:"); Ecrire(valeur); ftq

Algorithme
34

Comparaison boucles rpter et tant que: Boucle tant que: La condition vrifie avant chaque excution du traitement ; le traitement peut donc ne pas tre excut; La condition porte surtout sur la saisie de nouvelles variables (relance). Boucle rpter tant que: Condition vrifie aprs chaque excution du traitement ; Le traitement est excut au moins une fois; La condition porte surtout sur le rsultat du traitement.

Algorithme
35

Structure itrative POURPAS FAIRE Dans cette structure, la sortie de la boucle ditration seffectue lorsque le nombre souhait de rptition est atteint. On utilise donc une variable (ou indice) de contrle ditration caractrise par : Sa valeur initiale, Sa valeur finale, Son pas de variation. Si la valeur finale de lindice est infrieure sa valeur initiale le pas de variation est ngatif, la structure est dite pour dcroissante , dans le cas contraire, le pas est positif et la structure est dite pour croissante

Algorithme
36

Structure itrative POURPAS FAIRE

Algorithme
37

Structure itrative POUR......PAS... FAIRE Notation :


pour <var> valInit valfin [par<pas>] faire traitement {suite dinstructions} fpour

Algorithme
38

Structure itrative POUR......PAS... FAIRE


Algorithme exemple7 {Cet algorithme fait la somme des nbValdonnes qu'il saisit} variables nbVal, cpt :entiers; valeur, totalValeurs: rels; dbut {initialisation traitement} Ecrire("Combien de valeurs voulez-vous Ecrire?"); Lire (nbVal); {initialisation du total 0avant cumul} totalValeurs0; {traitement qui se rpte nbValfois} pour cpt 1 nbVal faire Ecrire("Donnez une valeur :"); Lire (valeur); totalValeurstotalValeurs+ valeur; {cumul} fpour {dition des rsultats} Ecrire("Le total des ", nbVal, "valeurs est " , totalValeurs ); fin

Algorithme
39

Structure itrative POUR......PAS... FAIRE Algorithme exemple8 {algorithme qui permet d'afficher tous les nombres pairs qui existent entre 1 et 10.} Dbut Variable i : entier; POUR i 2 10 pas 2 Faire ECRIRE(i); Fpour Autre solution POUR i 1 5 Faire ECRIRE(2*i); Fpour

Algorithme
40

Comparaison boucles pour et tant que: pour cpt 1 nbVal faire Ecrire("Donnez une valeur :"); Lire(valeur); totalValeurstotalValeurs+ valeur; {cumul} fpour Equivaut : cpt 0 tant que cpt <nbVal faire Ecrire("Donnez une valeur :"); Lire(valeur); totalValeurstotalValeurs+ valeur; {cumul} cpt cpt + 1; {compte le nombre de valeurs traites} ftq