ch5+structure+de+controle+itératives

Upload: isggabes

Post on 25-Feb-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Ch5+structure+de+controle+itratives

    1/11

    I. STRUCTURE ITERATIVE COMPLETE : LA BOUCLE POUR 1

    BUT : Afficher lcran la moyenne de la classe.

    La tche de ce programme consiste :1) Rpter le traitement suivant :

    saisir dans un tableau de 10 lments les moyennes de 10 lves, dajouter la moyenne de chaque lve la variable SOM.

    2) Calculer MCSOM/10.

    NOM: MOY_CLASSE

    S L.D.E O.U432

    1

    5

    Rsultat= crire ("La moyenne de la classe est : ", MC :5 :2)MCSOM/10SOM = [ SOM0] Pouri de1 10 rpter

    SOMSOM+ MOY[i] FinPour

    MOY= [ ] Pouri de1 10 rpterMOY[i] = Donne ("Saisir l'lment N ",i)

    FinPourFinMOY_CLASSE

    MCSOM

    iMOY

    Objet Nature / Type

    MCSOM

    iMOY

    RelRelEntier.TAB

    On se propose dcrire un programme pascal intitul MOY_CLASSE permettant de calculer et

    dafficher la moyenne dune classe de 10 lves.

    Pour rsoudre ce problme, on a dj propos de dclarer un tableau de 10 lments pour saisir les

    moyennes au lieu d'utiliser 10 variables diffrentes. Mais nous avons vu aussi que la lecture d'un

    tableau se fait lment par lment, ce qui demande de rpter 10 fois l'criture des instructions de

    lecture. Quelle est donc la solution ?

    On doit utiliser une structure rptitive pour rduire le nombre d'instructions de lecture.

    :

    :Mr Khmili Meher

  • 7/25/2019 Ch5+structure+de+controle+itratives

    2/11

    0) Dbut MOY_CLASSE1) Pouri de1 10 rpter

    FaireEcrire ("Saisir l'lment N ", i)

    Lire (MOY[i])Fin Pour

    2) SOM0Pouri de1 10 rpter

    SOMSOM+MOY[i]FinPour

    3) MCSOM/104) Ecrire ("La moyenne de la classe est : ", MC :5 :2)5) Fin MOY_CLASSE

    PROGRAMMOY_CLASSE;USES WINCRT;CONST

    Nmax=10;TYPE

    TAB= ARRAY[1. .nmax] OFREAL;VAR

    MC: REAL;I: INTEGER;MOY: TAB;

    BEGINFOR i: =1 TO10 DOBEGIN

    WRITELN ('Saisir l'lment N ',i);READLN (MOY[i]);

    END;SOM:= 0;FOR i: = 1 TO10 DO

    BEGIN SOM := SOM+ MOY [i];END;

    MC := SOM/10;WRITELN ('La moyenne de la classe est : ', MC :5 :2);END.

  • 7/25/2019 Ch5+structure+de+controle+itratives

    3/11

    2

    3

    [Init] Pourcompteur de Vi Vf Faire

    Instruction 1

    Instruction 2 ..

    Instruction N

    FinPour

    ...... ;

    {Init};

    Forcompteur := Vi To Vf Do

    Begin

    Instruction 1 ;

    Instruction 2 ;

    ..... ;

    Instruction N ;

    End ;

    Remarques :

    Vi : Valeur initiale du compteur.

    Vf: Valeur finale du compteur.

    Le compteur doit tre de type scalaire(Entier, caractre).

    Le traitement de la boucle Pour sarrte lorsque le compteur atteint la valeur finale (Vf).

    Les instructions entre Pour et FinPour reprsentent le traitement rpter.

    Dans la boucle Pour , le nombre de rptitions est fini.

    Dans le cas o Vi > Vf, pour quil aura excution du traitement de cette boucle, on utilise en

    Pascal DOWNTO au lieu de TO Exemple :

    For i := 8 Downto2 Do OU For i := 2 to8 Do

    A chaque rptition, le compteur de la boucle sera automatiquement- Incrment (augment) dune unit si Vi < Vf

    - Dcrment (retranch) dune unit si Vi > Vf

    II. STRUCTURE ITRATIVE A CONDITION DARRT

    1

    BUT : Afficher lcran la moyenne de la classe.

    La tche de ce programme consiste :

    1) Rpter le traitement suivant : Remplir le tableau Moy par des moyennes entre 0 et 20. Si la moyenne saisie ne vrifie

    pas la condition (0

  • 7/25/2019 Ch5+structure+de+controle+itratives

    4/11

    NOM: MOY_CLASSE

    S L.D.E O.U

    43

    2

    1

    5

    Rsultat= crire ("La moyenne de la classe est : ", MC :5 :2)MCSOM/10

    SOM = [ SOM0] Pouri de1 10 rpterSOMSOM+MOY[i] FinPour

    MOY= [ ] Pouri de1 10 rpter MOY= [ ] Rpter

    MOY[i] = Donne ("Saisir l'lment N ",i) Jusqu (MOY[i]>=0) ET(MOY[i] =0) ET(MOY[i]

  • 7/25/2019 Ch5+structure+de+controle+itratives

    5/11

    PROGRAMMOY_CLASSE;USES WINCRT;CONST

    Nmax=10;TYPE

    TAB= ARRAY[1. .nmax] OFREAL;

    VARMC :REAL ;i : INTEGER;MOY :TAB;

    BEGINFORi :=1 TO10 DO

    BEGINRepeatWRITELN ('Saisir l'lment N ',i);READLN (MOY[i]) ;Until(MOY[i]>=0) AND(MOY[i]

  • 7/25/2019 Ch5+structure+de+controle+itratives

    6/11

    BUT : Afficher lcran le factoriel de N.

    La tche de ce programme consiste :1) Saisir un entier N en faisant un contrle. Si N nest pas positif alors le programme redemande

    la saisie et ainsi de suite jusqu ce quune bonne valeur soit donne.

    2) Tester N : Si N= 1, alors Fact1,

    Si N>1 , alors FactN*(N-1)*(N-2)**1

    NOM: FactorielleS L.D.E O.U

    31

    2

    4

    Rsultat= crire (N, " != ", Fact)N= [ ] Rpter

    N = Donne ("Taper un entier") Jusqu (N>=0)Fact = [ ] Si N= 0 alors

    Fact1Sinon[Fact1] Pouri de N 1 rpter

    FactFact*i FinPourFinsi

    FinFactorielle

    NFact

    i

    Objet Nature / Type

    NFact

    i

    Entier.Entier.Entier.

    0) Dbut Factorielle1) Rpter

    Ecrire ("Taper un entier ")Lire (N)

    Jusqu (N>=0)2) Si N= 0 alors Fact1

    SinonFact1Pouri de N 1 rpter

    FactFact*iFinPour

    Finsi3) crire (N, " != ", Fact)4) Fin Factorielle

    Ecrire un programme Pascal intitul Factoriellepermettant de calculer et dafficher le factoriel

    dun entier N positif.

    Exemple : N= 4 N != 4*3*2*1=24.

  • 7/25/2019 Ch5+structure+de+controle+itratives

    7/11

    PROGRAMFactorielle;USES WINCRT;VAR

    N,Fact,i :INTEGER;BEGIN

    Repeat

    WRITELN ('Taper un entier ');READLN (N) ;Until(N>=0);IFN=0 THEN

    Fact:= 1ELSE

    BEGINFact:= 1;FORi :=1 TON DO

    BEGIN Fact := Fact*i;

    END;END;WRITELN (N, ' != ', Fact);END.

    2

    BUT : Afficher lcran la somme dune srie dentiers positifsLa tche de ce programme consiste rpter la saisie dune srie dentiers positifs, dajouter

    lentier saisi la variable SOM tant que on na pas saisi un entier ngatif.

    NOM: SERIE

    S L.D.E O.U21

    3

    Rsultat= crire ("La somme est : ", SOM)SOM = [ SOM0, N= Donne ("Donner le premier entier") ]Tant que N >= 0 faire

    SOMSOM+NN = donne ("Donner un autre entier")

    Fin Tant queFinSERIE

    SOMN

    Objet Nature / Type

    SOMN EntierEntier

    On se propose dcrire un programme pascal intitul SERIE permettant de calculer et

    dafficher la somme dune srie dentiers positifs termin par un entier ngatif.

  • 7/25/2019 Ch5+structure+de+controle+itratives

    8/11

    0) Dbut SERIE1) Ecrire ("Donner le premier entier :")2) lire (N)3) SOM04) Tant que N 0 faire SOMSOM+N

    Ecrire ("Donner un autre entier ")Lire (N) Fin Tant que5) Ecrire ("La somme est : ", SOM)6) Fin SERIE

    PROGRAMSERIE;USES WINCRT;VAR

    N, SOM : INTEGER;

    BEGIN WRITELN ('Donner le premier entier ');READLN (N) ;SOM:= 0;WHILE N>= 0 DO

    BEGIN SOM := SOM+ N ;

    READLN (N) ;END;

    WRITELN ('La somme est : ', SOM);END.

    [Init] Tant que Condition faire

    Instruction 1

    Instruction 2 ..

    Instruction N

    Fin Tant que

    ...... ;

    {Init};

    While Condition Do

    Begin

    Instruction 1 ;

    Instruction 2 ;

    ;

    Instruction n ;

    End ;

    Pour les structures itratives condition darrt, le traitement de la boucle Rpter sexcute dans tous les cas au moinsune fois alors que pour la boucle Tant que ,

    Un rsultat a une structure itrative condition darrt (Tant que)si le nombre de rptition

    nest pas connu lavance et la condition devance laction.

    Dans cette boucle, la condition sera tout dabord value. Si elle est VRAIE alors le

    traitement de la boucle sera excut sinon ce traitement ne sexcute jamais.

  • 7/25/2019 Ch5+structure+de+controle+itratives

    9/11

    on peut tomber dans un cas o le traitement correspondant ne sexcute aucune fois et ceci ds quela condition est fausse.Exemple :

    S := 2 ;

    I := 0 ;

    Repeat

    I := I + 1 ;S := S + I ;

    Until I = 1 ;

    S := 2 ;

    I := 0 ;

    While I = 1 Do

    Begin

    I := I + 1 ;

    S := S + I ;End ;

    La boucle est excute une seule fois. S =3 et I=1

    La boucle nest pas excute.

    S =2 et I= 0

    BUT : Afficher lcran le PGCD de deux entiers positifs A et B.

    La tche de ce programme consiste :

    1)Saisir deux entiers positifs A et B en faisant un contrle. Si A et B ne sont pas positifs alors leprogramme redemande la saisie et ainsi de suite jusqu ce quune bonne valeur soit donne.

    2)Calculer le PGCD en testant A et B.

    NOM: PGCD

    S L.D.E O.U

    32

    1

    4

    Rsultat= crire ("Le PGCD est ",A)A = [ ] Tantque AB faire

    Si A>B alorsAA-B

    FinsiSi A=0) ET(B>=0)FinPGCD

    AB

    Ecrire un programme Pascal intitul PGCDpermettant de calculer et dafficher le PGCD(PlusGrand Commun Diviseur) de deux entiers positifs A et B par la mthode de diffrence.

    Exemple : PGCD(12,30) = ?

    A B Si A>B alors AA-B

    SI A

  • 7/25/2019 Ch5+structure+de+controle+itratives

    10/11

    Objet Nature / Type

    AB

    Entier.Entier.

    0) Dbut PGCD1) Rpter

    Ecrire ("Taper un premier entier "), Lire (A)Ecrire ("Taper un deuxime entier "), Lire (B)

    Jusqu (A>=0) ET (B>=0)2) [ ] Tantque AB rpter

    Si A>B alorsAA-B

    Finsi

    Si A=0) AND (B>=0) ;While AB DOBEGIN

    IF A> B THENA:= A-B;

    IF A

  • 7/25/2019 Ch5+structure+de+controle+itratives

    11/11

    III. SELECTION DUNE BOUCLE REPETITIVE

    Boucle Rpter Boucle Tant que

    OUI

    OUI

    NON

    NON

    Nombre derptitionsconnu lavance