Documente Academic
Documente Profesional
Documente Cultură
En Pascal :
Syntaxe : CONST <nom_constante> = <valeur_constante> ;
Exemples : CONST annee = 2015 ;
g = 9.81 ;
ville = ‘Chebba’ ;
existe = True ;
lettre = ‘B’ ;
En Pascal :
Syntaxe : VAR <nom_variable> : type_variable ;
Exemples : VAR Code : Byte ;
Heure : Integer ;
Nb : LongInt ;
Moy : Real ;
Phrase : String ;
Let : Char ;
Test : Boolean ;
T.D.O. VAR
Objet Type/Nature Rôle Ident_tableau : ARRAY [Binf..Bsup] OF
Ident_tableau Tableau de taille et de Type_éléments ;
type_éléments
MOY Tableau de 30 Réels VAR Moy : array [1..30] of real ;
Deuxième formulation
EN ALGORITHMIQUE EN PASCAL
Exemples : TYPE JOURS = (lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche) ;
VOITURE = (renault, citroen, peugeot, ford, toyota) ;
VOYELLE = (A, E, I, O, U, Y) ;
N.B.
Une valeur énumérée ne peut pas être une valeur appartenant à un type prédéfini (entier, réel,
caractère, chaîne, booléen).
Exemples : TYPE JOURS = (lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche) ;
JOUR_TRAVAIL = lundi . . vendredi ;
MOIS = 1 . . 12 ;
ALPHA = ‘a’ . . ‘z’ ;
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 (Word) entier (Word) 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 booléen
FAUX si x est pair ODD (8) = False
INC (x) ; l’équivalent de x x +1
Inc (x) INC (x) ; scalaire type de x Procédure, qui incrémente x
INC(x, n) ; l’équivalent de x x + n
DEC (x) ; l’équivalent de x x - 1
Dec (x) DEC (x) ; scalaire type de x Procédure, qui décrémente x
DEC(x, n) ; l’équivalent de x x - n
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 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).
LES STRUCTURES DE DONNEES Prof : SOUSSI Ezzeddine
ANNEXE II
Les fonctions standard relatives aux chaînes de caractères
Syntaxe Type
Rôle Exemples en Pascal
En Algorithmique En Pascal Paramètres d’entrée Résultat
Retourne un entier représentant la Chaîne Entier Lg := Length ('L''école'); lg = 7
Long (ch) Length (ch) longueur de ch. Lg := Length ('') ; lg = 0
Long (ch) = ord (ch[0]) Lg := Length (' ') ; lg = 1
Chaînes Entier P := Pos ('T', 'ATTENTION') ; P = 2
Retourne la première position de la
Pos (ch1, ch2) Pos (ch1, ch2) P := Pos ('gra', 'Program') ; P = 4
chaîne ch1 dans la chaîne ch2.
P := Pos ('R', 'Professeur') ; P = 0
Chaîne, Entier, Entier Chaîne CH 1:= Copy ('Langage', 4, 3) ;
Retourne une sous chaîne de n
CH1 = 'gag'
Sous_Chaîne (ch, p, n) Copy (ch, p, n) caractères à partir de la position p
CH 2:= Copy ('Bonjour', 4, 10) ;
de la chaîne ch.
CH2 = 'jour'
Retourne la concaténation de Chaînes Chaîne CH1 := 'Janvier' ;
Concat (ch1, ch2, …) Concat (ch1, ch2, …) plusieurs chaînes en une seule. C'est CH2 := Concat ('14', ch1, '2011') ;
l'équivalent de ch1+ch2+… CH2 = '14Janvier2011'
Exemples :
Analyse / Algorithme Pascal Résultat sur l'écran
A 10 A:=10 ;
Ecrire (A) Write (A) ; 10Bonjour
Ecrire ("Bonjour") Write ('Bonjour') ;
Ecrire (2 * 8 DIV 3) Writeln (2 * 8 DIV 3) ; 5
Ecrire (5 > 6) Write (5 > 6) ; False
Ecrire (3, "*", A, " = ", 3*A) Writeln (3, '*', A, ' = ', 3*a) ; 3*10 = 30
Exemples :
N.B. : Si traitement2 est vide, on parle de structure conditionnelle simple réduite qui a la
syntaxe suivante :
En Analyse En Algorithmique En Pascal
Nom_objet = [initialisation(s)] initialisation(s) ................. ; {initialisation(s)}
Si condition(s) Si condition(s) IF condition(s)
Alors Traitement Alors Traitement THEN Begin
Fin Si Fin Si Traitement ;
End ;
a.Première formulation :
En Analyse En Algorithmique En Pascal
Nom_objet = [initialisation(s)] initialisation(s) ............; {initialisation(s)}
REPETER REPETER REPEAT
Traitement Traitement Traitement ;
JUSQU'A condition(s) JUSQU'A condition(s) UNTIL condition(s) ;
{jusqu’à condition soit vraie}
b.Deuxième formulation :
En Analyse En Algorithmique En Pascal
Nom_objet = [initialisation(s)] initialisation(s) ............; {initialisation(s)}
TANT QUE condition(s) FAIRE TANT QUE condition(s) FAIRE WHILE condition(s) DO
Traitement Traitement Begin
Fin Tant que Fin Tant que Traitement ;
{Tant que condition est vraie End ;
répéter le traitement}
L’entête de la définition :
- En analyse et algorithmique :
DEF PROC Nom_procédure (pf1 :type1 ; Var pf2 :type2 ; … ; pfn :typen)
- En Pascal :
PROCEDURE Nom_procédure (pf1 :type1 ; Var pf2 :type2 ; … ; pfn :typen) ;
L’appel :
- En analyse
Nom_objet = PROC Nom_procédure (pe1 , pe2 , … , pen )
- En algorithmique :
PROC Nom_procédure (pe1 , pe2 , … , pen )
- En Pascal :
Nom_procédure (pe1 , pe2 , … , pen ) ;
L’entête de la définition :
- En analyse et algorithmique :
DEF FN Nom_fonction (pf1 :type1 ; pf2 :type2 ; … ; pfn :typen) : Type_résultat
- En Pascal :
Function Nom_fonction (pf1 :type1 ; pf2 :type2 ; … ; pfn :typen) : Type_résultat ;
L’appel :
- En analyse et algorithmique :
Nom_objet FN Nom_fonction (pe1 , pe2 , … , pen )
Ecrire (FN Nom_fonction (pe1 , pe2 , … , pen ))
Si FN Nom_fonction (pe1 , pe2 , … , pen ) Alors …
- En Pascal :
Nom_objet := Nom_fonction (pe1 , pe2 , … , pen ) ;
Writeln (Nom_fonction (pe1 , pe2 , … , pen )) ;
If Nom_fonction (pe1 , pe2 , … , pen ) Then …
Factorielle de N (n !)
DEF FN Fact (n : entier) : entier long Function Fact (n : integer) : Longint ;
Résultat = Fact Var i : integer ;
Fact F f : longint ;
F = [ F 1 ] Begin
Pour i de 2 à n Faire f:=1 ;
FF*i For i:=2 To n Do f := f * i ;
Fin Pour Fact := f ;
Fin Fact End ;
Calcul de Xn (n ≥ 0)
DEF FN Puissance (x, n : entier) : entier Function Puissance (x, n : integer) : integer ;
Résultat = puissance Var i , p : integer ;
puissance p Begin
p = [ p 1 ] p:=1 ;
Pour i de 1 à n Faire For i:=1 To n Do p := p * x ;
pp*x puissance := p ;
Fin Pour End ;
Fin Puissance
* : facultatif