SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
Algorithmique & Programmation Prof. FENNI-S Page 1/ 12
Algorithmique & Programmation (Résumé)
I-Les structures de données
I.1) Déclaration des constantes
En Algorithm ique :
Tableau de Déclaration des Objets
Objets Type/ Nature Rôle
Général Nom Constante = valeur de la constante Rôle
Exem ples
Annee
G
Ville
Existe
Lettre
Constante = 2018
Constante = 9.81
Constante = "Chebba"
Constante = Vrai
Constante = "B"
En Pascal :
• Syntaxe : CONST < nom _ constante> = < valeur_ constante> ;
• Exem ples : CONST annee = 2018 ;
g = 9.81 ;
ville = ‘Chebba’ ;
existe = True ;
lettre = ‘B’ ;
I.2) Déclaration des variables
En Algorithm ique :
T.D.O
Objets Type/ Nature Rôle
Général Nom Type de la variable Rôle
Exem ples
Code
Heure
Nb
Moy
Phrase
Let
Test
Octet
Entier
Entier Long
Réel
Chaîne de caractères
Caractère
Booléen
En Pascal :
• Syntaxe : VAR < nom _ variable> : type_ variable ;
• Exem ples : VAR Code : Byte ;
Heure : Integer ;
Nb : LongInt ;
Moy : Real ;
Phrase : String ;
Let : Char ;
Test : Boolean ;
Algorithmique & Programmation Prof. FENNI-S Page 2/ 12
I.3) Déclaration d’un tableau à une dimension
Prem ière form ulation
EN ALGORI THMI QUE
T.D.O.
Objet Type/ Nature Rôle
Ident_tableau Tableau de taille et de
type_éléments
MOY Tableau de 30 Réels
EN PASCAL
VAR
Ident_tableau : ARRAY [ Binf..Bsup] OF
Type_éléments ;
Exem ple :
VAR Moy : array [ 1..30] of real ;
Deuxièm e form ulation
EN ALGORI THMI QUE
Tableau de déclarations des nouveaux types
Type
Nom_type = tableau de taille et de type_éléments
Tab = tableau de 100 chaînes de caractères
T.D.O.
Objet Type/ Nature Rôle
Ident_tableau Nom_type
T Tab
EN PASCAL
TYPE
Nom_type = ARRAY [ Binf..Bsup] OF
Type_éléments ;
VAR
Ident_tableau : Nom_type ;
Exem ple :
Type Tab = Array [ 1..100] of string ;
Var T : Tab ;
I.4) Le type Enuméré
En algorithm ique :
Tableau de déclaration des nouveaux types
Type
Nom_du_type = (valeur1, valeur2, valeur3, …)
En pascal : TYPE Nom_du_type = (valeur1, valeur2, valeur3, …) ;
Exem ples : 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).
I.5) Le type Intervalle
En algorithm ique :
Tableau de déclaration des nouveaux types
Type
Nom_du_type = borne inférieur . . borne supérieur
En pascal : TYPE Nom_du_type = borne inférieur . . borne supérieur ;
Exem ples : TYPE JOURS = (lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche) ;
JOUR_TRAVAIL = lundi . . vendredi ;
MOIS = 1 . . 12 ;
ALPHA = ‘a’ . . ‘z’ ;
Algorithmique & Programmation Prof. FENNI-S Page 3/ 12
II- Les structures simples
II.1) L’opération d’affectation
Analyse / Algorithm e Pascal
Variable  Valeur Variable := Valeur ;
Exem ples :
Analyse
et Algorithm e
Pascal Com m entaire Résultat
A  5
B  A + 3
A  A + 1
C  long("lycée")/ 2
D  4 < 6
A : = 5 ;
B : = A + 3 ;
A : = A + 1 ;
C : = length(‘lycée’)/ 2 ;
D : = 4 < 6 ;
La variable A reçoit la valeur 5
B reçoit la valeur de l’expression A+ 3
A reçoit sa valeur actuelle incrémentée de 1
C reçoit la valeur de l’expression arithmétique …
D reçoit la valeur de l’expression logique …
A = 5
B = 8
A = 6
C = 2.5
D = Vrai
II.2) L’opération d’entrée (lecture, saisie)
Analyse Algorithm e Pascal
Variable = Donnée Lire (variable) ReadLn (variable) ;
Var1 , Var2 , Var3 = Données Lire (var1, var2, var3) Readln (var1, var2, var3) ;
Variable = Donnée ( "Message") Ecrire ("Message"), Lire (variable) W rite ('Message') ; Readln (variable) ;
II.3) L’opération de sortie (écriture, affichage)
Analyse / Algorithm e Pascal
Ecrire ("Message", Nom_objet, Expression) W rite ('Message', Nom_objet, Expression)
Exem ples :
Analyse / Algorithm e Pascal Résultat sur l'écran
A  10
Ecrire (A)
Ecrire ("Bonjour")
A: = 10 ;
W rite (A) ;
W riteln ('Bonjour') ;
10Bonjour
Ecrire (2 * 8 DIV 3)
Ecrire (5 > 6)
W riteln (2 * 8 DIV 3) ;
W rite (5 > 6) ;
5
False
Ecrire (3, "* ", A, " = ", 3* A) W riteln (3, '* ', A, ' = ', 3* a) ; 3* 10 = 30
Algorithmique & Programmation Prof. FENNI-S Page 4/ 12
III-Les structures de contrôles conditionnelles
III.1) La structure de contrôle conditionnelle simple
En Analyse En Algorithm ique En Pascal
Nom_objet = [ initialisation(s)]
Si condition(s)
Alors Traitement 1
Sinon Traitement 2
Fin Si
initialisation(s)
Si condition(s)
Alors Traitement 1
Sinon Traitement 2
Fin Si
................. ; { initialisation(s)}
I F condition(s)
THEN Begin
Traitement 1 ;
End
ELSE Begin
Traitement 2 ;
End ;
N.B. : Si traitement2 est vide, on parle de structure conditionnelle simple réduite qui a la
syntaxe suivante :
En Analyse En Algorithm ique En Pascal
Nom_objet = [ initialisation(s)]
Si condition(s)
Alors Traitement
Fin Si
initialisation(s)
Si condition(s)
Alors Traitement
Fin Si
................. ; { initialisation(s)}
I F condition(s)
THEN Begin
Traitement ;
End ;
III.2) La structure de contrôle conditionnelle généralisée
En Analyse En Algorithm ique En Pascal
Nom_objet = [ initialisation(s)]
Si condition1 Alors Trait1
Sinon Si condition2 Alors Trait2
Sinon Si condition3 Alors Trait3
Sinon Si …………………………
Sinon Si condition n-1
Alors Trait n-1
Sinon Trait n
Fin Si
initialisation(s)
Si condition1 Alors Trait1
Sinon Si condition2 Alors Trait2
Sinon Si condition3 Alors Trait3
Sinon Si …………………………
Sinon Si condition n-1
Alors Trait n-1
Sinon Trait n
Fin Si
............ ; { initialisation(s)}
I F condition1 THEN Begin
Trait1;
End
ELSE I F condition2 THEN Begin
Trait2;
End
ELSE I F …………………………
ELSE I F condition n-1 THEN Begin
Trait n-1;
End
ELSE Begin
Trait n;
End ;
III.2) La structure de contrôle conditionnelle à choix multiples
En Analyse En Algorithm ique En Pascal
Nom_objet = [ initialisation(s)]
Selon sélecteur Faire
valeur1 : trait1
valeur2 : trait2
valeur5, valeur8 : trait3
valeur10..valeur30 : trait4
...
valeur n-1 : trait n-1
Sinon trait n
Fin Selon
initialisation(s)
Selon sélecteur Faire
valeur1 : trait1
valeur2 : trait2
valeur5, valeur8 : trait3
valeur10..valeur30 : trait4
...
valeur n-1 : trait n-1
Sinon trait n
Fin Selon
....................; { initialisation(s)}
CASE sélecteur OF
valeur1 : trait1 ;
valeur2 : trait2 ;
valeur 5, valeur 8 : trait3 ;
valeur 10..valeur 30 : trait4 ;
...
valeur n-1 : trait n-1 ;
Else trait n ;
END ;
Algorithmique & Programmation Prof. FENNI-S Page 5/ 12
IV- Les structures de contrôles itératives
IV.1) La structure de contrôle itérative complète
En Analyse En Algorithm ique En Pascal
Nom_objet = [ initialisation(s)]
POUR Cp de Vi à Vf FAI RE
Traitement
Fin Pour
initialisation(s)
POUR Cp de Vi à Vf FAI RE
Traitement
Fin Pour
............ ; { initialisation(s) }
FOR Cp: = Vi TO/ DOW NTO Vf DO
Begin
Traitement ;
End ;
{TO lorsque Vi ≤ Vf}
{DOWNTO lorsque Vi ≥ Vf}
IV.2) La structure de contrôle itérative à condition d’arrêt
a.Première formulation :
En Analyse En Algorithm ique En Pascal
Nom_objet = [ initialisation(s)]
REPETER
Traitement
JUSQU'A condition(s)
initialisation(s)
REPETER
Traitement
JUSQU'A condition(s)
{ jusqu’à condition soit vraie}
............; { initialisation(s)}
REPEAT
Traitement ;
UNTI L condition(s) ;
b.Deuxième formulation :
En Analyse En Algorithm ique En Pascal
Nom_objet = [ initialisation(s)]
TANT QUE condition(s) FAI RE
Traitement
Fin Tant que
initialisation(s)
TANT QUE condition(s) FAI RE
Traitement
Fin Tant que
{ Tant que condition est vraie
répéter le traitement}
............; { initialisation(s)}
W HI LE condition(s) DO
Begin
Traitement ;
End ;
Algorithmique & Programmation Prof. FENNI-S Page 6/ 12
V-Les sous programmes
V.1) Les procédures
• Une procédure est un sous-program m e qui permet la résolution d’un sous-problème précis et
qui peut transmettre zéro, un ou plusieurs résultats au programme appelant.
• L’entête de la définition :
- En algorithm ique :
0 ) 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 algorithm ique :
PROC Nom_procédure (pe1 , pe2 , … , pen )
- En Pascal :
Nom_procédure (pe1 , pe2 , … , pen ) ;
V.2) Les fonctions
• Une fonction est un sous-program m e qui permet la résolution d’un sous-problème précis et doit
retourner (renvoyer) un seul résultat de type sim ple (entier, caractère, réel, booléen, chaîne,
énuméré) au programme appelant. Il s’agit d’un cas particulier des procédures.
• L’entête de la définition :
- En algorithm ique :
0 ) 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 algorithm ique :
• 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 …
Algorithmique & Programmation Prof. FENNI-S Page 7/ 12
Sous Programmes Usuels
En Algorithme En Pascal
Saisir un entier N tel que 5 ≤ N ≤ 500
0) DEF PROC Saisie (VAR N : Entier)
1) Répéter
Ecrire ("Donner un entier "), Lire(N)
Jusqu’à (5 ≤ N) ET (N ≤ 500)
2) Fin Saisie
Procedure Saisie (Var n : integer) ;
Begin
Repeat
Write (‘Donner un entier ’);
Readln (n);
Until (5 <= N) AND (N <= 500) ;
End ;
Saisir une chaîne de caractère en majuscule
0) DEF PROC Saisie (VAR ch : Chaîne)
1) Répéter
Ecrire ("Saisir une chaîne "), Lire(CH)
i1
Tant que (ch[i] dans ["A".."Z"]) et
(i ≤ long(ch)) Faire ii+1
Jusqu’à i > long(ch)
2) Fin Saisie
Procedure Saisie (Var ch : String) ;
Var i : integer;
Begin
Repeat
Writeln (‘Saisir une chaîne ’) ; Readln (ch) ;
i:=1;
While (ch[i] in ['A'..'Z']) and (i<=length(ch)) do
i:=i+1;
Until i > length(ch);
End ;
Saisir une chaîne de caractères distincts
0) DEF PROC Saisie (VAR ch : Chaîne)
1) Répéter
Ecrire ("Saisir une chaîne "), Lire (ch)
i0
Répéter
ii+1
verif  pos (ch[i],ch) = i
Jusqu’à (verif=faux) ou (i=long(ch))
Jusqu’à verif
2) Fin Saisie
Procedure Saisie (Var ch : String) ;
Var i : integer;
verif : Boolean;
Begin
Repeat
Writeln (‘Saisir une chaîne ’) ; Readln (ch) ;
i := 0 ;
Repeat
i := i+1 ;
Verif := pos(ch[i],ch) = i ;
Until (verif=false) or (i = length(ch)) ;
Until verif ;
End ;
Saisir une chaîne formée exactement des quatre lettres A, I, P et F
0) DEF PROC Saisie (VAR ch : Chaîne)
1) Répéter
Ecrire ("Ch = "), Lire (ch)
valid  (pos(‘'I’',ch)≠0) et (pos(‘'F’',ch)≠0) et
(pos(‘'A’',ch)≠0) et (pos(‘'P’',ch)≠0)
et (long(ch)=4)
Jusqu’à valid
2) Fin Saisie
Procedure saisie (Var ch:string);
Var valid : Boolean;
Begin
Repeat
Write ('ch = ');
Readln (ch);
valid := (pos('I',ch)<>0) and (pos('F',ch)<>0) and
(pos('A',ch)<>0) and (pos('P',ch)<>0)
and (length(ch)=4) ;
Until valid ;
End;
Remplir un tableau T par N entiers impairs
0) DEF PROC Remplir (N : Entier ; VAR T : Tab)
1) Pour i de 1 à n Faire
Répéter
Ecrire ("T[", i, "] = "), Lire (T[i])
Jusqu’à (T[i] mod 2) ≠ 0
Fin Pour
2) Fin Remplir
Procedure Remplir (N : integer ; Var T : Tab) ;
Var i : integer;
Begin
For i:=1 To n Do
Repeat
Write (‘T[‘,i,’]= ’) ;
Readln (T[i]) ;
Until (T[i] mod 2) <> 0 ;
End ;
Algorithmique & Programmation Prof. FENNI-S Page 8/ 12
Remplir un tableau par des entiers au hasard entre [a,b]
0) DEF PROC Remplir (VAR T : Tab ; N : Entier)
1) Lire(a, b)
2) Pour i de 1 à n Faire
T[i] a + Aléa (b-a+1)
Fin Pour
3) Fin Remplir
• Un réel au hasard entre [a,b[
T[i] a+ (b-a) * Aléa
• Une lettre majuscule au hazard
T[i] chr (65 + Aléa(26))
Procedure Remplir (Var T : Tab ; N : integer) ;
Var a, b, i : integer;
Begin
Readln (a,b);
Randomize ;
For i:=1 To n Do
T[i] := a + Random (b-a+1);
End ;
• Un réel au hasard entre [a,b[
T[i] := a+ (b-a) * Random
• Une lettre majuscule au hazard
T[i] := chr (65 + Random(26))
Remplir un tableau T par N éléments en ordre croissant
0) DEF PROC Saisie (N : Entier ; VAR T : Tab)
1) Ecrire ("T[1] : "), Lire(T[1])
2) Pour i de 2 à n Faire
Répéter
Ecrire ("T[", i, "] : "), Lire (T[i])
Jusqu’à T[i] > T[i-1]
Fin Pour
3) Fin Saisie
Procedure Saisie (n : integer ; var t : tab) ;
Var i : integer;
Begin
Write ('T[1] : ') ; Readln (T[1]) ;
For i:=2 To n Do
Repeat
Write ('T[',i,'] : ') ;
Readln (T[i]) ;
Until T[i] > T[i-1];
End ;
Remplir un tableau T par N éléments distincts
0) DEF PROC Saisie (N : Entier ; VAR T : Tab)
1) Pour i de 1 à n Faire
Répéter
Ecrire (''Saisir la case '', i), Lire (T[i])
j 1
Tant que T[i] ≠ T[j] Faire
j j+1
Fin Tant que
Jusqu’à (j = i)
Fin Pour
2) Fin Saisie
Procedure Saisie (n : Integer ; Var T: Tab);
Var i, j : Integer;
Begin
For i:=1 To n Do
Repeat
Writeln ('Saisir la case ', i); Readln (T[i]);
j:=1;
While T[i] <> T[j] Do j:=j+1 ;
Until (j = i) ;
End;
Remplir un tableau T par N entiers formés des chiffres non nuls
0) DEF PROC Saisie (N : Entier ; VAR T : Tab)
1) Pour i de 1 à n Faire
Répéter
Ecrire ("T[", i, "]= "), Lire (T[i])
Conch (T[i], ch)
Jusqu’à pos("0",ch)= 0
Fin Pour
2) Fin Saisie
Procedure Saisie (n : Integer ; Var T : TAB) ;
Var i : Integer ;
ch : String ;
Begin
For i:=1 To n Do
Repeat
Write (‘T[‘,i,’]= ’) ; Readln (T[i]) ;
Str (T[i], ch);
Until pos('0',ch) = 0 ;
End;
Affichage d’un tableau T de N éléments
0) DEF PROC Affiche (N : Entier ; T : Tab)
1) Pour i de 1 à n Faire
Ecrire (T[i], " ")
Fin Pour
2) Fin Affiche
Procedure Affiche (n : Integer ; T : TAB) ;
Var i : Integer ;
Begin
FOR i :=1 TO n DO Write (T[i], ‘ ‘) ;
End ;
Algorithmique & Programmation Prof. FENNI-S Page 9/ 12
Affichage d’un tableau, 10 valeurs par ligne
0) DEF PROC Affiche (T:tab ; n:entier)
1) Pour i de 1 à n Faire
Ecrire (T[i], " ")
Si (i mod 10) = 0
Alors Retour_à_la_ligne
Fin Si
Fin Pour
2) Fin Affiche
Procedure Affiche (T:tab ; n:integer);
Var i : integer;
Begin
For i:=1 To n Do
begin
write(T[i], " ");
If (i mod 10) = 0 then writeln ;
end;
End ;
Permutation de deux variables réelles
0) DEF PROC Permut (VAR x, y : Réel)
1) AUX  Y
2) Y  X
3) X AUX
4) Fin Permut
Procedure Permut (VAR x, y : Real) ;
Var aux : Real ;
Begin
Aux := Y ;
Y := X ;
X := Aux ;
End ;
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
t1,t2 : tab ; var c1,c2 : entier)
1) c1 0 ; c2  0
Pour i de 1 à n Faire
Si t[i] mod 2 = 0
Alors c1 c1 +1
T1[c1] T[i]
Sinon c2 c2 +1
T2[c2] T[i]
Fin Si
Fin Pour
2) Fin Transfert
Procedure Transfert (T : tab ; n : integer ; var t1,t2 :
tab ; var c1,c2 : integer) ;
Var i :integer ;
Begin
c1 := 0 ;
c2 := 0 ;
For i :=1 To n Do
If t[i] mod 2 = 0
Then begin
c1 := c1 +1 ;
T1[c1] := T[i] ;
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)
1) K 0
Pour i de 1 à n Faire
Si t[i] < 0
Alors k k +1
Aux t[i]
t[i]  t[k]
t[k]  aux
Fin Si
Fin Pour
2) Fin Transfert
Procedure Ranger (Var T : tab ; n : integer) ;
Var i, k, aux : integer ;
Begin
k := 0 ;
For i :=1 To n Do
If t[i] < 0
Then begin
k := k +1 ;
Aux := t[i] ;
t[i] := t[k] ;
t[k] := aux ;
end ;
End ;
Insertion d’un élément X dans un tableau T à une position p
0) DEF PROC Insertion (Var T : tab ; n, x, p :
entier)
1) Pour i de (n+1) à (p+1) Faire
T[i]  T[i-1] {décalage des éléments vers droite}
Fin Pour
2) T[p]  X {insertion de X à la position p}
3) Fin Insertion
Procedure Insertion ( Var T : tab ; n, x, p : integer) ;
Var i :integer ;
Begin
For i := (n+1) DownTo (p+1) Do T[i] := T[i-1] ;
T[p] := X ;
End;
Algorithmique & Programmation Prof. FENNI-S Page 10/ 12
La somme de n réels dans un tableau
0) DEF FN Somme (T : tab ; n : entier) : réel
1) S 0
Pour i de 1 à n Faire
S S + T[i]
Fin Pour
2) Somme  S
3) Fin Somme
Function Somme (T : tab ; n : integer) : real ;
Var i : integer ;
s : real;
Begin
s:=0 ;
For i:=1 To n Do s:=s + T[i] ;
Somme := s ;
End ;
Factorielle de N ( n ! )
0) DEF FN Fact (n : entier) : entier long
1) F 1
2) Pour i de 2 à n Faire
F  F * i
Fin Pour
3) Fact  F
4) Fin Fact
Function Fact (n : integer) : Longint ;
Var i : integer ;
f : longint ;
Begin
f:=1 ;
For i:=2 To n Do f := f * i ;
Fact := f ;
End ;
Calcul de Xn
(n ≥ 0)
0) DEF FN Puissance (x, n : entier) : entier
1) p 1
Pour i de 1 à n Faire
p  p * x
Fin Pour
2) puissance  p
3) Fin Puissance
Function Puissance (x, n : integer) : integer ;
Var i , p : integer ;
Begin
p:=1 ;
For i:=1 To n Do p := p * x ;
puissance := p ;
End ;
Vérifier si un nombre est premier
0) DEF FN Premier (n : entier) : booléen
1) nbdiv 1
2) Pour i de 1 à (n div 2) Faire
Si (n mod i = 0)
Alors nbdiv  nbdiv+1
Fin Si
Fin Pour
3) premier  (nbdiv = 2)
4) Fin Premier
Function Premier (N:integer) : boolean ;
Var i ,nbdiv : integer;
Begin
nbdiv:=1;
For i:=1 To (n div 2) Do
If (n mod i = 0)
Then nbdiv := nbdiv + 1 ;
premier := nbdiv = 2 ;
End ;
PPCM (a,b)
0) DEF FN PPCM ( a, b : entier) : entier
1) i 1
2) Tant que ((a*i) mod b) ≠ 0 Faire
i  i+1
Fin Tant que
3) ppcm  a*i
4) Fin PPCM
Function PPCM (a ,b :integer) : integer ;
Var i : integer;
Begin
i := 1 ;
While (a*i) mod b <> 0 Do i:=i+1 ;
ppcm := a*i ;
End;
PGCD_Euclide (a,b)
0) DEF FN PGCD_Euclide ( a, b : entier) : entier
1) Tant que b ≠ 0 Faire
r  a mod b
a  b
b  r
Fin Tant que
2) Pgcd_euclide  a
3) Fin PGCD_Euclide
Function PGCD_Euclide (a ,b :integer) : integer ;
Var r : integer;
Begin
While b<>0 Do
Begin
r := a mod b;
a := b;
b := r;
End;
PGCD_Euclide := a;
End;
Algorithmique & Programmation Prof. FENNI-S Page 11/ 12
La somme de chiffres d’un entier
0) DEF FN Som_chif (n : entier) : entier
1) som 0
2) Répéter
R n mod 10
Som  som + r
N  n div 10
Jusqu’à (n = 0)
3) som_chif  som
4) Fin Som_chif
Function Som_Chif ( N : integer ) : integer ;
Var som, r : integer ;
Begin
som:=0 ;
Repeat
r := n mod 10 ;
Som := som + r ;
N := n div 10 ;
Until n=0 ;
Som_chif := som ;
End;
Vérifier si une chaîne est palindrome
0) DEF FN Palindrome (ch : chaîne) : Booléen
1) i 0
2) Répéter
i  i+1
verif  ch[i] = ch[long(ch) – i + 1]
Jusqu’à (verif=faux) ou (i = long(ch) div 2)
3) palindrome  verif
4) Fin Palindrome
Function palindrome (ch:string):boolean;
Var i:integer;
verif:boolean;
Begin
i:=0;
repeat
i:=i+1;
verif := ch[i] = ch[length(ch)-i+1] ;
until (verif=false) or (i=length(ch) div 2) ;
Palindrome := verif;
End;
Recherche de la première valeur minimum dans un tableau de n réels
0) DEF FN Minimum (n : Entier ; T : Tab) : Réel
1) min T[1]
Pour i de 2 à n Faire
Si (T[i] < min)
Alors min  T[i]
Fin Si
Fin Pour
2) Minimum  min
3) Fin Minimum
Function Minimum (n : Integer ; T : Tab) : Real ;
Var i : Integer ;
Min : Real ;
Begin
Min := T[1] ;
For i :=2 To n Do
If (T[i] < min) Then min := T[i] ;
Minimum := min ;
End ;
Recherche de la dernière position d’un élément X dans un tableau de n réels
0) DEF FN Recherche (X : réel ; n : Entier ; T :
Tab) : Entier
1) p 0 ; in+1
Répéter
ii - 1
Si T[i]=X Alors p  i Fin Si
Jusqu’à (p≠0) OU (i=1)
2) Recherche  p
3) Fin Recherche
Function Recherche (X:Real ; N:Integer ; T:Tab) :
Integer ;
Var i, p : Integer ;
Begin
p := 0 ;
i := n+1;
Repeat
i := i - 1;
If T[i]=X Then p := i ;
Until (p<>0) OR (i=1) ;
Recherche := p ;
End ;
Fréquence d’un élément X dans un tableau de N entiers
0) DEF FN Frequence (x,n :entier ;T:Tab) : entier
1) f0
2) Pour i de 1 à n Faire
Si (T[i] = X)
Alors f  f + 1
Fin Si
Fin Pour
3) frequence  f
4) Fin Frequence
Function Frequence (x, n :integer ; T:Tab):integer;
Var i, f : Integer ;
Begin
f := 0 ;
For i :=1 To n Do
If (T[i] = X) Then f := f+1 ;
Frequence := f ;
End ;
Algorithmique & Programmation Prof. FENNI-S Page 12/ 12
STRUCTURE GENERALE D’UN PROGRAMME TURBO PASCAL
PROGRAM Nom_programme ; {En-tête du programme}
Uses WinCrt, WinDos, … ; {Utilisation des unités / bibliothèques}
Const {Déclaration des constantes ; Exemples}
Annee = 2018 ; Pi = 3.14 ; Message = 'Bonjour' ;
… ;
Type {Déclaration des types ; Exemples}
Tab = Array [1..100] of Real ;
Jours_semaine = (lun, mar, mer, jeu, ven, sam, dim) ;
Let_Majus = 'A'..'Z' ;
Nom = String [25] ;
… ;
Var {Déclaration des variables ; Exemples}
X, Y, Z : Real ; I, J : Integer ; Let : Char ; Test : Boolean ; Ch : String ;
Ville : Array [1..10] of String ;
T1, T2 : Tab ;
Jour : Jours_semaine ;
Couleurs : (Rouge, Vert, Bleu, Jaune) ;
Mois : 1..12 ;
… ;
{================= Définition des procédures ==========================}
Procedure Nom_procédure (pf1 : type1 ; VAR pf2 : type2 ; … ; VAR pfn : typen) ;
{Déclarations locales : Const, Type, Var, Function, Procedure, ...}
Begin
Instructions de la procédure ;
End ;
{================== Définition des fonctions ==========================}
Function Nom_fonction (pf1 : type1 ; pf2 : type2 ; … ; pfn : typen) : Type_résultat ;
{Déclarations locales : Const, Type, Var, Function, Procedure, ...}
Begin
Instructions de la fonction ;
Nom_fonction := résultat ;
End ;
{========================= P. P. ==================================}
BEGIN {Début du programme principal}
{Bloc principal du programme avec appel des procédures et des fonctions}
Instructions ;
Nom_procédure (pe1, pe2, … pen) ;
……………..……… Nom_fonction (pe1, pe2, … pen) …………….……
Instructions ;
END. {Fin du programme}
D
é
c
l
a
r
a
t
i
o
n
s
g
l
o
b
a
l
e
s
LES STRUCTURES DE DONNEES  Prof : FENNI-S
ANNEXE I
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
Tronc (x) TRUNC (x) réel entier partie entière de x
TRUNC (3.15) = 3
TRUNC (-3.15) = -3
Ent (x) INT (x) réel réel partie entière de x INT (3.15) = 3.00
Arrondi (x) ROUND (x) réel entier entier le plus proche de x
ROUND (9.49) = 9
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]
Odd (x) ODD (x) entier long booléen
VRAI si x est impair
FAUX si x est pair
ODD (3) = True
ODD (8) = False
Inc (x) INC (x) ; scalaire type de x Procédure, qui incrémente x
INC (x) ; l’équivalent de x  x +1
INC(x, n) ; l’équivalent de x  x + n
Dec (x) DEC (x) ; scalaire type de x Procédure, qui décrémente x
DEC (x) ; l’équivalent de x  x - 1
DEC(x, n) ; l’équivalent de x  x - n
Pred (x) PRED (x) scalaire type de x prédécesseur de x, s’il existe
PRED (5) = 4 ; PRED (‘C’) = ‘B’
PRED (True) = False
Succ (x) SUCC (x) scalaire type de x successeur de x, s’il existe
SUCC (5) = 6 ; SUCC (‘C’) = ‘D’
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
Majus (x) UPCASE (x) caractère caractère majuscule de x, s’il est possible
UPCASE (‘b’) = ‘B’ ; UPCASE (‘R’) = ‘R’
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 : FENNI-S
ANNEXE II
Les fonctions standard relatives aux chaînes de caractères
Syntaxe
Rôle
Type
Exemples en Pascal
En Algorithmique En Pascal Paramètres d’entrée Résultat
Long (ch) Length (ch)
Retourne un entier représentant la
longueur de ch.
Long (ch) = ord (ch[0])
Chaîne/Caractère Entier Lg := Length ('L''école');  lg = 7
Lg := Length ('') ;  lg = 0
Lg := Length (' ') ;  lg = 1
Pos (ch1, ch2) Pos (ch1, ch2)
Retourne la première position de la
chaîne ch1 dans la chaîne ch2.
Chaîne/Caractère Entier P := Pos ('T', 'ATTENTION') ;  P = 2
P := Pos ('gra', 'Program') ;  P = 4
P := Pos ('R', 'Professeur') ;  P = 0
Sous_Chaîne (ch, p, n) Copy (ch, p, n)
Retourne une sous chaîne de n
caractères à partir de la position p de
la chaîne ch.
Chaîne/Caractère,
Entier, Entier
Chaîne CH 1:= Copy ('Langage', 4, 3) ;
 CH1 = 'gag'
