Algorithmique and Programmation Resume
Algorithmique and Programmation Resume
•
En Pa sca l :
•
Syn t a x e : CON ST < n om _ con st a n t e > = < va le u r _ con st a n t e > ;
Ex e m ple s : CON ST annee = 2018 ;
g = 9.81 ;
ville = ‘Chebba’ ;
exist e = True ;
let t re = ‘B’ ;
•
En Pa sca l :
•
Syn t a x e : VAR < n om _ va r ia ble > : t ype _ va r ia ble ;
Ex e m ple s : VAR Code : Byt e ;
Heure : I nt eger ;
Nb : LongI nt ;
Moy : Real ;
Phrase : St ring ;
Let : Char ;
Test : Boolean ;
D e u x iè m e for m u la t ion
EN ALGORI TH M I QUE EN P ASCAL
Ex e m ple s : TYPE JOURS = ( lundi, m ardi, m ercredi, j eudi, vendredi, sam edi, dim anche) ;
VOI TURE = ( renault , cit roen, peugeot , ford, t oyot a) ;
VOYELLE = ( A, E, I , O, U, Y) ;
N .B.
Une valeur énum érée ne peut pas êt r e une valeur appart enant à un t ype prédéfini ( ent ier, réel,
caract ère, chaîne, booléen) .
Ex e m ple s : TYPE JOURS = ( lundi, m ardi, m ercredi, j eudi, vendredi, sam edi, dim anche) ;
JOUR_TRAVAI L = lundi . . vendredi ;
MOI S = 1 . . 12 ;
ALPHA = ‘a’ . . ‘z’ ;
Ex e m ple s :
Ex e m ple s :
An a lyse / Algor it h m e Pa sca l Ré su lt a t su r l'é cr a n
A 10 A: = 10 ;
Ecr ir e ( A) W r it e ( A) ; 10Bonj our
Ecr ir e ( " Bonj our" ) W r it e ln ( 'Bonj our') ;
Ecr ir e ( 2 * 8 DI V 3) W r it e ln ( 2 * 8 DI V 3) ; 5
Ecr ir e ( 5 > 6) W r it e ( 5 > 6) ; False
Ecr ir e ( 3, " * " , A, " = ", 3* A) W r it e ln ( 3, '* ', A, ' = ', 3* a) ; 3* 10 = 30
N.B. : Si traitement2 est vide, on parle de structure conditionnelle simple réduite qui a la
syntaxe suivante :
En An a lyse En Algor it h m iqu e En Pa sca l
Nom _obj et = [ init ialisat ion( s) ] init ialisat ion( s) ................. ; { init ialisat ion( s) }
Si condit ion( s) Si condit ion( s) I F condit ion( s)
Alor s Trait em ent Alor s Trait em ent TH EN Be gin
Fin Si Fin Si Trait em ent ;
En d ;
[Link]ère formulation :
En An a lyse En Algor it h m iqu e En Pa sca l
Nom _obj et = [ init ialisat ion( s) ] init ialisat ion( s) ............; { init ialisat ion( s) }
REPETER REPETER REPEAT
Trait em ent Trait em ent Trait em ent ;
JUSQU'A condit ion( s) JUSQU'A condit ion( s) UN TI L condit ion( s) ;
{ j usqu’à condit ion soit vraie}
[Link]ème formulation :
En An a lyse En Algor it h m iqu e En Pa sca l
Nom _obj et = [ init ialisat ion( s) ] init ialisat ion( s) ............; { init ialisat ion( s) }
TAN T QUE condit ion( s) FAI RE TAN T QUE condit ion( s) FAI RE W H I LE condit ion( s) DO
Trait em ent Trait em ent Be gin
Fin Ta n t qu e Fin Ta n t qu e Trait em ent ;
{ Tant que condit ion est vraie En d ;
répét er le t rait em ent }
- En Pa sca l :
PROCED URE Nom _procédure ( pf 1 : t ype 1 ; Var pf 2 : t ype 2 ; … ; pf n : t ype n ) ;
• L’a ppe l :
- En a n a lyse
Nom _obj et = PROC Nom _procédur e ( pe 1 , pe 2 , … , pe n )
- En a lgor it h m iqu e :
PROC Nom _procédur e ( pe 1 , pe 2 , … , pe n )
- En Pa sca l :
Nom _procédure ( pe 1 , pe 2 , … , pe n ) ;
- En Pa sca l :
Fu n ct ion Nom _fonct ion ( pf 1 : t ype 1 ; pf 2 : t ype 2 ; … ; pf n : t ype n ) : Type_r ésult at ;
• L’a ppe l :
- En a n a lyse e t a lgor it h m iqu e :
• Nom _obj et FN Nom _fonct ion ( pe 1 , pe 2 , … , pe n )
• Ecrire ( FN Nom _fonct ion ( pe 1 , pe 2 , … , pe n ) )
• Si FN Nom _fonct ion ( pe 1 , pe 2 , … , pe n ) Alors …
- En Pa sca l :
• Nom _obj et : = Nom _fonct ion ( pe 1 , pe 2 , … , pe n ) ;
• Writ eln ( Nom _fonct ion ( pe 1 , pe 2 , … , pe n ) ) ;
• I f Nom _fonct ion ( pe 1 , pe 2 , … , pe n ) Then …
Transférer les éléments pairs d’un tableau T, dans T1 et les impairs dans T2
0) DEF PROC Transfert (T : tab ; n : entier ; var Procedure Transfert (T : tab ; n : integer ; var t1,t2 :
t1,t2 : tab ; var c1,c2 : entier) tab ; var c1,c2 : integer) ;
1) c1 0 ; c2 0 Var i :integer ;
Pour i de 1 à n Faire Begin
Si t[i] mod 2 = 0 c1 := 0 ;
Alors c1 c1 +1 c2 := 0 ;
T1[c1] T[i] For i :=1 To n Do
Sinon c2 c2 +1 If t[i] mod 2 = 0
T2[c2] T[i] Then begin
Fin Si c1 := c1 +1 ;
Fin Pour T1[c1] := T[i] ;
2) Fin Transfert end
Else begin
c2 := c2 +1 ;
T2[c2] := T[i] ;
end ;
End ;
Ranger les éléments négatifs d’un tableau T à gauche et les positifs à droite
0) DEF PROC Ranger (Var T : tab ; n : entier) Procedure Ranger (Var T : tab ; n : integer) ;
1) K 0 Var i, k, aux : integer ;
Pour i de 1 à n Faire Begin
Si t[i] < 0 k := 0 ;
Alors k k +1 For i :=1 To n Do
Aux t[i] If t[i] < 0
t[i] t[k] Then begin
t[k] aux k := k +1 ;
Aux := t[i] ;
Fin Si
Fin Pour t[i] := t[k] ;
2) Fin Transfert t[k] := aux ;
end ;
End ;
Factorielle de N ( n ! )
0) DEF FN Fact (n : entier) : entier long Function Fact (n : integer) : Longint ;
1) F 1 Var i : integer ;
2) Pour i de 2 à n Faire f : longint ;
FF*i Begin
Fin Pour f:=1 ;
3) Fact F For i:=2 To n Do f := f * i ;
4) Fin Fact Fact := f ;
End ;
Calcul de Xn (n ≥ 0)
0) DEF FN Puissance (x, n : entier) : entier Function Puissance (x, n : integer) : integer ;
1) p 1 Var i , p : integer ;
Pour i de 1 à n Faire Begin
pp*x p:=1 ;
Fin Pour For i:=1 To n Do p := p * x ;
2) puissance p puissance := p ;
3) Fin Puissance End ;
Vérifier si un nombre est premier
0) DEF FN Premier (n : entier) : booléen Function Premier (N:integer) : boolean ;
1) nbdiv 1 Var i ,nbdiv : integer;
2) Pour i de 1 à (n div 2) Faire Begin
Si (n mod i = 0) nbdiv:=1;
Alors nbdiv nbdiv+1 For i:=1 To (n div 2) Do
Fin Si If (n mod i = 0)
Fin Pour Then nbdiv := nbdiv + 1 ;
3) premier (nbdiv = 2) premier := nbdiv = 2 ;
4) Fin Premier End ;
PPCM (a,b)
0) DEF FN PPCM ( a, b : entier) : entier Function PPCM (a ,b :integer) : integer ;
1) i 1 Var i : integer;
2) Tant que ((a*i) mod b) ≠ 0 Faire Begin
i i+1 i := 1 ;
Fin Tant que While (a*i) mod b <> 0 Do i:=i+1 ;
3) ppcm a*i
4) Fin PPCM ppcm := a*i ;
End;
PGCD_Euclide (a,b)
0) DEF FN PGCD_Euclide ( a, b : entier) : entier Function PGCD_Euclide (a ,b :integer) : integer ;
1) Tant que b ≠ 0 Faire Var r : integer;
r a mod b Begin
a b While b<>0 Do
br Begin
Fin Tant que r := a mod b;
2) Pgcd_euclide a a := b;
3) Fin PGCD_Euclide b := r;
End;
PGCD_Euclide := a;
End;
Nom Algorithmique Code en Pascal Type de x Type du résultat Rôle Exemples en Pascal
Abs (x) ABS (x) entier/réel type de x valeur absolue de x ABS (-4) = 4 ; ABS (-5.7) = 5.7
Carré (x) SQR (x) entier/réel type de x carré de x SQR (2) = 4 ; SQR (2.5) = 6.25
Racine Carré (x) SQRT (x) entier/réel réel racine carrée de x SQRT (25) = 5.00 ; SQRT (6.25) = 2.5
Cos (x) COS (x) entier/réel réel cosinus de x (x en radians) COS (PI/2) = 0.00
Sin (x) SIN (x) entier/réel réel sinus de x (x en radians) SIN (PI/2) = 1.00
Tang (x) TAN (x) entier/réel réel tangente de x (x en radians) TAN (PI) = 0.00
Ln (x) LN (x) entier/réel réel logarithme népérien de x LN (1) = 0.00
Exp (x) EXP (x) entier/réel réel exponentiel de x EXP (0) = 1.00
TRUNC (3.15) = 3
Tronc (x) TRUNC (x) réel entier partie entière de x
TRUNC (-3.15) = -3
Ent (x) INT (x) réel réel partie entière de x INT (3.15) = 3.00
ROUND (9.49) = 9
Arrondi (x) ROUND (x) réel entier entier le plus proche de x
ROUND (9.5) = 10
Frac (x) FRAC (x) réel réel partie décimale de x FRAC (2.45) = 0.45
Aléa RANDOM - réel renvoie un réel aléatoire dans [0, 1[ 0.36 ; 0.075 ; 0.98 ; 0.02 ; …
Aléa (x) RANDOM (x) entier (mot) entier (mot) renvoie un entier aléatoire dans [0, x-1] Random (7) renvoie un entier dans [0, 6]
VRAI si x est impair ODD (3) = True
Odd (x) ODD (x) entier long booléen
FAUX si x est pair ODD (8) = False
INC (x) ; l’équivalent de x x +1
INC(x, n) ; l’équivalent de x x + n
Inc (x) INC (x) ; scalaire type de x Procédure, qui incrémente x
DEC (x) ; l’équivalent de x x - 1
DEC(x, n) ; l’équivalent de x x - n
Dec (x) DEC (x) ; scalaire type de x Procédure, qui décrémente x
PRED (5) = 4 ; PRED (‘C’) = ‘B’
Pred (x) PRED (x) scalaire type de x prédécesseur de x, s’il existe
PRED (True) = False
SUCC (5) = 6 ; SUCC (‘C’) = ‘D’
Succ (x) SUCC (x) scalaire type de x successeur de x, s’il existe
SUCC (False) = True
Chr (x) CHR (x) octet caractère caractère dont le code ASCII est x CHR (65) = ‘A’ ; CHR (97) = ‘a’
Ord (x) ORD (x) scalaire entier long rang de la valeur x ORD(‘A’)=65 ; ORD(18)=18 ; ORD(true)=1
UPCASE (‘b’) = ‘B’ ; UPCASE (‘R’) = ‘R’
Majus (x) UPCASE (x) caractère caractère majuscule de x, s’il est possible
UPCASE (‘4’) = ‘4’ ; UPCASE (‘?’) = ‘?’
* Un type scalaire est un ensemble fini et ordonné de valeurs (Entier, Caractère, Booléen, Enuméré, intervalle).