exercices - troisième série.pdf

Upload: tarek-bouazza

Post on 17-Feb-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/23/2019 Exercices - Troisime Srie.pdf

    1/36

    LMD / S.T. Srie 2 : Testes / Boucles

    SommaireTroisime Srie.....................................................................................................................................2

    Exercice 1 : Types de valeurs...........................................................................................................2Exercice 2 : Nombres.......................................................................................................................2Exercice 3 : Expressions..................................................................................................................2

    Exercice 4 : Ideni!icaeurs valides " non valides............................................................................3Exercice # : $claraion de variables %&!!ecaion " 'ecure(.........................................................4Exercice ) : Excuion " $roulemen d*un al+ori,me...................................................................-Exercice - : 'e si+ne d*un nombre...................................................................................................Exercice : /omparaison enre deux nombres.............................................................................10Exercice : soluion de l*uaion ax2bxc50.......................................................................11Exercice 10 : $roulemen d*un al+ori,me..................................................................................13Exercice 11 : 6valuaion des expressions ari,miues e lo+iues.............................................1-Exercice 12 : /alculer une somme d*une manire iraives.........................................................1Exercice 13 : /alculs iraives 7 sommes8 produis......................................................................2#Exercice 14 : /alcul de somme en !oncion de n e x....................................................................2-

    Exercice 1# : /alcul de salaire pour N individus...........................................................................2Exercices Supplmenaires :...............................................................................................................32Exercice 1) : Soluion d*une uaion de deuxime de+r............................................................32Exercice 1- : Sommes iraives....................................................................................................33

    L'objectif de cette deuxime srie est de comprendre les notions de : expressions et leursvaluations, droulement d'algorithme, teste alternatif simple et double ainsi que la notion deboucles.

    Vous allez aborder les points suivants :

    Dterminer le type d'une valeur (entier, rel, caractre, chane ou boolen) crire correctement les valeurs et les expressions dans le langage PASCAL Droulement d'un algorithme Organigramme Utilisation du teste alternatif double et simple Utilisation des boucles Pour, Tant-que et Rpter (for, whileet repeat). Calcul de sommes et produits itratives

    1

  • 7/23/2019 Exercices - Troisime Srie.pdf

    2/36

    LMD / S.T. Srie 2 : Testes / Boucles

    Troisime Srie

    Exercice 1 : Types de valeurs

    Donner le type des constantes suivantes : 2010 ; 124.5 ; 667.0E-8 ; 'A' ; 'erreur : divisions par

    zro' ; TRUE ; FALSE

    Rponse :

    Valeur Type (Algorithme) En Pascal

    2010 Entier Integer

    124.5 Rel (avec une virgule fixe) Real

    667.0E-8 Rel (avec une virgule flottante) Real

    'A'Caractre Char

    'erreur:division par zro' Chane String

    TRUE Boolen Boolean

    FALSE Boolen Boolean

    En algorithmique et en langage PASCAL, il y 5 types de base.

    Exercice 2 : Nombres

    Exprimer les nombres suivants dans un langage (PASCAL) : 8,50 96,2 109 0,39 10-16

    Rponse :

    Nombres En PASCAL

    8,50 8.50

    96,2 109 96.2 E+9

    0,39 10-16 0.39 E-16

    Exercice 3 : Expressions

    Pour les expressions mathmatiques (arithmtiques / logiques), la transcription manuelle n'est pas

    toujours valables pour le langage PASCAL. Le tableau suivant montres comment crire

    correctement quelques oprations / fonctions mathmatiques

    Expression normale Expression en Pascal

    a

    b

    a / b(division rel : rsultat avec la virgule)adivb(division entire : rsultat entier)

    2

  • 7/23/2019 Exercices - Troisime Srie.pdf

    3/36

    LMD / S.T. Srie 2 : Testes / Boucles

    a2 sqr(a)

    a sqrt(a)

    |a| abs(a)

    ex exp(x)

    Ln(x) ln(x)

    an exp(n*ln(x))

    Exprimer les expressions suivantes dans un langage (PASCAL) :

    b+b24 ac

    2a 2x e

    x (xy )29

    ab

    Rponse :

    Expression En Pascal

    b+b24 ac2a

    ( -b + sqrt(sqr(b) 4*a*c) ) / (2 * a)

    2x ex 2 * x * exp(x)

    (xy )29

    abexp(2*k*ln(x-y)) / (a*b)

    Il faut faire attention lors d'criture des expressions mathmatiques (arithmtiques ou logiques).

    Exercice 4 : Identificateurs valides / non valides

    Indiquer les identificateurs valides et non valides parmi la liste suivante : 1A ; R? ; K2 ;

    T280 ; 12R ; Hauteur ; Prix-HT ; Prix_HT ; Code prod ; Code_prod

    Rponse :

    Identificateurs Valide / Non Valide

    1A Non valide : il commence par un chiffre

    R? Non valide : il contient le point d'interrogation

    K2 Valide

    T280 Valide

    12R Non valide (comme le premier)

    Hauteur Valide

    3

  • 7/23/2019 Exercices - Troisime Srie.pdf

    4/36

    LMD / S.T. Srie 2 : Testes / Boucles

    Prix-HT Non valide : il contient tir 6 (signe de moins)

    Prix_HT Valide

    Code prod Non valide : il contient un blanc

    Il faut revoir la dfinition de l'identificateur en cours

    Les identificateurs sont utiliss pour donner un nom un programme, constante ou variables

    Exercice 5 : !claration de variables "#ffectation / $ecture%

    crire un algorithme / programme PASCAL permettant d'initialiser des variables par affectations

    ou par lectures les donnes (valeurs) suivantes et les affiche l'cran :

    135 -125 150,0 127543,50 96,2 109 0,39 10-16 'A' 'Informatique 1' true false

    (Il y a 10 valeurs, donc vous devez dclarer 10 variables = 10 espaces mmoires)

    Premire solution : Par affectation

    L'algorithme :

    Le programme PASCAL :

    Dans cette premire solution, on crit les valeurs dans le code sources (dans le programme

    4

    Programexercie_5;

    Useswincrt ;vara, b : integer ; c, d, e, f : real ; g:char ; h:string ;i, j : boolean ;

    Begin

    a:=135; b:=-125; c:=1500; d:=12!5"350; e:=#$2 %#;f:=03#%-1$; g:=&'&; h:=&(nfor)ati*+e 1&; i:=tr+e ;j:=false;write a, b, c, d, e, f, g, h, i, j ;

    End

    1

    23"5$!.#

    1011

    Algorithmeexercie_5Variables

    a, b : entierc, d, e, f : r/elg : caractre

    h : chanei, j : bool/en

    Dbut

    a 135 ; b -125 ; c 1500 ; d 12!5"350e #$2 % # ; f 03# %-1$ ; g &'& ;h &(nfor)ati*+e 1& ; i tr+e ; j false ;crirea, b, c, d, f, g, h, i, j

    Fin

  • 7/23/2019 Exercices - Troisime Srie.pdf

    5/36

    LMD / S.T. Srie 2 : Testes / Boucles

    lui mme). Et les valeurs sont connus avant d'excuter le programme.

    La partie gauche d'une affectation est toujours une variables

    Vous pouvez ajouter des chane de caractres (message) la fonction writepour montrer les

    noms des variables et leurs valeurs respectives : write ('a = ', a, ' b=', b, .etc.

    Organigramme :

    L'organigramme est une faon de montrer un algorithme (ou un programme) sous forme d'actions

    schmatiseset leurs enchanement (flches)

    Les diffrentes figures d'organigramme

    Figure Smantique / Sense

    Reprsente le dbut et la Fin del'organigramme

    Entres / Sorties : Lecture des donneset criture des rsultats.

    Calculs, Traitements

    Tests et dcision : on crit le test l'intrieur du losange

    Ordre d'excution des oprations(Enchanement)

    Connecteur

    #

    $bu

    in.

    a ;13#

    b ;712#

    c ;1#0.0

    d ;12-#43.#0

    e ;).E

    ! ;0.3E71)

    + ;*&*

    < ;*In!ormaiue 1*

    i ;rue

    = ;!alse

  • 7/23/2019 Exercices - Troisime Srie.pdf

    6/36

    LMD / S.T. Srie 2 : Testes / Boucles

    Deuxime solution : Par lecture

    L'algorithme :

    Le programme PASCAL :

    Organigramme :

    )

    Program4al_absol+e_carre;Useswincrt ;var

    a, b : integer ; c, d, e, f : real ; g:char ; h:string ;i, j : boolean ;

    Begin

    reada; readb; readc; readd; reade;readf; readlng; readlnh; i:=tr+e ;j:=false;

    write a, b, c, d, e, f, g, h, i, j ;End

    123"5$!.#

    1011

    Algorithme4al_absol+e_carreVariables

    a, b : entierc, d, e, f : r/elg : caractreh : chanei, j : bool/en

    Dbut

    lirea ; lireb ; lirec ; lired ;liree ; liref ; lireg ;lireh ; i tr+e ; j false ;crirea, b, c, d, f, g, h, i, j

    Fin

    $bu

    in.

    i ;rue

    = ;!alse

    lire%a(

    lire%b(

    lire%c(

    lire%d(

    lire%e(

    lire%!(

    lire%+(

    lire%,(

  • 7/23/2019 Exercices - Troisime Srie.pdf

    7/36

    LMD / S.T. Srie 2 : Testes / Boucles

    Exercice & : Ex!cution / !roulement d'un al(orit)me

    Excuter les squences d'instructions suivantes manuellement et donner les valeurs finales des

    variables A, B, C et celle de X, Y, Z.

    a) A 5; ; B 3; ; C B+A; ; A 2; ; B B+4; ; C B-2;

    b) X -5; ; Y 2*X; ; X X+1; ; Y sqr(-X-Y); ; Z sqr(-X+Y); ; X -(X+3*Y)+2;

    Rponse :

    Excuter manuellement une squences d'instructions (algorithmes / programme) nous permet de

    voir l'volution des variables (changement de valeurs pour les variables) et a nous permet de

    comprendre l'algorithme et de prouver qu'il donne un bon rsultat.

    Pour drouler un algorithme / programme on utilise un tableau dans le quel les colonnes

    reprsentent les variables et les lignes reprsentent les instructions.

    a) Pour la premire squence, nous avons 3 variables : A, B et C. et selon les affectations on

    dduit qu'ils sont de type entier.

    Variables

    InstructionsA B C

    A 5; 5 / /

    B 3; 5 3 /

    C B+A; 5 3 8

    A 2; 2 3 8

    B B+4; 2 7 8

    C B-2; 2 7 5

    Les valeurs finales sont : A=2 B=7 C=5

    b) Pour la deuxime squence, nous avons 3 variables : X, Y et Z. et selon les affectations on

    dduit qu'ils sont de type entier.

    Variables

    Instructions

    X Y Z

    X -5; -5 / /

    Y 2*X; -5 -10 /

    X X+1; -4 -10 /

    Y sqr(-X-Y); -4 196 /

    Z sqr(-X+Y); -4 196 40000

    X -(X+3*Y)+2; -582 196 40000

    Les valeurs finales sont : X=-582 Y=196 Z=40000

    -

  • 7/23/2019 Exercices - Troisime Srie.pdf

    8/36

    LMD / S.T. Srie 2 : Testes / Boucles

    L'algorithme :

    Le programme PASCAL :

    N.B. :a sera la mme chose pour la deuxime squence.

    Exercice * : $e si(ne d'un nombre

    crire l'algorithme puis le programme PASCAL qui lit un nombre rel X, dtermine et afficheson signe. Selon le cas : il affiche 'X est positif', 'X est ngatif' ou 'X est nul'.

    Rponse :

    Cette algorithme peut tre schmatiscomme suit :

    On introduit un nombre rel quelconque, et l'algorithme affiche une message indiquant si le

    nombre est positif, ngatif et bien nul. Pour introduire ce nombre on a besoin d'une variable relle

    X. Donc la premire instruction est lire(x). la fin on doit afficher un message.

    Programexo$_a;Useswincrt ;var

    a, b, c : integer ;Begin

    ':=5 ; :=3 ; 6:=7' ; ':=2 ; :=7" ; 6:=-2 ;8rite &' = &, ', & = &, , & 6 = &, 6 ;

    End

    123"5

    $!.

    Algorithmeexo$_aVariables

    a, b, c : entierDbut

    '5; 3; 67'; '2; 7"; 6-2;

    crire', , 6Fin

    Traiemen

    X

    Message (l'un des 3 messages selon le cas)

  • 7/23/2019 Exercices - Troisime Srie.pdf

    9/36

    LMD / S.T. Srie 2 : Testes / Boucles

    L'algorithme :

    Le programme PASCAL :

    Organigramme :

    Program4al_absol+e_carre;Useswincrt ;var

    9 : real ;Begin

    ead9;ifx0 then

    8rite&9 est

  • 7/23/2019 Exercices - Troisime Srie.pdf

    10/36

    LMD / S.T. Srie 2 : Testes / Boucles

    Exercice + : ,omparaison entre deux nombres

    crire l'algorithme puis le programme PASCAL qui lit deux nombres rels aet b, et affiche :

    'a est plus grand que b' si a > b

    'a est plus petit que b' si a < b

    'a est gal b' si a = b

    Rponse :

    Cette algorithme peut tre schmatiscomme suit :

    On introduit deux nombres rels quelconques, et l'algorithme affiche une message indiquant si le

    premier nombre est plus grand, plus petit ou gale au deuxime nombre. Pour introduire ces deux

    nombres on a besoin de deux variables relle aet b. Donc la premire instruction sera lire(a, b).

    la fin on doit afficher un message : 'a est plus grand que b', 'a est plus petit que b'ou 'a est gal b'.

    L'algorithme :

    10

    Algorithme4al_absol+e_carreVariables

    a, b : r/elDbut

    lirea, bSia b alors

    crire&a est

  • 7/23/2019 Exercices - Troisime Srie.pdf

    11/36

    LMD / S.T. Srie 2 : Testes / Boucles

    Le programme PASCAL :

    Organigramme :

    Exercice - : .!solution de l'!uation ax20bx0c

    crire l'algorithme (et le programme PASCAL) permettant de rsoudre, dans , l'quationax2+bx+c=0. Avec a 0.

    11

    Program4al_absol+e_carre;Useswincrt ;var

    a, b : real ;Begin

    eada, b;ifab then

    8rite&a est

  • 7/23/2019 Exercices - Troisime Srie.pdf

    12/36

    LMD / S.T. Srie 2 : Testes / Boucles

    La premire tape dans l'algorithme est d'introduire les valeurs de a, b et c. En suite, on calcule

    delta. En utilisant les tests alternatifs doubles (si sinon ), l'algorithme dcide quoi afficher

    comme rsultat.

    L'algorithme :

    Le programme PASCAL :

    12

    Program4al_absol+e_carre;Useswincrt ;var

    a, b, c, delta, x1, x2 : real ;Begin

    eada, b, c; delta:=s*rb-"?a?c;ifdelta0 then

    8rite&@as de sol+tions r/elles&else

    ifdelta = 0 thenbegin

    x1:= -bA2?a;8rite&Bol+tion do+ble x1 = x2 = &, x1:$:2;

    EndElse

    Begin

    91:=-b - s*rtdeltaA2?a ;92:=-b 7 s*rtdeltaA2?a ;8rite&Ce+x sol+tions x1=&,x1:$:2,&x2=&, x2:$:2;

    End;End

    123"5$!.#

    101112131"1$1!1.1#202122

    Algorithme4al_absol+e_carreVariables

    a, b, c, delta, x1, x2 : r/elDbut

    lirea, b, cCelta b?b - "?a?cSidelta 0 alors

    crire&@as de sol+tions r/elles&Sinon

    Sidelta = 0 alorsx1 -bA2?a

    crire &Bol+tion do+ble x1=x2=&, x1Sinonx1 -b-s*rtdeltaA2?ax2 -b7s*rtdeltaA2?acrire &de+x sol+tions x1=&, x1, & x2=&, x2

    FinSi

    FinSi

    Fin

  • 7/23/2019 Exercices - Troisime Srie.pdf

    13/36

    LMD / S.T. Srie 2 : Testes / Boucles

    Organigramme :

    Exercice 1 : !roulement d'un al(orit)me

    Soit l'algorithme suivant :

    13

    'ire %a8 b8 c(

    in.

    dela 5 0

    6crire %*Cas de soluions elles*(

    @ui Nondela ? 0

    @ui

    $bu

    6crire%x1(

    6crire%x18 x2(

    Non

    dela ; bDb74DaDc

    x1 ; 7b"%2Da(x1 ; %7b7sr%dela(("%2Da(

    x2 ; %7bsr%dela(("%2Da(

    Algorithme%xo10Variables

    a, b, c, d : entierDbut

    lirea, b, c ; d 0Sia b alors

    Sia c alorsb b7ca b-cc a7b

    SinonSib=c alors

    c c73FinSi

    d a-b7cFinSi

    Sinon

    Siac alorsa 2?b

    FinSib b7c

    FinSid s*ra7b7d/crirea, b, c, d

    Fin

  • 7/23/2019 Exercices - Troisime Srie.pdf

    14/36

    LMD / S.T. Srie 2 : Testes / Boucles

    - Faire le droulement de cet algorithme et dduire les valeurs finale des variables a, b, cet

    ddans chacun des cas suivantes :

    1) a=1 ; b=2 ; c=1 2)a=2 ; b=1 ; c=1 3) a=1 ; b=1 ; c=-2 4) a=2 ; b=1 ; c=3

    crire le programme Pascal correspondant et l'excuter.

    Rponse

    Nous avons dans l'algorithme 3 variables d'entre et 4 variables de sortie. Pour droulerl'algorithme, on doit connatre la valeur de chaque variable d'entre.

    Droulement

    1) a=1 ; b=2 ; c=1

    Variables

    Instructionsa b c d

    Lire(a, b, c)

    d 0*1 2 1 0

    Si a>b false+

    => Sinon1 2 1 0

    Si a>c false+

    b b+c*1 3 1 0

    d sqr(a+b+d)* 1 3 1 16

    Les valeurs finales sont :a=1, b=3, c=1et d=16

    14

    Traiemen

    b

    a

    a c

    b dc

  • 7/23/2019 Exercices - Troisime Srie.pdf

    15/36

    LMD / S.T. Srie 2 : Testes / Boucles

    2) a=2 ; b=1 ; c=1

    Variables

    Instructionsa b c d

    Lire(a, b, c)

    d 0*2 1 1 0

    Si a>b true+

    si a sinon

    si b=c true+

    2 1 1

    c c+3* 2 1 4 0

    d a-b+c=2-1+4 = 5* 2 1 4 5

    d sqr(a+b+d)=8* 2 2 1 4 64

    Les valeurs finales sont :a=2, b=1, c=4et d=64

    3) a=1 ; b=1 ; c=-2

    Variables

    Instructionsa b c d

    Lire(a, b, c)

    d 0*1 1 -2 0

    Si a>b false+

    => sinon

    si a>c true+

    a 2*b*

    2 1 -2 0

    b b + c* 2 -1 -2 0

    d sqr(a+b+d)=-1* 2 2 -1 -2 1

    Les valeurs finales sont :a=2, b=-1, c=-2et d=1

    4) a=2 ; b=1 ; c=3 Les valeurs finales sont :a=2, b=-1, c=-2et d=1

    Variables

    Instructionsa b c d

    Lire(a, b, c)

    d 0* 2 1 3 0

    Si a>b true+

    si a< c true+

    b b + c*2 4 3 0

    a b - c* 1 4 3 0

    c a + b* 1 4 5 0

    d sqr(a+b+d)=-1* 2 1 4 5 25

    1#

  • 7/23/2019 Exercices - Troisime Srie.pdf

    16/36

    LMD / S.T. Srie 2 : Testes / Boucles

    Le programme PASCAL correspondant :

    Remarques :

    Il faut jamais mettre de point-virgule pour l'instruction qui prcde else.

    Si le bloc de if contient plusieurs instructions (plus d'une instruction) on dlimite,

    obligatoirement, ces instructions parbeginet end

    Si le bloc de else contient plusieurs instructions (plus d'une instruction) on dlimite,obligatoirement, ces instructions parbeginet end

    Si le bloc de ifou elsecontient une seule instruction, on peut enlever beginet end

    Dans le langage PASCAL, il n y a pas le mot clendIfou endElse

    1)

    Program%xo.;Useswincrt ;var

    a, b, c, d : real ;Begin

    eada, b, c;d:=0;ifab then

    if ac thenbegin

    b:=b7c;a:=b-c;

    c:=a7b;endelse

    begin

    ifb=c thenc:=c73;

    d:=a-b7c; endelse

    beginifac then

    a:=2?b;b:=b7c;

    endC:=s*ra7b7d;

    8rite&a=& , a, & b=& , b, & c=& , c, & d=&, d;End

    123"5$!.#101112131"1$1!

    1.1#202122232"252$1!2.

    2#30

    Cas de poin7vir+uleavan else

  • 7/23/2019 Exercices - Troisime Srie.pdf

    17/36

    LMD / S.T. Srie 2 : Testes / Boucles

    Exercice 11 : valuation des expressions arit)m!tiues et lo(iues

    Une expression mathmatiques peut tre soit arithmtiques (donne un rsultat numrique) ou

    bien logique (donne un rsultat boolen). valuer un expression veut dire dterminer la valeur finale

    (le rsultat) de cette expression aprs avoir remplac toutes les variables avec leurs valeurs

    respectives. Cette valuation doit respecter l'ordre de calcul des diffrents oprations utilises dasn

    l'expression. On a 6 niveaux de prioritd'oprateurs :

    1) Les parenthse : on value tout d'abord les parenthses les plus profondes

    2) Les fonctions : comme par exemple sqr, sqrt, abs, cos, sin, exp, etc.

    3) Les oprateurs unaires : - unaire et not

    4) Multiplication *, division /, Div (division entire), Mod (reste de division) et le And (et

    logique)

    5) Addition +, Soustraction , OR (le ou logique)

    6) Oprateurs relationnels (de comparaison) : , , =, =, =, (diffrent)

    Dans le cas ou deux oprateurs ont la mme prioriton calcul tout d'abord celui gauche (de

    gauche droite).

    Expression 1 :a + b / c + ( ( d / 3 + 4 ) / 3 + a ) / b

    Expression 2 :( a > b ) or not ( c >= d ) and ( b < c )

    Aveca=1 ; b=2 ; c=4 ; d=6.

    Rponse

    Expression 1

    a + b / c + ( ( d / 3 + 4 ) / 3 + a ) / b

    (5) 0.5 (1) 2(7) 1.5 (2) 6

    (3) 2(4)

    3 (6) 1.5(8)3

    Dans l'expression 1, il y a huit oprateurs, donc on trouvera 8tapes de calcul.

    L'ordre des oprations sera dfini donc comme suit :

    a + b / c + ( ( d / 3 + 4 ) / 3 + a ) / b

    (7) (5) (8) (1) (2) (3) (4) (6)

    1-

  • 7/23/2019 Exercices - Troisime Srie.pdf

    18/36

    LMD / S.T. Srie 2 : Testes / Boucles

    Expression 2

    (a > b) or not (c >= d) and (b < c)

    (1) False (2) Flase (3) TRUE(4) TRUE

    (5) TRUE(6) TRUE

    Dans l'expression 1, il y a 6 oprateurs, donc on trouvera 6tapes de calcul.

    L'ordre des oprations sera dfini donc comme suit :

    (a > b) or not (c >= d) and (b < c)

    (1) (6) (4) (2) (5) (3)

    Exercice 12 : ,alculer une somme d'une manire it!ratives

    1- crire un algorithme pour calculer la somme suivante : S = 12+ 32+ 52+ + (2m+1)2. Avec

    mdonn. Rsoudre l'exercice en utilisant chacune des boucles : (a)la boucle Pour (b) la boucle

    Tant-que (c)la boucle Rpter et dduire la plus approprie dans ce cas.

    2- Effectuer le droulement (trace d'excution) de l'algorithme pour m=4 dans chacun des cas (a),

    (b)et (c).

    3- Traduire chacun des algorithmes en programme PASCAL

    Remarque : On peut utiliser une boucle de 0 mpour tous les cas. Une autre solution consiste

    utiliser une boucle de 1(2m+1)mais en incrmentant le compteur de 2.

    Rponse

    1- Pour faire une somme rptitive (itratives) il faut tout d'abord dduire le terme gnral (terme

    itratif). On peut crire la somme Scomme suit :

    S = 12+ 32+ 52+ + (2m+1)2 Qu'on peut crire sous la forme abrge suivante :

    #=i=0

    m

    (2i+1)2

    Le terme rptitive (gnrale) est : (2i+1)2

    ic'est un indice qui varie de la valeur initiale 0jusqu'la valeur finale m.

    Le symbole de la somme peut tre remplac, trs facilement, par la boucle Pour comme

    suit : Pour i 0 m faire*

    1

  • 7/23/2019 Exercices - Troisime Srie.pdf

    19/36

    LMD / S.T. Srie 2 : Testes / Boucles

    chaque itration de la boucle Pouron ajoute Sle terme rptitive : (2i+1)2 comme

    suit : S S +* sqr(2*i + 1) ce qui est en gras est le terme itrative (rptitive ou gnrale)

    Bien videmment, pour calculer la valeur de Son aura besoin de la valeur de m. mc'est valeur

    introduire l'algorithme (une variable d'entre => lire(m)). Par contre Sest le rsultat calculer

    (une variable de sortie => crire(s))

    a)La solution en utilisant la boucle Pour

    b)La solution en utilisant la boucle Tant-Que

    c)La solution en utilisant la boucleRpter

    Remarques :

    La boucle Pourfonctionne avec un compteur (indice) qui reprsente une variable entire (le

    compteur doit tre obligatoirement une variable entire)

    1

    Algorithme%xo12_@o+rVariables

    ), s, i:entierDbut

    lire) ;B 0 ;Pouri0 ) faire

    B B 7 s*r2?i71FinPour

    /crireBFin

    Algorithme%xo12_DantE+eVariables

    ), s, i:entierDbut

    lire) ;B 0 ;i 0 ;Tant-uei= ) faire

    B B 7 s*r2?i71

    i i 7 1FinTant-!ue/crireB

    Fin

    Algorithme%xo12_e

  • 7/23/2019 Exercices - Troisime Srie.pdf

    20/36

    LMD / S.T. Srie 2 : Testes / Boucles

    Dans la boucle Pouron spcifie la valeur initialeet la valeur finale(deux valeurs entires)

    du compteur

    Si la valeur finale est plus petite que la valeur initialedonc on n'excute pas la boucle

    Pour(nombre d'itrations = 0)

    Si la valeur finaleest suprieur la valeur initialedonc on excute la boucle Pouravec un

    nombre d'itrations = - + 1. Dans l'exemple prcdent, la boucle

    Poursera excute pour (m+1) itrations(Sim=4 a sera alors5 itrations).

    Les deux boucles Tant-queetRpterfonctionnent avec des conditions (expressions logiques

    qui donnent soit True soit False).

    D'une manire gnrale, traduire une boucle Pourune boucle Tant-quese fait comme suit :

    Pourfaire

    FinPour

    Tanue-!ue= faire

    7 1FinTant-ue

    Tel-que :

    : c'est une variable entire (le compteur de la boucle Pour)

    : c'est une valeur entire (la valeur initiale de la boucle Pour)

    : c'est une valeur entire (la valeur finale de la boucle Pour).

    Donc, pour transformer la boucle Pour une boucle Tant-que il faut ajouter deux

    instructions : linitialisation du compteur la valeur initiale et l'incrmentation du compteur (de 1)

    la fin de chaque itration. Bien videmment, le boucle Tant-quecontient la condition compteur

    infrieur ou gale la valeur finale.

    Toute boucle Pourpeut tre remplace par une boucle Tant-que. Cependant, on peut trouver

    des boucles Tant-quequ'on ne peut pas (ou bien difficile ) remplacer par une boucle Pour.

    Toute boucle Tant-quepeut tre remplace par une boucleRpteret vice-versa.

    La boucle Tant-que et Rpter sont quivalentes.

    La condition de la boucle Tant-que est value au dbut de l'itration : si la condition est

    vraie on entre l'itrationsinon on quittela boucle.

    La condition de la boucleRpterest value la fin de l'itration : si la condition est vraie

    on quittela boucle sinon on ralise une autre itration (ritre : re-boucle).

    Pour la boucle Tant-quela condition reprsente le test d'entre, par contre, pour la boucle

    Rpterla condition reprsente le test de sortie.

    20

  • 7/23/2019 Exercices - Troisime Srie.pdf

    21/36

    LMD / S.T. Srie 2 : Testes / Boucles

    Pour remplacer la boucle Tant-quepar la boucleRpter, il suffit de nier la condition de la

    boucle Tant-queet bien-sr de respecter la syntaxe des deux boucles comme suit :

    Tant-ue faire

    FinTant-ue

    "#ter

    $usu%

    Tel-que : et la ngation de ,autrement dit :

    =Not()

    2- Le droulement pour m=4

    a) La boucle Pour

    Variables

    Instructionsm i s

    Lie (m) 4 / /

    S 0* 4 / 0

    Pour i=0 4 0 0

    S S + sqr(2*i+1) = 0 + sqr(2*0+1) =*

    124 0 12= 1

    Pour i=1 4 1 1

    S S + sqr(2*i+1) = 1* 2+ sqr(2*1+1) =

    1 + 32= 104 1 12+ 32= 10

    Pour i=2 4 2 10

    S S+sqr(2*i+1)=* 10+sqr(2*2+1)=

    10+52= 354 2 12+ 32+52= 35

    Pour i=3 4 3 35

    S S+sqr(2*i+1)=35* +sqr(2*3+1)=

    35+72= 35+49 = 844 3 12+ 32+52+72= 84

    Pour i=4 (la dernire itration i=m) 4 4 84

    S S+sqr(2*i+1)=84* +sqr(2*4+1)=

    84+92= 84+81 = 165 4 4 12

    + 32

    +52

    +72

    + 92

    = 165

    crire (s) 4 4 165

    La valeur finale de l'algorithme est S = 165

    Remarque : Les deux couleurs gris clair / fonc sont utilis pour montrer et sparer les

    itrations de la boucle Pour.

    21

  • 7/23/2019 Exercices - Troisime Srie.pdf

    22/36

    LMD / S.T. Srie 2 : Testes / Boucles

    b) La boucle Tant-Que

    Variables

    Instructionsm i s

    Lie (m) 4 / /

    S 0*i 0*

    4 0 0

    Tant-que iTrue=>entrer la boucle 4 0 0

    S S + sqr(2*i+1) = 0 + sqr(2*0+1) = 1* 2 4 0 12= 1

    i i +1* 4 1 1

    Tant-que iTrue=>entrer la boucle 4 1 1

    S S+sqr(2*i+1) =* 1+sqr(2*1+1) = 1+32= 10 4 1 12+ 32= 10

    i i +1* 4 2 10

    Tant-que iTrue=>entrer la boucle 4 2 10

    S S+sqr(2*i+1)=* 10+sqr(2*2+1)= 10+52= 35 4 2 12+ 32+52= 35

    i i + 1* 4 3 35

    Tant-que iTrue=>entrer la boucle 4 3 35

    S S+sqr(2*i+1)=35* +sqr(2*3+1)=35+72=84 4 3 12+ 32+52+72= 84

    i i + 1* 4 4 84

    Tant-que iTrue=>entrer la boucle 4 4 84

    S S+sqr(2*i+1)=84* +sqr(2*4+1)=84+92

    = 165 4 4 12

    32

    #2

    -2

    2

    5 165i i + 1* 4 5 1)#

    Tant-que iFalse=>quitter la boucle 4 5 1)#

    crire (S) 4 5 1)#

    La valeur finale de l'algorithme est S = 165

    Remarque : Comme dans le cas de la boucle Pour, la boucle Tant-que possde 5 itrations. Par

    contre, le teste i

  • 7/23/2019 Exercices - Troisime Srie.pdf

    23/36

    LMD / S.T. Srie 2 : Testes / Boucles

    c) La boucleRpter

    Variables

    Instructionsm i s

    Lie (m) 4 / /

    S 0*i 0*

    4 0 0

    Rpter 4 0 0

    S S + sqr(2*i+1) = 0 + sqr(2*0+1) = 1* 2 4 0 12= 1

    i i +1* 4 1 1

    Jusqu'i>m :1>4 =>False=>refaire la boucle 4 1 1

    S S+sqr(2*i+1) =* 1+sqr(2*1+1) = 1+32= 10 4 1 12+ 32= 10

    i i +1* 4 2 10

    Jusqu'i>m :2>4 =>False=>refaire la boucle 4 2 10

    S S+sqr(2*i+1)=* 10+sqr(2*2+1)= 10+52= 35 4 2 12+ 32+52= 35

    i i + 1* 4 3 35

    Jusqu'i>m :3>4 =>False=>refaire la boucle 4 3 35

    S S+sqr(2*i+1)=35* +sqr(2*3+1)=35+72=84 4 3 12+ 32+52+72= 84

    i i + 1* 4 4 84

    Jusqu'i>m :4>4 =>False=>refaire la boucle 4 4 84

    S S+sqr(2*i+1)=84* +sqr(2*4+1)=84+92

    = 165 4 4 12

    32

    #2

    -2

    2

    5 165i i + 1* 4 5 1)#

    Jusqu'i>m :5>4 =>True=> quitter la boucle 4 5 1)#

    crire (S) 4 5 1)#

    La valeur finale de l'algorithme est S = 165

    3- Traduction des algorithmes en programme PASCAL

    a) La boucle Pour

    23

    Programexo12_@o+r;Useswincrt ;var

    ), i, s : integer ;Begin

    8rite&Conner la 4ale+r de ) : &; ead);B := 0;Fori:=0 to) do

    B := B 7 s*r2?i71;8rite&Fa so))e B = &, B;

    End

    123"5$!.#

    10

    11

  • 7/23/2019 Exercices - Troisime Srie.pdf

    24/36

    LMD / S.T. Srie 2 : Testes / Boucles

    b) La boucle Tant-Que

    c) La boucle Rpter

    Remarques :

    Pour le programme (avec la boucle Pour), on n'a pas mis begin end ; ceci cause de

    lexistence d'une seule instruction l'intrieur de la boucle Pour. Rien n'empche de les mettre

    comme suit :

    Fori:=0 to) doBegin

    B := B 7 s*r2?i71;End;

    Begin .. end ;se mettent aprs la structure de contrle (soitif, else, for, while).

    S'il y a plus d'une instruction (nombre dinstructions > = 2), dans ce cas le begin end ;

    24

    Programexo12_Dant*+e;Useswincrt ;var

    ), i, s : integer ;Begin

    8rite&Conner la 4ale+r de ) : &;ead);B := 0;i:=0 ;&hilei=) do

    begin

    B := B 7 s*r2?i71;i:=i71;

    end;

    8rite&Fa so))e B = &, B;End

    123"5$!.#

    101112131"151$

    Programexo12_e

  • 7/23/2019 Exercices - Troisime Srie.pdf

    25/36

    LMD / S.T. Srie 2 : Testes / Boucles

    sont obligatoires.

    Pour la boucle Repeat, on mis pas de begin end ;puisque le bloc d'instruction de la

    boucleRepeatest dlimitpar les deux mots cl:Repeatet Until

    Il faut jamais mettre de point-virgule aprs do(Pour la boucle Whilea gnre une boucle

    infinie)

    Exercice 13 : ,alculs it!ratives sommes6 produits

    crire un algorithme et le programme PASCAL pour chacun des cas suivants avec Ndonne :

    a) Calculer le factoriel deNsoit : 123...,=, -

    b) crire un programme PASCAL qui permet de calculer le somme :12+

    23+

    34+ ...+

    n

    n+1

    c) Calculer la valeur de de sachant que 4=11

    3+1#1

    -+...(.aire 100it)rations )

    Rponse

    a) On suppose que P = N !

    Donc : P=1234...,

    La forme abragie : P=i=1

    ,

    i (Le produit des itel que iallant de 1 jusqu' N) => le facteur

    gnral est : i. on aura alors la boucle Pourqui possde un compteur iavec la valeur initiale 1et lavaleur finaleN. On multiplie P par le facteur gnral (facteur rptitif) iComme suit :

    Pouri 1 G Faire@ @ ? i;

    FinPour;

    Il reste s'assurer que la valeur de Psoit initialement neutre (il faut initialiser P1. (P 1)* ).

    2#

    Algorithme%xo13_a_factorielVariables

    G, @, i : entierDbutlireG ;@ 1 ;Pouri1 G faire

    @ @ ? iFinPour

    /crire@Fin

    Programexo13_a_factoriel;Useswincrt;var

    G, i, @ : integer ;Begin8rite&Conner la 4ale+r de G : &;eadG;@:=1;fori:=1 toG do

    @ := @ ? i;8rite&GH = &, @;

    End

    123

    "5$!.#101112

  • 7/23/2019 Exercices - Troisime Srie.pdf

    26/36

    LMD / S.T. Srie 2 : Testes / Boucles

    b) On suppose que #=1

    2+2

    3+3

    4+...+

    n

    n+1

    La forme abragie : #=i=1

    ni

    i+1(La somme termes

    i

    i+1tel que iallant de 1jusqu'n) =>

    le terme gnral est : ii+1

    . On aura alors la boucle Pourqui possde un compteur iavec la valeur

    initiale 1et la valeur finale n. On ajoute Spar le terme gnral (terme rptitif)i

    i+1Comme

    suit :

    Pouri 1 n FaireB B ? iAi71;

    FinPour;

    Il reste s'assurer que la valeur de Ssoit initialement neutre (il faut initialiser S 0. (S 0)* ).

    c)On met #=4=1

    13+

    1#

    1-+ ...(.aire100 itrations)

    Donc aura le terme gnrale suivant : #=/=0

    (1)

    /

    2/+1

    Ainsi on aura une boucle Pouravec un compteur kallant de 0 jusqu'99 (100 itrations=99

    0+1) Il reste calculer (-1)k. Il suffit de mettre une variable signe = (-1)k. Cette variable bascule

    entre les deux valeur 1et -1. Pour faire a, il suffit de multiplier signepar -1. comme suit :

    signe - signe* . Et de cette faon, si signe = 1donc il devient -1. Et si signe = -1il devient 1.

    L'objectif de l'algorithme et de calculer la valeur approximatif de = 4 * S.

    2)

    Algorithme%xo13_b_so))eVariables

    n, i : entierB : r/el

    DbutlireG ;B 0 ;Pouri1 n faire

    B B 7 iAi71FinPour/crireB

    Fin

    Programexo13_b_so))e;Useswincrt;var

    n, i : integer ;B : real;

    Begin

    8rite&Conner la 4ale+r de G : &;eadG;

    B:=0;fori:=1 ton do

    begin

    B := B 7 iAi71;end;

    8rite&Fa so))e = &, B:$:3;End

    123"5$!.

    #1011121"151$

  • 7/23/2019 Exercices - Troisime Srie.pdf

    27/36

    LMD / S.T. Srie 2 : Testes / Boucles

    Exercice 14 : ,alcul de somme en fonction de n et x

    1) crire un algorithme pour calculer la somme suivante :

    #=x+x

    3

    3+

    x#

    #+

    x-

    -+ ....+((n+1)itrations) avec la valeur de net dexdonnes.

    2) Drouler l'algorithme jusqu'n=4(en fonction dex)

    3) Traduire l'algorithme en programme.

    Rponse

    1) Algorithme pour le calcul de S

    Pour cette algorithme, on veut calculer la valeur de S. Pour cela, il faut introduire la valeur dexet

    de n. Donc nous avons une variable de sortie Set deux variable d'entre netx.

    Ainsi, au dbut de l'algorithme on aura lire(n, x)et la fin de l'algorithme on aura crire (S).

    La question qui se pose est quel est le traitement raliser pour avoir la valeur de S.

    Nous avons : #=x+x

    3

    3+

    x#

    #+

    x-

    -+....+((n+1)itrations)=

    i=0

    nx

    2i+1

    2i+1La somme sera de i=0

    2-

    Algorithme%xo13_c_@(Variables

    I,signe : entierB, @ : r/el

    DbutB 0 ; signe 1PourI0 ## faire

    BB7signeA2?I71Bigne - signe

    FinPour@ "?B;crire@

    Fin

    Programexo13_c_@(;Useswincrt;var

    I, signe : integer ;B, @ : real;

    Begin

    B:=0;Bigne:=1;forI:=0 to## do

    begin

    B := B 7 signeA2?i71;Bigne:= - signe;

    end;

    @:="?B;8rite&@ = &, @:$:3;

    End

    123"5$!.#1011121"151$1!

    Traiemen

    x

    #

    n

  • 7/23/2019 Exercices - Troisime Srie.pdf

    28/36

    LMD / S.T. Srie 2 : Testes / Boucles

    jusqu'n. (n+1itrations)

    Pour le calculer de puissancex2i+1, on mit P=x2i+1. Initialement P = x. ensuitex3, aprsx5

    Donc il suffit de faire P P * sqr(x)*

    2) Droulement de l'algorithme pour n = 4etxquelconque.

    Variables

    Instructionsn x i P s

    Lie (n, x) 4 x / / /

    S 0*

    P x*4 x / x 0

    Pour i=0 '' '' 0 '' ''

    S S + P / (2i+1)* '' '' '' '' x

    P P * sqr(x)* '' '' '' x3 x

    Pour i=1 '' '' 1 '' ''

    S S + P / (2i+1)* '' '' '' '' x + x3/3

    P P * sqr(x)* '' '' '' x5 ''

    Pour i=2 '' '' 2 '' ''

    S S + P / (2i+1)* '' '' '' '' x + x3/3 + x5/5

    P P * sqr(x)* '' '' '' x7 ''

    Pour i=3 '' '' 3 '' ''

    S S + P / (2i+1)* '' '' '' '' x + x3/3 + x5/5 + x7/7

    P P * sqr(x)* '' '' '' x9 ''

    Pour i=4 (dernire itration i=n) '' '' 4 '' ''

    S S + P / (2i+1)* '' '' '' '' x + x3/3 + x5/5 + x7/7 + x9/9

    2

    Algorithme%xo_1"

    Variables

    i, n : entierB, x, @ : r/el

    DbutFire n, xB 0@ xPouri0 n faire

    B B7 @ A 2?i71@ @ ? s*rx

    FinPour

    crireBFin

  • 7/23/2019 Exercices - Troisime Srie.pdf

    29/36

    LMD / S.T. Srie 2 : Testes / Boucles

    P P * sqr(x)* '' '' '' x11 ''

    crire (S) '' '' '' '' x + x3/3 + x5/5 + x7/7 + x9/9

    Donc la valeur finale S =x + x3/3 + x5/5 + x7/7 + x9/9 (le rsultat est en fonction dexpuisqu'on

    n'a pas donner une valeur pourx).

    3) Traduction de l'algorithme en programme

    Exercice 15 : ,alcul de salaire pour N individusSupposant qu'une grandeur V en dinars est calcule en fonction de la situation familiale de

    l'individu. Soit V = VB + R, sachant que VBest une donne etR est calcule en fonction de la

    situation familiale comme suit :

    1) crire un algorithme permettant de saisir les valeurs les donnes VB, SF, NFet calcule la

    valeur de VpourNindividus (Ndonne). Sachant que V, VB et R sont des rels, N, SF, NF sont des

    entiers naturels. (Attention dans le cas oSF=0, l'algorithme ne doit pas lireNF). Faire les lectures

    et traitements dans une boucle de 1N.

    2

    Programexo_1";Useswincrt;var

    n, i : integer ;x, s, < : real;

    Begin

    eadn, x;

    B:=0;@:=x;fori:=0 ton do

    begin

    B := B 7 @A2?i71;@ := @ ? s*rx;

    end;

    8rite&B = &, B:$:3;End

    123"5$!

    .#1011121"151$1!

    ! "

    1 # si S 5 0 %clibaaire(1 3 si S 5 1 %divorc( e N 5 01 10 si S 5 1 %divorc( e N A 01 10 si S 5 2 %mari( e N 5 01 15 si S 5 2 %mari( e 1 N 31 20 si S 5 2 %mari( e N A 3

  • 7/23/2019 Exercices - Troisime Srie.pdf

    30/36

    LMD / S.T. Srie 2 : Testes / Boucles

    2) Traduire l'algorithme en programme.

    Rponse

    1) Algorithme

    Dans cet algorithme, on afficheraNvaleurs pour V(salaires des individus).

    30

    Algorithme%xo_15Variables

    i, G : entierBJ, GJ : entierK, , K : r/el

    DbutFire GPouri 1 G faire

    Fire K, BJ;siBJ = 1 L BJ = 2 alors

    Fire GJFinSi

    SiBJ = 0 alros K ? 005

    Sinon

    SiBJ = 1 alorsSiGJ = 0 alros

    K ? 003Sinon

    K ? 010FinSi

    SinonSiBJ = 2 alors

    SiGJ = 0 alors K ? 010

    Sinon

    SiGJ = 1A'DGJ = 3 alors K ? 015

    Sinon

    K ? 020FinSi

    FinSi

    FinSiFinSi

    FinSi

    K K 7 crireK

    FinPour

    Fin

  • 7/23/2019 Exercices - Troisime Srie.pdf

    31/36

    LMD / S.T. Srie 2 : Testes / Boucles

    2) Traduction de l'algorithme en programme

    31

    Programexo_15;Useswincrt;var

    G, i : integer;BJ, GJ : integer;K, , K : real;

    Begin

    8rite &Conner le no)bre d&indi4id+s : &;eadG;

    fori:=1 toG dobeign

    8rite &(ntrod+ire le salaire de base : &;ead K;8rite &(ndi*+er la sit+ation fa)iliale : &;eadBJ;

    ifBJ = 1 L BJ = 2 then {Divorc ou Mari}begin

    8rite&(ntrod+ire le no)bre d&enfants : & ;ead GJ ;

    end;

    ifBJ = 0 then:= K ? 005

    else

    ifBJ = 1 thenifGJ = 0 then

    := K ? 03else:= K ? 010

    %lseifBJ = 2 then

    ifGJ = 0 then:= K ? 010

    else

    ifGJ = 1A'DGJ =3 then:= K ? 015

    else

    := K ? 020K:=K 7 ;8riteln&Fe salaire de l&&indi4id+ &, i, &est :&, K:$:2;

    end;End

    123"5$!.#1011121"151$1!

    1.1#202122232"252$2!2.

    2#303132333"353$3!3.3#"0"1"2"3""

  • 7/23/2019 Exercices - Troisime Srie.pdf

    32/36

    LMD / S.T. Srie 2 : Testes / Boucles

    Exercices Supplmentaires :

    Exercice 1& : 7olution d'une !uation de deuxime de(r!

    crire un algorithme (et programme) pour rsoudre une quation du second ordre ax2+bx+c=0

    dans C (les nombres complexes). Dans le cas ole discriminant est ngatif, on calcule la partie

    relle X et la partie imaginaire Y en considrant la racine du discriminant en valeur absolue. Les

    solutions sont alors X, Y et X, Z avec Z=-Y. (Solution conjugue).

    Solution

    L'algorithme possde trois variables d'entre a, bet c et deux variables de sortieX1etX2. (deux

    solutions relles diffrentes (delta > 0), solution double (delta = 0) et deux solutions complexesZ1

    = X1 + i X2etZ2 = X1 - i X2

    32

    Traiemen

    b

    X$

    a c

    X%

    Algorithme%xo_1$Variables

    a, b, c : r/eldelta, 91, 92 : r/el

    DbutFire a, b, cTant-uea = 0 faire

    lirea;finTant-ue

    delta s*rb M "?a?b;sidelta = 0 alors

    91 = -bA2?acrire&Bol+tion do+ble 91 = 92 =&, 91;

    sinon

    sidelta 0 alors91 = -b-s*rdeltaA2?a ;92 = -b7s*rdeltaA2?a ;crire&Ce+x sol+tions r/elles 91=&, 91, & 92=&, 92;

    Sinon

    91 = -bA2?a;92 = s*r-deltaA2?acrire&Ce+x sol+tions 6o)

  • 7/23/2019 Exercices - Troisime Srie.pdf

    33/36

    LMD / S.T. Srie 2 : Testes / Boucles

    Exercice 1* : 7ommes it!ratives

    crire les algorithmes et programmes correspondants pour chacun des cas suivants avec la valeur

    deNetxdonnes : (Drouler chaque algorithme pouN=5).

    (a) #$=x

    2

    2

    x4

    4+

    x)

    )

    x

    + ...

    x2n

    2n

    33

    Programexo_1$;Useswincrt;var

    a, b, c : real;Celta : real;

    91, 92 : real;Begin

    8rite &Conner la 4ale+r de a, b et c : &;eada, b, c;(hilea = 0 do{s'assurer que la valeur de a }begin

    8rite&Ke+illeO donner +ne 4ale+r non n+lle

  • 7/23/2019 Exercices - Troisime Srie.pdf

    34/36

    LMD / S.T. Srie 2 : Testes / Boucles

    (b) #%=x+x

    3

    3!+

    x#

    #!+ ... +

    x2n+1

    (2n+1)!

    Rponse

    (a) Il faut crire la somme S1sous forme abrge. Nous avons :

    #$=x

    2

    2

    x4

    4+

    x)

    )

    x

    + ...

    x2n

    2n=

    i=1

    n

    signex

    2i

    2iTel-que signe prend, respectivement, les deux

    valeur 1et -1d'une manire alternative. Donc, le terme gnral (rptitif) est :x2i/ (2i)

    On ralise un changement de variable, on mettant P = x2i. Initialement, lorsque que i=1, P=x2

    aprs passex4,x6, jusqu'x2n. Pour raliser a, il suffit de multiplie Pparx2.

    Donc, L'algorithme possde deux variable d'entre netx. et une variable de sortie S1.

    (b) Il faut crire la somme S2sous forme abrge. Nous avons :

    #%=x+x

    3

    3!+

    x#

    #!+ ... +

    x2n+1

    (2n+1)!=

    i=0

    nx

    2i+1

    (2i+1)!

    Donc, le terme gnral (rptitif) est :x

    2i+1

    (2i+1)!

    On ralise deux changements de variables, on mettant P = x2i+1. Initialement, lorsque que i=0,

    P=x. On met aussif=(2i+1)! . Initialementf=1.

    34

    Algorithme%xo1!_aVariables

    n,i,signe:entierx,@,B1 : r/el

    DbutFire n, xB1 0 ;Bigne 1@ s*rx;Pouri1 n faire

    B1B1 7 signe?@A2?i

    Bigne - signe@ @ ? s*rxFinPourcrireB1

    Fin

    Programexo1!_a;Useswincrt;var

    n, i, signe : integer ;x, @, B1 : real;

    Begin

    eadn, x;B1:=0;signe:=1;

    @:=s*rx;fori:=1 ton do

    begin

    B1 := B1 7 signe ? @A2?i;Bigne := - signe;@ := @ ? s*rx;

    end;

    8rite&B1 = &, B1:$:3;End

    123"5$!.#

    1011121"151$1!1.1#

  • 7/23/2019 Exercices - Troisime Srie.pdf

    35/36

    LMD / S.T. Srie 2 : Testes / Boucles

    La faon comment passer P de la valeur initialex x3, x5, jusqu' x2i+1est de le multiplie

    chaque itration parx2comme suit P P * sqr(x)* .

    La manire comment passer f de la valeur initiale 1 3! puis 5! jusqu' (2n+1) !est de le

    multiplie chaque itration par (2*(i+1))*(2(i+1)+1)comme suit :f f * ((2*(i+1))*(2*(i+1)+1))* .

    Pour i=0 ==> f f * 2 * 3 = 1 * 2 * 3 = 3!*

    Pour i=1 ==> f f * 4 * 5 = 3* ! * 4 * 5 = 5!

    Pour i=2 ==> f f * 4 * 5 = 3* ! * 4 * 5 = 7!

    .

    Donc, L'algorithme possde deux variable d'entre netx. et une variable de sortie S2.

    Droulement pour n=5 et x quelconque

    (a)Pour la somme S1

    VariablesInstructions

    n x i signe P S1

    Lie (n, x) 5 x / / / /

    S1 0*

    P sqr(x)*

    signe=1

    '' '' / 1 x2 0

    Pour i=1 '' '' 1 '' '' ''

    S S + signe * P / (2i)* '' '' '' '' '' x2/2

    3#

    Algorithme%xo1!_bVariables

    n,i,f:entier

    x,@,B2 : r/elDbut

    Fire n, xB2 0 ;f 1@ x;Pouri1 n faire B2B2 7 @Af @@ ? s*rx ff?2?i71?2?i7171FinPour

    crireB2Fin

    Programexo1!_b;Useswincrt;

    varn, i : integer ;f:longint; {&n entier plus !rand}x, @, B2 : real;

    Begin

    eadn, x;B2:=0;f:=1;@:=x;fori:=0 ton do

    begin

    B2 := B2 7 @Af;@:= @ ? s*rx;f:=f?2i71? 2?i7171;

    end;

    8rite&B2 = &, B2:$:3;End

    12

    3"5$!.#

    1011121"151$1!1.1#20

  • 7/23/2019 Exercices - Troisime Srie.pdf

    36/36

    LMD / S.T. Srie 2 : Testes / Boucles

    signe -signe* -1

    P P * sqr(x)* '' '' '' '' x4 x2/2

    Pour i=2 '' '' 2 '' '' x2/2

    S S + signe * P / (2i)* '' '' '' '' '' x2/2 - x4/4

    signe - signe* 1

    P P * sqr(x)* '' '' '' '' x6 ''

    Pour i=3 '' '' 3 '' '' ''

    S S + signe * P / (2i)* '' '' '' '' '' x2/2 - x4/4 +x6/6

    signe -signe* -1

    P P * sqr(x)* '' '' '' '' x8 ''

    Pour i=4 '' '' 4 '' '' ''

    S S + signe* P / (2i)* '' '' '' '' '' x

    2

    /2 - x

    4

    /4 + x

    6

    /6 - x

    8

    /8signe - signe* 1

    P P * sqr(x)* '' '' '' '' x10 ''

    Pour i=5 (dernire itration i=n) '' '' 5 '' '' ''

    S S + signe * P / (2i)* '' '' '' '' '' x2/2 - x4/4 + x6/6 - x8/8 + x10/10

    signe - signe* '' '' '' -1 ''

    P P * sqr(x)* '' '' '' '' x12 ''

    crire (S) '' '' '' '' '' x2/2 - x4/4 + x6/6 - x8/8 + x10/10