CH 2:= Copy ('Bonjour', 4, 10) ;
 CH2 = 'jour'
Concat (ch1, ch2, …) Concat (ch1, ch2, …)
Retourne la concaténation de plusieurs
chaînes en une seule. C'est l'équivalent
de ch1+ch2+…
Chaîne/Caractère Chaîne CH2 := ' Janvier' ; CH1 :='14' ;
CH3 := Concat (ch1, ch2, '2011') ;
 CH3 = '14 Janvier2011'
Les procédures standard relatives aux chaînes de caractères
Syntaxe
Rôle
Type
Exemples en Pascal
En Algorithmique En Pascal Paramètres d’entrée Résultat
Efface (ch, p, n) Delete (ch, p, n) ;
Supprime N caractères de CH à partir
de la position P.
Chaîne, Entier, Entier Chaîne CH := 'Merci' ;
Delete (CH, 4, 2) ;  CH = 'Mer'
Insère (ch1, ch2, p) Insert (ch1, ch2, p) ;
Insère une chaîne CH1 dans une
autre CH2 à la position P.
Chaîne/Caractère,
Chaîne, Entier
Chaîne CH1 := 'DA' ;
CH2 := 'DIC' ;
Insert (CH1, CH2, 3) ;  CH2 = 'DIDAC'
ConvCh (n, ch) Str (n, ch) ;
Convertit une valeur numérique N en
une chaîne CH.
Numérique, Chaîne Chaîne STR (2018, CH) ; CH = '2018'
STR (14.52, CH) ; CH = '1.4520000000E+01'
STR (14.52:8:3, CH) ; CH = '14.520'
Valeur (ch, n, err) Val (ch, n, err) ;
Convertit une chaîne de caractères
CH en une valeur numérique N. De
plus, elle fournit un code d'erreur
ERR qui indique si l'opération s'est
déroulée correctement.
Chaîne/Caractère,
Numérique, Entier
Numérique,
Entier
VAL ('2010', N, Err) ; N = 2010 et Err = 0
VAL ('0045', N, Err) ; N = 45 et Err = 0
VAL ('5E+3', N, Err) ;
• Si N est de type entier : N = 0 et Err = 2
• Si N est de type réel : N = 5000 et Err = 0

