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 FRPSLODWHXU

8Q SURJUDPPH HQ 3DVFDO WRWR SDU H[HPSOH SHXW rWUH pFULW DYHF XQ WUDLWHPHQW GH WH[WH XQ pGLWHXU GH 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 " QRQ &RGH REMHW (GLWHXU GH OLHQV

&RPSLODWLRQ HW pGLWLRQ GH OLHQV

/D YHUVLRQ HQ ODQJDJH PDFKLQH GXQ SURJUDPPH VDSSHOOH DXVVL OH FRGH REMHW GX SURJUDPPH /pGLWHXU GH OLHQ OLQNHU HVW XQ SURJUDPPH 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 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

3URJUDPPH H[pFXWDEOH WRWR H[H

/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 ;

&RUSV

begin 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 SRLQW SRLQW YLUJXOH GRXEOH SRLQW SRLQW GLQWHUURJDWLRQ DSRVWURSKH JXLOOHPHW SDUHQWKqVH JDXFKH SDUHQWKqVH GURLWH FURFKHW RXYUDQW FURFKHW IHUPDQW VLJQH SOXV pWRLOH VLJQH PRLQV LQIpULHXU ! VXSpULHXU VLJQH pJDO ^ DFFRODGH RXYUDQWH ` DFFRODGH IHUPDQWH

"

> @

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

7\SHV GH GRQQpHV pOpPHQWDLUHV


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

byte : shortint: word: integer: longint: real: double boolean : file...of : string : string[num] : char : pointer :

0..255 (8 bits non sign) -128..127 (8 bits sign) 0..65535 (16 bits non sign) -32768..32767 (16 bits sign) -2147483648..2147486647 (32 bits sign) 2.9e-39..1.7e38 (64 bits sign) 6 chiffres signif 5.0e-324..1.7e308 15 chiffres signif true ou False fichier de... chane de caractre (maximum 255) chane de caractre de longueur num caractre (les 256 caractres ASCII) 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 ([HPSOH
Const Euro = 6.55957 ; Com1 = $3f8 ; {entier exprim en valeur hexadcimale } Base = 100 ; Touche = a ; Message = My name is Bond, James Bond !

W\SHV GH FRQVWDQWHV HQWLqUH j YLUJXOH IORWWDQWH GH W\SH FDUDFWqUH HW GH W\SH FKDvQH

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 7\SH GH GRQQpH 'pILQLWLRQ GHV YDULDEOHV L LQW F FKDU I UHDO

,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 ; i, j : integer ; f : real ; { { { Dfinition d'une variable char } Dfinition de deux variables int } Dfinition d'une variable float }

begin c := i := c := j := f := end.

'Z' ; 1 ; 'A' ; i ; -3.14 ;

{ { { { {

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

/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 ... ; uses ... ; const ... ; type ... ; var ... ; { en-tte du programme}* { { { { Utilisation Dclaration Dclaration Dclaration des des des des units / bibliothques }* constantes }* types }* variables}*

procedure ... ; function ... ;

{ dfinition des procdures }* { dfinition des fonctions }*

{ programme principal : OBLIGATOIRE } begin 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 ([HPSOHV
Write(Bonjour) ; Writeln( cher ami) ; a := 2+3 ; Writeln(La somme 2 + 3 donne ,a) ;

DUJXPHQWBQ OHV DUJXPHQWV j DIILFKHU

/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); writeln(pi:20); writeln(pi:0); 3.141590000E+00 3.141590000E+00 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); writeln(pi:20:5); writeln(pi:0:4); 3.141590000E+00 3.14159 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 ([HPSOH
Write(Entrez Readln(a) ; Writeln(vous Write(Entrez Readln(b,c,d) un nombre entier : ) ; avez entr la nombre ,a) ; 3 nombre rels : ) ; ;

DUJXPHQWBQ OHV DUJXPHQWV j DIILFKHU

/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 RSpUDWHXUV GH FRPSDUDLVRQ RSpUDWHXUV ORJLTXHV RSpUDWHXUV GH ELWV RSpUDWHXUV GDIIHFWDWLRQ RSpUDWHXUV GH FKDvQHV 3ULRULWpV RSpUDWHXU FRQGLWLRQQHO RSpUDWHXU SDUHQWKqVH RSpUDWHXU GH WDLOOH RSpUDWHXU GDGUHVVH RSpUDWHXU GH SRLQWHXU RSpUDWHXUV UHODWLRQQHOV

/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
+ * / div mod -

6LJQLILFDWLRQ
Addition Soustraction Multiplication Division Division entire Modulo (reste) Ngation

H[HPSOH
a+b a-b a*b a/b a div b a mod b -a

%LQDLUHV

8QDLUH H[HPSOHV 5HPDUTXH

PRG ,O QH[LVWH SDV GRSpUDWHXU SXLVVDQFH HQ 3DVFDO

GLY

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


= <> <= >= < > Oprande Oprande Oprande Oprande Oprande Oprande 1 1 1 1 1 1

6LJQLILFDWLRQ
gal oprande 2 ? diffrent de oprande 2 ? infrieur ou gal oprande 2 ? suprieur ou gal oprande 2 ? infrieur oprande 2 ? suprieur oprande 2 ?

([HPSOH
a=b a <> b a<=b a>=b a<b 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 and or xor not H[HPSOH 6LJQLILFDWLRQ (7 28 28 H[FOXVLI 121 ORJLTXH ([HPSOH (x>2)and(x<10) (y>0) and (c=a) (t=0) xor (u=3) not (fini)

%LQDLUH 8QDLUH

/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 and or xor not 6LJQLILFDWLRQ (7 28 28H[ 121 ORJLTXH ([HPSOH 12 and 43 donne 8 12 or 43 donne 47 12 xor 43 donne 39 Not(12) donne 245

%LQDLUH 8QDLUH

/HV RSpUDWHXUV GH GpFDODJH GH ELWV 6LJQLILFDWLRQ 2SpUDWHXU shr 'pFDODJH GH \ ELWV YHUV OD GURLWH shl 'pFDODJH GH \ ELWV YHUV OD JDXFKH ([HPSOH 8 shr 3 donne 1 2 shl 9 donne 1024

%LQDLUH

(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 /D V\QWD[H HVW
if expression_logique then instruction ;
cond

VL
Instruction

H[HPSOH
Exemple_test

Ecrire entrez un nombre entier

VL
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 then begin instruction_1 ; ... instruction_N ; end ;

VL
cond

Instruction_1

Instruction_N

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 ; OU if expression_logique then begin instruction_A1 ; ... instruction_An ; end else begin instruction_B1 ; ... instruction_Bn ; end ;
cond

&RQGLWLRQ Instruction si vrai

Instruction si faux

VL

Instruction_A1

Instruction_An

Instruction_B1

Instruction_Bn

(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 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 ;

FKRL[ RQ

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

1 9 0 Ecrire Touche 1 9

a,e,i, o,u,y

A Z

a,e,i, o,u,y

Ecrire Touche 0

Ecrire voyelle

Ecrire lettre Majuscule

Ecrire symbole dopration

Program exemple_tests_multiples ; Uses Crt ; Var a : CHAR ; begin write(Tapez une touche: ) a := readkey ; case a of 0 : 1..9 : a,e,i,o,u,y : A..Z : -,+,*,/,= : else writeln(autre touche) end ; end.

writeln(Touche 0 ) ; writeln(Touche 1 9) ; writeln(voyelle) ; writeln(lettre majuscule) ; writeln(symbole dopration) ; ;

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 while condition_logique do begin instruction_1 ; ... instruction_N ; end ; tantque &RQGLWLRQ Instruction

&RQGLWLRQ Instruction_1

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

Rsultat : -4 ; -3 ; -2 ; -1

$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 ou for variable_entire := debut downto ou for variable_entire := debut to fin do begin instruction_1 ; ... instruction_N ; end ; fin do instruction ; fin do instruction ;

2X ELHQ GRZQWR

/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 nombre entier > 0

3RXU
Lire n som 0 i : 0 n

Ecrire som

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
result 0 i : 0 10 Ecrire i*table=result result i * table

Lire 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 instruction ; until condition_logique ; OU repeat begin instruction_1 ; ... instruction_N ; end until condition_logique ; Jusqu' Ce que Instruction

&RQGLWLRQ

Jusqu' Ce que

Instruction_1

Instruction_N

&RQGLWLRQ

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); x := x-1 ; until x=0 ; end.

(* affichage des nombres de 10 1 *)

,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 W\SH LQWHJHU 2Q SHXW OHV UHSUpVHQWHU VRXV IRUPH GH OLJQHV HW FRORQQHV 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.

pOpPHQWV GH

@ @ @

N> N> N>

@ @ @

N> N> N>

@ @ @

N> N> N>

@ @ @

(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 for j:= 0 to 3 do readln(v[i,j]); { lignes { colonnes } }

(* 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
V> @

H
V> @

O
V> @

O
V> @

H
V> @ V> @

F
V> @

K
V> @

D
V> @ V>

v
@ V>

Q
@ V>

H
@

/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) ; S := toto ; S[1] := m ; Write(S) ; end.

{ rien nest affich : la chane est vide }

{ la chane de caractre contient moto }

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

Honest Abe Lincoln }

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

{ S contient BCD }

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

{ S contient

ABCDE }

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 ; x : personne ;

var ...

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 ; [Dfinitions des variables locales] [Dclaration des proc et fonc supplmentaires] begin Instructions ; &RUSV GH OD IRQFWLRQ nom := ... ; end ;

(Q WrWH GH OD IRQFWLRQ

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...)] ; [Dfinitions des variables locales] [Dclaration des proc et fonc supplmentaires] begin Instructions ; &RUSV GH OD SURFpGXUH end ;

(Q WrWH GH OD SURFpGXUH

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 { programme principale } begin ... v := cube(2.0) ; ... end.

Transmission du paramtre effectif au paramtre formel X prend la valeur 2.0

Paramtre effectif de la fonction cube

([HPSOH

3URJUDPPH FDOFXODQW OH YROXPH GXQ FXEH

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

{ ----------------------- 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 ; function second(x :real) : real ; forward ; { dclaration globale } { des fonctions }

{ ----------------------------------------------------------------------- } function first ; { dfinition de la fonction 'first' } var e : real ; begin write(Arte ? ); readln(e); first := second(e) end ;

; (* appel de la fonction 'second' *)

{ ----------------------------------------------------------------------- } 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 j := a + 1 ; a := a * 2 ; k := pred(k) ; Writeln( a , i, j , k ); j := j 1 ; End ; { ------------------------------ } Begin i := 5 ; j := 9 ; k := B ; Writeln( i , j , k ); Fait(i) ; Writeln( i , j , k ); End.

Rsultat de laffichage: 5 10 5 9 5 5 B 6 A

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_2 ; Uses Crt ; : INTEGER ; Var a, b : INTEGER ;

Program Variable_1 ; Uses Crt ; Var a, b

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

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

Procedure calc2 ( x : INTEGER ) ; Var y : INTEGER ; Begin y := x * x ; Writeln(x,y) ; x := x + 1 ; y := y + 1 ; End ;

Procedure calc2 (var x:INTEGER ) ; Var y : INTEGER ; Begin y := x * x ; Writeln(x,y) ; x := x + 1 ; y := y + 1 ; End ;

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

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

Rsultat de laffichage: 7 7 7 3 49 3

Rsultat de laffichage: 7 7 8 3 49 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 1RP 3UpQRP 7pOpSKRQH denregistrements dans un fichier : kJH
%287$1 7UDLQ
HU

3,==$ ,ROR

9$=, 6WDV
qPH

%RQG -DPHV

(QUHJLVWUHPHQW SRLQWHXU

qPH (QUHJLVWUHPHQW SRLQWHXU

(QUHJLVWUHPHQW SRLQWHXU

(QLqPH (QUHJLVWUHPHQW SRLQWHXU Q

Le type record et la dclaration dun fichier type coord = record nom prenom age tel end ; : : : : string ; string ; integer ; string ;

var personne : coord ; f : file of coord ; { g : text ; { fichier denregistrement } 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); read(f,personne) fichier { le pointeur de fichier se positionne 0 } { aprs cette instruction, le pointeur de

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 ... ; uses const type var ... ... ... ... ; ; ; ; { { { { { Tte du programme } Utilisation Dclaration Dclaration Dclaration des des des des bibliothques } constantes } types } variables}

procedure function

... ; { Procdures } ... ; { Fonctions }

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

3URFpGXUH
procedure NomdelaProcdure ( paramtre1 ; ... ) var nomdevariable : typedevariable ; begin instruction ; ... end; { dclaration facultative }

)RQFWLRQ
function NomdelaFonction ( paramtre1 ; ... ) : typedevariable ; var nomdevariable : typedevariable ; begin instruction ; ... end; { dclaration facultative }

(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 Var euro = 6.55957 ; 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 and array asm assembler begin case const constructor destructor div do downto else end export exports external far file for forward function goto if implementation in index inherited inline interface interrupt label library mod near nil not object of or packed private procedure program public record repeat Resident set shl shr string then to type unit until uses var virtual while with xor

8QLWp &UW
AssignCrt ClrEol ClrScr Delay DelLine GotoXY HighVideo InsLine KeyPressed LowVideo NormVideo NoSound ReadKey Sound TextBackground TextColor TextMode WhereX WhereY

8QLWp GRV
DiskFree DiskSize DosExitCode DosVersion Exec FExpand FindFirst FindNext FSearch Fsplit GetCBreak GetDate GetFAttr GetFTime GetIntVec GetTime GetVerify Intr Keep line MsDos PackTime SetCBreak SetDate SetFAttr SetFTime SetIntVec SetTime SetVerify SwapVectors UnpackTime

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

3DJH

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

6WUXFWXUH GH GRQQpHV

Tableau : Enregistrement: Ensemble:

ARRAY[...] of ... ; RECORD...END; SET OF... ;

7\SH GH YDULDEOHV

byte : shortint: word: integer: longint: real: double

0..255 (8 bits non sign) -128..127 (8 bits sign) 0..65535 (16 bits non sign) -32768..32767 (16 bits sign) -2147483648..2147486647 (32 bits sign) 2.9e-39..1.7e38 (64 bits sign) 11-12 chiffres 5.0e-324..1.7e308 15 chiffres boolen qui vaut true ou False fichier de... chane de caractre (maximum 255) chane de caractre de longueur num caractre (les 256 caractres ASCII) pointeur ;

boolean : file...of : string : string[num] : char : pointer :

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

3DJH

([HPSOH GH YDULDEOHV HW W\SHV


Const Euro = 6.55957 ; Com1 = $3f8 ; Type

GpFODUDWLRQ

GHV

FRQVWDQWHV

{ valeur hexadcimale }

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


DEC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 CHAR HEX 00 NULL 01 SOH 02 STX 03 ETX 04 EOT 05 ENQ 06 ACK 07 BEL 08 BS 09 TAB 0A LF 0B VT 0C FF 0D CR 0E SO 0F SI 10 DLE 11 DC1 12 DC2 13 DC3 14 DC4 15 NAK 16 SYN 17 ETB 18 CAN 19 EM 1A SUB 1B ESC 1C FS 1D GS 1E RS 1F US

             

ELWV
HEX 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F CHAR @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ DEC 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 HEX 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F CHAR ' a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~

DEC 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

HEX 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F

CHAR ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?

DEC 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

'(&

'pFLPDO

+(;

+H[DGpFLPDO

&+$5

&DUDFWqUH

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

3DJH

7DEOH $6&,, VHFRQGH PRLWLp pWHQGXH


DEC 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 HEX 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F CHAR DEC 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 HEX A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF CHAR

ELWV
CHAR
-


 

'

DEC 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223

HEX C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF

CHAR

"

&

DEC 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

HEX E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE 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