Chapitre+II-Les+structures+simples2

download Chapitre+II-Les+structures+simples2

of 17

Transcript of Chapitre+II-Les+structures+simples2

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    1/44

    Sous Programmes : Procédures

    Pag | 1

    Analyse et Algorithme   PascalSyntaxe générale Var Valeur Var := Valeur;

    Exemple Moy (Dc+2*DS)/3 Moy:= (Dc+2*DS)/3;

    Exe mpl e: Write (Informatique:14) InformatiqueWrite (Informatique:!)

    Année Scolaire : 2010-2011Informatique

    - 1 - LPS- 4 Maths 3

    Mme Saoussen Maâloul

    Chapitre II : Les structures simples

    "ne #tructure #im$%e $eut &tre : "ne entr'e ou %ecture e onn'e#

    "ne affectation "ne #ortie ou un afficae e# r'#u%tat#

    I- Les entrées :ette o$'ration $ermet e %ire ou e #ai#ir une ,a%eur $ro,enant u c%a,ier ou un autre $'ri$'rique-

    Analyse Algorithme   PascalSyntaxe générale Var= onnée Lire !Var" #ea$ln!Var";#ea$!Var";

    Exemple .=Donn'e. 0 : Donn'e

    ire(.)ire(. 0)

    ea%n(.); ea(.);ea%n(. 0); ea(. 0);

    #e mar% ue : a %ecture e $%u#ieur# ,aria%e# e ty$e cane 5 %a foi# e#t non fonctionne%%e-

    II- L&a''ectation :

    ette o$'ration con#i#te 5 attriuer une ,a%eur 5 une ,aria%e- ette ,a%eur oit &tre e m&me ty$e ou e ty$ecom$ati%e a,ec cette ,aria%e-

    III- Les sorties :ette o$'ration $ermet 6afficer ou 6'crire %e contenu 6une ,aria%e ou %a ,a%eur 6une e7$re##ion-

    Analyse et Algorithme   PascalSyntaxegénérale

    (crire !) message *"(crire !Var"

    +riteln !,message&"; +rite !,message&";+riteln !Var"; +rite !Var";

    Exemple 8crire (9 onour >>>>C+>23 +rite !0aleur1réelle : n" @ffice %a ,a%eur r'e%%e en notation #cientifique #ur n $o#ition#-Exe mpl e: Write (124-AB! :) 1-2C+>23 +rite !0aleur1réelle : n : $" @ffice %a ,a%eur r'e%%e #ur n $o#ition# a,ec 'cima%e a,ec au#tement-Exe mpl e: Write (124-AB! :B :2) 124-A

    Write (124-AB! :A :2) 124-AWrite (124-AB! : :2) 124-A

    3 +rite !0aleur1réelle : 4 : $" @ffice %a ,a%eur r'e%%e a,ec 'cima%e a,ec au#tement-Exemple : Write (124-AB! :> :4) 124-AB!>

    Le type cha5ne $e caract2res:

    3 +rite !cha5ne : n" @ffice %a cane #ur n $o#ition#- Donc in#ertion 6e#$acement 5 auce e %acane #6i% y a $eu e caract?re# #inon au#tement automatique-

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    2/44

    Sous Programmes : Procédures

    Pag | 2

    Analyse Algorithme Pascal

    Syntaxegénérale

    EinitF Pour com$teur e Gi 5 Gf /aireHraitement

    /inPour

    InitPour com$teur e Gi 5 Gf /aire

    Hraitement

    /inPour

    ;/or om$teur := Gi HJ Gf o

    einHraitement;

    Cn;

    Chapitre IV : Les structures $e contr6le itérati0es

    Jn a eu7 ty$e# e #tructure# it'rati,e#- 7ne structure itérati0e compl2te oK %e nomre 6it'ration# e#t connu 5 %6a,ance- 7ne structure itérati0e 8 con$ition $&arr9t oK %e nomre 6it'ration# e#t inconnu 5 %6a,ance-

    I- La structure itérati0e compl2te:a #tructure e contrL%e it'rati,e com$%?te $ermet 5 un $roramme e r'$'ter un t r a it e m e n t un nomre efoi# con n u 5 %6a,ance-

    # em a r%ues :•  e com$teur oit &tre e ty$e #ca%aire-•  Si %e com$teur e#t e ty$e caract?re a%or# %e nomre e r'$'tition# e#t C(Jr(Gf)Jr(Gi)/$a#) +1-•  6incr'mentation u com$teur e#t automatique a,ec un $a# e 1 ou un $a# e 1-•  Cn $a#ca% %e mou%e 5 r'$'ter e#t '%imit' $ar egin et En$ #6i% e#t com$o#' e $%u# qu6une in#truction-•  Si $a#=1 a%or#: /or i :=Gf onto Gi o

    II-La structure itérati0e 8 con$ition $&arr9t:a #tructure e contrL%e it'rati,e 5 conition 6arr&t $ermet 5 un $roramme e r'$'ter un t r a i t em e n t u#qu65

    rencontrer %a co n i t io n 6 a rr & t-- La structure #épéter - La structure ?ant @ue

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    3/44

    Sous Programmes : Procédures

    Pag | 3

    •  e traitement n6e#t e7'cut' que #i %a conition e#t ,'rifi'e onc %6e7'cution e#t e > 5 $%u#ieur# foi#-Année Scolaire : 2010-2011 - 1 -LPS- 4 Maths 3 -

    Les Procédures & Les

    Fonctions  Un sous-rogramme est un e sé qu e n ce d' in st r u ctio n s d écl a r ée dan s u n

     p r og r a m me à pa r t et !ui eut "tre e#écutée une ou lusieurs $ois %ans unrogramme rincial grâce & %es aels'

      L(ael %(un sous-rogramme %ans le rogramme rincial se $ait simlementar le b ia is d e s o n p r o p r e n o m.

      Le rogramme rincial s(aelle rogramme appelant   Le sous-rogramme s(aelle rogramme app elé  U n e v a r iab le loc a le est une )aria*le %éclarée %ans le sous-rogramme et

    n(est utilisa*le !u(& l(intérieur %e celui-ci'

      U n e v a r iab le g lo ba le est %éclarée %ans la artie %éclaration %urogramme rincial et est utilisa*le ar le rogramme rincial et les%i+érents mo%ules ,sous-rogrammes'

      Un sous-rogramme est aelé aussi u n e P ro cé d u r e ? ou u n e F o n c t i o n ?R e m a r qu e : En Turbo Pascal, la déclaration d'un sous-programme fgureaprès la déclaration des variables globales du programme principal.Ut ili  té d es s ous - p r og r a mmes :

      .aciliter la tache %e résolution'  /)iter la réétition %(un m"me traitement %ans un rogramme'  éutiliser %es sous-rogrammes %é& %énis'  .aciliter la localisation %es erreurs ainsi !ue leurs corrections'

    1. Les P r o c é du r es :Les rocé%ures sont %es sous-rogrammes !ui eu)ent a)oir ou  p lu sie u r s

    r és u lt a ts %e te simle ou comosée'En Analyse :Def Proc nom_roc!f"#f$ : tye" % arf' :tye$ %() ésultat le,s resultat,s %ela rocé%ure ,Les aram5tres récé%és ar)ar

     6raitement 71

    8' 6raitement 7n

    .in nom7roce%ureEn algorit*me utiliser le m+meent+te suii ar l,ensem-le destraitements

    R e m a r qu e :

    En ascal :Procedure nom_roc! f"# f$ : tye" % arf' : tye$ % ( ) %

    9onst8'' 6e8''' ;ar

    8''.unction88Proce%ure8''

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    4/44

    Sous Programmes : Procédures

    Pag | 4

      " es p a r a mè tr  e s  eec t i fs # gurent %ans l'in s t r u ction d'app el  d e la p r océ du r e et sont su*stitués au# aram5tres $ormels au moment %e l(ael%e la rocé%ure'

    Proce%ure Permut ,)ar #? :integer Permut ,6@i?6@

    A e l d , un e P r o c édu r e :  "es paramètres e%ecti!s et les paramètres !ormels doivent

    s'accorder du point de vue n om b r e, o r dr e et t& p e.En analyse : P7e$$3 Proc Bom7%e7la7rocé%ure ,P7e+1?P7e$$2?P7e+3

      >n%i!uer la ou les )aria*les %ans les!uelles la rocé%ure ren)oie les résultatsEn Algoritme : Proc Bom7%e7la7rocé%ure ,P7e$$1?P7e+2?P7e+3En Pascal : Bom7%e7la7rocé%ure ,P7e$$1?P7e$$2?P7e+3

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    5/44

      "'appel d'une procédure est un e i n s t r u ction d'app el i nd é p e ndan te et n e p e u t pa s $t r e dan s un e e p r e ssion comme c'est le cas pour les!onctions.

    R 0 l e de s a r a m / t r e s :  Cénéraliser une rocé%ure et ermettant la communication entre le

    rogramme rincial et la rocé%ure'  Lors %e l(ael %(une rocé%ure? le rogramme rincial asse les )aria*les &

    la rocé%ure sous $orme %e aram5tres' La rocé%ure les traite et ren)oie les)aria*les a)ec leurs nou)elles )aleurs au rogramme rincial'

    P a ss a g e de s a r a m / t r e s :La su*stitution %es aram5tres e$$ecti$s au# aram5tres $ormels sDaelle

     passage de paramètres? elle correson% & un trans$ert %e %onnées entre lerogramme rincial ,P'P et la rocé%ure? et lDin)erse' En %istingue %eu# mo%es%e assages :

    P a ss a g e a r

    a l eu r :  Le assage %e aram5tres ar )aleur ermet au rogramme aelant %etransmettre une )aleur & la rocé%ure aelée'

      Le trans$ert %Din$ormation est e+ectué %ans un seul sens? %urogramme rincial )ers la

    rocé%ure' P'PProcé%ure

      Les aram5tres $ormels ne sont pas précédés par le mot !A"'  Ar5s a)oir e#écuté la rocé%ure les aram5tres e$$ecti$s sont in c h a ng és'

    P a ss a g e a r a r i a- l e :  Le assage %e aram5tres ar )aria*le ermet au rogramme %e transmettre

    une )aleur & la rocé%ure et )ice - )ersa'  Le trans$ert %Din$ormation est e+ectué %ans les %eu# sens? %u

    rogramme rincial )ers la rocé%ure et )ice - )ersa' P'PProcé%ure

      Les aram5tres $ormels sont procédés par le mot !A"'  Ar5s a)oir e#écuté la rocé%ure les aram5tres e+ecti$s  procédés par le

    mot !A" changent et reFoi)ent le contenu %es aram5tres $ormels'

    #. Les f o n c t i o n s :

    Une $onction est un sous-rogramme !ui ren)oie une )aleur %Dun seul te' 9e

    te sera celui %e la $onction'

    Ge$ .B nom7$onction ,$1?$2?8 :te1 $3:te2 8 : terésultat ésultat nom7$onctionnom7$onctionés

    8'

    8'' .in

    nom7$onction

    .unction nom7$onction ,$1?$2?8:te1 $1?$2?8 :te2 8 : te résultat HGéclaration %es o*ets locau#I

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    6/44

    A Algorit*me PascAction %DA+ectation ; .B nom7.,P7e$$ ; : nom7.,P7e+ Action %Da+ichage =crire ,.B nom7.,P7e$$ Jriteln ,nom7.,P7e+ >nstruction Si .B nom7.,P7e$$ K0 i$ nom7.,P7e+ K0 then=#ression Arithméti!ue ; .B nom7.,P7e$$2 ; : nom7.,P7e$$2

    f onc t i o nLes instructions sont e#écutées & la %eman%e %e lDaelant ar une instruction%Dael'

    1 n e f on c t i o n eu t + t r e a e l é e dan s un e :

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    7/44

    2"3 4 3 25 " "'

    E$ercice 1 :

    Pour chacun %es cas sui)ants %onner lDalgorithme et le co%e Pascal %Dunsous rogramme !ui ermet %e :") Saisir un caract5re alha*éti!ue'

    $) Saisir une chane %e caract5re non )i%e et %e longueur ma#imaleégale & 20'') ;éri$ier est-ce !uDune chane %e caract5re %onnée est alha*éti!ue ounon'6) emlir un ta*leau 6 ar B éléments triés %ans lDor%re croissant'4) emlir un ta*leau 6 ar B éléments %Dune mani5re aléatoire ,0 N BN100'5) A+icher un ta*leau 6 %e B éléments'7) 9omter l(occurrence ,nom*re %(aarition %(un caract5re %ans unechane'

    8) ;éri$ier la résence %(un caract5re %ans une chane'9) Géterminer le ma#imum %Dun ta*leau'"3) >n)erser une chane %e caract5re'

     NB : Pour chacun des exercices la solution doit comporter au moins deux modules.

    E$ercice # :

    Soit la $onction 6raitement sui)ante écrite en Pascal :

    F1;

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    8/44

    5'H Ouel est le rle %e cette $onction Q

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    9/44

      I< I IeI IcI I* I In I IoI Il I IoI IgI Ii I IeI

    E$ercice % :

    Soit l(Algorithme sui)ant :

    3) DEF F I# I=I# I1I# II)alors

    @ @ C "Fin si

    Fin Pour$)

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    10/44

    !3) faire

    E.ace !c*# # ")

    888888'88''88888888'''

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    11/44

    Ael de la fonction Ael de la rocédure888888888888888' 8888888888888888

    Fin tantque

    $)

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    12/44

    Alors le ro%uit m'n 20 12 240 ne contient as le nom*re 20'

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    13/44

    1

    4C>

    WPOR

    2A<T

     XYL

    Z 6U;0-

    3G=V

    MBE

    [\]_

    E$ercice :

    Sur les touches ,2? 3? 4? T? V? W? Z et [ %u cla)ier %Dun téléhoneorta*le? sont inscrites %es lettres our écrire %es messages en lus %es

    chi$$res'Par e#emle? sur la touche T sont inscrites leslettre X? Y et L' Pour taer la lettre X on auieune seule $ois'Pour taer la lettre Y on tae%eu# $ois'Pour taer la lettre L on auietrois $ois'=crire un rogramme ascal ermettant %e %éterminer et %Da$$icher lenom*re total %Dauies sur les touches %u cla)ier %Dun téléhone orta*le

    our saisir un mot %onné %e B lettres? suosées non accentuées',4KBK['>n%ication :La $igure sui)ante %onne la réartition %es lettres sur les touches %ucla)ier %Dun téléhone orta*le'

    E$ercice 2 :

    Soit l(algorithme sui)ant :

    3) DEF F Somme ! : entier) : entier

    ") S  3Pour i de " J ! di $)

    RééterSi ! mod i B 3)

    AlorsS SCi

    FinSiFin

    our

    $) Somme S

    ') FinSomme

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    14/44

    "H =#écuter cet algorithme our V uis%onner son rle'$H  6rans$ormer la $onction Somme en unerocé%ure''H =crire un algorithme %(une rocé%ure Saisie? ermettant %e saisir%eu# entiers ositi$s non nuls'

    6H =n utilisant les %eu# mo%ules Somme et saisie? écrire unalgorithme %(un rogramme intitulé Amis? !ui ermet %e saisir %eu#entiers ositi$s non nuls et %(a+icher s(ils sont amis ou non' Sachant !ue%eu# entiers m et n sont %is amis? si la somme %es %i)iseurs %e n estégal & m et in)ersement'

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    15/44

    E$ercice 13 :

    < étant un ta*leau %e %imension _QA ,B7MA 100? remlir ar entiers ! _QA)HEn )ous %eman%e %Décrire un rogramme nommé E;LA

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    16/44

      Sa m ir 

    s 3 s t 5 me 

    < o n 1o u r 

    s e s elle

    '36Le résultat est la somme %es nom*res %e la %eu#i5me colonne !ui sont en$ace %es nom*res imairs %e la remi5re colonne ,%onc les nom*res %e la%eu#i5me colonne !ui sont en $ace %es nom*res airs %e la remi5recolonne seront ignorés'

    1W "9Z 3Z >gnor4 WV >gnor2 1T2 >gnor

    1 '36

    "7 V "9 B "9 C '36 B '$'

     En )eut écrire un rogramme !ui lit %eu# entiers ositi$s non nulset in$érieur & 100? calcule et a$$iche le ro%uit %e %eu# entiers ar lamétho%e usse'

    E$ercice 1% :

    Soit lerogramme intituléinfo !uiermet %e:

     

    Saisirla taille %Dunta*leau

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    17/44

    A $ r A \ c

    Ge

    u#

    ch

    an

    esso

    nt

    %it

    es

    an

    agr

    am

    me

    s si

    ell

    es

    so

    nt

    $or

    es

    ar

    les

    m"

    me

    s

    car

    act

    5re

    s'

    =#

    em

    le

    :

    ` 9hien et ` 9hine sont

    anagrammes'

    E $ er ci ce 1/ :

    =crire un rogramme !ui ermet %e remlir un ta*leau 6 ar Bcaract5res alha*éti!ue ,2KBK10 uis %éterminer eta+icher le nom*re %Doccurrence %Dun caract5re alha*éti!ue%onnée %ans le ta*leau 6'E

     $ em

     p

    l e :

    <

      Si ;ar BIrI le rogramme a+iche ` le caract5re r e#iste%ans le ta*leau '

      Si ;arBIaI le rogramme a+iche ` le caract5re a nDe#iste

    as %ans le ta*leau'

    Les Procédures & LesFonctions

    Un sous-rogramme est une séquence d'instructions déclarée dansun programme à part  et !ui eut "tre e#écutée une ou lusieurs $ois%ans un rogramme rincial grâce & %es aels'

    L(ael %(un sous-rogramme %ans le rogramme rincial se $ait

    simlement ar le biais de son propre nom. Le rogramme rincial s(aelle rogramme appelant  Le sous-rogramme s(aelle rogramme appelé Une variable locale  est une )aria*le %éclarée %ans le sous-

    rogramme et n(est utilisa*le !u(& l(intérieur %e celui-ci'

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    18/44

    Unevariableglobaleest%éclarée%ans laartie

    %éclaration %urogrammerincialet estutilisa*lear lerogrammerincialet   les%i+érentsmo%ules,sous-rogrammes'

    Un sous-rogramme estaeléaussi

    uneProcéd ure ?  ouuneFonction ?

    Remarque

    :  En TurboPascal, la

    déclaration

    d'un sous-

     programmefgure après

    la

    déclaration

    des

    variables

    globales du

     programme

     principal.

    Utilité des sous-programmes :

    .aciliter la tache %e résolution' /)iter la réétition %(un m"me traitement %ans un

    rogramme' éutiliser %es sous-rogrammes %é& %énis' .aciliter la localisation %es erreurs ainsi !ue leurs corrections'

    1. Les Procédures :Les rocé%ures sont %es sous-rogrammes !ui eu)ent a)oir ou

     plusieurs résultats %e te simle ou comosée'

    En Analyse :

    Def Proc nom_roc!f"#f$ : tye" % ar

    :tye$ %()

    ésultat le,s resultat,s %e la rocé%ure ,Lesaram5tres récé%és ar )ar

      6raitement71

      8'

      6raitement7n

    .in nom7roce%ure

    En algorit*me utiliser le m+me ent+te

    suii ar l,ensem-le des traitements

    En ascal :

    Procedure nom_roc! f"# f$ : t

    f' : tye$ % ( ) %

    9onst 8'' 6e 8'''

    ;ar 8''

    .unction 88

    Proce%ure 8''

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    19/44

    "es paramètr ese%ect i!s et les

     paramètr es!ormelsdoivent s'accorder du point de

    vuenombre,ordreet t&pe.

    En

    analyse :

    P7e+3 ProcBom7%e7la7 rocé%ure,P7e+1?P7e+ 2?P7e+3

    >n%i!uerla

    ou

    les )aria*les %ans les!uelles la rocé%ure ren)oie lesrésultats

    En Algoritme : Proc Bom7%e7la7rocé%ure ,P7e+1?P7e+2?P7e+3

    En Pascal : Bom7%e7la7rocé%ure ,P7e+1?P7e+2?P7e+3

    "'appel d'une procédure est une instruction d'appel

    indépendante et ne peut pas $tre dans une epression commec'est le cas pour les !onctions.R0le des aram/tres :

    Cénéraliser une rocé%ure et ermettant la communication entre lerogramme rincial et la rocé%ure'

    Lors %e l(ael %(une rocé%ure? le rogramme rincial asse les)aria*les & la rocé%ure sous $orme %e aram5tres' La rocé%ure lestraite et ren)oie les )aria*les a)ec leurs nou)elles )aleurs aurogramme rincial'

    Passage des aram/tres :

    La su*stitution %es aram5tres e+ecti$s au# aram5tres $ormelssDaelle passage de paramètres? elle correson% & un trans$ert %e%onnées entre le rogramme rincial ,P'P et la rocé%ure? et lDin)erse'En %istingue %eu# mo%es %e assages :

    Passage ar aleur :

    Le assage %e aram5tres ar )aleur ermet au rogrammeaelant %e transmettre une )aleur & la rocé%ure aelée'

    Le trans$ert %Din$ormation est e+ectué %ans un seul sens? %urogramme rincial )ers la rocé%ure' P'PProcé%ure

    Les aram5tres $ormels ne sont pas précédés par le mot !A"' Ar5s a)oir e#écuté la rocé%ure les aram5tres e+ecti$s sont

    inchangés'

    Passage ar aria-le :

    Le assage %e aram5tres ar )aria*le ermet au rogramme %etransmettre une )aleur & la rocé%ure et )ice - )ersa'

    Le trans$ert %Din$ormation est e+ectué %ans les %eu# sens? %urogramme rincial )ers la rocé%ure et )ice - )ersa' P'PProcé%ure

    Les aram5tres $ormels sont procédés par le mot !A"' Ar5s a)oir e#écuté la rocé%ure les aram5tres e+ecti$s procédés

     par le mot !A" changent et reFoi)ent le contenu %es aram5tres$ormels'

    #. Les fonctions :Une $onction est un sous-rogramme !ui ren)oie une )aleur %Dun seul

    te' 9e te sera celui %e la $onction'

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    20/44

    Ge$ .Bnom7$onction,$1?$2?8 :te1 $3:te2 8 : terésultat

    ésultat nom7$onction

    nom7$onctionés

    8'

     8''

    .innom7$onction

    Remarques

    :

    Pou

    rles$ 

    onctions on utilise uni!uement le mo%e %e assage ar)aleur

    A la n %e la artie instruction il faut a.ecter le résultat au nomde la fonction 

    Les instructions sont e#écutées & la %eman%e %e lDaelant ar uneinstruction %Dael'

    1ne fonction eut +tre aelée dans une :

    Ael Algorit*me Pascal

    Action%DA+ectation

    ;  .Bnom7.,P7e+

    ; :nom7.,P7e+

    Action%Dachage

    =crire ,.Bnom7.,P7e+

    Jriteln,nom7.,P7e+

    >nstruction9on%itionnelle

    Si .Bnom7.,P7e+K0 alors

    i$ nom7.,P7e+K0 then

    =#ressionArithméti!ue

    ;  .Bnom7.,P7e+2

    ; :nom7.,P7e+2

    E$ercice 1 :

    Pour chacun %es cas sui)ants %onner lDalgorithme et le co%e Pascal %Dunsous rogramme !ui ermet %e :

    ") Saisir un caract5re alha*éti!ue'

    0 Ge$ Proc saisie,)ar c :caract5re

    1 ééter

    =crire,dDGonner uncaract5realha*éti!ueDD

    Lire,c

     Xus!u(&maus,c%ans@dDADD''DD^DD

    2 .in saisie

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    21/44

    $) Saisir unechane %ecaract5renon )i%eet %elongueur

    ma#imaleégale &20'

    0 Ge$ Procsaisie ,)arch :chaine

    1 ééter=crire,dDGonner

    unechainenon )i%e%elongueurma# 20DD

    Lire,ch

     Xus!u(&long,ch

    %ans@1''20

    2 .in saisie

    ') ;érierest-ce!uDunechane %ecaract5re%onnée

    estalha*éti!ue ou non'

    0 Ge$ .B;eri$ ,chchaine*ooléen

    1 ééterSimaus,ch@i

    %ans@dDADD''DD^DDAlors

      6est

    )rai

    Sinon

      6est $au#

    .inSi

    i iR1

     Xus!u(&ilong,choutest$au#

    2 ;eri$ test

    3 .in ;eri$ 6) emlir un ta*leau 6 ar B entiers triés %ans lDor%re croissant'

    0 Ge$ Proctrita*,)art : ta*? n :entier

    1 =crire,dDGonnerélément 1

    %uta*leauDD

    2 Lire,t@13 Pour i %e 2

    a n $aire  ééter

    =crire,dDGonner

     6@dD?i?DD

    suérieur& DD? t@i-1  Lire,t@i  Xus!u(&,t@[email protected]

    4 .in 6ri6a*

    4) emlir un ta*leau 6 ar B entiers ositi$ %Dune mani5realéatoire ,0 K B N100'

    T Ge$ ProcAleatoire,)ar

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    22/44

    t : ta*? )arn : entier

    V eeter=crire,dDGonner0KnN100DDLire ,n

     Xus!u(& n%ans @1''100

    W Pour i %e 1 &n $aire

     6@ialea,2TT.inPour

    Z .in Aleatoire5)Acherun ta*leau

     6 %e Béléments'

    0 Ge$ProcAche ,t :ta*?n :entier

    1 Pour i%e 1 an $aire=crire,t@i?dD| dD .in

    Pour2 .in

    Ache

    7)9omterl(occurrence ,nom*re%(aarition %(un

    caract5re%ans unechane'

    0 Ge$ .B

    Ecc,c :caract5re?ch :chaine :entier

    1 n  0

    2 Pour i %e 1 &n $aireSi ch@icalors  n nR1.in Pour

    3 Ecc n4 .in Ecc

    8);érier la résence %(un caract5re %ans une chane'

    0 Ge$ .BPresent,c :caract5re? ch :chaine :*ooléen

    1 6est  $au#

    2 i  13 eeter

    Si,ch@icalors  6est )rai  .inSi  i  iR1

     us!u(&ilong,ch outest)rairesent test

    4 .inPresent

    9)Géterminer le ma#imum %Dun ta*leau'

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    23/44

    0 Ge$ .Bma# ,t :ta* :entier

    1 Mt@1

    2 Pour i%e 2 & n$aireSit@imalors  M  [email protected] Pour

    3 Ma#m

    4 .in Ma#"3) >n)erser unechane %ecaract5re'

    0 Ge$Proc>n)erse ,)arch :chaine

    1 Pour i%e 1 &n %i) 2$aire

     9h@i9h@i ch@n-iR19h@n-iR1 #

    .inPour

    2 .in>n)ers

    e  NB : Pour chacun des exercices la solution doit comporter au moins deuxmodules.

    E$ercice # :

    Soit la $onction 6raitement sui)ante écrite en Pascal :

    F1;

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    24/44

    Si

    o

    n

    !m

    aKu

    s

    !<

    i)

    da

    ns

    IA

    I#IEI

    #

    I>

    I#

    I=I

    #

    I1

    I#

    II

    )alo

    rs

    @

     

    @

    C

    "

    Finsi

    Fi

    n

    Po

    ur

    $)

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    25/44

    U

    n

    l  

    !

    <e

    s

    t

    )

    o

    !

    c

    L

    e

    n

    g

    t

    *

    !

    ;

    *

    )

    )

    %

    e

    :

    4t 

    e

    s

    End

    "H 9omléter les ointillés ar les %onnées man!uantes'$H Ouel est le rle %e cette $onction Q

    !ériDe est ce ue une caine contient des caractères ui ne

    sont pas des lettres

    E$ercice :

    Soit lDalgorithme %e la $onction sui)ante :

    3) Def F

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    26/44

    function inconnu,c:stringc:car8:7o

    olean%

    ar 

    i:inte

    ger

    tr:7o

    olean%

    -egin

    tr:,10 i:0

    ree

    at

    i:iR1

    tr:,ch@ic

    until ,ilength,ch or ,tr

    inconnu:tr 

    end%

    ") comléterlesointillesarles%onnéesmar!uantes'

    $) %éter

    miner lerésultatretou

    rné ar la $onction our chacun %es cas sui)ants :aH inconnu ,(algorithme(? (g( inconnu )rai-H inconnu , (ascal( ?((  inconnu $au#cH inconnu , (1T(?(T(  inconnu )rai

    ') %onner le rle %e la $onction inconnu la fonction inconnu permet de cecer un caractére c

    dans une caine c et renoie s6il e$iste ou non

    6) con)ertir la $onction inconnu en une rocé%ureProcedure inconnu 9c:stringc:carar tr:7oolean8

    ar

    i:integer

    tr:7oolean

    7egin

    tr:491438

     i:43

    repeat 

    i:4iC1

    tr:49c>i?4c8

    until 9i4lengt9c88 or 9tr8

    end

    4) recoier et comléter le ta*leau sui)ant sachant !ue lDael se$ait en utilisant une )aria*le :

    Ael de la

    fonction

    inconnu

    Ael de la

    rocédure

    inconnu

     I :4inconnu9 

    cc8 

    *nconnu9c

    c$8

    E$ercice 0 :

    =crire un rogramme ermettant %Dacher tous les coules %Dentiers,m?n )ériant la roriété sui)ante :

    M ∈@1?100 et n∈@2?1T

    =t m gure %ans lDécriture %u ro%uit m'n

    =#emles :

    1- Si m 20 et n VAlors le ro%uit m'n 120 contient le nom*re 20 %ans ce cas lecoule ,20?V sera aché'

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    27/44

    2- Si m 20et n 12

    Alors lero%uitm'n 20

    12 240 necontientas lenom*re20'

     program

    Welcome;

      usesWinCrt;

      var

      m,n,i,j:byt

    e;

      procedure

    saisie(var

    m,n:byte);

      begin

      repeat

      writeln('Do

    nner m dans

    [1..100]');

     readln(m);

      until m in

    [1..100];

      repeat

      writeln('Do

    nner n dans

    [2..15]');

      readln(n);

      until n in

    [2..15];

      end;

      procedure couple(m,n:byte);

      var

      chm, chp:string;

      p:byte;

      begin

      str(m,chm) ;

      str(n*m,chp);

      p:=pos(chm,chp);

      if p0 then

    writeln(m,',',n,'Le couple verifie les propriétés')

      else

      writeln('Le couple ne vérifie pas les propriétés');

      end;

    begin

     saisie(m,n);

     couple(m,n);

    end.

    E$ercice :

    Sur les touches ,2? 3? 4? T? V? W? Z et [ %u cla)ier %Dun téléhoneorta*le? sont inscrites %es lettres our écrire %es messages en lus %eschi+res'

    Par e#emle? sur la touche T sont inscrites les lettre X? Y et L'

    Pour taer la lettre X on auie une seule $ois'

    Pour taer la lettre Y on tae %eu# $ois'

    Pour taer la lettre L on auie trois $ois'

    =crire un rogramme ascal ermettant %e %éterminer et %Dacher lenom*re total %Dauies sur les touches %u cla)ier %Dun téléhone

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    28/44

    orta*leour saisirun mot%onné %e Blettres?suosées

    nonaccentuées',4KBK['

    >n%ication :

    La guresui)ante%onne laréartition

    %es lettressur lestouches %ucla)ier %Duntéléhoneorta*le'

    1 2

    A

    T

     XYL

    W

    POS

    Z

     6U; \]

    R 0

    -

     program caract;

    uses WinCrt;

    var

    nbr,n:byte;

    ch:string;

     procedure rempli(var n:byte;var ch:string);

    var

    i:byte;

    test:boolean;

    begin

      repeat

      writeln('Donner une chaine sans caracteres accentués') ;

      readln(ch);

      n:=length(ch);

      i:=0;

      test:=true;

      repeat

      i:=i+1;

      if not(upcase(ch[i]) in ['A'..'Z']) then

      test:=false;

      until (test=false) or (i=n);

      until (n in [4..9]) and test;

      end;

     procedure appui (ch:string;var nbr:byte;n:byte);

    var

    i:byte;

    begin

    nbr:=0;

     for i:=1 to n do

    begin

     case upcase(ch[i]) of

     'A','D','G','J','M','P','T','W':nbr:=nbr+1;

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    29/44

     'B','E','H','K','N','Q','U','X':nbr:=nbr+2;

     'C','F','I','L','O','R','V','Y':nbr:=nbr+3;

     'S','Z':nbr:=nbr+4;

     end;

     end;

     end;

    begin

     rempli(n,ch);

     appui(ch,nbr,n);

     writeln(nbr);

    end.

    E$ercice

    2 :

    Soit

    l(algorithme

    sui)ant :

    3)DE

    FFSomme!:entier):

    entier

    ") S  3Pour i de " J ! di $) faire

    Si ! mod i B 3) Alors

    SCi

    FinSi

    Fin our

    $) Somme S') Fin Somme

    "H =#écuter cet algorithme our V uis %onner son rle'Pour B5 la somme est égale J 5 la fonction ermet de calculer

    la somme des diiseurs

    $H  6rans$ormer la $onction Somme en une rocé%ure'3) DEF Proc Somme ! :entier % ar s :entier)") S 3$) Pour i de " J ! di $) faire

    Si ! mod iB3) alors

    S sCi

    FinSi

    FinPour

    ') Fin Somme 

    'H =crire un algorithme %(une rocé%ure Saisie? ermettant %e saisir%eu# entiers ositi$s non nuls'

    3) DEF Proc saisie !ar W#y : entier)") Rééter

    Ecrire !O,Donner deuW entiers W et y ositifs et non nuls,,)

    Lire !W#y) TusquMJ !WX3) E< !yX3)

    $) Fin Saisie

    6H =n utilisant les %eu# mo%ules Somme et saisie? écrire un algorithme%(un rogramme intitulé Amis? !ui ermet %e saisir %eu# entiers ositi$snon nuls et %(acher s(ils sont amis ou non' Sachant !ue %eu# entiers met n sont %is amis? si la somme %es %i)iseurs %e n est égal & m etin)ersement' 

    3) De-ut Amis") Proc Saisie!m#n)$) Sn somme!n)') Sm somme!m)6) Si !smBn) E< !snBm) alors

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    30/44

    Ecrir

    e !m#

    O, et

    O,#n#,,

    sont

    deuW

    nom-res

    amis,

    ,)

    Sino

    n

    Ecrir

    e !m#

    O, et

    O,#n#,,ne

    sont

    as

    deuW

    nom-

    res

    amis,

    ,)

    FinS=4) F=

    Amis

    E$ercice

    13 :

    < étant unta*leau %e%imension_QA

    ,B7MA 100?remlir ar entiers

    !

    _QA)H 

    En )ous %eman%e %Décrire un rogramme nommé E;LA

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    31/44

     readln(t[i]);

     end;

    end;

     procedure

    eclat

    (t:tab;n:byte;

    var

    tn,tp:tab;var

    nn,np:byte);

    var

    i:byte;

    begin

    nn:=0;

    np:=0;

     for i:=1 to n

    do

      if t[i]

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    32/44

    writeln('Sur

    quel entier

    naturel

    voulez-vous

    effectuer le

    test dunombre

     parfait?');

    readln(x);

    until (x>0);

    end;

     procedure

     parfait(x:lon

    gint);

    var

    s,d:longint;

    begin

      s:=0;

      for d:=1

    to (x div 2)

    do

      if x

    mod d=0

    then

     

    s:=s+d;

      if s=x

    then

     

    writeln(x,'

    Nombre

     parfait')

      else

      writeln(x,' Nombre non parait');

    end;

    begin

    saisie(x);

     parfait(x);

    end.

    E$ercice 1# :

    La ` multilication Russe est une métho%e articuli5re ermettantla multilication %e %eu# entiers A et < en utilisant seulement lamultilication ar 2? la %i)ision ar 2 et lDa%%ition'

    E$emple : our A 1W et < 1[? le ro%uit %e A ar < se $ait commesuit :

    A @

    "7 "9

    Le remier nom*re est %i)isé ar 2 ,%i)ision enti5re et le %eu#i5me estmultilié ar 2 : on aura

     8 '8

    Le rocessus se ré5te us!uD& a)oir %ans la remi5re colonne 1 :

    "7 "9

    8 '8

    6 75

      $ "4$

      " '36

    Le résultat est la somme %es nom*res %e la %eu#i5me colonne !ui sonten $ace %es nom*res imairs %e la remi5re colonne ,%onc les nom*res%e la %eu#i5me colonne !ui sont en $ace %es nom*res airs %e laremi5re colonne seront ignorés'

    1W

    "9

    Z 3Z >gnoré

    4 WV >gnoré

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    33/44

    2 1T2

    >gnoré

    1 '36

    "7 V

    "9 B

    "9

    C

    '3

    6

    B

    '$'

    En)eutécrireunrogr

    amme !uilit%eu#entiersositi$ s nonnulsetin$érieur &

    100?calcule etache lero%uit %e%eu#entiers arla

    métho%eusse' progr

    am

    Russe

    ;

    uses

    wincr

    t;

    var

    a,b:byte;

    r:longint;

     procedure saisie (var a,b : byte);

    begin

    repeat

    writeln('Donner deux entiers a et b entre 1 et 99');

    readln(a,b);

    until (a in [1..99]) and (b in [1..99]);

    end;

     procedure mult (a,b:byte; var r :longint);

    var

    x,y:longint;

    begin

    x:=a;

    y:=b;

    repeat

     x:=x div 2;

     y:=y*2;

    until (x=1);

    r:=b+y;

    end;

    begin

     saisie(a,b);

     mult(a,b,r);

     writeln(a, ' * ', b ,' = ',r);

    end.

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    34/44

    E$ercice 1%

    :

    Soit le

    rogramme

    intitulé info !ui ermet

    %e :

    Saisirlataille %Dunta*leau

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    35/44

     procedure

    remplir

    (n:byte; var

    t:tab);

    begin

     for i:=1 to n

    do

    repeat

    writeln('Donn

    er la chaine

    de la case ',

    i);

    readln(t[i]);

    until

    (length(t[i]) in

    [3..20]) ;

    end;

     procedure

    totalo

    (n:byte;

    t:tab);

    begin

    writeln('Les

    chaines

    totalogramm

    es sont:');

     for i:=1 to n

    do

     if t[i][1]=t[i][length(t[i])] then

     write(t[i],' | ');

    end;

    begin

     saisie(n);

     remplir(n,t);

     totalo(n,t);

    end.

    E$ercice 1& :

    Un te#te est %it tautogramme si tous les mots commencent ar la

    m"me lettre'

    E$emple :

    ` Mabarin? ministre mala%e? mé%itait m"me mori*on% malicieusement

    mille malttes

    En suose !ue la hrase est écrite correctement' ,Pas %Desace en

    %ou*le

    =crire un rogramme !ui ermet %e )érier si une chane %e caract5re

    saisie au cla)ier est tautogramme ou non'

     program Welcome;

    uses WinCrt;

    var

    ch:string;

     procedure saisie (var ch:string);

    begin

    repeat

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    36/44

    writeln('Donn

    er une

    chaine');

    readln(ch);

    until(pos('

    ',ch)=0);

    end;

     function

    tauto

    (ch:string):bo

    olean;

    var

     c:char;

     p:byte;

    begin

    c:=ch[1];

    repeat

      p:=pos('

    ',ch);

     delete(ch,1,

     p);

    until

    (cch[1]) or

    (p=0);

    if cch[1]

    then

    tauto:=false

    else

    tauto:=true;

    end;

    begin

     saisie(ch);

     if tauto(ch) then

     writeln( ch , ' est un tautogramme')

     else

     writeln(ch, ' n''est pas un tautogramme');

    end.

    E$ercice 1 :

    =crire un rogramme !ui ermet %e %ire si %eu# chanes ch1 et ch2 ,non

    )i%es sont anagrammes ou non'

    Geu# chanes sont %ites anagrammes si elles sont $ormées ar les

    m"mes caract5res'

    =#emle : ` 9hien et ` 9hine sont anagrammes'

     program Welcome;

      uses WinCrt;

      var

     ch1,ch2:string;

      procedure saisie(var ch1,ch2: string);

      begin

      repeat

      writeln('Donner ch1 non vide');

     readln(ch1);

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    37/44

      writeln('Do

    nner ch2

    non vide');

      readln(ch

    2);

      until

    (length(ch1)<

    >0) and

    (length(ch2)<

    >0) and

    (length(ch1)=

    length(ch2));

      end;

      function

    anag(ch1,

    ch2:string):b

    oolean;

      var

      i,p:byte;

      test:boole

    an;

      begin

      test:=true;

      i:=1;

      repeat

      p:=pos(ch

    1[i],ch2);

      i:=i+1;

      until (i>length(ch1)) or (p=0);

      if p=0 then

      test :=false;

      anag:=test;

      end;

    begin

     saisie(ch1,ch2);

     if anag(ch1, ch2) then

      writeln(ch1,' et ', ch2,' sont anagrammes')

     else

     writeln(ch1,' et ', ch2,' ne sont pas anagrammes')

    end.

    E$ercice 1/ :

    =crire un rogramme !ui ermet %e remlir un ta*leau 6 ar Bcaract5res alha*éti!ue ,2KBK10 uis %éterminer et acher lenom*re %Doccurrence %Dun caract5re alha*éti!ue %onné ar lDutlisateur%ans le ta*leau 6'

     E$emple :

    <A $ r A

    \

     

    c

     

    Si ;ar BIrI le rogramme ache ` le caract5re r e#iste %ans le

    ta*leau '

    Si ;arBIaI le rogramme ache ` le caract5re a nDe#iste as

    %ans le ta*leau'

     program Welcome;

      uses WinCrt;

      type

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    38/44

     

    tab=array[1..

    10] of char;

      var

     

    m,n,i,j:byte;

      t:tab;

      c:char;

     procedure

    saisie(var

    n:byte);

      begin

      repeat

     

    writeln('Donn

    er n dans

    [2..10]');

      readln(n);

      until n in

    [2..10];

      end;

     procedure

    rempli(var

    t:tab; n:byte);

      var

    i:byte;

      begin

      for i:=1 to n do

    repeat

      writeln('Donner un caracètre');

      readln(t[i]);

      until upcase(t[i]) in ['A'..'Z'];

      end;

      function occ(t:tab;n:byte;c:char):byte;

      var

      i,oc:byte;

      begin

      oc:=0;

      for i:=1 to n do

      if t[i]=c then

      oc:=oc+1;

      occ:=oc;

      end;

    begin

     saisie(n);

     rempli(t,n);

     writeln('Donner le caracètre recherché');

     readln(c) ;

     if occ(t,n,c)0 then

      writeln('le caractère ',c,' existe dans le tableau et apparait ',occ(t,n,c),'

     fois')

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    39/44

     else writeln('le caractère ',c,' n''existe pas dans le tableau');

    end.

    La structure : 6ant !ue $aireLa structure itérati)e & con%ition %Darr"t : tant !ue $aire est utilisé elors!ue la con%ition %oit "tre testée a)ant lDe#écution %u traitement &rééter'  Structure utilisée lors!ue le nom*re %e traitement nDest as connu &lDa)ance'

    oca-ulaire etsyntaWe :Au nieau del,analyse et

    l,algorit*me@init6ant !ue,con%ition $aire>nstruction

    18>nstruction

    n.in tant !ue

    Au nieau ascal

    \hile ,con%ition

    %onstruction 1 8>nstruction

    n =n%

      Les instructions seront e#écutées aumoins Yéro fois

      Si la )aleur %e la condition est raie# l(or%inateur %oit e#écuterles instructions 1 & n'   Si la )aleur %e la con%ition est fausse# l(e#écution %es

    instructions 1 & n sMarr+te et l(or%inateur asse & l(e#écution %elMinstruction !ui se trou)e uste ar5s fin tant que  La *oucle tant !ue nDest utilisée si la con%ition nDest as )éri$iée %és laremi5re $ois'

    Actiité"H=crire une analse un algorithme uis un rogramme ascal intituléS>QQE !ui ermet %Da$$icher la somme %Dune liste %Dentiers saisie' Laliste se termine ar 0 !ui ne $era as artie %e la somme'=#emle :T? -3? W? 0 S [

    Actiité$H=crire une analse? un algorithme et sa tra%uction en PAS9AL %(unrogramme !ui ermet %e :

     7 Saisir un entier ' ,a)ec

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    40/44

    2NBN20 7 9harger un ta*leau ) ar 'entiers'

     7 A$$icher lDin%ice ind %u remiernom*re air'

    Actiité'HEn se roose %e calculer le P;D %e %eu# entiers ositi$s enutilisant la métho%e %e %i$$érence : Le lus gran% %es entiers A et <reFoit la )aleur %e la %i$$érence %es entiers us!uD& A

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    41/44

    La structure : QQE !ui ermet

    %Dacher la somme %Dune liste %Dentiers saisie' La liste se termine ar 0 !ui ne $era asartie %e la somme'=#emle :T? -3? W? 0 S [

    rogram sommeuses Jincrt)arsom? n:integer*eginJriteln,(Gonner un nom*re:(rea%ln,nsom:0Jhile,nK0 %o*eginsom:somRnJriteln,(Gonner un nom*re:(rea%ln,nen%Jriteln,(La somme (en%'

    Actiité $H=crire une analse? un algorithme et sa tra%uction en PAS9AL %(un rogramme !uiermet %e :

     7 Saisir un entier ' , a)ec 2KBK20

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    42/44

     7 9harger un ta*leau ) ar ' entiers' 7Acher lDin%ice ind %u remier nom*re air'

    rogram airuses Jincrt)art:arra@1''20o$ integersom? n?i? in%:integer*eginreeatJriteln,(Gonner n la taille %uta*leau entre 2 et 2:(

    rea%ln,nuntil n in @2''20$or i:1 to n %o*eginJriteln,(6@(?i?((rea%ln,t@ien%i:1in%:0Jhile ,in%0 an% ,iKn %o*egini$ ,t@i mo% 2 0 then  in%:i  else  i:iR1en%i$ in%0 thenJriteln,(Pas %e nom*re air %ans leta*leau#(elseJriteln,(Premier nom*re air %ans la

    osition sui)ante :(? in%en%'

    Actiité 'HEn se roose %e calculer le P;D %e %eu# entiers ositi$s en utilisant la métho%e %e%i+érence : Le lus gran% %es entiers A et < reFoit la )aleur %e la %i+érence %es entiers

     us!uD& A

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    43/44

      sinon  < K-- < - A  .insi  .in 6ant!ue,A?

  • 8/19/2019 Chapitre+II-Les+structures+simples2

    44/44

    )arn?tem? r? som:integer*eginJriteln,(Gonner un entier :(rea%ln,ntem:n

    som:0Jhile nK0 %o*eginr:n mo% 10r:rrrsom:somRrn:n %i) 10en%i$ ,somtem thenJriteln,tem?( est un Bom*reArmstrong(

    elseJriteln,tem?( n((est as un Bom*reArmstrong(en%'