Contenu connexe

Similaire à Algorithmique Amp Programmation (R Sum

Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018salah fenni
 
Lect14 dev2
Lect14 dev2Lect14 dev2
Lect14 dev2moisko
 
01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdfMARYAM510573
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesECAM Brussels Engineering School
 
Librairies Java qui changent la vie
Librairies Java qui changent la vieLibrairies Java qui changent la vie
Librairies Java qui changent la viecluelessjoe
 
Formation Langage c.pptx
Formation Langage c.pptxFormation Langage c.pptx
Formation Langage c.pptxValdy Ngouabira
 
eExercices corrigesdivers
eExercices corrigesdiverseExercices corrigesdivers
eExercices corrigesdiversHajar Yazine
 
Exercicescorrigesdivers
ExercicescorrigesdiversExercicescorrigesdivers
ExercicescorrigesdiversKarim Amane
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéSana REFAI
 
resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdfsalah fenni
 
Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Hichem Kemali
 
Les algorithmes d'arithmetique
Les algorithmes d'arithmetiqueLes algorithmes d'arithmetique
Les algorithmes d'arithmetiquemohamed_SAYARI
 
Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Fahad Golra
 
Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)DriNox NordisTe
 
condition et boucle (2).pptx
condition et boucle  (2).pptxcondition et boucle  (2).pptx
condition et boucle (2).pptxMohammedErritali2
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniShellmates
 
