You are on page 1of 48

785%2

3$6&$/
(OpPHQWV GH EDVH
3Up 5HTXLV FRQQDLVVDQFH GH ODQDO\VH VWUXFWXUpH
6200$,5(

,1752'8&7,21

+,6725,48(
352*5$00(5 (1 3$6&$/
6758&785( '81 352*5$00( (1 3$6&$/
7<3(6 '( '211((6 (/(0(17$,5(6
&2167$17(6
9$5,$%/(6
35(6(17$7,21 '81 352*5$00( (1 3$6&$/

(175((6 6257,(6

6257,(
(175((
/(&785( ',5(&7( '8 &/$9,(5

/(6 23(5$7(856

23(5$7(856 $5,7+0(7,48(6
23(5$7(856 '( &203$5$,621
23(5$7(856 /2*,48(6
23(5$7(856 '( %,76

6758&785( '( &21752/(

,16758&7,216 $/7(51$7,9(6 7(676 &+2,;


,16758&7,21 ,)7+(1
,16758&7,21 ,) 7+(1(/6(
,16758&7,21 &$6(2)(/6((1'
,16758&7,216 5(3(7,7,9(6 ,7(5$7,216
,16758&7,21 :+,/('2
,16758&7,21 )25'2
,16758&7,21 5(3($7 817,/
,16758&7,216 '( %5$1&+(0(17

7<3(6 '( '211((6 &203/(;(6

7$%/($8;
7$%/($8; $ 81( ',0(16,21
7$%/($8; $ 3/86,(856 ',0(16,216
675,1* &+$,1(6 '( &$5$&7(5(6
(15(*,675(0(176
'(&/$5$7,21 '(6 (15(*,675(0(176
23(5$7,216 685 /(6 9$5,$%/(6 6758&785((6

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


&2167$17(6 7<3(6

'(&/$5$7,216 '(6 &2167$17(6


'(&/$5$7,216 '( 7<3(6

9$5,$%/(6 /2&$/(6 (7 9$5,$%/(6 */2%$/(6

352&('85(6 )21&7,216

'(),1,7,21 '(6 352&('85(6 (7 '(6 )21&7,216


'(&/$5$7,21 */2%$/(6 '(6 352&('85( (7 '(6 )21&7,216
3$66$*( '( 3$5$0(75(6
3$66$*( 3$5 9$/(85 &$// %< 9$/8(
3$66$*( 3$5 $'5(66( &$// %< 5()(5(1&(
)21&7,21 5(&856,9(6

*(67,21 '( ),&+,(56

$11(;(6

$57,&8/$7,21 '81 352*5$00(


352&('85(
)21&7,21
3$5$0(75(6 '(6 352&('85(6 (7 )21&7,216
(;(03/( '( 352*5$00(
0276 5(6(59(6
6758&785( '( '211((6
7<3( '( 9$5,$%/(6
(;(03/( '( '(&/$5$7,21 '(6 &2167$17(6 9$5,$%/(6 (7 7<3(6
7$%/( $6&,, 67$1'$5' %,76
7$%/( $6&,, 6(&21'( 02,7,( (7(1'8( %,76
127(6 3(56211(//(6

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


,QWURGXFWLRQ

+LVWRULTXH
/H ODQJDJH GH SURJUDPPDWLRQ 3DVFDO HVW XQ ODQJDJH FRQoX DX GpEXW GHV DQQpHV SDU 1
:LUWK 'HSXLV O XWLOLVDWLRQ GH FH ODQJDJH V HVW GpYHORSSpH GDQV OHV XQLYHUVLWpV HW OD
FRPPXQDXWp VFLHQWLILTXH 6RQ VXFFqV WRXMRXUV FURLVVDQW D PRQWUp TX LO V DJLW GX ODQJDJH TXL
GXUDQW OHV DQQpHV D GpWU{Qp OHV ODQJDJHV WHOV TXH )2575$1 OHV GLIIpUHQWV GpULYpV
G $/*2/ GH 3/ , /H 3DVFDO HVW IDFLOH j HQVHLJQHU HW j DSSUHQGUH LO SHUPHW G pFULUH GHV
SURJUDPPHV WUqV OLVLEOHV HW VWUXFWXUpV LO GLVSRVH HQWUH DXWUHV GH IDFLOLWpV GH PDQLSXODWLRQ GH
GRQQpHV

3URJUDPPHU HQ 3DVFDO
3URJUDPPH

8Q SURJUDPPH HVW XQH VXLWH GLQVWUXFWLRQV GHVWLQpHV j ORUGLQDWHXU 2U OH ODQJDJH GH


ORUGLQDWHXU HVW XQ ODQJDJH PDFKLQH TXL QXWLOLVH TXH GHX[ V\PEROHV HW 2Q XWLOLVH GRQF
XQ ODQJDJH GH SURJUDPPDWLRQ LFL OH ODQJDJH 3DVFDO SHUPHWWDQW GH SURGXLUH GHV SURJUDPPHV
OLVLEOHV HW IDFLOHPHQW PRGLILDEOHV &HV SURJUDPPHV VRQW WUDGXLWV HQ ODQJDJH PDFKLQH j ODLGH
GXQ FRPSLODWHXU

&RGH VRXUFH &RGH VRXUFH WRWR SDV

8Q SURJUDPPH HQ 3DVFDO WRWR SDU H[HPSOH SHXW


rWUH pFULW DYHF XQ WUDLWHPHQW GH WH[WH XQ pGLWHXU GH FRPSLODWHXU
WH[WH RX GLUHFWHPHQW GDQV OH ORJLFLHO GH
SURJUDPPDWLRQ pGLWp SDU %RUODQG /H SURJUDPPH
DLQVL UpDOLVp HVW VWRFNp VRXV IRUPH GH ILFKLHU DYHF
OH[WHQVLRQ SDV WRWR SDV RXL
(UUHXU GH
V\QWD[H "

&RPSLODWLRQ HW pGLWLRQ GH OLHQV QRQ


/D YHUVLRQ HQ ODQJDJH PDFKLQH GXQ SURJUDPPH &RGH REMHW
VDSSHOOH DXVVL OH FRGH REMHW GX SURJUDPPH

/pGLWHXU GH OLHQ OLQNHU HVW XQ SURJUDPPH (GLWHXU GH OLHQV


DX[LOLDLUH TXL LQWqJUH DSUqV OD FRPSLODWLRQ GX ILFKLHU
VRXUFH OH FRGH PDFKLQH GH WRXWHV OHV IRQFWLRQV
XWLOLVpHV GDQV OH SURJUDPPH HW QRQ GpILQLHV j
OLQWpULHXU $ SDUWLU GX FRGH REMHW GX SURJUDPPH 3URJUDPPH H[pFXWDEOH WRWR H[H
OpGLWHXU GH OLHQV JpQqUH XQ ILFKLHU H[pFXWDEOH
GH[WHQVLRQ H[H WRWR H[H /H ILFKLHU H[H UHQIHUPH
DORUV OH SURJUDPPH H[pFXWDEOH TXL SHXW rWUH FKDUJp
GDQV OD PpPRLUH SRXU rWUH H[pFXWp /DQFHPHQW GX SURJUDPPH

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


6WUXFWXUH GXQ SURJUDPPH HQ 3DVFDO
8Q SURJUDPPH HVW FRPSRVp GXQH VXLWH GLQVWUXFWLRQV TXL SHXYHQW rWUH DVVLPLOpHV j GHV
SKUDVHV GX ODQJDJH /pWXGH GX ODQJDJH FRQVLVWH j DSSUHQGUH OHV UqJOHV GH IRUPDWLRQ GH FHV
LQVWUXFWLRQV /D VWUXFWXUH JpQpUDOH GXQ SURJUDPPH HQ 3DVFDO SHXW VH GpILQLU GH OD IDoRQ
VXLYDQWH
8QH SDUWLH HQ WrWH TXL FRQWLHQW OH QRP GX SURJUDPPH HW VHV SDUDPqWUHV pYHQWXHOV
/H FRUSV GX SURJUDPPH TXL FRQWLHQW GHV GpFODUDWLRQV HW XQH SDUWLH LQVWUXFWLRQV

,O H[LVWH XQ RUGUH SUpGpILQL SRXU LQWURGXLUH OHV pOpPHQWV GX FRUSV GX SURJUDPPH

([HPSOH GH SURJUDPPH

(Q WrWH Program exemple ;

Uses crt ;

begin
&RUSV writeln(Hello, je suis un programme) ;
writeln(Jeffectue deux instructions) ;
HQG

8VHV

/HV LQIRUPDWLRQV GRQW OH FRPSLODWHXU D EHVRLQ SRXU OHV IRQFWLRQV SUpGpILQLHV ZULWHOQ VH
WURXYHQW GDQV GHV ILFKLHUV VSpFLDX[ DSSHOpV 8QLWp &HV ILFKLHUV VRQW LQFOXV GDQV OH ILFKLHU
VRXUFH YLD OD FRPPDQGH 8VHV

8VHV &UW

&HV XQLWpV VRQW RUJDQLVpHV GH IDoRQ WKpPDWLTXH


GRV FRQWLHQW OHV GpFODUDWLRQV GHV IRQFWLRQV V\VWqPHV
JUDSK FRQWLHQW OHV GpFODUDWLRQV GHV IRQFWLRQV JUDSKLTXHV

%ORFV GXQ SURJUDPPH

8Q EHJLQ HW XQ HQG FRQVWLWXH XQ EORF 8Q SURJUDPPH HQ 3DVFDO SHXW FRQWHQLU XQ


QRPEUH TXHOFRQTXH GH EORFV &HX[ FL UHQIHUPHQW WRXWHV VRUWHV GLQVWUXFWLRQV &HV EORFV
SHXYHQW rWUH DXVVL LQFOXV OHV XQV GDQV OHV DXWUHV

)RQFWLRQV HW SURFpGXUHV SURJUDPPH SULQFLSDO

'DQV OHV GpFODUDWLRQV RQ WURXYH GHV SURFpGXUHV HW GHV IRQFWLRQV &HOOHV FL VRQW XQH SRUWLRQ GH
SURJUDPPH FKDUJpH GH[pFXWHU XQH WkFKH VSpFLILTXH &KDTXH SURJUDPPH SHXW FRQWHQLU
SOXVLHXUV IRQFWLRQV HW SURFpGXUHV 0DLV WRXW SURJUDPPH FRQWLHQW DX PLQLPXP OH SURJUDPPH
SULQFLSDO GDQV OH FRUSV &H SURJUDPPH SULQFLSDO FRPPHQFH SDU EHJLQ HW VH WHUPLQH SDU
HQG

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


,QVWUXFWLRQV

/HV LQVWUXFWLRQV HQ 3DVFDO VH WHUPLQHQW SDU XQ SRLQW YLUJXOH &KDTXH LQVWUXFWLRQ HVW H[pFXWpH
OXQH j OD VXLWH GH ODXWUH /D SUHPLqUH LQVWUXFWLRQ H[pFXWpH HVW FHOOH TXL VH WURXYH OD SUHPLqUH
GDQV OH SURJUDPPH SULQFLSDO

&RPPHQWDLUHV

,O HVW WRXMRXUV SUpIpUDEOH TXXQ SURJUDPPH FRQWLHQQH GHV H[SOLFDWLRQV DX[ HQGURLWV FRPSOH[HV
DILQ GHQ IDFLOLWHU OD FRPSUpKHQVLRQ (Q 3DVFDO RQ LQVqUH FHV H[SOLFDWLRQV GDQV OH
SURJUDPPH FH VRQW OHV FRPPHQWDLUHV ,OV VRQW GpOLPLWpV SDU ^ HW ` RX DORUV SDU HW

Program exemple2 ;

Uses crt ; { je suis un commentaire }

Begin
{ je suis un autre commentaire mais
sur deux lignes }
instruction_1 ;
...
instruction_n ;
end.

-HX GH FDUDFWqUHV GX 3DVFDO

/HWWUHV PDMXVFXOHV $%&'()*+,-./0123456789:;<=


/HWWUHV PLQXVFXOHV DEFGHIJKLMNOPQRSTUVWXYZ[\]
&KLIIUHV
&DUDFWqUH GH VRXOLJQHPHQW XQGHUVFRUH B
&DUDFWqUHV QRQ YLVLEOHV HVSDFH
&DUDFWqUHV VSpFLDX[ HW SRQFWXDWLRQ

YLUJXOH VLJQH SOXV


SRLQW pWRLOH
SRLQW YLUJXOH VLJQH PRLQV
GRXEOH SRLQW LQIpULHXU
" SRLQW GLQWHUURJDWLRQ ! VXSpULHXU
DSRVWURSKH VLJQH pJDO
JXLOOHPHW ^ DFFRODGH RXYUDQWH
SDUHQWKqVH JDXFKH ` DFFRODGH IHUPDQWH
SDUHQWKqVH GURLWH
> FURFKHW RXYUDQW
@ FURFKHW IHUPDQW

/H FRPSLODWHXU 3DVFDO QHVW SDV VHQVLEOH j OD FDVVH ,O QH IDLW SDV OD GLVWLQFWLRQ


HQWUH PLQXVFXOH HW PDMXVFXOH /pFULWXUH EHJLQ HVW FRUUHFWH DLQVL TXH OHV pFULWXUHV
VXLYDQWHV %(*,1 RX %HJLQ

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


,GHQWLILFDWHXUV

3RXU QRPPHU OHV FRQVWDQWHV OHV YDULDEOHV RX OHV IRQFWLRQV RQ XWLOLVH XQH VpTXHQFH GH OHWWUHV
RX GH FKLIIUHV FRPPHQoDQW WRXMRXUV SDU XQH OHWWUH RX B $77(17,21 VHXOV OHV
SUHPLHUV pOpPHQWV VRQW VLJQLILFDWLIV

$WWHQWLRQ DX[ PRWV UpVHUYpV

DEVROXWH DQG DUUD\ DVP DVVHPEOHU


EHJLQ FDVH FRQVW FRQVWUXFWRU GHVWUXFWRU
GLY GR GRZQWR HOVH HQG
H[SRUW H[SRUWV H[WHUQDO IDU ILOH
IRU IRUZDUG IXQFWLRQ JRWR LI
LPSOHPHQWDWLRQ LQ LQGH[ LQKHULWHG LQOLQH
LQWHUIDFH LQWHUUXSW ODEHO OLEUDU\ PRG
QHDU QLO QRW REMHFW RI
RU SDFNHG SULYDWH SURFHGXUH SURJUDP
SXEOLF UHFRUG UHSHDW UHVLGHQW VHW
VKO VKU VWULQJ WKHQ WR
W\SH XQLW XQWLO XVHV YDU
ZKLOH ZLWK [RU YLUWXDO

7\SHV GH GRQQpHV pOpPHQWDLUHV

(Q 3DVFDO RQ WURXYH OHV W\SHV GH GRQQpHV VXLYDQWV

byte : 0..255 (8 bits non sign)


shortint: -128..127 (8 bits sign)
word: 0..65535 (16 bits non sign)
integer: -32768..32767 (16 bits sign)
longint: -2147483648..2147486647 (32 bits sign)
real: 2.9e-39..1.7e38 (64 bits sign) 6 chiffres signif
double 5.0e-324..1.7e308 15 chiffres signif
boolean : true ou False
file...of : fichier de...
string : chane de caractre (maximum 255)
string[num] : chane de caractre de longueur num
char : caractre (les 256 caractres ASCII)
pointer : pointeur ;

7\SH FKDU FDUDFWqUH

/H W\SH FKDU HVW XWLOLVp SRXU UHSUpVHQWHU XQ FDUDFWqUH GH OHQVHPEOH GHV FDUDFWqUHV
UHSUpVHQWDEOHV /D WDEOH GH FDUDFWqUH HVW OD WDEOH $6&,, $PHULFDQ 6WDQGDUG &RGH IRU
,QIRUPDWLRQ ,QWHUFKDQJH 8Q FDUDFWqUH RFFXSH XQ RFWHW FDU LO IDXW FRGHU OHV VLJQHV GX MHX
pWHQGX GHV FDUDFWqUHV $6&,,

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


7\SHV GH GRQQpHV UpHOOHV

/HV QRPEUHV GpFLPDX[ QRPEUHV UpHOV HQ 3DVFDO VRQW GLWV j YLUJXOH IORWWDQWH FHVW j GLUH GHV
QRPEUHV GDQV OHVTXHOV OD YLUJXOH HQ WDQW TXH VpSDUDWHXU HQWUH OD SDUWLH HQWLqUH HW GpFLPDOH QHVW
SDV ILJpH /D JUDQGHXU GXQ QRPEUH UpHO HVW GRQQpH SDU XQ H[SRVDQW DGpTXDW /HV QRPEUHV j
YLUJXOH IORWWDQWH VRQW GHV YDOHXUV DSSURFKpHV /D SUpFLVLRQ GpSHQG GH OD PDFKLQH /H W\SH UHDO
JDUDQWLH XQH SUpFLVLRQ GDX PRLQV FKLIIUHV DSUqV OD YLUJXOH OH W\SH GRXEOH FKLIIUHV

&RQVWDQWHV
,O H[LVWH W\SHV GH FRQVWDQWHV HQWLqUH j YLUJXOH IORWWDQWH GH W\SH FDUDFWqUH HW GH W\SH FKDvQH

([HPSOH
Const
Euro = 6.55957 ;
Com1 = $3f8 ; {entier exprim en valeur hexadcimale }
Base = 100 ;
Touche = a ;
Message = My name is Bond, James Bond !

9DULDEOHV
/HV YDULDEOHV VH GLIIpUHQFLHQW GHV FRQVWDQWHV SDU OH IDLW TX RQ SHXW OHXU DIIHFWHU GHV YDOHXUV TXL
SHXYHQW rWUH PRGLILpHV SHQGDQW O H[pFXWLRQ GX SURJUDPPH /D PpPRLUH G XQ RUGLQDWHXU HVW
VLPLODLUH j XQH VXLWH GH FHOOXOHV RFFXSDQW FKDFXQH XQ RFWHW /HV FHOOXOHV PpPRLUH RQW GHV
QXPpURV FURLVVDQWV GRQW OH SUHPLHU YDXW &HV QXPpURV VRQW OHV DGUHVVHV GHV FHOOXOHV
PpPRLUH / DGUHVVH j SDUWLU GH ODTXHOOH XQH GRQQpH HVW UDQJpH HQ PpPRLUH HVW O DGUHVVH GH
O REMHW SOXV SUpFLVpPHQW O DGUHVVH GX GpEXW GH OD GRQQpH

$GUHVVH
PpPRLUH

1RP GH
YDULDEOH L F I
7\SH GH
LQW FKDU UHDO
GRQQpH

'pILQLWLRQ GHV YDULDEOHV

,O IDXW GpILQLU OD YDULDEOH DYDQW TXHOOH QH VRLW XWLOLVpH GDQV OH SURJUDPPH 8QH WHOOH GpILQLWLRQ
GpWHUPLQH OH QRP HW OH W\SH GH OD YDULDEOH HW OXL UpVHUYH GH O HVSDFH PpPRLUH FRQIRUPpPHQW j
VRQ W\SH

([HPSOH
var
a, b, c : REAL ; { dfinit 3 variables de type rel }
x, n, toto : INTEGER ; { dfinit 3 variables de type entier }

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


$77(17,21
8Q QRP HVW XQH VXLWH G XQ RX GH SOXVLHXUV FDUDFWqUHV TXL SHXYHQW rWUH GHV OHWWUHV GHV
FKLIIUHV RX OH FDUDFWqUH GH VRXOLJQHPHQW B DYHF OD UHVWULFWLRQ TXH OH QRP QH GRLW SDV
FRPPHQFHU SDU XQ FKLIIUH /HV QRPV SHXYHQW rWUH GH ORQJXHXU TXHOFRQTXH PDLV OH
FRPSLODWHXU KDELWXHOOHPHQW QH WLHQW FRPSWH TXH GHV SUHPLHUV FDUDFWqUHV

$IIHFWDWLRQ

/ DIIHFWDWLRQ G XQH YDULDEOH VH IDLW DX PR\HQ GH ORSpUDWHXU V\PEROLVp SDU

c := 'a' ;

([HPSOH DYHF GHV YDULDEOHV

var c : char ; { Dfinition d'une variable char }


i, j : integer ; { Dfinition de deux variables int }
f : real ; { Dfinition d'une variable float }

begin
c := 'Z' ; { c reoit le caractre 'Z' dont le code ASCII est 90 }
i := 1 ; { la variable i prend la valeur 1 }
c := 'A' ; { c prend la nouvelle valeur : le caractre 'A' }
j := i ; { la variable j reoit la valeur de la variable i donc 1 }
f := -3.14 ; { la variable f prend comme valeur -3.14 }
end.

/HV YDULDEOHV GpILQLHV GDQV FHW H[HPSOH VRQW JOREDOHV HOOHV VRQW XWLOLVDEOHV GDQV WRXW OH
SURJUDPPH &RQWUDLUHPHQW DX[ YDULDEOHV JOREDOHV OHV YDULDEOHV ORFDOHV GpILQLHV GDQV XQH
IRQFWLRQ RX XQH SURFpGXUH QH SHXYHQW rWUH XWLOLVpHV TXH GDQV OH EORF EHJLQ HQG R HOOHV RQW
pWp GpILQLHV

3UpVHQWDWLRQ GXQ SURJUDPPH HQ 3DVFDO

program ... ; { en-tte du programme}*

uses ... ; { Utilisation des units / bibliothques }*


const ... ; { Dclaration des constantes }*
type ... ; { Dclaration des types }*
var ... ; { Dclaration des variables}*

procedure ... ; { dfinition des procdures }*


function ... ; { dfinition des fonctions }*

begin { programme principal : OBLIGATOIRE }


instruction ;
...
end. {fin de programme }

IDFXOWDWLI

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


(QWUpHV VRUWLHV
3RXU WUDQVPHWWUH GHV GRQQpHV VDLVLHV DX FODYLHU j XQ SURJUDPPH HQWUpHV RX SRXU DIILFKHU j
OpFUDQ OHV GRQQpHV SDU XQ SURJUDPPH VRUWLHV LO IDXW IDLUH DSSHO j XQ HQVHPEOH GH IRQFWLRQV
DSSDUWHQDQW j OXQLWp GHQWUpH VRUWLH ,O IDXW GRQF IDLUH DSSDUDvWUH HQ GpEXW GH SURJUDPPH
OLQVWUXFWLRQ VXLYDQWH
Uses crt ;

6RUWLH
'pILQLWLRQV

2Q XWLOLVH OD IRQFWLRQ :ULWH RX :ULWHOQ SRXU ODIILFKDJH IRUPDWp GHV GRQQpHV


)RUPDWp VLJQLILH TXRQ FRQWU{OH OD IRUPH HW OH IRUPDW GHV GRQQpHV DIILFKpHV
/D IRQFWLRQ DGPHW OD V\QWD[H VXLYDQWH

write(argument_1, argument_2,, argument_n) ;


ou
writeln(argument_1, argument_2,, argument_n) ;

DYHF DUJXPHQWB DUJXPHQWBQ OHV DUJXPHQWV j DIILFKHU

([HPSOHV
Write(Bonjour) ;
Writeln( cher ami) ;
a := 2+3 ;
Writeln(La somme 2 + 3 donne ,a) ;

/D IRQFWLRQ ZULWH pFULW LFL j OpFUDQ OHV DUJXPHQWV FKDvQH GH FDUDFWqUH FRQVWDQWH YDULDEOHV
/D IRQFWLRQ ZULWHOQ H[pFXWH OD PrPH FKRVH /D VHXOH GLIIpUHQFH HVW TXH j OD ILQ GH OpFULWXUH
GX GHUQLHU DUJXPHQW LO \ D SDVVDJH j OD OLJQH VXLYDQWH

/DUJHXU GDIILFKDJH

/D ODUJHXU GXQH YDOHXU HVW OH QRPEUH GH FDUDFWqUHV RX GH FKLIIUHV TXL VHURQW DIILFKpV 3RXU
VSpFLILHU OD ODUJHXU RQ SODFH XQ QRPEUH HQWLHU VXLYDQW OD YDULDEOH j DIILFKHU VpSDUp SDU XQ
GRXEOH SRLQW

5HPDUTXHV 6L OD UHSUpVHQWDWLRQ GXQH YDOHXU QpFHVVLWH PRLQV GH SRVLWLRQ TXHQ LQGLTXH OD


YDOHXU FHOOHV FL VHURQW FRPSOpWpHV SDU GHV HVSDFHV

([HPSOHV
Rsultat de laffichage :
pi := 3.14159 ;
writeln(pi); 3.141590000E+00
writeln(pi:20); 3.141590000E+00
writeln(pi:0); 3.1E+00

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


3UpFLVLRQ

&RPPH SRXU OD ODUJHXU GDIILFKDJH RQ SHXW VSpFLILHU OD SUpFLVLRQ GHV YDOHXUV j DIILFKHU /D
VSpFLILFDWLRQ GH SUpFLVLRQ HVW XQ QRPEUH HQWLHU TXL VXLW OD ODUJHXU PLQLPDOH HW HVW VpSDUp GH
FHWWH GHUQLqUH SDU XQ GRXEOH SRLQW 3RXU OHV QRPEUHV UpHOV LO LQGLTXH OH QRPEUH GH FKLIIUHV
DSUqV OD YLUJXOH

([HPSOHV
Rsultat de laffichage :
pi := 3.14159 ;
writeln(pi); 3.141590000E+00
writeln(pi:20:5); 3.14159
writeln(pi:0:4); 3.1416

(QWUpH
'pILQLWLRQV

2Q XWLOLVH OD IRQFWLRQ UHDGOQ SRXU OD VDLVLH GHV GRQQpHV GHSXLV OH FODYLHU


/D IRQFWLRQ UHDGOQ DGPHW OD V\QWD[H VXLYDQWH

readln(argument_1, argument_2,, argument_n) ;

DYHF DUJXPHQWB DUJXPHQWBQ OHV DUJXPHQWV j DIILFKHU

([HPSOH
Write(Entrez un nombre entier : ) ;
Readln(a) ;
Writeln(vous avez entr la nombre ,a) ;
Write(Entrez 3 nombre rels : ) ;
Readln(b,c,d) ;

/D IRQFWLRQ UHDGOQ OLW GHV YDOHXUV VXU OH SpULSKpULTXH G HQWUpH VWDQGDUG FODYLHU OHV LQWHUSUqWH
GDQV OH IRUPDW GH OD YDULDEOH HW OHV UDQJH GDQV OHV DUJXPHQWV VSpFLILpV $ FKDTXH YDOHXU VDLVLH
LO IDXW YDOLGHU SDU OD WRXFKH HQWUpH SRXU TXH OD VDLVLH VRLW SULVH HQ FRPSWH

/HFWXUH GLUHFWH GX FODYLHU


'pILQLWLRQV

,O H[LVWH XQH IRQFWLRQ DYHF ODTXHOOH RQ SHXW HQWUHU GHV GRQQpHV VDQV YDOLGHU SDU OD WRXFKH
HQWUpH &HW HQWUpH PDQLSXOH XQLTXHPHQW GHV FDUDFWqUHV ,O IDXW GRQF GpFODUHU OH W\SH &+$5

([HPSOHV
C := readkey ; { lit une touche au clavier }
C := upcase(readkey) ; { lit une touche au clavier et si
cest une minuscule, elle sera
convertie en majuscule }

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


/HV RSpUDWHXUV
/H 3DVFDO GLVSRVH GRSpUDWHXUV FODVVLILpV HQ GHX[ W\SHV

OHV RSpUDWHXUV XQDLUHV XQDU\ RSHUDWRUV DGPHWWHQW XQ XQLTXH RSpUDQGH


OHV RSpUDWHXUV ELQDLUHV ELQDU\ RSHUDWRUV SRVVqGHQW GHX[ RSpUDQGHV

/HV RSpUDWHXUV H[LVWDQWV VRQW

RSpUDWHXUV DULWKPpWLTXHV RSpUDWHXU FRQGLWLRQQHO


RSpUDWHXUV GH FRPSDUDLVRQ RSpUDWHXU SDUHQWKqVH
RSpUDWHXUV ORJLTXHV RSpUDWHXU GH WDLOOH
RSpUDWHXUV GH ELWV RSpUDWHXU GDGUHVVH
RSpUDWHXUV GDIIHFWDWLRQ RSpUDWHXU GH SRLQWHXU
RSpUDWHXUV GH FKDvQHV RSpUDWHXUV UHODWLRQQHOV

3ULRULWpV

/HV RSpUDWHXUV GX 3DVFDO VRQW FODVVpV VHORQ GHV QLYHDX[ GH SULRULWp OD SOXV KDXWH SULRULWp
YDODQW 3ULRULWp SOXV KDXWH VLJQLILH XQH H[pFXWLRQ SULRULWDLUH GH ORSpUDWHXU

2SpUDWHXUV DULWKPpWLTXHV
&HV RSpUDWHXUV SURFqGHQW j GHV RSpUDWLRQV DULWKPpWLTXHV VXU OHXUV RSpUDQGHV

/HV RSpUDWHXUV DULWKPpWLTXHV VRQW

2SpUDWHXU 6LJQLILFDWLRQ H[HPSOH


+ Addition a+b
- Soustraction a-b
* Multiplication a*b
%LQDLUHV / Division a/b
div Division entire a div b
mod Modulo (reste) a mod b
8QDLUH - Ngation -a

H[HPSOHV PRG [ GLY

5HPDUTXH ,O QH[LVWH SDV GRSpUDWHXU SXLVVDQFH HQ 3DVFDO

2SpUDWHXUV GH FRPSDUDLVRQ
/HV RSpUDWHXUV GH FRPSDUDLVRQ VRQW GHV RSpUDWHXUV ELQDLUHV HW FRPSDUHQW OD YDOHXU GH OHXUV
RSpUDQGHV /HV RSpUDQGHV QRQW SDV EHVRLQ GrWUH GX PrPH W\SH /H UpVXOWDW GH OD
FRPSDUDLVRQ GRQQH XQH YDOHXU ERROpHQQH FRUUHVSRQGDQW j OD YDOHXU ORJLTXH )$/6( IDX[ RX
DORUV 758( YUDL

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


/HV RSpUDWHXUV GH FRPSDUDLVRQ

2SpUDWHXU 6LJQLILFDWLRQ ([HPSOH


= Oprande 1 gal oprande 2 ? a=b
<> Oprande 1 diffrent de oprande 2 ? a <> b
<= Oprande 1 infrieur ou gal oprande 2 ? a<=b
>= Oprande 1 suprieur ou gal oprande 2 ? a>=b
< Oprande 1 infrieur oprande 2 ? a<b
> Oprande 1 suprieur oprande 2 ? a>b

2SpUDWHXUV ORJLTXHV
/HV RSpUDWHXUV ORJLTXHV HIIHFWXHQW OHV RSpUDWLRQV FODVVLTXHV GH OD ORJLTXH ERROpHQQH
/pYDOXDWLRQ GHV H[SUHVVLRQV FRPSRUWDQW GHV RSpUDWHXUV ORJLTXHV GRQQH XQ UpVXOWDW GH W\SH
7UXH RX )DOVH

/HV RSpUDWHXUV ORJLTXHV

2SpUDWHXU 6LJQLILFDWLRQ ([HPSOH


and (7 (x>2)and(x<10)
%LQDLUH or 28 (y>0) and (c=a)
xor 28 H[FOXVLI (t=0) xor (u=3)
8QDLUH not 121 ORJLTXH not (fini)

H[HPSOH /H[SUHVVLRQ (5<7)and(3>2)D OD YDOHXU 7UXH

2SpUDWHXUV GH ELWV
/HV RSpUDWHXUV GH ELWV H[pFXWHQW GHV RSpUDWLRQV ORJLTXHV (7 28 28H[ 121 HW GHV
RSpUDWLRQV GH GpFDODJH VXU WRXV OHV ELWV SULV XQ j XQ GH OHXUV RSpUDQGHV HQWLHUV

/HV RSpUDWHXUV ORJLTXHV GH ELWV

2SpUDWHXU 6LJQLILFDWLRQ ([HPSOH


and (7 12 and 43 donne 8
%LQDLUH or 28 12 or 43 donne 47
xor 28H[ 12 xor 43 donne 39
8QDLUH not 121 ORJLTXH Not(12) donne 245

/HV RSpUDWHXUV GH GpFDODJH GH ELWV

2SpUDWHXU 6LJQLILFDWLRQ ([HPSOH


shr 'pFDODJH GH \ ELWV YHUV OD GURLWH 8 shr 3 donne 1
%LQDLUH
shl 'pFDODJH GH \ ELWV YHUV OD JDXFKH 2 shl 9 donne 1024

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


6WUXFWXUH GH FRQWU{OH
/H 3DVFDO GLVSRVH GH JURXSHV GH VWUXFWXUHV GH FRQWU{OH GH IOX[ ,O VDJLW GLQVWUXFWLRQV SDU
OHVTXHOOHV RQ SHXW FRQWU{OHU OH GpURXOHPHQW GXQ SURJUDPPH

OHV LQVWUXFWLRQV DOWHUQDWLYHV WHVWV HW FKRL[


OHV LQVWUXFWLRQV UpSpWLWLYHV LWpUDWLRQV
OHV LQVWUXFWLRQV GH EUDQFKHPHQW

,QVWUXFWLRQV DOWHUQDWLYHV WHVWV FKRL[


,O H[LVWH LQVWUXFWLRQV GH WHVWV TXL SHUPHWWHQW GH QH SDV H[pFXWHU V\VWpPDWLTXHPHQW FHUWDLQHV
LQVWUXFWLRQV PDLV VHXOHPHQW GDQV FHUWDLQV FDV SUpYXV SDU OH SURJUDPPHXU &HV LQVWUXFWLRQV
VRQW
- if...then... ; : test
- if...then...else ... ; : test + alternative
- case...of...else...end ; : tests multiples

,QVWUXFWLRQ LIWKHQ

/LQVWUXFWLRQ QH VH[pFXWH TXH VL OD FRQGLWLRQ HVW 9UDLH VL


/D V\QWD[H HVW
Instruction
if expression_logique cond
then instruction ;

H[HPSOH
Exemple_test

Ecrire VL
entrez un nombre entier Lire a

a > 0 Ecrire
votre nombre est positif

Program exemple_test ;

Uses Crt ;

Var a : INTEGER ;

begin
write(entrez un nombre entier : ) ;
readln(a) ;
if a > 0
then writeln(Votre nombre est positif) ;
end.

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


,O SHXW \ DYRLU SOXVLHXUV LQVWUXFWLRQV H[pFXWpHV VL OH WHVW HVW 9UDL 7KHQ VHUD DORUV VXLYL GXQ
EORF EHJLQHQG

if expression_logique VL
then
begin
instruction_1 ; cond
...
instruction_N ; Instruction_1 Instruction_N
end ;

Program exemple_test_2 ;

Uses Crt ;

Var a : INTEGER ;
b : real ;

begin
write(entrez un nombre entier : ) ;
readln(a) ;
if a <> 0
then
begin
b := 1 / a ;
writeln(linverse de a est : , b) ;
end ;
end.

,QVWUXFWLRQ LI WKHQHOVH

'DQV FHUWDLQV FDV RQ SRXUUD IDLUH H[pFXWHU GHV LQVWUXFWLRQV VL OD FRQGLWLRQ HVW YUDLH RX VL HOOH
HVW IDXVVH /HV GHX[ V\QWD[HV VRQW OHV VXLYDQWHV
si
if expression_logique
then instruction
else instruction ;
Instruction
OU &RQGLWLRQ
si faux
Instruction
if expression_logique si vrai
then
begin
instruction_A1 ;
... VL
instruction_An ;

end cond
else
begin
instruction_B1 ; Instruction_A1 Instruction_An Instruction_B1 Instruction_Bn
...
instruction_Bn ;
end ;

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


H[HPSOH

Exemple_test_alternative

Ecrire
entrez un nombre entier Lire a VL

a > 0
Ecrire
votre nombre est ngatif

Ecrire
votre nombre est positif

Program exemple_test_alternative ;

Uses Crt ;

Var a : INTEGER ;

begin
write(entrez un nombre entier : ) ;
readln(a) ;
if a > 0
then writeln(Votre nombre est positif)
else writeln(Votre nombre est ngatif) ;
end.

,QVWUXFWLRQ FDVHRIHOVHHQG

3RXU pYLWHU OLPEULFDWLRQ GH SOXVLHXUV LQVWUXFWLRQV LI TXDQG LO \ D SOXV GH FKRL[ RQ


SUpIpUHUD XWLOLVHU OLQVWUXFWLRQ GH FKRL[ PXOWLSOHV FDVH

/D V\QWD[H HVW OD VXLYDQWH

case variable
of
etiquette_1 : instruction_1 ;
...
etiquette_n : instruction_n ;
else
autre_instruction ;
end ;

5HPDUTXHV OH PRW FDVH GRLW rWUH VXLYL GXQH YDULDEOH GH W\SH HQWLHU RX FDUDFWqUH
/HV pWLTXHWWHV VRQW GX PrPH W\SH TXH OD YDULDEOH FRQVWDQWH FDUDFWqUH HQVHPEOH GH
FRQVWDQWHV RX FDUDFWqUHV

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


Exemple_tests_multiples

Ecrire
tapez une touche Lire a

Ecrire autre touche


a

a,e,i, a,e,i,
0 1 9 o,u,y o,u,y
0 A Z

Ecrire Ecrire
Touche 0 Touche 1 9 Ecrire Ecrire lettre Ecrire symbole
voyelle Majuscule dopration

Program exemple_tests_multiples ;

Uses Crt ;

Var a : CHAR ;

begin
write(Tapez une touche: ) ;
a := readkey ;
case a of
0 : writeln(Touche 0 ) ;
1..9 : writeln(Touche 1 9) ;
a,e,i,o,u,y : writeln(voyelle) ;
A..Z : writeln(lettre majuscule) ;
-,+,*,/,= : writeln(symbole dopration) ;
else
writeln(autre touche) ;
end ;
end.

Program exemple_tests_multiples_sans_else ;

Uses Crt ;

Var x : INTEGER ;

begin
write(Entrer un nombre entier : ) ;
readln(x)
case x of
0 : writeln(vous avez entrez 0) ;
1..100 : writeln(vous avez entrez un nombre entre 1 et 100) ;
end ;
end.

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


,QVWUXFWLRQV UpSpWLWLYHV LWpUDWLRQV
/HV LWpUDWLRQV DSSHOpHV DXVVL VWUXFWXUHV UpSpWLWLYHV RX ERXFOHV ORRSV SHUPHWWHQW GH IDLUH
H[pFXWHU SOXVLHXUV IRLV FHUWDLQHV SKDVHV GH SURJUDPPH /H 3DVFDO GLVSRVH GH WURLV W\SHV GH
ERXFOH ZKLOHGR IRUGR HW UHSHDWXQWLO

,QVWUXFWLRQ ZKLOHGR

/LQVWUXFWLRQ ZKLOHGR pWDQW XQH ERXFOH HVW UpDOLVpH DXWDQW GH IRLV TXH OD FRQGLWLRQ UHVWH
95$,( /D V\QWD[H HVW OD VXLYDQWH
tantque
while condition_logique do
instruction ;

OU &RQGLWLRQ Instruction
while condition_logique do
tantque
begin
instruction_1 ;
...
instruction_N ;
end ; &RQGLWLRQ
Instruction_1

([HPSOH
var a : integer ;
begin
a := -4 ;
while a <> 0 do
begin
write(a, ; ); Rsultat :
a := a + 1 ; -4 ; -3 ; -2 ; -1
end ;
end.

$77(17,21 j QH SDV RXEOLHU

OLQLWLDOLVDWLRQ GH OD ERXFOH (dans lexemple ici a := -4)


OD ILQ GH OD FRQGLWLRQ GDQV OD OLVWH GLQVWUXFWLRQV j H[pFXWHU DILQ GH QH SDV REWHQLU
XQH ERXFOH LQILQLH (dans lexemple ici a := a + 1)

,QVWUXFWLRQ IRUGR

/D VWUXFWXUH IRUGR HVW XQH ERXFOH TXL WHVWH XQH FRQGLWLRQ DYDQW GH[pFXWHU OHV LQVWUXFWLRQV
TXL HQ GpSHQGHQW /HV LQVWUXFWLRQV VRQW H[pFXWpHV WDQW TXH OD FRQGLWLRQ UHPSOLH HVW 95$,(

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


/HV V\QWD[HV SRVVLEOHV VRQW OHV VXLYDQWHV

for variable_entire := debut to fin do instruction ;


ou
for variable_entire := debut downto fin do instruction ;

ou

for variable_entire := debut to fin do


begin
instruction_1 ;
... 2X ELHQ GRZQWR
instruction_N ;
end ;

/H PRUFHDX for variable_entire := debut to fin do UHSUpVHQWH OHQWrWH GH


ERXFOH FRQWHQDQW GHV LQVWUXFWLRQV j H[pFXWHU &HW HQWrWH FRQWLHQW

XQH H[SUHVVLRQ LQLWLDOLVDQW OHV YDULDEOHV GH FRQWU{OH TXLO IDXW LQLWLDOLVHU DYDQW GHQWUHU
GDQV OD ERXFOH variable_entire := debut
OD FRQGLWLRQ GH ERXFODJH to fin

([HPSOH

Exemple_repetition_entiere

Ecrire Entrez un Ecrire som


nombre entier > 0 3RXU

Lire n som 0
i : 0 n som som + i*(i+1)/2

Program exemple_repetition_entiere ;

Uses Crt ;

Var i,n : INTEGER ;


Som : REAL ;

begin
write(Entrez un nombre entier > 0 : ) ;
readln(n) ;
som := 0 ;
for i:=0 to n do som := som + i*(i+1)/2 ;
writeln(la somme vaut : ,som) ;
end.

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


Exemple_repetition_entiere_2

Ecrire Entrez la
table apprendre
3RXU

Lire table result 0 i : 0 10

Ecrire i*table=result
result i * table

Program exemple_repetition_entiere_2 ;

Uses Crt ;

Var result, table : INTEGER ;

begin
write(Entrez la table apprendre : ) ;
readln(table) ;
result := 0 ;
for i:=0 to 10 do
begin
result := i * table ;
writeln(i, * ,table, = ,result) ;
end ;
end.

,QVWUXFWLRQ UHSHDW XQWLO

&RQWUDLUHPHQW DX[ VWUXFWXUHV IRUGR HW ZKLOHGR OD ERXFOH UHSHDWXQWLO WHVWH VD


FRQGLWLRQ DSUqV H[pFXWLRQ GH OLQVWUXFWLRQ GX FRUSV GH OD ERXFOH /D ERXFOH HVW UpSpWpH MXVTX j
FH TXH OD FRQGLWLRQ GHYLHQQH 9UDL /D V\QWD[H HVW OD VXLYDQWH

repeat Jusqu'
instruction ; Ce que
until condition_logique ;
Instruction
OU &RQGLWLRQ

repeat
begin
instruction_1 ; Jusqu'
... Ce que
instruction_N ;
end
until condition_logique ;

&RQGLWLRQ
Instruction_1 Instruction_N

5HPDUTXHV OD ERXFOH UHSHDWXQWLO HVW H[pFXWpH DX PRLQV XQH IRLV /H EORF EHJLQHQG
QD SDV EHVRLQ GrWUH VSpFLILp FDU OH UHSHDW XQWLO IDLW RIILFH GH EORF

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


([HPSOH

Program essai ;

var x : integer ;

begin
x := 10 ;
repeat
write(x); (* affichage des nombres de 10 1 *)
x := x-1 ;
until x=0 ;
end.

,QVWUXFWLRQV GH EUDQFKHPHQW
/HV LQVWUXFWLRQV GH EUDQFKHPHQW WUDQVIqUHQW OH FRQWU{OH GX SURJUDPPH GXQH LQVWUXFWLRQ j XQH
DXWUH FHWWH GHUQLqUH QpWDQW SDV GLUHFWHPHQW pFULWH DSUqV OH[pFXWLRQ SUpFpGHQWH HIIHFWXpH ,O
H[LVWH LQVWUXFWLRQV GH EUDQFKHPHQW

EUHDN
FRQWLQXH
JRWR

8WLOLVDWLRQ

XQLTXHPHQW j OLQWpULHXU GXQH VWUXFWXUH IRUGR ZKLOHGR UHSHDWXQWLO

EUHDN SURYRTXH ODUUrW DYDQW WHUPH GH FHV LQVWUXFWLRQV

&RQWLQXH FHWWH LQVWUXFWLRQ SHUPHW GH VDXWHU XQ VHXO SDVVDJH GDQV OD ERXFOH


/H[pFXWLRQ UHSUHQG DORUV DX SURFKDLQ SDVVDJH GDQV OD ERXFOH FHVW j GLUH TXH
OLQVWUXFWLRQ FRQWLQXH SURYRTXH XQ VDXW DX GpEXW GX SURFKDLQ SDVVDJH GDQV OD
ERXFOH /H SURJUDPPH UHSUHQG DORUV VRQ FRXUV

JRWR pWLTXHWWH! pWLTXHWWH! SHXW rWUH QLPSRUWH TXHO OLEHOOp DGPLV SDU OH ODQJDJH
/LQVWUXFWLRQ LGHQWLILpH SDU pWLTXHWWH! GRLW DYRLU OD V\QWD[H VXLYDQWH
pWLTXHWWH! LQVWUXFWLRQ!
/D FRPPDQGH GH EUDQFKHPHQW JRWR HW OLQVWUXFWLRQ UHSpUpH SDU pWLTXHWWH! GRLYHQW VH
WURXYHU GDQV OD PrPH IRQFWLRQ OLQVWUXFWLRQ JRWR SURYRTXH XQ VDXW j XQ HQGURLW GX
SURJUDPPH UHSpUp SDU XQH pWLTXHWWH ODEHO /H SURJUDPPH FRQWLQXH DORUV j
OLQVWUXFWLRQ TXL VH WURXYH j FHW HQGURLW Oj

5(0$548( FHV LQVWUXFWLRQV VRQW UDUHPHQW XWLOLVpHV

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


7\SHV GH GRQQpHV FRPSOH[HV
/H 3DVFDO GLVSRVH GH GHX[ W\SHV GH GRQQpHV FRPSOH[HV OHV WDEOHDX[ HW OHV HQUHJLVWUHPHQWV
8Q WDEOHDX QH FRQWLHQW TXH GHV GRQQpHV GH W\SH LGHQWLTXH DORUV TX XQ HQUHJLVWUHPHQW SHXW rWUH
FRPSRVpH j SDUWLU G pOpPHQWV GLIIpUHQWV

7DEOHDX[
8Q WDEOHDX HVW XQH YDULDEOH TXL VH FRPSRVH G XQ FHUWDLQ QRPEUH GH GRQQpHV pOpPHQWDLUHV GH
PrPH W\SH UDQJpHV HQ PpPRLUH OHV XQHV j OD VXLWH GHV DXWUHV &KDTXH GRQQpH pOpPHQWDLUH
UHSUpVHQWH HOOH PrPH XQH YDULDEOH /H W\SH GHV pOpPHQWV GX WDEOHDX SHXW rWUH Q LPSRUWH OHTXHO
GX ODQJDJH 3DVFDO
W\SHV pOpPHQWDLUHV LQWHJHU ORQJLQW VKRUWLQW E\WH UHDO ZRUG FKDU VWULQJ
SRLQWHXU
WDEOHDX
HQUHJLVWUHPHQW

7DEOHDX[ j XQH GLPHQVLRQ

8Q WDEOHDX XQLGLPHQVLRQQHO HVW FRPSRVp G pOpPHQWV TXL QH VRQW SDV HX[ PrPHV GHV WDEOHDX[
2Q OH FRQVLGqUH FRPPH D\DQW Q FRORQQHV HW XQH VHXOH OLJQH /D GpILQLWLRQ G XQ WDEOHDX
XQLGLPHQVLRQQHO DGPHW OD V\QWD[H VXLYDQWH

9DU 1RP GX WDEOHDX DUUD\ >HQVHPEOH@ RI W\SH

7\SH VSpFLILH OH W\SH GHV pOpPHQWV GRQW GRLW VH FRPSRVHU OH WDEOHDX


HQVHPEOH HVW XQ LQWHUYDOOH TXL GpWHUPLQH OH QRPEUH G pOpPHQWV GX WDEOHDX /HV
FURFKHWV IRQW SDUWL GH OD V\QWD[H GH OD GpILQLWLRQ

([HPSOH

Var i : array[1..4]of integer ;


J : array[a..z] of real ;
k : array[-8..2]of integer ;

,QGH[DWLRQ

8Q WDEOHDX HVW FRPSRVp GH SOXVLHXUV YDULDEOHV LQGLYLGXHOOHV GH PrPH W\SH TX LO IDXW GLVWLQJXHU
QRPPpPHQW 8Q PR\HQ VLPSOH FRQVLVWH j QXPpURWHU OHV pOpPHQWV G XQ WDEOHDX RQ OHV
LGHQWLILH SDU XQ QRPEUH RX XQH OHWWUH QRPPp LQGLFH RX LQGH[ /HV YDOHXUV TXH SHXW SUHQGUH
O LQGH[ GRLYHQW rWUH GHV HQWLHUV RX GHV FDUDFWqUHV /H QRP VRXV OHTXHO RQ SHXW DLQVL GpFULUH XQ
pOpPHQW TXHOFRQTXH GX WDEOHDX GRLW REpLU j OD V\QWD[H VXLYDQWH

1RP GX WDEOHDX >LQGH[@

exemples : i [1] j[a] k[-3]

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


,QLWLDOLVDWLRQ

DIIHFWDWLRQ
var v : array[1..5] of integer ;
begin
v[1]:= 0 ;
v[2]:= 0 ;
v[3]:= 0 ;
v[4]:= 0 ;
v[5]:= 0 ;
end.

ERXFOH
var v : array[1..5] of integer ;
k : integer ;
begin
for k := 1 to 5 do
v[k] := 0 ;
end.

7DEOHDX[ j SOXVLHXUV GLPHQVLRQV

'pILQLWLRQ

9DU 1RP GX WDEOHDX DUUD\ >HQVHPEOHHBH HQVHPEOHBH1@ RI W\SH

/H QRPEUH GH GLPHQVLRQV G XQ WDEOHDX Q HVW SDV OLPLWp ,O HVW IL[p SDU OH QRPEUH GHQVHPEOHV
HQWUH FURFKHWV >@ &HV HQVHPEOHV UHQVHLJQHQW VXU OH QRPEUH G pOpPHQWV GDQV FKDTXH GLPHQVLRQ
GX WDEOHDX

([HPSOH

9DU N DUUD\> @ RI LQWHJHU FUpH XQ WDEOHDX QRPPp N HW SRVVpGDQW pOpPHQWV GH


W\SH LQWHJHU 2Q SHXW OHV UHSUpVHQWHU VRXV IRUPH GH OLJQHV HW FRORQQHV

N> @ N> @ N> @ N> @


N> @ N> @ N> @ N> @
N> @ N> @ N> @ N> @

,QLWLDOLVDWLRQ

DIIHFWDWLRQ
var v : array[0..2,0..3] of integer ;
begin
v[0,0]:= 0 ;
v[0,1]:= 0 ;
v[0,2]:= 0 ;
v[0,3]:= 0 ;
v[1,0]:= 0 ;
...
end.

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


ERXFOH
var v : array[0..2,0..3] of integer ;
i,j : integer ;

begin
for i := 0 to 2 do
for j := 0 to 3 do
v[i,j] := 0 ;
...
end.

(QWUpH HW VRUWLH
Program exemple ;

var v : array[0..2,0..3] of integer ;


i,j : integer ;

begin

(* Cette boucle permet de remplir les lments du tableau *)

for i:= 0 to 2 do { lignes }


for j:= 0 to 3 do { colonnes }
readln(v[i,j]);

(* Afficher les valeurs sur trois lignes et quatre colonnes *)

for i:=0 to 2 do { lignes }


begin
for j:= 0 to 3 do { colonnes }
write(k[i,j]:5);
writeln;
end ;

end.

6WULQJ FKDvQHV GH FDUDFWqUHV

/HV FKDvQHV GH FDUDFWqUHV VWULQJ VRQW GHV VXLWHV GH FDUDFWqUHV FRPSRVpHV GH VLJQHV IDLVDQW
SDUWLH GX MHX GH FDUDFWqUHV UHSUpVHQWDEOHV GH O RUGLQDWHXU FRGH $6&,,

(Q 3DVFDO OHV FKDvQHV GH FDUDFWqUHV TX HOOHV VRLHQW FRQVWDQWHV RX YDULDEOHV SHXYHQW rWUH
FRQVLGpUpHV FRPPH GHV WDEOHDX[ j XQH GLPHQVLRQ D\DQW GHV pOpPHQWV GH W\SH FKDU

/D GpILQLWLRQ YDU V VWULQJ> @ FUpH SDU H[HPSOH XQH FKDvQH GH FDUDFWqUHV GRX]H
pOpPHQWV GH W\SH FKDU 2Q SHXW \ UDQJHU MXVTX j FDUDFWqUHV

E H O O H F K D v Q H
V> @ V> @ V> @ V> @ V> @ V> @ V> @ V> @ V> @ V> @ V> @ V> @

/D GpILQLWLRQ YDU W VWULQJ FUpH SDU H[HPSOH XQH FKDvQH GH FDUDFWqUHV SRXYDQW FRPSRUWHU
DX PD[LPXP pOpPHQWV GH W\SH FKDU

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


2SpUDWLRQ GHQWUpHV VRUWLHV

var
S: String[4];
begin
S := ;
Write(S) ; { rien nest affich : la chane est vide }
S := toto ;
S[1] := m ;
Write(S) ; { la chane de caractre contient moto }
end.

var
S: String;
begin
S := 'Honest Lincoln';
Insert('Abe ', S, 8); { S contient Honest Abe Lincoln }
end.

var S: String;
begin
S := 'ABCDEF';
S := Copy(S, 2, 3); { S contient BCD }
end.

var
S: String;
begin
S := Concat('ABC', 'DEF'); { S contient ABCDE }
end.

var S: String;
begin
S := ' 123.5';
{ Convertit les espaces en zros }
while Pos( , S) > 0 do
S[Pos( , S)] := 0;
end.

---------------

var
S: String;
begin
Readln (S);
Writeln(", S,");
Writeln(longueur de la chane = , Length(S));
end.

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


(QUHJLVWUHPHQWV

3RXU IDLUH XQ DJHQGD RQ D EHVRLQ SDU H[HPSOH GH FRQQDvWUH SRXU FKDTXH SHUVRQQH XQ FHUWDLQ
QRPEUH GH UHQVHLJQHPHQWV TXH ORQ YD UHJURXSHU GDQV XQ XQLTXH HQUHJLVWUHPHQW QRP
SUpQRP YLOOH WpO /H 3DVFDO PHW j GLVSRVLWLRQ XQH YDULDEOH HQUHJLVWUHPHQW UHFRUG

'pFODUDWLRQ GHV HQUHJLVWUHPHQWV

$YDQW GH SRXYRLU GpILQLU XQH YDULDEOH HQUHJLVWUHPHQW LO IDXW IRXUQLU DX FRPSLODWHXU XQ W\SH
GHQUHJLVWUHPHQW GpFULYDQW O DVSHFW GH OHQUHJLVWUHPHQW j FUpHU 2Q LQGLTXH SRXU FHOD OHV
FKDPSV GH OHQUHJLVWUHPHQW &KDTXH FKDPS HVW LQWURGXLW DYHF VRQ W\SH HW VRQ QRP
([HPSOH GH V\QWD[H G XQH GpILQLWLRQ GHQUHJLVWUHPHQW
Program agenda ;

Uses crt ;

Type personne = record


Nom : string[15] ;
Prenom : string[15] ;
age : integer ;
solde : real ;
sincere : boolean ;
end ;

var x : personne ;
...

2SpUDWLRQV VXU OHV YDULDEOHV VWUXFWXUpHV

/ RSpUDWHXU GH FKDPS

/ RSpUDWHXU GH FKDPS HVW SODFp HQWUH OH QRP GH OD YDULDEOH VWUXFWXUpH HW FHOXL GX FKDPS
FRQFHUQp

1RPB9DULDEOH 1RPB&KDPS

(Q UHSUHQDQW OH[HPSOH FLWp SUpFpGHPPHQW OHV FKDPSV GH OHQUHJLVWUHPHQW VRQW GRQF


DFFHVVLEOHV YLD OHV QRPV

x.nom := De Wyliers ;
x.prenom := Carnage Mazamet ;
x.age := 33 ;
x.solde := -3200.45 ;
x.sincere := false ;

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


&RQVWDQWHV W\SHV
/HV GHX[ PRWV FOp FRQVW HW W\SH SHUPHWWHQW GH GpILQLU GHV FRQVWDQWHV HW GHV W\SHV GH GRQQpHV

'pFODUDWLRQV GHV FRQVWDQWHV


(OOHV VH GpFODUHQW GH PDQLqUH ORFDOHV GDQV OHV SURFpGXUHV RX OHV IRQFWLRQV RX DORUV GH PDQLqUH
JOREDOHV MXVWH DSUqV OHQWH GH SURJUDPPH

([HPSOH

Const PI = 3.14 ; UN = 1 ; DIX = 10 ;


TVA = 0.196 ; Taux = 19.6E-2 ;
Souligne = -------- ;
titre = rsultats ;

'pFODUDWLRQV GH W\SHV
/D QRWLRQ GH W\SH HVW OLpH j OD QRWLRQ GH GRQQpHV (OOH UHSUpVHQWH OHQVHPEOH GHV YDOHXUV TXH
SHXW SUHQGUH XQH GRQQpH /HV GRQQpHV VRQW WUDLWpHV SDU OLQWHUPpGLDLUH GH YDULDEOHV &HVW
GRQF OLGHQWLILFDWHXU GH OD YDULDEOH DVVRFLpH TXL VHUD GpILQL FRPPH D\DQW XQ FHUWDLQ W\SH

7\SH VWDQGDUG

OH W\SH HQWLHU ,17(*(5 OH W\SH UpHO 5($/ OH W\SH ERROpHQ %22/($1 OH W\SH
FDUDFWqUH &+$5

7\SH QRQ VWDQGDUG

3HUPHW GH VSpFLILHU XQ W\SH SDUWLFXOLHU OH W\SH LQWHUYDOOH SHXW rWUH LQWURGXLW SDU OH PRW
VHW HQVHPEOH

([HPSOH

type
Day = (Sun, Mon, Tue, Wed, Thu, Fri, Sat);
CharSet = set of Char;
Digits = set of 0..9;
Days = set of Day;
Printemps = (Mars,avril,mai,juin) ;
Longueurmois = 0..31 ;
Lettremajus = A..Z ;
Age = 0..120 ;

Var jour : day ;


alpha : lettremajus ;
age_personne : age ;

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


9DULDEOHV ORFDOHV HW YDULDEOHV JOREDOHV
9DULDEOH JOREDOH

8QH YDULDEOH JOREDOH HVW GpILQLH KRUV GH WRXWH IRQFWLRQ RX SURFpGXUH 8QH YDULDEOH JOREDOH
HVW FRQQXH GRQF XWLOLVDEOH GDQV WRXW OH ILFKLHU VRLW GDQV FKDTXH EORF RX FKDFXQH GHV
IRQFWLRQV RX SURFpGXUH R HOOH HVW GpILQLH FHOD j SDUWLU GH O HQGURLW GH VD GpILQLWLRQ

9DULDEOH ORFDOH

8QH YDULDEOH ORFDOH DX FRQWUDLUH HVW GpILQLH j O LQWpULHXU G XQH IRQFWLRQ GXQH SURFpGXUH
RX G XQ EORF 8QH WHOOH GpILQLWLRQ GH YDULDEOH HVW DLQVL DXWRULVpH DX GpEXW GH Q LPSRUWH TXHO
EORF /HV YDULDEOHV ORFDOHV VRQW FRQQXHV GRQF XWLOLVDEOHV XQLTXHPHQW j O LQWpULHXU GH OD
IRQFWLRQ RX GX EORF FRQWHQDQW OHXU GpILQLWLRQ

9DULDEOHV KRPRQ\PHV

,O HVW DXWRULVp PDLV SDV UHFRPPDQGp GH GpILQLU GHV YDULDEOHV GH PrPH QRP DX VHLQ GX PrPH
SURJUDPPH GX PRPHQW TXH OHXUV GRPDLQHV GH YDOLGLWp GLIIqUHQW
6L OHV GRPDLQHV GH YDOLGLWp GH GHX[ YDULDEOHV VH UHFRXSHQW OH FRPSLODWHXU Q DFFHSWH
QDWXUHOOHPHQW SDV GHV YDULDEOHV SRUWDQW OH PrPH QRP
6L OHV GRPDLQHV GH YDOLGLWp GH GHX[ YDULDEOHV KRPRQ\PHV VRQW H[FOXVLIV DORUV OD
VLWXDWLRQ HVW FODLUH FKDTXH YDULDEOH HVW LQFRQQXH GDQV OH GRPDLQH GH YDOLGLWp GH
O DXWUH HW QH SHXW GRQF SDV \ rWUH XWLOLVpH /HV GHX[ YDULDEOHV Q HQWUHQW SDV HQ FRQIOLW

6L GDQV XQ SURJUDPPH H[LVWHQW GHX[ YDULDEOHV GH PrPH QRP HW VL OD SRUWpH GH O XQH


FRQWHQX HVW LQFOXVH GDQV FHOOH GH O DXWUH FRQWHQDQW DORUV RQ SULYLOpJLH GDQV OH GRPDLQH
LQWpULHXU FRQWHQX OD YDULDEOH TXL \ HVW GpILQLH 2Q GLW pJDOHPHQW TXH OD YDULDEOH GpILQLH GDQV
OH FRQWHQX FDFKH FHOOH GpILQLH GDQV OH FRQWHQDQW +RUV GX FRQWHQX RQ SULYLOpJLH OD YDULDEOH
GpILQLH GDQV OH FRQWHQDQW

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


3URFpGXUHV )RQFWLRQV
*pQpUDOLWpV

8QH SURFpGXUH RX XQH IRQFWLRQ HVW XQH SRUWLRQ GH SURJUDPPH FRPSRVpH GXQH RX
SOXVLHXUV LQVWUXFWLRQV HW GHYDQW DFFRPSOLU XQH FHUWDLQH WkFKH 2Q GLVWLQJXH FDV
OHV SURFpGXUHV RX IRQFWLRQV SUpGpILQLHV GHV ELEOLRWKqTXHV WHOOHV TXH ZULWHOQ RX
UHDGOQ OLYUpHV DYHF OH FRPSLODWHXU TXL VRQW LQWpJUpHV DX SURJUDPPH VHXOHPHQW
ORUV GH O pGLWLRQ GHV OLHQV
OHV SURFpGXUHV RX IRQFWLRQV SHUVRQQHOOHV TXH OH SURJUDPPHXU pFULW OXL PrPH

8Q SURJUDPPH 3DVFDO SHXW FRPSUHQGUH SOXVLHXUV SURFpGXUHV RX IRQFWLRQV SHUVRQQHOOHV


0DLV XQ SURJUDPPH FRQWLHQW DX PRLQV OH SURJUDPPH SULQFLSDO EHJLQHQG & HVW SDU
OXL TXH GpEXWH WRXMRXUV O H[pFXWLRQ GX SURJUDPPH

8Q SURJUDPPH 3DVFDO SHXW rWUH FRQVLGpUp FRPPH XQH FROOHFWLRQ GH SURFpGXUHV HW GH


IRQFWLRQV /HV SURFpGXUHV HW OHV IRQFWLRQV SHXYHQW rWUH GLVSRVpHV GDQV XQ RUGUH
TXHOFRQTXH j FRQGLWLRQ TXHOOHV VRLHQW GpFODUpHV SUpDODEOHPHQW VLQRQ LO IDXW UHVSHFWHU
XQ RUGUH GH GpILQLWLRQ ODSSHODQW VXFFqGH ODSSHOp

&RQWUDLUHPHQW DX[ SURFpGXUHV OHV IRQFWLRQV SHXYHQW UHQYR\HU DX SURJUDPPH SOXV


SUpFLVpPHQW j OD IRQFWLRQ DSSHODQWH OH UpVXOWDW GH OHXU WUDYDLO FHOD VRXV IRUPH GH YDOHXU
UpXWLOLVDEOH

'pILQLWLRQ GHV SURFpGXUHV HW GHV IRQFWLRQV


8QH GpILQLWLRQ GH IRQFWLRQ VSpFLILH

OH W\SH GH OD YDOHXU UHQYR\pH SDU OD IRQFWLRQ


OH QRP GH OD IRQFWLRQ
OHV SDUDPqWUHV DUJXPHQWV TXL VRQW SDVVpV j OD IRQFWLRQ SRXU \ rWUH WUDLWpV
OHV YDULDEOHV ORFDOHV XWLOLVpHV SDU OD IRQFWLRQ
GDXWUHV SURFpGXUHV RX IRQFWLRQV LQYRTXpHV SDU OD IRQFWLRQ
OHV LQVWUXFWLRQV TXH GRLW H[pFXWHU OD IRQFWLRQ
/D YDOHXU UHQYR\pH

/D V\QWD[H HVW

function nom [(paramtres...)] : type renvoy ; (Q WrWH GH OD IRQFWLRQ


[Dfinitions des variables locales]
[Dclaration des proc et fonc supplmentaires]
begin
Instructions ; &RUSV GH OD IRQFWLRQ
nom := ... ;
end ;

5HPDUTXHV /HV >@ LQGLTXHQW TXH OHV VSpFLILFDWLRQV VRQW IDFXOWDWLYHV

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


8QH GpILQLWLRQ GH SURFpGXUH VSpFLILH

OH QRP GH OD SURFpGXUH
OHV SDUDPqWUHV DUJXPHQWV TXL VRQW SDVVpV j OD SURFpGXUH SRXU \ rWUH WUDLWpV
OHV YDULDEOHV ORFDOHV XWLOLVpHV SDU OD SURFpGXUH
GDXWUHV SURFpGXUHV RX IRQFWLRQV LQYRTXpHV SDU OD SURFpGXUH
OHV LQVWUXFWLRQV TXH GRLW H[pFXWHU OD SURFpGXUH

/D V\QWD[H HVW

procedure nom [(paramtres...)] ; (Q WrWH GH OD SURFpGXUH


[Dfinitions des variables locales]
[Dclaration des proc et fonc supplmentaires]
begin
Instructions ; &RUSV GH OD SURFpGXUH
end ;

5HPDUTXHV /HV >@ LQGLTXHQW TXH OHV VSpFLILFDWLRQV VRQW IDFXOWDWLYHV

([HPSOH G XQH IRQFWLRQ FDOFXODQW OH YROXPH G XQ FXEH

Function cube( x : real ) : real ;

begin
cube := x * x * x ;
end ;

5HPDUTXHV VXU OH[HPSOH

9DOHXU GH UHWRXU
/H PRW FOp UHDO DSUqV OH QRP GH OD IRQFWLRQ LQGLTXH TXH OD IRQFWLRQ FXEH UHQYRLH XQH
YDOHXU GH W\SH UHDO /HV YDOHXUV GH UHWRXU GHV IRQFWLRQV VRQW UHQYR\pHV j OD IRQFWLRQ
DSSHODQWH YLD O LQVWUXFWLRQ FRQWHQDQW OH QRP GH OD IRQFWLRQ FXEH

3DUDPqWUHV
/H QRP GH OD IRQFWLRQ LFL FXEH HVW FRPSOpWp SDU XQH SDLUH GH SDUHQWKqVHV DYHF
SDUDPqWUHV /HV SDUHQWKqVHV QH VRQW SDV REOLJDWRLUHV /D IRQFWLRQ FXEH D H[DFWHPHQW
XQ SDUDPqWUH j VDYRLU XQH YDULDEOH UHDO QRPPpH [ DFFRPSDJQpH GH OD VSpFLILFDWLRQ
GH VRQ W\SH /HV SDUDPqWUHV VSpFLILpV GDQV OD GpILQLWLRQ GH OD IRQFWLRQ VRQW TXDOLILpV GH
SDUDPqWUHV IRUPHOV ,O IDXW OHV GLVWLQJXHU GHV SDUDPqWUHV TXL VHURQW WUDQVPLV j OD
IRQFWLRQ ORUVTX RQ O DSSHOOHUD &HV GHUQLHUV VRQW GLWV SDUDPqWUHV HIIHFWLIV RX DUJXPHQWV
GH OD IRQFWLRQ

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


/LQVWUXFWLRQ FXEH

/D IRQFWLRQ FXEH FDOFXOH OH FXEH GXQH YDOHXU HW UHWRXUQH OH UpVXOWDW j OD IRQFWLRQ


DSSHODQWH &HOD VH IDLW SDU OLQWHUPpGLDLUH GH OLQVWUXFWLRQ QRPGHODIRQFWLRQ &HWWH
LQVWUXFWLRQ PHW ILQ j OH[pFXWLRQ GHV LQVWUXFWLRQV GXQH IRQFWLRQ HW UHQG OH FRQWU{OH GX
SURJUDPPH j OD IRQFWLRQ DSSHODQWH

Paramtre formel de la fonction cube


function cube(x:real) : real ;

begin
cube := x * x * x;
end
Transmission du paramtre
{ programme principale } effectif au paramtre formel
X prend la valeur 2.0
begin
...
v := cube(2.0) ;
...
Paramtre effectif de la fonction cube
end.

([HPSOH 3URJUDPPH FDOFXODQW OH YROXPH GXQ FXEH

Program calcul_volume_cube ;

Var
e : real ; (* longueur de l'arte du cube *)
volume : real ;

{ ----------------------- fonction cube ------------------------------ }

Function cube(x :real) : real ;

begin
cube := x * x * x ;
end ;

{ ----------------------- programme principal ------------------------- }

begin
write(Longueur de l'arte : );
readln(e) ;
volume := cube(e); { Appel de la fonction 'cube' et affectation de }
{ la valeur retourne la variable 'volume' }
writeln(Le volume du cube est : , volume);
end.

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


([HPSOH )RQFWLRQ DYHF SOXVLHXUV SDUDPqWUHV

{ Programme calculant le volume dun paralllpipde }

program para ;

Var
long, larg, haut : real ;
volume : real ;

{ ----------------------- fonction cube ------------------------------ }

Function parallel( x, y, z : real) : real ;

begin
parallel := x * y * z ;
end ;
{ ----------------------- programme principal ------------------------- }

begin
write(Longueur, largeur, hauteur : );
readln(long, larg, haut) ;
volume := parallel(long,larg,haut) ; { Appel de la fonction }
writeln(Le volume du paralllpipde est : , volume);
end.

([HPSOH )RQFWLRQ 6$16 SDUDPqWUH

Program calcul_volume_cube_version_2 ;

Var volume : real ;

{ ----------------------- fonction cube ------------------------------ }

Function cube : real ;

Var e : real ;

begin
write(Longueur de l'arte : );
readln(e) ;
cube := e * e * e ;
end ;

{ ----------------------- programme principal ------------------------- }

begin
volume := cube ; { Appel de la fonction 'cube' et affectation de }
{ la valeur retourne la variable 'volume' }
writeln(Le volume du cube est : , volume);
end.

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


([HPSOH SURFpGXUH DYHF SOXVLHXUV SDUDPqWUHV

{ Programme calculant le volume dun paralllpipde }

program para2 ;

Var
long, larg, haut : real ;
volume : real ;

{ ----------------------- procedure cube ------------------------------ }

procedure parallel( x, y, z : real) ;

begin
volume := x * y * z ;
end ;
{ ----------------------- programme principal ------------------------- }

begin
write(Longueur, largeur, hauteur : );
readln(long, larg, haut) ; { saisie multiples : 3 mthodes voir ! }
parallel ; { appel de la procedure }
writeln(Le volume du paralllpipde est : , volume);
end.

([HPSOH SURFHGXUH 6$16 SDUDPqWUH

Program calcul_volume_cube_version_2_bis ;

Var volume : real ;

{ ----------------------- fonction cube ------------------------------ }

procedure cube ;

Var e : real ;

begin
write(Longueur de l'arte : );
readln(e) ;
volume := e * e * e ;
end ;

{ ----------------------- programme principal ------------------------- }

begin
cube ; { Appel de la procedure 'cube' }
writeln(Le volume du cube est : , volume);
end.

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


'pFODUDWLRQ JOREDOHV GHV SURFpGXUH HW GHV IRQFWLRQV

/D GpILQLWLRQ G XQH SURFpGXUH RX GXQH IRQFWLRQ GRLW rWUH JOREDOH F HVW j GLUH VH IDLUH KRUV GH
WRXWH SURFpGXUH RX IRQFWLRQ 0DLV j SDUW FHOD HOOHV SHXYHQW LQWHUYHQLU Q LPSRUWH R GDQV OH
SURJUDPPH -XVTX j SUpVHQW OHV GpILQLWLRQV SHUVRQQHOOHV pWDLHQW WRXMRXUV SODFpHV DYDQW OH
SURJUDPPH SULQFLSDO ' XQH PDQLqUH SOXV JpQpUDOH OHV SURFpGXUHV HW IRQFWLRQV pWDLHQW
GpILQLHV GDQV OH SURJUDPPH DYDQW OH SURJUDPPH SULQFLSDO

([HPSOH

Program exemple ;

Uses crt ;

Var v : real ;

function first : real ; forward ; { dclaration globale }


function second(x :real) : real ; forward ; { des fonctions }

{ ----------------------------------------------------------------------- }

function first ; { dfinition de la fonction 'first' }

var e : real ;

begin
write(Arte ? );
readln(e);
first := second(e) ; (* appel de la fonction 'second' *)
end ;

{ ----------------------------------------------------------------------- }

function second ; { dfinition de la fonction 'second' }

begin
second := x*x*x ;
end ;

{ ---------- programme principal ------------------ }

begin
v := first ;
write(Volume = ,v) ;
end.

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


3DVVDJH GH SDUDPqWUHV
/HV SDUDPqWUHV HIIHFWLIV G XQH SURFpGXUH RX GXQH IRQFWLRQ VRQW GHV H[SUHVVLRQV TXL GRLYHQW
FRUUHVSRQGUH HQ QRPEUH HW HQ W\SH DX[ SDUDPqWUHV IRUPHOV VSpFLILpV GDQV OD GpILQLWLRQ GH OD
SURFpGXUH RX GH OD IRQFWLRQ ,O H[LVWH GHX[ PpWKRGHV SRXU WUDQVPHWWUH GHV SDUDPqWUHV HIIHFWLIV
j XQH SURFpGXUH RX XQH IRQFWLRQ

VL OD SURFpGXUH RX OD IRQFWLRQ UHoRLW FRPPH SDUDPqWUH OD YDOHXU G XQH GRQQpH SOXV


SUpFLVpPHQW XQH FRSLH GH FHOOH FL DORUV RQ SDUOH GH WUDQVPLVVLRQ SDU YDOHXU

VL OD SURFpGXUH RX OD IRQFWLRQ UHoRLW QRQ SDV OD YDOHXU GH OD GRQQpH FRPPH SDUDPqWUH


PDLV VRQ DGUHVVH DORUV RQ SDUOH GH WUDQVPLVVLRQ SDU DGUHVVH

3DVVDJH SDU YDOHXU FDOO E\ YDOXH

/D SURFpGXUH RX OD IRQFWLRQ DSSHOpH UHoRLW XQH FRSLH GH OD YDOHXU GH O REMHW SDVVp FRPPH
SDUDPqWUH HIIHFWLI &HWWH FRSLH HVW DIIHFWpH DX SDUDPqWUH IRUPHO FRUUHVSRQGDQW /D SURFpGXUH
RX OD IRQFWLRQ WUDYDLOOH GRQF VXU XQ GXSOLFDWD HW QRQ VXU O RULJLQDO GH OD YDOHXU WUDQVPLVH

([HPSOH

Program Variable_1 ;

Uses Crt ;

Var i, j : INTEGER ;
k : CHAR ;

{ -------------------------- }

Procedure Fait ( a : INTEGER ) ;

Begin Rsultat de laffichage:


j := a + 1 ;
a := a * 2 ;
k := pred(k) ; 5 9 B
Writeln( a , i, j , k ); 10 5 6 A
j := j 1 ; 5 5 A
End ;

{ ------------------------------ }

Begin
i := 5 ; j := 9 ; k := B ;
Writeln( i , j , k );
Fait(i) ;
Writeln( i , j , k );
End.

UHPDUTXH /HV FRSLHV GHV YDOHXUV GHV YDULDEOHV SDVVpHV FRPPH SDUDPqWUHV HIIHFWLIV VRQW
PRGLILpHV GDQV OD SURFpGXUH DSSHOpH VDQV TXH FHOD VH UpSHUFXWH VXU OHV YDOHXUV RULJLQDOHV GHV
YDULDEOHV GDQV OD IRQFWLRQ DSSHODQWH /D YDOHXU GH L QHVW SDV DIIHFWpH

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


3DVVDJH SDU DGUHVVH FDOO E\ UHIHUHQFH

/RUVTXH O RQ YHXW TX XQH SURFpGXUH RX XQH IRQFWLRQ SXLVVH PRGLILHU OD YDOHXU G XQH GRQQpH
SDVVpH FRPPH SDUDPqWUH LO IDXW OXL WUDQVPHWWUH QRQ SDV OD YDOHXU GH O REMHW FRQFHUQp PDLV
VRQ DGUHVVH &HWWH WHFKQLTXH GH WUDQVPLVVLRQ GHV SDUDPqWUHV HVW GLWH SDVVDJH SDU DGUHVVH /D
FRQVpTXHQFH HQ HVW TXH OD IRQFWLRQ DSSHOpH QH WUDYDLOOH SOXV VXU XQH FRSLH GH O REMHW WUDQVPLV
PDLV VXU O REMHW OXL PrPH FDU OD SURFpGXUH RX OD IRQFWLRQ HQ FRQQDvW O DGUHVVH /H SDVVDJH
GHV SDUDPqWUHV SDU DGUHVVH SHUPHW GRQF j XQH SURFpGXUH RX XQH IRQFWLRQ GH PRGLILHU OHV
YDOHXUV GHV YDULDEOHV

([HPSOH

Program Variable_1 ; Program Variable_2 ;

Uses Crt ; Uses Crt ;

Var a, b : INTEGER ; Var a, b : INTEGER ;

{ -------------------------- } { -------------------------- }

Procedure calc2 ( x : INTEGER ) ; Procedure calc2 (var x:INTEGER ) ;

Var y : INTEGER ; Var y : INTEGER ;

Begin Begin
y := x * x ; y := x * x ;
Writeln(x,y) ; Writeln(x,y) ;
x := x + 1 ; x := x + 1 ;
y := y + 1 ; y := y + 1 ;
End ; End ;

{ ------------------------------ } { ------------------------------ }

Begin Begin
a := 7 ; a := 7 ;
b := 3 ; b := 3 ;
Writeln(a,b); Writeln(a,b);
Calc2 (a); Calc2 (a);
Writeln(a,b); Writeln(a,b);
End. End.

Rsultat de laffichage: Rsultat de laffichage:

7 3 7 3
7 49 7 49
7 3 8 3

'DQV 9DULDEOHB ODGUHVVH GH D HVW DORUV WUDQVPLVH j FDOF GDQV YDU [ LQWHJHU /D SURFpGXUH
Q DFFqGH SOXV PDLQWHQDQW j XQH FRSLH ORFDOH GH OD YDOHXU GH OD YDULDEOH D GH OD IRQFWLRQ
DSSHODQWH (Q UHYDQFKH HOOH LQWHUYLHQW VXU OH FRQWHQX GH OHPSODFHPHQW PpPRLUH R HVW
UDQJpH FHWWH YDULDEOH 'H FH IDLW OD YDOHXU G RULJLQH GH D HV UpHOOHPHQW FKDQJpH

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


)RQFWLRQ UpFXUVLYHV
(Q 3DVFDO OHV IRQFWLRQV SHXYHQW H[pFXWHU G DXWUHV IRQFWLRQV SDUPL OHVTXHOOHV HOOHV PrPHV (Q
SDUHLO FDV RQ SDUOH G DSSHO UpFXUVLI GH IRQFWLRQ RX GH IRQFWLRQ UpFXUVLYH

([HPSOH

Program factoriel ;

Uses crt ;

Var nombre, resultat : integer ;

Function fact ( n : integer ) : integer ;

Begin
If n > 1
then fact := n * fact(n-1)
else fact := 1 ;
End ;

{ ** programme principal ** }

Begin
Write(entrer un entier : ) ;
Readln(nombre) ;
Resultat := fact(nombre) ;
Writeln(nombre, ! = ,resultat) ;
End.

Essai avec n = 5 :

Fact := 5 * fact(4)

Fact := 4 * fact(3)

Fact := 3 * fact(2)

Fact := 2 * fact(1)

Fact := 1

Fact = 1 * 2 * 3 * 4 * 5

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


*HVWLRQ GH ILFKLHUV
$ILQ GH FRQVHUYHU GHV GRQQpHV VXU VXSSRUW SK\VLTXH GLVTXH GXU GLVTXHWWH RQ HVW DPHQp j
H[pFXWHU GHV RSpUDWLRQV GH OHFWXUH pFULWXUH

9RLU 73 SRXU SOXV GH GpWDLOV


Rsum :

Exemple 1 denregistrements dans un fichier :

1RP kJH

3UpQRP %287$1 3,==$ 9$=, %RQG


7UDLQ ,ROR 6WDV -DPHV
7pOpSKRQH

HU qPH
(QUHJLVWUHPHQW qPH (QUHJLVWUHPHQW (QUHJLVWUHPHQW (QLqPH
SRLQWHXU SRLQWHXU SRLQWHXU (QUHJLVWUHPHQW
SRLQWHXU Q

Le type record et la dclaration dun fichier

type
coord = record
nom : string ;
prenom : string ;
age : integer ;
tel : string ;
end ;
var
personne : coord ;
f : file of coord ; { fichier denregistrement }
g : text ; { fichier de caractres (file of char) }

Cration d'un fichier


Attention, si celui-ci existe, il est cras.

Begin
assign(f,'toto.dat');
rewrite(f);
close(f);
end ;

Ouverture d'un fichier


condition quil se trouve dans le rpertoire courant, sinon
le chemin doit tre spcifi du style : C:\DOCS\TOTO.DAT

begin
assign(f,'C:\docs\toto.dat');
reset(f); { Le pointeur de fichier se positionne }
... { automatiquement sur lenregistrement 0 }
close(f);
end ;

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


Ouverture d'un fichier (2) avec test dexistence

La condition dexistence est ici teste

begin
assign(f,'toto.dat');
{$i-} reset(f) {$i+};
if ioresult <> 0 then write(le fichier est absent) ;
...
close(f);
end ;

Ecriture dans un fichier

begin
assign(f,'toto.dat');
reset(f); { le pointeur de fichier se positionne 0 }
personne.nom := 'DUBOIS'
personne.prenom := 'David'
personne.tel := '00.00.00.00.00'
write(f,personne) { aprs cette instruction, le pointeur de fichier
s'incrmente automatiquement de 1 }
...
close(f);
end ;

Lecture d'un fichier

begin
assign(f,'toto.dat');
reset(f); { le pointeur de fichier se positionne 0 }
read(f,personne) { aprs cette instruction, le pointeur de
fichier
s'incrmente automatiquement de 1 }
write('nom : ', personne.nom) ;
...
close(f);
end ;

fonctions et procdures utilisables avec le traitement de fichier

eof(f) :

fonction qui renvoie le boolen TRUE si le pointeur est en fin de


fichier sinon renvoie FALSE

filesize(f) :

fonction qui renvoie un entier donnant le nombre d'enregistrement du


fichier

seek(f,position) :

SURFpGXUH SODoDQW OH SRLQWHXU GH ILFKLHU j OD YDOHXU SRVLWLRQ

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


$11(;(6

$UWLFXODWLRQ GXQ SURJUDPPH


program ... ; { Tte du programme }

uses ... ; { Utilisation des bibliothques }


const ... ; { Dclaration des constantes }
type ... ; { Dclaration des types }
var ... ; { Dclaration des variables}

procedure ... ; { Procdures }


function ... ; { Fonctions }

begin { programme principal }


instruction ;
...
end. {fin de programme }

3URFpGXUH
procedure NomdelaProcdure ( paramtre1 ; ... )

var nomdevariable : typedevariable ; { dclaration facultative }

begin
instruction ;
...
end;

)RQFWLRQ
function NomdelaFonction ( paramtre1 ; ... ) : typedevariable ;

var nomdevariable : typedevariable ; { dclaration facultative }

begin
instruction ;
...
end;

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


3DUDPqWUHV GHV SURFpGXUHV HW IRQFWLRQV
exemple 1 : procedure calcul (x : integer ; y : real ) ;
begin
... ;
'HV YDOHXUV FRQVWDQWHV VRQW GRQQpHV HQ WDQW TXH
end
SDUDPqWUHV j OD SURFpGXUH FDOFXO /HXU
PRGLILFDWLRQ QH VHUD FRQQXH TXH GH OD SURFpGXUH

exemple 2 : procedure calcul( var x : integer ; y : real ) ;


begin
... ;
'DQV FH FDV OD YDOHXU GH [ VHUD PRGLILpH GDQV OD
end SURFpGXUH HW FHWWH PRGLILFDWLRQ DIIHFWHUD OD
YDULDEOH TXL D GRQQp VD YDOHXU j [

([HPSOH GH SURJUDPPH
Program calcul_interet_simple ;

Uses Crt ;

Const euro = 6.55957 ;

Var c,t,i : Real ;


d : Integer ;
touche : Char ;

{ --- calcul de l'interet -------------------------------------- }

function calcul_i ( capital : Real; duree : integer; taux : real ) :


real ;

Var interet : Real ;

begin
interet := capital * taux / 100 ;
interet := interet * duree / 12 ; { formule arrondie : I=C*t*d/12 }
calcul_i := interet ;
end;

{ --- saisie des nombres ----------- }

procedure saisie ;

begin
clrscr ;
write('Entrez le capital : ');
readln(c);
write('Entrez la duree de placement (en mois): ');
readln(d);
write('Entrez le taux de placement : ');
readln(t);
end;

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


{ ------------ programme principal ------------------------------- }

begin
repeat
saisie ;
i := calcul_i(c,d,t);
writeln('les interets seront de : ',i,' F');
writeln('ce qui quivaut en Euro : ',i*euro) ;
writeln('Voulez-vous faire un autre calcul (O/N) ? :') ;
repeat
touche := upcase(readkey);
until touche ='N' ;
clrscr ;
end.

0RWV UpVHUYpV
0RWV UpVHUYpV

absolute exports label Resident


and external library set
array far mod shl
asm file near shr
assembler for nil string
begin forward not then
case function object to
const goto of type
constructor if or unit
destructor implementation packed until
div in private uses
do index procedure var
downto inherited program virtual
else inline public while
end interface record with
export interrupt repeat xor

8QLWp &UW

AssignCrt GotoXY NormVideo TextColor


ClrEol HighVideo NoSound TextMode
ClrScr InsLine ReadKey WhereX
Delay KeyPressed Sound WhereY
DelLine LowVideo TextBackground

8QLWp GRV

DiskFree FindNext GetIntVec PackTime SetVerify


DiskSize FSearch GetTime SetCBreak SwapVectors
DosExitCode Fsplit GetVerify SetDate UnpackTime
DosVersion GetCBreak Intr SetFAttr
Exec GetDate Keep SetFTime
FExpand GetFAttr line SetIntVec
FindFirst GetFTime MsDos SetTime

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


8QLWp JUDSK

Arc GetFillSettins ImageSize SetAllPalette


Bar GetGraphMode InitGraph SetAspectRatio
Bar3D GetImage InstallUserDriver SetBkColor
Circle GetLineSettings InstallUserFont SetColor
ClearDevice GetMaxColor Line SetFillPattern
ClearViewPort GetMaxMode LineRel SetFillStyle
CloseGraph GetMaxX LineTo SetGraphBufSize
DetectGraph GetMaxY MoveRel SetGraphMode
Drawpoly GetModeName MoveTo SetLineStyle
Ellipse GetModeRange OutText SetPalette
FillEllipse GetPalette OutTextXY SetRGBPalette
FillPoly GetPaletteSize PieSlice SetTextJustify
FloodFill GetPixel PutImage SetTextStyle
GetArcCoords GetTextSettings PutPixel SetUserCharSize
GetAspectRatio GetViewSettings Rectangle SetViewPort
GetBkColor GetX RegisterBGIdriver SetVisualPage
GetColor GetY RegisterBGIfont SetWriteMode
GetDefaultPalette GraphDefaults RestoreCrtMode TextHeight
GetDriverName GraphErrorMsg Sector TextWidth
GetFillPattern GraphResult SetActivePage

6WUXFWXUH GH GRQQpHV
Tableau : ARRAY[...] of ... ;
Enregistrement: RECORD...END;
Ensemble: SET OF... ;

7\SH GH YDULDEOHV
byte : 0..255 (8 bits non sign)
shortint: -128..127 (8 bits sign)
word: 0..65535 (16 bits non sign)
integer: -32768..32767 (16 bits sign)
longint: -2147483648..2147486647 (32 bits sign)
real: 2.9e-39..1.7e38 (64 bits sign) 11-12 chiffres
double 5.0e-324..1.7e308 15 chiffres

boolean : boolen qui vaut true ou False


file...of : fichier de...
string : chane de caractre (maximum 255)
string[num] : chane de caractre de longueur num
char : caractre (les 256 caractres ASCII)
pointer : pointeur ;

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


([HPSOH GH GpFODUDWLRQ GHV FRQVWDQWHV
YDULDEOHV HW W\SHV
Const
Euro = 6.55957 ;
Com1 = $3f8 ; { valeur hexadcimale }
Type
Lettres = set of 'A'..'Z';
Coord = record
Nom : string[15];
Prenom : string[15];
Age: byte ;
Remarque : string;
End;
Var
Ok : boolean ;
x,y : real ;
maj : lettres ;
i,j,k: integer ;
agenda : file of coord ;
personne : coord ;
c : Char;
chaine : string ;
vecteur1 : array[1..10] of real ;
coule : array[1..10,'a'..'j'] of boolean ;

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


7DEOH $6&,, VWDQGDUG ELWV
DEC HEX CHAR DEC HEX CHAR DEC HEX CHAR DEC HEX CHAR
0 00 NULL 32 20 64 40 @ 96 60 '
1 01 SOH 33 21 ! 65 41 A 97 61 a
2 02 STX 34 22 " 66 42 B 98 62 b
3 03 ETX  35 23 # 67 43 C 99 63 c
4 04 EOT  36 24 $ 68 44 D 100 64 d
5 05 ENQ 37 25 % 69 45 E 101 65 e
6 06 ACK  38 26 & 70 46 F 102 66 f
7 07 BEL 39 27 ' 71 47 G 103 67 g
8 08 BS  40 28 ( 72 48 H 104 68 h
9 09 TAB  41 29 ) 73 49 I 105 69 i
10 0A LF 42 2A * 74 4A J 106 6A j
11 0B VT 43 2B + 75 4B K 107 6B k
12 0C FF
44 2C , 76 4C L 108 6C l
13 0D CR 45 2D - 77 4D M 109 6D m
14 0E SO 46 2E . 78 4E N 110 6E n
15 0F SI 47 2F / 79 4F O 111 6F o
16 10 DLE 48 30 0 80 50 P 112 70 p
17 11 DC1 49 31 1 81 51 Q 113 71 q
18 12 DC2  50 32 2 82 52 R 114 72 r
19 13 DC3  51 33 3 83 53 S 115 73 s
20 14 DC4 52 34 4 84 54 T 116 74 t
21 15 NAK 53 35 5 85 55 U 117 75 u
22 16 SYN 54 36 6 86 56 V 118 76 v
23 17 ETB  55 37 7 87 57 W 119 77 w
24 18 CAN  56 38 8 88 58 X 120 78 x
25 19 EM  57 39 9 89 59 Y 121 79 y
26 1A SUB 58 3A : 90 5A Z 122 7A z
27 1B ESC 59 3B ; 91 5B [ 123 7B {
28 1C  FS 60 3C < 92 5C \ 124 7C |
29 1D  GS 61 3D = 93 5D ] 125 7D }
30 1E  RS 62 3E > 94 5E ^ 126 7E ~
31 1F  US 63 3F ? 95 5F _ 127 7F

'(& 'pFLPDO +(; +H[DGpFLPDO &+$5 &DUDFWqUH

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


7DEOH $6&,, VHFRQGH PRLWLp pWHQGXH ELWV

DEC HEX CHAR DEC HEX CHAR DEC HEX CHAR DEC HEX CHAR
128 80 160 A0 192 C0 224 E0



129 81 161 A1 193 C1 225 E1


130 82 162 A2 194 C2  226 E2



131 83 163 A3 195 C3 227 E3


132 84 164 A4 196 C4  228 E4
133 85 165 A5 197 C5  229 E5
134 86 166 A6  198 C6  230 E6
135 87 167 A7  199 C7 231 E7
136 88 168 A8 200 C8
232 E8
137 89 169 A9 201 C9 233 E9
138 8A 170 AA 202 CA 234 EA
139 8B 171 AB 203 CB  235 EB
140 8C 172 AC 204 CC  236 EC
141 8D 173 AD 205 CD  237 ED
142 8E 174 AE 206 CE  238 EE
143 8F 175 AF 207 CF  239 EF
144 90 176 B0  208 D0  240 F0
145 91 177 B1  209 D1  241 F1
146 92 178 B2  210 D2  242 F2
147 93 179 B3  211 D3  243 F3
148 94 180 B4  212 D4  244 F4
149 95 181 B5  213 D5  245 F5
150 96 182 B6  214 D6 246 F6
151 97 183 B7 ! 215 D7 " 247 F7
152 98 184 B8 # 216 D8 $ 248 F8
153 99 185 B9 % 217 D9 & 249 F9
154 9A 186 BA ' 218 DA ( 250 FA
155 9B 187 BB ) 219 DB * 251 FB
156 9C 188 BC + 220 DC , 252 FC -

157 9D 189 BD . 221 DD / 253 FD


158 9E 190 BE 0 222 DE 1 254 FE 2

159 9F 191 BF 3 223 DF 4 255 FF

'(& 'pFLPDO +(; +H[DGpFLPDO &+$5 &DUDFWqUH

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


1RWHV SHUVRQQHOOHV

(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH


(67,7 7XUER 3DVFDO eOpPHQWV GH EDVH ' '8%2,6 3DJH

You might also like