Professional Documents
Culture Documents
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
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
352&('85(6 )21&7,216
$11(;(6
+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
([HPSOH GH SURJUDPPH
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
'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
/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 ;
Begin
{ je suis un autre commentaire mais
sur deux lignes }
instruction_1 ;
...
instruction_n ;
end.
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
/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&,,
/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
,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 }
$IIHFWDWLRQ
c := 'a' ;
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
IDFXOWDWLI
6RUWLH
'pILQLWLRQV
([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
([HPSOHV
Rsultat de laffichage :
pi := 3.14159 ;
writeln(pi); 3.141590000E+00
writeln(pi:20); 3.141590000E+00
writeln(pi:0); 3.1E+00
&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
([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
,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 }
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
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
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
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
,QVWUXFWLRQ LIWKHQ
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.
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 ;
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
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
Ecrire
tapez une touche Lire 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.
,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.
,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$,(
ou
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
Lire n som 0
i : 0 n som som + i*(i+1)/2
Program exemple_repetition_entiere ;
Uses Crt ;
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.
Ecrire Entrez la
table apprendre
3RXU
Ecrire i*table=result
result i * table
Program exemple_repetition_entiere_2 ;
Uses Crt ;
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.
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
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
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
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
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
([HPSOH
,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
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.
'pILQLWLRQ
/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
,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.
begin
for i := 0 to 2 do
for j := 0 to 3 do
v[i,j] := 0 ;
...
end.
(QWUpH HW VRUWLH
Program exemple ;
begin
end.
/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
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.
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
$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 ;
var x : personne ;
...
/ RSpUDWHXU GH FKDPS
/ RSpUDWHXU GH FKDPS HVW SODFp HQWUH OH QRP GH OD YDULDEOH VWUXFWXUpH HW FHOXL GX FKDPS
FRQFHUQp
1RPB9DULDEOH 1RPB&KDPS
x.nom := De Wyliers ;
x.prenom := Carnage Mazamet ;
x.age := 33 ;
x.solde := -3200.45 ;
x.sincere := false ;
([HPSOH
'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
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 ;
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
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
/D V\QWD[H HVW
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
begin
cube := x * x * x ;
end ;
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
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.
Program calcul_volume_cube ;
Var
e : real ; (* longueur de l'arte du cube *)
volume : real ;
begin
cube := x * x * x ;
end ;
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.
program para ;
Var
long, larg, haut : real ;
volume : 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.
Program calcul_volume_cube_version_2 ;
Var e : real ;
begin
write(Longueur de l'arte : );
readln(e) ;
cube := e * e * e ;
end ;
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.
program para2 ;
Var
long, larg, haut : real ;
volume : 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.
Program calcul_volume_cube_version_2_bis ;
procedure cube ;
Var e : real ;
begin
write(Longueur de l'arte : );
readln(e) ;
volume := e * e * e ;
end ;
begin
cube ; { Appel de la procedure 'cube' }
writeln(Le volume du cube est : , volume);
end.
/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 ;
{ ----------------------------------------------------------------------- }
var e : real ;
begin
write(Arte ? );
readln(e);
first := second(e) ; (* appel de la fonction 'second' *)
end ;
{ ----------------------------------------------------------------------- }
begin
second := x*x*x ;
end ;
begin
v := first ;
write(Volume = ,v) ;
end.
/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 ;
{ -------------------------- }
{ ------------------------------ }
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
/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
{ -------------------------- } { -------------------------- }
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.
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
([HPSOH
Program factoriel ;
Uses crt ;
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
1RP kJH
HU qPH
(QUHJLVWUHPHQW qPH (QUHJLVWUHPHQW (QUHJLVWUHPHQW (QLqPH
SRLQWHXU SRLQWHXU SRLQWHXU (QUHJLVWUHPHQW
SRLQWHXU Q
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) }
Begin
assign(f,'toto.dat');
rewrite(f);
close(f);
end ;
begin
assign(f,'C:\docs\toto.dat');
reset(f); { Le pointeur de fichier se positionne }
... { automatiquement sur lenregistrement 0 }
close(f);
end ;
begin
assign(f,'toto.dat');
{$i-} reset(f) {$i+};
if ioresult <> 0 then write(le fichier est absent) ;
...
close(f);
end ;
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 ;
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 ;
eof(f) :
filesize(f) :
seek(f,position) :
3URFpGXUH
procedure NomdelaProcdure ( paramtre1 ; ... )
begin
instruction ;
...
end;
)RQFWLRQ
function NomdelaFonction ( paramtre1 ; ... ) : typedevariable ;
begin
instruction ;
...
end;
([HPSOH GH SURJUDPPH
Program calcul_interet_simple ;
Uses Crt ;
begin
interet := capital * taux / 100 ;
interet := interet * duree / 12 ; { formule arrondie : I=C*t*d/12 }
calcul_i := interet ;
end;
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;
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
8QLWp &UW
8QLWp GRV
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
DEC HEX CHAR DEC HEX CHAR DEC HEX CHAR DEC HEX CHAR
128 80 160 A0 192 C0 224 E0