Les bases de la programmation en JAVA
Les bases de la programmation  en JAVA   Les bases de la programmation  en JAVA
Les bases de la programmation en JAVA Asmaa BENGUEDDACH
 

Similaire à Algorithmique Amp Programmation (R Sum (20)

Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018
 
Récursivité
RécursivitéRécursivité
Récursivité
 
Lect14 dev2
Lect14 dev2Lect14 dev2
Lect14 dev2
 
01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf
 
Programmation Fonctionnelle
Programmation FonctionnelleProgrammation Fonctionnelle
Programmation Fonctionnelle
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de données
 
Librairies Java qui changent la vie
Librairies Java qui changent la vieLibrairies Java qui changent la vie
Librairies Java qui changent la vie
 
Cours tp2
Cours tp2Cours tp2
Cours tp2
 
Formation Langage c.pptx
Formation Langage c.pptxFormation Langage c.pptx
Formation Langage c.pptx
 
eExercices corrigesdivers
eExercices corrigesdiverseExercices corrigesdivers
eExercices corrigesdivers
 
Exercicescorrigesdivers
ExercicescorrigesdiversExercicescorrigesdivers
Exercicescorrigesdivers
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicité
 
resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdf
 
Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)
 
Les algorithmes d'arithmetique
Les algorithmes d'arithmetiqueLes algorithmes d'arithmetique
Les algorithmes d'arithmetique
 
Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Seance 3- Programmation en langage C
Seance 3- Programmation en langage C
 
Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)
 
condition et boucle (2).pptx
condition et boucle  (2).pptxcondition et boucle  (2).pptx
condition et boucle (2).pptx
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 
Les bases de la programmation en JAVA
Les bases de la programmation  en JAVA   Les bases de la programmation  en JAVA
Les bases de la programmation en JAVA
 

Plus de Amy Isleb

Best Mba Essay Writing Service From Experts 7Dollaressay Cape May. MBA
Best Mba Essay Writing Service From Experts 7Dollaressay Cape May. MBABest Mba Essay Writing Service From Experts 7Dollaressay Cape May. MBA
Best Mba Essay Writing Service From Experts 7Dollaressay Cape May. MBAAmy Isleb
 
Writing Paper Raised Line Writing Paper Red And Blue Lin
Writing Paper Raised Line Writing Paper Red And Blue LinWriting Paper Raised Line Writing Paper Red And Blue Lin
Writing Paper Raised Line Writing Paper Red And Blue LinAmy Isleb
 
Beautiful How To Write A Movie Review For College
Beautiful How To Write A Movie Review For CollegeBeautiful How To Write A Movie Review For College
Beautiful How To Write A Movie Review For CollegeAmy Isleb
 
How To Write An Essay With Introduction Body And Con
How To Write An Essay With Introduction Body And ConHow To Write An Essay With Introduction Body And Con
How To Write An Essay With Introduction Body And ConAmy Isleb
 
Which Best Describes Writing Process Checklist
Which Best Describes Writing Process ChecklistWhich Best Describes Writing Process Checklist
Which Best Describes Writing Process ChecklistAmy Isleb
 
Descriptive Writing. Online assignment writing service.
Descriptive Writing. Online assignment writing service.Descriptive Writing. Online assignment writing service.
Descriptive Writing. Online assignment writing service.Amy Isleb
 
How To Write An Article Critique Summary Writing,
How To Write An Article Critique Summary Writing,How To Write An Article Critique Summary Writing,
How To Write An Article Critique Summary Writing,Amy Isleb
 
Martin Luther King Speech, I Have A Dream Speech, Dr
Martin Luther King Speech, I Have A Dream Speech, DrMartin Luther King Speech, I Have A Dream Speech, Dr
Martin Luther King Speech, I Have A Dream Speech, DrAmy Isleb
 
Parchment Paper Stationery Set. Writing Paper Hand Stamped
Parchment Paper Stationery Set. Writing Paper Hand StampedParchment Paper Stationery Set. Writing Paper Hand Stamped
Parchment Paper Stationery Set. Writing Paper Hand StampedAmy Isleb
 
18 Free Professional Letterhead Templates- Sa
18 Free Professional Letterhead Templates- Sa18 Free Professional Letterhead Templates- Sa
18 Free Professional Letterhead Templates- SaAmy Isleb
 
Lined Paper For Kids Customize Online Downloa
Lined Paper For Kids Customize Online DownloaLined Paper For Kids Customize Online Downloa
Lined Paper For Kids Customize Online DownloaAmy Isleb
 
Oh, The Places YouLl Go The Read It Write It Colle
Oh, The Places YouLl Go The Read It Write It ColleOh, The Places YouLl Go The Read It Write It Colle
Oh, The Places YouLl Go The Read It Write It ColleAmy Isleb
 
The Last Business Strategy Template YouLl Ever Need
The Last Business Strategy Template YouLl Ever NeedThe Last Business Strategy Template YouLl Ever Need
The Last Business Strategy Template YouLl Ever NeedAmy Isleb
 
012 Img 1559 Essay Example Personal Narrativ
012 Img 1559 Essay Example Personal Narrativ012 Img 1559 Essay Example Personal Narrativ
012 Img 1559 Essay Example Personal NarrativAmy Isleb
 
Essay Websites Life Philosophy Essay. Online assignment writing service.
Essay Websites Life Philosophy Essay. Online assignment writing service.Essay Websites Life Philosophy Essay. Online assignment writing service.
Essay Websites Life Philosophy Essay. Online assignment writing service.Amy Isleb
 
Template For Introduction Paragraph - Google Searc
Template For Introduction Paragraph - Google SearcTemplate For Introduction Paragraph - Google Searc
Template For Introduction Paragraph - Google SearcAmy Isleb
 
Comparing Websites Essay Example StudyHippo.Com
Comparing Websites Essay Example StudyHippo.ComComparing Websites Essay Example StudyHippo.Com
Comparing Websites Essay Example StudyHippo.ComAmy Isleb
 
Top 3 MBA Essay Writing Services Reviewed By Experts In 2022
Top 3 MBA Essay Writing Services Reviewed By Experts In 2022Top 3 MBA Essay Writing Services Reviewed By Experts In 2022
Top 3 MBA Essay Writing Services Reviewed By Experts In 2022Amy Isleb
 
Websites That Write Papers For You - College Homework Hel
Websites That Write Papers For You - College Homework HelWebsites That Write Papers For You - College Homework Hel
Websites That Write Papers For You - College Homework HelAmy Isleb
 
College Essay Descriptive Essay Grade 6. Online assignment writing service.
College Essay Descriptive Essay Grade 6. Online assignment writing service.College Essay Descriptive Essay Grade 6. Online assignment writing service.
College Essay Descriptive Essay Grade 6. Online assignment writing service.Amy Isleb
 

Plus de Amy Isleb (20)

Best Mba Essay Writing Service From Experts 7Dollaressay Cape May. MBA
Best Mba Essay Writing Service From Experts 7Dollaressay Cape May. MBABest Mba Essay Writing Service From Experts 7Dollaressay Cape May. MBA
Best Mba Essay Writing Service From Experts 7Dollaressay Cape May. MBA
 
Writing Paper Raised Line Writing Paper Red And Blue Lin
Writing Paper Raised Line Writing Paper Red And Blue LinWriting Paper Raised Line Writing Paper Red And Blue Lin
Writing Paper Raised Line Writing Paper Red And Blue Lin
 
Beautiful How To Write A Movie Review For College
Beautiful How To Write A Movie Review For CollegeBeautiful How To Write A Movie Review For College
Beautiful How To Write A Movie Review For College
 
How To Write An Essay With Introduction Body And Con
How To Write An Essay With Introduction Body And ConHow To Write An Essay With Introduction Body And Con
How To Write An Essay With Introduction Body And Con
 
Which Best Describes Writing Process Checklist
Which Best Describes Writing Process ChecklistWhich Best Describes Writing Process Checklist
Which Best Describes Writing Process Checklist
 
Descriptive Writing. Online assignment writing service.
Descriptive Writing. Online assignment writing service.Descriptive Writing. Online assignment writing service.
Descriptive Writing. Online assignment writing service.
 
How To Write An Article Critique Summary Writing,
How To Write An Article Critique Summary Writing,How To Write An Article Critique Summary Writing,
How To Write An Article Critique Summary Writing,
 
Martin Luther King Speech, I Have A Dream Speech, Dr
Martin Luther King Speech, I Have A Dream Speech, DrMartin Luther King Speech, I Have A Dream Speech, Dr
Martin Luther King Speech, I Have A Dream Speech, Dr
 
Parchment Paper Stationery Set. Writing Paper Hand Stamped
Parchment Paper Stationery Set. Writing Paper Hand StampedParchment Paper Stationery Set. Writing Paper Hand Stamped
Parchment Paper Stationery Set. Writing Paper Hand Stamped
 
18 Free Professional Letterhead Templates- Sa
18 Free Professional Letterhead Templates- Sa18 Free Professional Letterhead Templates- Sa
18 Free Professional Letterhead Templates- Sa
 
Lined Paper For Kids Customize Online Downloa
Lined Paper For Kids Customize Online DownloaLined Paper For Kids Customize Online Downloa
Lined Paper For Kids Customize Online Downloa
 
Oh, The Places YouLl Go The Read It Write It Colle
Oh, The Places YouLl Go The Read It Write It ColleOh, The Places YouLl Go The Read It Write It Colle
Oh, The Places YouLl Go The Read It Write It Colle
 
The Last Business Strategy Template YouLl Ever Need
The Last Business Strategy Template YouLl Ever NeedThe Last Business Strategy Template YouLl Ever Need
The Last Business Strategy Template YouLl Ever Need
 
012 Img 1559 Essay Example Personal Narrativ
012 Img 1559 Essay Example Personal Narrativ012 Img 1559 Essay Example Personal Narrativ
012 Img 1559 Essay Example Personal Narrativ
 
Essay Websites Life Philosophy Essay. Online assignment writing service.
Essay Websites Life Philosophy Essay. Online assignment writing service.Essay Websites Life Philosophy Essay. Online assignment writing service.
Essay Websites Life Philosophy Essay. Online assignment writing service.
 
Template For Introduction Paragraph - Google Searc
Template For Introduction Paragraph - Google SearcTemplate For Introduction Paragraph - Google Searc
Template For Introduction Paragraph - Google Searc
 
Comparing Websites Essay Example StudyHippo.Com
Comparing Websites Essay Example StudyHippo.ComComparing Websites Essay Example StudyHippo.Com
Comparing Websites Essay Example StudyHippo.Com
 
Top 3 MBA Essay Writing Services Reviewed By Experts In 2022
Top 3 MBA Essay Writing Services Reviewed By Experts In 2022Top 3 MBA Essay Writing Services Reviewed By Experts In 2022
Top 3 MBA Essay Writing Services Reviewed By Experts In 2022
 
Websites That Write Papers For You - College Homework Hel
Websites That Write Papers For You - College Homework HelWebsites That Write Papers For You - College Homework Hel
Websites That Write Papers For You - College Homework Hel
 
College Essay Descriptive Essay Grade 6. Online assignment writing service.
College Essay Descriptive Essay Grade 6. Online assignment writing service.College Essay Descriptive Essay Grade 6. Online assignment writing service.
College Essay Descriptive Essay Grade 6. Online assignment writing service.
 

Dernier

Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeBenamraneMarwa
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
7 PPT sue le project de fin d'étude.pptx
7 PPT sue le project de fin d'étude.pptx7 PPT sue le project de fin d'étude.pptx
7 PPT sue le project de fin d'étude.pptxrababouerdighi
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 

Dernier (15)

Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étude
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
7 PPT sue le project de fin d'étude.pptx
7 PPT sue le project de fin d'étude.pptx7 PPT sue le project de fin d'étude.pptx
7 PPT sue le project de fin d'étude.pptx
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 

Algorithmique Amp Programmation (R Sum

  • 1. Algorithmique & Programmation Prof. FENNI-S Page 1/ 12 Algorithmique & Programmation (Résumé) I-Les structures de données I.1) Déclaration des constantes En Algorithm ique : Tableau de Déclaration des Objets Objets Type/ Nature Rôle Général Nom Constante = valeur de la constante Rôle Exem ples Annee G Ville Existe Lettre Constante = 2018 Constante = 9.81 Constante = "Chebba" Constante = Vrai Constante = "B" En Pascal : • Syntaxe : CONST < nom _ constante> = < valeur_ constante> ; • Exem ples : CONST annee = 2018 ; g = 9.81 ; ville = ‘Chebba’ ; existe = True ; lettre = ‘B’ ; I.2) Déclaration des variables En Algorithm ique : T.D.O Objets Type/ Nature Rôle Général Nom Type de la variable Rôle Exem ples Code Heure Nb Moy Phrase Let Test Octet Entier Entier Long Réel Chaîne de caractères Caractère Booléen En Pascal : • Syntaxe : VAR < nom _ variable> : type_ variable ; • Exem ples : VAR Code : Byte ; Heure : Integer ; Nb : LongInt ; Moy : Real ; Phrase : String ; Let : Char ; Test : Boolean ;
  • 2. Algorithmique & Programmation Prof. FENNI-S Page 2/ 12 I.3) Déclaration d’un tableau à une dimension Prem ière form ulation EN ALGORI THMI QUE T.D.O. Objet Type/ Nature Rôle Ident_tableau Tableau de taille et de type_éléments MOY Tableau de 30 Réels EN PASCAL VAR Ident_tableau : ARRAY [ Binf..Bsup] OF Type_éléments ; Exem ple : VAR Moy : array [ 1..30] of real ; Deuxièm e form ulation EN ALGORI THMI QUE Tableau de déclarations des nouveaux types Type Nom_type = tableau de taille et de type_éléments Tab = tableau de 100 chaînes de caractères T.D.O. Objet Type/ Nature Rôle Ident_tableau Nom_type T Tab EN PASCAL TYPE Nom_type = ARRAY [ Binf..Bsup] OF Type_éléments ; VAR Ident_tableau : Nom_type ; Exem ple : Type Tab = Array [ 1..100] of string ; Var T : Tab ; I.4) Le type Enuméré En algorithm ique : Tableau de déclaration des nouveaux types Type Nom_du_type = (valeur1, valeur2, valeur3, …) En pascal : TYPE Nom_du_type = (valeur1, valeur2, valeur3, …) ; Exem ples : 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). I.5) Le type Intervalle En algorithm ique : Tableau de déclaration des nouveaux types Type Nom_du_type = borne inférieur . . borne supérieur En pascal : TYPE Nom_du_type = borne inférieur . . borne supérieur ; Exem ples : TYPE JOURS = (lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche) ; JOUR_TRAVAIL = lundi . . vendredi ; MOIS = 1 . . 12 ; ALPHA = ‘a’ . . ‘z’ ;
  • 3. Algorithmique & Programmation Prof. FENNI-S Page 3/ 12 II- Les structures simples II.1) L’opération d’affectation Analyse / Algorithm e Pascal Variable  Valeur Variable := Valeur ; Exem ples : Analyse et Algorithm e Pascal Com m entaire Résultat A  5 B  A + 3 A  A + 1 C  long("lycée")/ 2 D  4 < 6 A : = 5 ; B : = A + 3 ; A : = A + 1 ; C : = length(‘lycée’)/ 2 ; D : = 4 < 6 ; La variable A reçoit la valeur 5 B reçoit la valeur de l’expression A+ 3 A reçoit sa valeur actuelle incrémentée de 1 C reçoit la valeur de l’expression arithmétique … D reçoit la valeur de l’expression logique … A = 5 B = 8 A = 6 C = 2.5 D = Vrai II.2) L’opération d’entrée (lecture, saisie) Analyse Algorithm e Pascal Variable = Donnée Lire (variable) ReadLn (variable) ; Var1 , Var2 , Var3 = Données Lire (var1, var2, var3) Readln (var1, var2, var3) ; Variable = Donnée ( "Message") Ecrire ("Message"), Lire (variable) W rite ('Message') ; Readln (variable) ; II.3) L’opération de sortie (écriture, affichage) Analyse / Algorithm e Pascal Ecrire ("Message", Nom_objet, Expression) W rite ('Message', Nom_objet, Expression) Exem ples : Analyse / Algorithm e Pascal Résultat sur l'écran A  10 Ecrire (A) Ecrire ("Bonjour") A: = 10 ; W rite (A) ; W riteln ('Bonjour') ; 10Bonjour Ecrire (2 * 8 DIV 3) Ecrire (5 > 6) W riteln (2 * 8 DIV 3) ; W rite (5 > 6) ; 5 False Ecrire (3, "* ", A, " = ", 3* A) W riteln (3, '* ', A, ' = ', 3* a) ; 3* 10 = 30
  • 4. Algorithmique & Programmation Prof. FENNI-S Page 4/ 12 III-Les structures de contrôles conditionnelles III.1) La structure de contrôle conditionnelle simple En Analyse En Algorithm ique En Pascal Nom_objet = [ initialisation(s)] Si condition(s) Alors Traitement 1 Sinon Traitement 2 Fin Si initialisation(s) Si condition(s) Alors Traitement 1 Sinon Traitement 2 Fin Si ................. ; { initialisation(s)} I F condition(s) THEN Begin Traitement 1 ; End ELSE Begin Traitement 2 ; End ; N.B. : Si traitement2 est vide, on parle de structure conditionnelle simple réduite qui a la syntaxe suivante : En Analyse En Algorithm ique En Pascal Nom_objet = [ initialisation(s)] Si condition(s) Alors Traitement Fin Si initialisation(s) Si condition(s) Alors Traitement Fin Si ................. ; { initialisation(s)} I F condition(s) THEN Begin Traitement ; End ; III.2) La structure de contrôle conditionnelle généralisée En Analyse En Algorithm ique En Pascal Nom_objet = [ initialisation(s)] Si condition1 Alors Trait1 Sinon Si condition2 Alors Trait2 Sinon Si condition3 Alors Trait3 Sinon Si ………………………… Sinon Si condition n-1 Alors Trait n-1 Sinon Trait n Fin Si initialisation(s) Si condition1 Alors Trait1 Sinon Si condition2 Alors Trait2 Sinon Si condition3 Alors Trait3 Sinon Si ………………………… Sinon Si condition n-1 Alors Trait n-1 Sinon Trait n Fin Si ............ ; { initialisation(s)} I F condition1 THEN Begin Trait1; End ELSE I F condition2 THEN Begin Trait2; End ELSE I F ………………………… ELSE I F condition n-1 THEN Begin Trait n-1; End ELSE Begin Trait n; End ; III.2) La structure de contrôle conditionnelle à choix multiples En Analyse En Algorithm ique En Pascal Nom_objet = [ initialisation(s)] Selon sélecteur Faire valeur1 : trait1 valeur2 : trait2 valeur5, valeur8 : trait3 valeur10..valeur30 : trait4 ... valeur n-1 : trait n-1 Sinon trait n Fin Selon initialisation(s) Selon sélecteur Faire valeur1 : trait1 valeur2 : trait2 valeur5, valeur8 : trait3 valeur10..valeur30 : trait4 ... valeur n-1 : trait n-1 Sinon trait n Fin Selon ....................; { initialisation(s)} CASE sélecteur OF valeur1 : trait1 ; valeur2 : trait2 ; valeur 5, valeur 8 : trait3 ; valeur 10..valeur 30 : trait4 ; ... valeur n-1 : trait n-1 ; Else trait n ; END ;
  • 5. Algorithmique & Programmation Prof. FENNI-S Page 5/ 12 IV- Les structures de contrôles itératives IV.1) La structure de contrôle itérative complète En Analyse En Algorithm ique En Pascal Nom_objet = [ initialisation(s)] POUR Cp de Vi à Vf FAI RE Traitement Fin Pour initialisation(s) POUR Cp de Vi à Vf FAI RE Traitement Fin Pour ............ ; { initialisation(s) } FOR Cp: = Vi TO/ DOW NTO Vf DO Begin Traitement ; End ; {TO lorsque Vi ≤ Vf} {DOWNTO lorsque Vi ≥ Vf} IV.2) La structure de contrôle itérative à condition d’arrêt a.Première formulation : En Analyse En Algorithm ique En Pascal Nom_objet = [ initialisation(s)] REPETER Traitement JUSQU'A condition(s) initialisation(s) REPETER Traitement JUSQU'A condition(s) { jusqu’à condition soit vraie} ............; { initialisation(s)} REPEAT Traitement ; UNTI L condition(s) ; b.Deuxième formulation : En Analyse En Algorithm ique En Pascal Nom_objet = [ initialisation(s)] TANT QUE condition(s) FAI RE Traitement Fin Tant que initialisation(s) TANT QUE condition(s) FAI RE Traitement Fin Tant que { Tant que condition est vraie répéter le traitement} ............; { initialisation(s)} W HI LE condition(s) DO Begin Traitement ; End ;
  • 6. Algorithmique & Programmation Prof. FENNI-S Page 6/ 12 V-Les sous programmes V.1) Les procédures • Une procédure est un sous-program m e qui permet la résolution d’un sous-problème précis et qui peut transmettre zéro, un ou plusieurs résultats au programme appelant. • L’entête de la définition : - En algorithm ique : 0 ) 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 algorithm ique : PROC Nom_procédure (pe1 , pe2 , … , pen ) - En Pascal : Nom_procédure (pe1 , pe2 , … , pen ) ; V.2) Les fonctions • Une fonction est un sous-program m e qui permet la résolution d’un sous-problème précis et doit retourner (renvoyer) un seul résultat de type sim ple (entier, caractère, réel, booléen, chaîne, énuméré) au programme appelant. Il s’agit d’un cas particulier des procédures. • L’entête de la définition : - En algorithm ique : 0 ) 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 algorithm ique : • 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 …
  • 7. Algorithmique & Programmation Prof. FENNI-S Page 7/ 12 Sous Programmes Usuels En Algorithme En Pascal Saisir un entier N tel que 5 ≤ N ≤ 500 0) DEF PROC Saisie (VAR N : Entier) 1) Répéter Ecrire ("Donner un entier "), Lire(N) Jusqu’à (5 ≤ N) ET (N ≤ 500) 2) Fin Saisie Procedure Saisie (Var n : integer) ; Begin Repeat Write (‘Donner un entier ’); Readln (n); Until (5 <= N) AND (N <= 500) ; End ; Saisir une chaîne de caractère en majuscule 0) DEF PROC Saisie (VAR ch : Chaîne) 1) Répéter Ecrire ("Saisir une chaîne "), Lire(CH) i1 Tant que (ch[i] dans ["A".."Z"]) et (i ≤ long(ch)) Faire ii+1 Jusqu’à i > long(ch) 2) Fin Saisie Procedure Saisie (Var ch : String) ; Var i : integer; Begin Repeat Writeln (‘Saisir une chaîne ’) ; Readln (ch) ; i:=1; While (ch[i] in ['A'..'Z']) and (i<=length(ch)) do i:=i+1; Until i > length(ch); End ; Saisir une chaîne de caractères distincts 0) DEF PROC Saisie (VAR ch : Chaîne) 1) Répéter Ecrire ("Saisir une chaîne "), Lire (ch) i0 Répéter ii+1 verif  pos (ch[i],ch) = i Jusqu’à (verif=faux) ou (i=long(ch)) Jusqu’à verif 2) Fin Saisie Procedure Saisie (Var ch : String) ; Var i : integer; verif : Boolean; Begin Repeat Writeln (‘Saisir une chaîne ’) ; Readln (ch) ; i := 0 ; Repeat i := i+1 ; Verif := pos(ch[i],ch) = i ; Until (verif=false) or (i = length(ch)) ; Until verif ; End ; Saisir une chaîne formée exactement des quatre lettres A, I, P et F 0) DEF PROC Saisie (VAR ch : Chaîne) 1) Répéter Ecrire ("Ch = "), Lire (ch) valid  (pos(‘'I’',ch)≠0) et (pos(‘'F’',ch)≠0) et (pos(‘'A’',ch)≠0) et (pos(‘'P’',ch)≠0) et (long(ch)=4) Jusqu’à valid 2) Fin Saisie Procedure saisie (Var ch:string); Var valid : Boolean; Begin Repeat Write ('ch = '); Readln (ch); valid := (pos('I',ch)<>0) and (pos('F',ch)<>0) and (pos('A',ch)<>0) and (pos('P',ch)<>0) and (length(ch)=4) ; Until valid ; End; Remplir un tableau T par N entiers impairs 0) DEF PROC Remplir (N : Entier ; VAR T : Tab) 1) Pour i de 1 à n Faire Répéter Ecrire ("T[", i, "] = "), Lire (T[i]) Jusqu’à (T[i] mod 2) ≠ 0 Fin Pour 2) Fin Remplir Procedure Remplir (N : integer ; Var T : Tab) ; Var i : integer; Begin For i:=1 To n Do Repeat Write (‘T[‘,i,’]= ’) ; Readln (T[i]) ; Until (T[i] mod 2) <> 0 ; End ;
  • 8. Algorithmique & Programmation Prof. FENNI-S Page 8/ 12 Remplir un tableau par des entiers au hasard entre [a,b] 0) DEF PROC Remplir (VAR T : Tab ; N : Entier) 1) Lire(a, b) 2) Pour i de 1 à n Faire T[i] a + Aléa (b-a+1) Fin Pour 3) Fin Remplir • Un réel au hasard entre [a,b[ T[i] a+ (b-a) * Aléa • Une lettre majuscule au hazard T[i] chr (65 + Aléa(26)) Procedure Remplir (Var T : Tab ; N : integer) ; Var a, b, i : integer; Begin Readln (a,b); Randomize ; For i:=1 To n Do T[i] := a + Random (b-a+1); End ; • Un réel au hasard entre [a,b[ T[i] := a+ (b-a) * Random • Une lettre majuscule au hazard T[i] := chr (65 + Random(26)) Remplir un tableau T par N éléments en ordre croissant 0) DEF PROC Saisie (N : Entier ; VAR T : Tab) 1) Ecrire ("T[1] : "), Lire(T[1]) 2) Pour i de 2 à n Faire Répéter Ecrire ("T[", i, "] : "), Lire (T[i]) Jusqu’à T[i] > T[i-1] Fin Pour 3) Fin Saisie Procedure Saisie (n : integer ; var t : tab) ; Var i : integer; Begin Write ('T[1] : ') ; Readln (T[1]) ; For i:=2 To n Do Repeat Write ('T[',i,'] : ') ; Readln (T[i]) ; Until T[i] > T[i-1]; End ; Remplir un tableau T par N éléments distincts 0) DEF PROC Saisie (N : Entier ; VAR T : Tab) 1) Pour i de 1 à n Faire Répéter Ecrire (''Saisir la case '', i), Lire (T[i]) j 1 Tant que T[i] ≠ T[j] Faire j j+1 Fin Tant que Jusqu’à (j = i) Fin Pour 2) Fin Saisie Procedure Saisie (n : Integer ; Var T: Tab); Var i, j : Integer; Begin For i:=1 To n Do Repeat Writeln ('Saisir la case ', i); Readln (T[i]); j:=1; While T[i] <> T[j] Do j:=j+1 ; Until (j = i) ; End; Remplir un tableau T par N entiers formés des chiffres non nuls 0) DEF PROC Saisie (N : Entier ; VAR T : Tab) 1) Pour i de 1 à n Faire Répéter Ecrire ("T[", i, "]= "), Lire (T[i]) Conch (T[i], ch) Jusqu’à pos("0",ch)= 0 Fin Pour 2) Fin Saisie Procedure Saisie (n : Integer ; Var T : TAB) ; Var i : Integer ; ch : String ; Begin For i:=1 To n Do Repeat Write (‘T[‘,i,’]= ’) ; Readln (T[i]) ; Str (T[i], ch); Until pos('0',ch) = 0 ; End; Affichage d’un tableau T de N éléments 0) DEF PROC Affiche (N : Entier ; T : Tab) 1) Pour i de 1 à n Faire Ecrire (T[i], " ") Fin Pour 2) Fin Affiche Procedure Affiche (n : Integer ; T : TAB) ; Var i : Integer ; Begin FOR i :=1 TO n DO Write (T[i], ‘ ‘) ; End ;
  • 9. Algorithmique & Programmation Prof. FENNI-S Page 9/ 12 Affichage d’un tableau, 10 valeurs par ligne 0) DEF PROC Affiche (T:tab ; n:entier) 1) Pour i de 1 à n Faire Ecrire (T[i], " ") Si (i mod 10) = 0 Alors Retour_à_la_ligne Fin Si Fin Pour 2) Fin Affiche Procedure Affiche (T:tab ; n:integer); Var i : integer; Begin For i:=1 To n Do begin write(T[i], " "); If (i mod 10) = 0 then writeln ; end; End ; Permutation de deux variables réelles 0) DEF PROC Permut (VAR x, y : Réel) 1) AUX  Y 2) Y  X 3) X AUX 4) Fin Permut Procedure Permut (VAR x, y : Real) ; Var aux : Real ; Begin Aux := Y ; Y := X ; X := Aux ; End ; 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 t1,t2 : tab ; var c1,c2 : entier) 1) c1 0 ; c2  0 Pour i de 1 à n Faire Si t[i] mod 2 = 0 Alors c1 c1 +1 T1[c1] T[i] Sinon c2 c2 +1 T2[c2] T[i] Fin Si Fin Pour 2) Fin Transfert Procedure Transfert (T : tab ; n : integer ; var t1,t2 : tab ; var c1,c2 : integer) ; Var i :integer ; Begin c1 := 0 ; c2 := 0 ; For i :=1 To n Do If t[i] mod 2 = 0 Then begin c1 := c1 +1 ; T1[c1] := T[i] ; 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) 1) K 0 Pour i de 1 à n Faire Si t[i] < 0 Alors k k +1 Aux t[i] t[i]  t[k] t[k]  aux Fin Si Fin Pour 2) Fin Transfert Procedure Ranger (Var T : tab ; n : integer) ; Var i, k, aux : integer ; Begin k := 0 ; For i :=1 To n Do If t[i] < 0 Then begin k := k +1 ; Aux := t[i] ; t[i] := t[k] ; t[k] := aux ; end ; End ; Insertion d’un élément X dans un tableau T à une position p 0) DEF PROC Insertion (Var T : tab ; n, x, p : entier) 1) Pour i de (n+1) à (p+1) Faire T[i]  T[i-1] {décalage des éléments vers droite} Fin Pour 2) T[p]  X {insertion de X à la position p} 3) Fin Insertion Procedure Insertion ( Var T : tab ; n, x, p : integer) ; Var i :integer ; Begin For i := (n+1) DownTo (p+1) Do T[i] := T[i-1] ; T[p] := X ; End;
  • 10. Algorithmique & Programmation Prof. FENNI-S Page 10/ 12 La somme de n réels dans un tableau 0) DEF FN Somme (T : tab ; n : entier) : réel 1) S 0 Pour i de 1 à n Faire S S + T[i] Fin Pour 2) Somme  S 3) Fin Somme Function Somme (T : tab ; n : integer) : real ; Var i : integer ; s : real; Begin s:=0 ; For i:=1 To n Do s:=s + T[i] ; Somme := s ; End ; Factorielle de N ( n ! ) 0) DEF FN Fact (n : entier) : entier long 1) F 1 2) Pour i de 2 à n Faire F  F * i Fin Pour 3) Fact  F 4) Fin Fact Function Fact (n : integer) : Longint ; Var i : integer ; f : longint ; Begin f:=1 ; For i:=2 To n Do f := f * i ; Fact := f ; End ; Calcul de Xn (n ≥ 0) 0) DEF FN Puissance (x, n : entier) : entier 1) p 1 Pour i de 1 à n Faire p  p * x Fin Pour 2) puissance  p 3) Fin Puissance Function Puissance (x, n : integer) : integer ; Var i , p : integer ; Begin p:=1 ; For i:=1 To n Do p := p * x ; puissance := p ; End ; Vérifier si un nombre est premier 0) DEF FN Premier (n : entier) : booléen 1) nbdiv 1 2) Pour i de 1 à (n div 2) Faire Si (n mod i = 0) Alors nbdiv  nbdiv+1 Fin Si Fin Pour 3) premier  (nbdiv = 2) 4) Fin Premier Function Premier (N:integer) : boolean ; Var i ,nbdiv : integer; Begin nbdiv:=1; For i:=1 To (n div 2) Do If (n mod i = 0) Then nbdiv := nbdiv + 1 ; premier := nbdiv = 2 ; End ; PPCM (a,b) 0) DEF FN PPCM ( a, b : entier) : entier 1) i 1 2) Tant que ((a*i) mod b) ≠ 0 Faire i  i+1 Fin Tant que 3) ppcm  a*i 4) Fin PPCM Function PPCM (a ,b :integer) : integer ; Var i : integer; Begin i := 1 ; While (a*i) mod b <> 0 Do i:=i+1 ; ppcm := a*i ; End; PGCD_Euclide (a,b) 0) DEF FN PGCD_Euclide ( a, b : entier) : entier 1) Tant que b ≠ 0 Faire r  a mod b a  b b  r Fin Tant que 2) Pgcd_euclide  a 3) Fin PGCD_Euclide Function PGCD_Euclide (a ,b :integer) : integer ; Var r : integer; Begin While b<>0 Do Begin r := a mod b; a := b; b := r; End; PGCD_Euclide := a; End;
  • 11. Algorithmique & Programmation Prof. FENNI-S Page 11/ 12 La somme de chiffres d’un entier 0) DEF FN Som_chif (n : entier) : entier 1) som 0 2) Répéter R n mod 10 Som  som + r N  n div 10 Jusqu’à (n = 0) 3) som_chif  som 4) Fin Som_chif Function Som_Chif ( N : integer ) : integer ; Var som, r : integer ; Begin som:=0 ; Repeat r := n mod 10 ; Som := som + r ; N := n div 10 ; Until n=0 ; Som_chif := som ; End; Vérifier si une chaîne est palindrome 0) DEF FN Palindrome (ch : chaîne) : Booléen 1) i 0 2) Répéter i  i+1 verif  ch[i] = ch[long(ch) – i + 1] Jusqu’à (verif=faux) ou (i = long(ch) div 2) 3) palindrome  verif 4) Fin Palindrome Function palindrome (ch:string):boolean; Var i:integer; verif:boolean; Begin i:=0; repeat i:=i+1; verif := ch[i] = ch[length(ch)-i+1] ; until (verif=false) or (i=length(ch) div 2) ; Palindrome := verif; End; Recherche de la première valeur minimum dans un tableau de n réels 0) DEF FN Minimum (n : Entier ; T : Tab) : Réel 1) min T[1] Pour i de 2 à n Faire Si (T[i] < min) Alors min  T[i] Fin Si Fin Pour 2) Minimum  min 3) Fin Minimum Function Minimum (n : Integer ; T : Tab) : Real ; Var i : Integer ; Min : Real ; Begin Min := T[1] ; For i :=2 To n Do If (T[i] < min) Then min := T[i] ; Minimum := min ; End ; Recherche de la dernière position d’un élément X dans un tableau de n réels 0) DEF FN Recherche (X : réel ; n : Entier ; T : Tab) : Entier 1) p 0 ; in+1 Répéter ii - 1 Si T[i]=X Alors p  i Fin Si Jusqu’à (p≠0) OU (i=1) 2) Recherche  p 3) Fin Recherche Function Recherche (X:Real ; N:Integer ; T:Tab) : Integer ; Var i, p : Integer ; Begin p := 0 ; i := n+1; Repeat i := i - 1; If T[i]=X Then p := i ; Until (p<>0) OR (i=1) ; Recherche := p ; End ; Fréquence d’un élément X dans un tableau de N entiers 0) DEF FN Frequence (x,n :entier ;T:Tab) : entier 1) f0 2) Pour i de 1 à n Faire Si (T[i] = X) Alors f  f + 1 Fin Si Fin Pour 3) frequence  f 4) Fin Frequence Function Frequence (x, n :integer ; T:Tab):integer; Var i, f : Integer ; Begin f := 0 ; For i :=1 To n Do If (T[i] = X) Then f := f+1 ; Frequence := f ; End ;
  • 12. Algorithmique & Programmation Prof. FENNI-S Page 12/ 12 STRUCTURE GENERALE D’UN PROGRAMME TURBO PASCAL PROGRAM Nom_programme ; {En-tête du programme} Uses WinCrt, WinDos, … ; {Utilisation des unités / bibliothèques} Const {Déclaration des constantes ; Exemples} Annee = 2018 ; Pi = 3.14 ; Message = 'Bonjour' ; … ; Type {Déclaration des types ; Exemples} Tab = Array [1..100] of Real ; Jours_semaine = (lun, mar, mer, jeu, ven, sam, dim) ; Let_Majus = 'A'..'Z' ; Nom = String [25] ; … ; Var {Déclaration des variables ; Exemples} X, Y, Z : Real ; I, J : Integer ; Let : Char ; Test : Boolean ; Ch : String ; Ville : Array [1..10] of String ; T1, T2 : Tab ; Jour : Jours_semaine ; Couleurs : (Rouge, Vert, Bleu, Jaune) ; Mois : 1..12 ; … ; {================= Définition des procédures ==========================} Procedure Nom_procédure (pf1 : type1 ; VAR pf2 : type2 ; … ; VAR pfn : typen) ; {Déclarations locales : Const, Type, Var, Function, Procedure, ...} Begin Instructions de la procédure ; End ; {================== Définition des fonctions ==========================} Function Nom_fonction (pf1 : type1 ; pf2 : type2 ; … ; pfn : typen) : Type_résultat ; {Déclarations locales : Const, Type, Var, Function, Procedure, ...} Begin Instructions de la fonction ; Nom_fonction := résultat ; End ; {========================= P. P. ==================================} BEGIN {Début du programme principal} {Bloc principal du programme avec appel des procédures et des fonctions} Instructions ; Nom_procédure (pe1, pe2, … pen) ; ……………..……… Nom_fonction (pe1, pe2, … pen) …………….…… Instructions ; END. {Fin du programme} D é c l a r a t i o n s g l o b a l e s
  • 13. LES STRUCTURES DE DONNEES  Prof : FENNI-S ANNEXE I 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 Tronc (x) TRUNC (x) réel entier partie entière de x TRUNC (3.15) = 3 TRUNC (-3.15) = -3 Ent (x) INT (x) réel réel partie entière de x INT (3.15) = 3.00 Arrondi (x) ROUND (x) réel entier entier le plus proche de x ROUND (9.49) = 9 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] Odd (x) ODD (x) entier long booléen VRAI si x est impair FAUX si x est pair ODD (3) = True ODD (8) = False Inc (x) INC (x) ; scalaire type de x Procédure, qui incrémente x INC (x) ; l’équivalent de x  x +1 INC(x, n) ; l’équivalent de x  x + n Dec (x) DEC (x) ; scalaire type de x Procédure, qui décrémente x DEC (x) ; l’équivalent de x  x - 1 DEC(x, n) ; l’équivalent de x  x - n Pred (x) PRED (x) scalaire type de x prédécesseur de x, s’il existe PRED (5) = 4 ; PRED (‘C’) = ‘B’ PRED (True) = False Succ (x) SUCC (x) scalaire type de x successeur de x, s’il existe SUCC (5) = 6 ; SUCC (‘C’) = ‘D’ 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 Majus (x) UPCASE (x) caractère caractère majuscule de x, s’il est possible UPCASE (‘b’) = ‘B’ ; UPCASE (‘R’) = ‘R’ UPCASE (‘4’) = ‘4’ ; UPCASE (‘?’) = ‘?’ * Un type scalaire est un ensemble fini et ordonné de valeurs (Entier, Caractère, Booléen, Enuméré, intervalle).
  • 14. LES STRUCTURES DE DONNEES  Prof : FENNI-S ANNEXE II Les fonctions standard relatives aux chaînes de caractères Syntaxe Rôle Type Exemples en Pascal En Algorithmique En Pascal Paramètres d’entrée Résultat Long (ch) Length (ch) Retourne un entier représentant la longueur de ch. Long (ch) = ord (ch[0]) Chaîne/Caractère Entier Lg := Length ('L''école');  lg = 7 Lg := Length ('') ;  lg = 0 Lg := Length (' ') ;  lg = 1 Pos (ch1, ch2) Pos (ch1, ch2) Retourne la première position de la chaîne ch1 dans la chaîne ch2. Chaîne/Caractère Entier P := Pos ('T', 'ATTENTION') ;  P = 2 P := Pos ('gra', 'Program') ;  P = 4 P := Pos ('R', 'Professeur') ;  P = 0 Sous_Chaîne (ch, p, n) Copy (ch, p, n) Retourne une sous chaîne de n caractères à partir de la position p de la chaîne ch. Chaîne/Caractère, Entier, Entier Chaîne CH 1:= Copy ('Langage', 4, 3) ;  CH1 = 'gag' CH 2:= Copy ('Bonjour', 4, 10) ;  CH2 = 'jour' Concat (ch1, ch2, …) Concat (ch1, ch2, …) Retourne la concaténation de plusieurs chaînes en une seule. C'est l'équivalent de ch1+ch2+… Chaîne/Caractère Chaîne CH2 := ' Janvier' ; CH1 :='14' ; CH3 := Concat (ch1, ch2, '2011') ;  CH3 = '14 Janvier2011' Les procédures standard relatives aux chaînes de caractères Syntaxe Rôle Type Exemples en Pascal En Algorithmique En Pascal Paramètres d’entrée Résultat Efface (ch, p, n) Delete (ch, p, n) ; Supprime N caractères de CH à partir de la position P. Chaîne, Entier, Entier Chaîne CH := 'Merci' ; Delete (CH, 4, 2) ;  CH = 'Mer' Insère (ch1, ch2, p) Insert (ch1, ch2, p) ; Insère une chaîne CH1 dans une autre CH2 à la position P. Chaîne/Caractère, Chaîne, Entier Chaîne CH1 := 'DA' ; CH2 := 'DIC' ; Insert (CH1, CH2, 3) ;  CH2 = 'DIDAC' ConvCh (n, ch) Str (n, ch) ; Convertit une valeur numérique N en une chaîne CH. Numérique, Chaîne Chaîne STR (2018, CH) ; CH = '2018' STR (14.52, CH) ; CH = '1.4520000000E+01' STR (14.52:8:3, CH) ; CH = '14.520' Valeur (ch, n, err) Val (ch, n, err) ; Convertit une chaîne de caractères CH en une valeur numérique N. De plus, elle fournit un code d'erreur ERR qui indique si l'opération s'est déroulée correctement. Chaîne/Caractère, Numérique, Entier Numérique, Entier VAL ('2010', N, Err) ; N = 2010 et Err = 0 VAL ('0045', N, Err) ; N = 45 et Err = 0 VAL ('5E+3', N, Err) ; • Si N est de type entier : N = 0 et Err = 2 • Si N est de type réel : N = 5000 et Err = 0