Académique Documents
Professionnel Documents
Culture Documents
et
Programmation
Professeur
Mohamed TRABELSI
Plan du Cours
Rappel
Chapitre 1 : Les structures de donnes et les structures simples
Chapitre 2 : Les structures algorithmiques de contrle
Chapitre 3 : Les sous-programmes
3 SI
Chapitre 4 : Algorithmes de tri et de recherche
Chapitre 5 : Algorithmes rcurrents
Chapitre 6 : Algorithmes arithmtiques
Chapitre 7 : Algorithmes d'approximation
Exercice de rvision
Objectif : rappeler la dmarche de rsolution adopte pour rsoudre un problme et aboutir
un programme. Application page 10 livre algorithmique 3me SI.
Enonc :
On se propose de calculer lallongement L dun ressort de raideur K auquel est accroch une
masse m. Sachant que m * g = K * L.
Prsenter la spcification de ce problme
Dduisez lalgorithme
Traduisez la solution en Pascal et lexcutez pour m = 150 et K = 10.
a. Analyse
Rsultat : Afficher l'allongement L
Traitement :
Lm*g/K
m = donne
K = donne
g est une constante de valeur 9,8
b. Algorithme
0)
1)
2)
3)
4)
5)
Dbut allongement
Lire (K)
Lire (m)
L m*g/K
Ecrire (L)
Fin allongement
T.D.O
Objet
K, m, l
g
Type
Rel
Constante = 9,8
Rle
K : raideur, m : masse, l : allongement
pesanteur
Algorithme
0) Dbut allongement
1) Rpter
crire (" Donner la valeur de la raideur du ressort : "), lire (K)
Jusqu' K > 0
2)
3)
4)
5)
http://web-tic.net
3 / 15
Chapitre 1
Structures de donnes
et structures simples
Dure : 12 Heures
Type : Thorique / Pratique
Dclaration :
Ct analyse :
Ct T.D.O :
Objet
nom_contante
Type
Constante = valeur_constante
Rle
Ct Pascal :
CONST nom_contante = valeur_constante;
Caractristiques :
Voir livre page 11.
Application 1 :
Calculer et afficher la distance entre deux points M et N dont les coordonnes sont des
entiers donnes. (Par rapport un repre gradu)
M (a, b)
et
N (c, d)
a. Analyse
Rsultat : Afficher la distance DT
Traitement :
DT SQRT (SQR (a c) + SQR (b d) )
(a, b) = Donnes
(c, d) = Donnes
http://web-tic.net
4 / 15
b. Algorithme
0) Dbut distance
1) Lire (a, b)
2) Lire (c, d)
3) DT SQRT (SQR (a c) + SQR (b d) )
4) crire (DT)
5) Fin distance
T.D.O
Objet
a, b
c, d
DT
Type
entier
entier
Rel
Rle
Coordonnes de M
Coordonnes de N
Distance entre M et N
Activit 1 :
Dclarer une variable qui servira stocker l'ge d'une personne.
Dclarer une variable qui servira stocker des factoriels avec 1 < n < 20.
Quels sont les types de donnes que vous allez choisir pour ces 2 variables ?
En pascal
Domaine de valeur
Taille
Octet
byte
0 255
1 octet
Mot
word
0 65535
2 octets
o Signs :
Type
En pascal
Domaine de valeur
Taille
Entier court
shortint
-128 127
1 octet
Entier
Integer
-32768 32767
2 octets
Entier long
Longint
-2147483648 .. 2147483647
4 octets
http://web-tic.net
5 / 15
16
15
14
13
12
11
10
Bit de signe
-32768
0
215 = 32768 possibilits
32767
32768
Activit 2 :
Ecrire un programme en Pascal qui permet de saisir un rel et de le
rafficher.
Procder la srie de tests suivants :
Valeur 1 : 5.223
Valeur 2 : 13251.33
Valeur 3 : 0.0999
Que pouvez-vous en dduire ?
Voir dans le help les sous types du type rel
Activit 3 :
Ecrire un programme en Pascal qui permet de saisir un rel x et d'afficher le
rsultat de toutes les fonctions arithmtiques standard.
http://web-tic.net
6 / 15
Activit 4 :
Les fonctions prdfinies sur les caractres : Voir livre page 23.
Activit 5 :
Ecrire un programme en Pascal qui permet de saisir un caractre c et de
changer sa casse.
Exemple : c = "A"
"a"
c = "a"
"A"
a. Analyse
Rsultat : Afficher le caractre c modifi
Traitement :
Si c est majuscule alors
c Chr (Ord (c) + 32)
sinon
c Upcase (c)
Fin si
b. Algorithme
0) Dbut min_maj
1) Ecrire ("Donner un caractre : "), (Lire (c)
2) Si c dans ["A".."Z"] alors
c Chr (Ord (c) + 32)
Sinon
c Upcase (c)
Fin si
3) crire (c)
4) Fin min_maj
7 / 15
Type
Chane [longeur_chane]
Rle
Affectation :
o Ct analyse et algorithmique : exemple CH "Sciences informatiques"
o Ct Pascal : exemple CH := 'Sciences informatiques'
Les fonctions et les procdures prdfinies sur les chanes : Voir livre page 26.
b. En algorithmique :
Ecrire ("commentaire sur la variable")
Lire (Objet)
c. En Pascal :
writeln (' commentaire sur la variable');
readln (Objet);
En Pascal :
writeln (Objet);
writeln ('message' , Objet);
writeln ('msg 1 ' , Objet 1, 'msg 2 ' , Objet 2);
http://web-tic.net
8 / 15
En Pascal :
:=
L'affectation :
Soit la squence d'affectation suivante :
1)
2)
3)
4)
R 10
S pi * R * R
R1
S carr (ABS(R))
N instruction
1
2
3
4
a. Dfinition
Les types numrs permettent de reprsenter des valeurs en les numrant au
moyen de leurs noms. Un type numr est constitu d'un nombre limit de valeurs.
(Maximum 256 en Pascal). Ces valeurs ne doivent pas appartenir un autre type de
donnes.
b. Dclaration
Type
nom_type = (val1, val2,, valn)
Objet
nom_variable
http://web-tic.net
Type
nom_type
En algorithmique
Rle
Rle
9 / 15
En Pascal
c. Oprateurs relationnels
= <= >= <> <
>
Exemple : Lundi < Mardi
Var
JDT = Lundi .. Vendredi ;
V. Les tableaux
http://web-tic.net
10 / 15
c. Correction de lactivit
Version 1
1. Analyse
Rsultat : crire ("La paye de la semaine est: ", MP, " DT")
Traitements :
MP total * THP
Pour saisir le tableau des horaires H et au mme temps calculer la somme des
horaires stocks dedans il faut :
i.
Initialiser total 0
ii.
Utiliser une boucle Pour qui permet de saisir la case H[i] puis de
cumuler cette valeur dans S.
2. Algorithme
0) Dbut paye_semaine
1) total 0
Pour i de 1 5 faire
crire ("Entrez le nombre d'heure du jour ", i, " : "), lire (H[i])
total total + H[i]
Fin pour
2) Ecrire ("Prcisez la valeur du taux horaire : "), lire (THP)
3) MP total * THP
4) crire ("La paye de la semaine est: ", MP, " DT")
5) Fin paye_semaine
Type
Paye = tableau de 5 octet
http://web-tic.net
11 / 15
T.D.O
Objet
i
total
THP
MP
H
Type
octet
octet
Rel
Rel
paye
Rle
Compteur
Total heures de la semaine
Taux horaire de payement
Paye de la semaine
Tableau des heures travailles par jour
Algorithme
0) Dbut paye_semaine2
1) total 0
Pour j de lundi vendredi faire
crire ("Entrez le nombre d'heure du jour ", ord(j) +1, " : "), lire (H[j])
total total + H[j]
Fin pour
2) Ecrire ("Prcisez la valeur du taux horaire : "), lire (THP)
3) MP total * THP
4) crire ("La paye de la semaine est : ", MP, " DT")
5) Fin paye_semaine2
Type
jours = (dimanche, lundi, mardi, mercredi, jeudi, vendredi, samedi)
jours_de_travail = lundi ..vendredi
Paye = tableau de 5 octet
T.D.O
Objet
j
Type
jour_de_travail
Rle
Reprsente le jour en cours
total
octet
THP
Rel
MP
Rel
Paye de la semaine
paye
http://web-tic.net
12 / 15
d'afficher
simultanment
le montant
de la
paye
pour chaque
ouvrier.
* Discussion
des ventuels
changements
ncessaire
pour
l'activit
7
a. Dfinition
Un tableau deux dimensions a la forme d'une matrice compose de lignes et de
colonnes. Toutes les cases de ce tableau auront le mme type. L'accs une case de ce
tableau s'effectue par consquent grce deux indices comme suit :
Type
nom_type = tableau de [intervale1, intervale2] de Type
En algorithmique
Objet
nom_tableau
Type
nom_type
Rle
Rle
En Pascal
http://web-tic.net
13 / 15
Exemple :
Villes
Dim
Lun
Mar
Mer
Jeu
Ven
Sam
Moyenne
Ecart
type
Tunis
20
23
21
22
26
27
23
23,14
Gabes
22
23
24
24
25
28
27
24,71
Moyenne = ( Mi ) / n
cart type =
i 1
( Mi Moy )
i 1
a. Analyse du problme
Rsultat : Affichage
Traitements :
b. Algorithme
0) Dbut temperature_ville
1) crire ("Donner le nombre de ville : "), lire (n)
2) Pour i de 1 n faire
cumul 0
Pour j de 1 7 faire
crire ("Donner la temprature : "), lire (MT [ i , j ])
cumul cumul + MT [ i , j ]
fin pour
moyenne [i] cumul / 7
Fin pour
3) Pour i de 1 n faire
Pour j de 1 7 rpter
Ecrire (MT [ i , j ], " ")
Fin pour
Ecrire (moyenne [i])
Fin pour
4) Fin temperature_ville
http://web-tic.net
14 / 15
Type
T_moyenne = tableau de 10 rels
T_temprature = tableau [1..10, 1..7] de rels
T.D.O
Objet
i, j
n
MT
moyenne
cumul
Type
octet
octet
T_temprature
T_moyenne
rel
Rle
Compteurs
Nombre des villes
Matrice des tempratures
Tableau des moyennes des tempratures
La somme des tempratures
(Version 2)
Rsultat : Affichage
Traitements :
b. Algorithme
0) Dbut temperature_ville2
1) crire ("Donner le nombre de ville : "), lire (n)
2) Pour i de 1 n faire
cumul 0
Pour j de 1 7 faire
crire ("Donner la temprature : "), lire (MT [ i , j ])
cumul cumul + MT [ i , j ]
fin pour
crire (cumul / 7)
Fin pour
3) Fin temperature_ville2
Type
T_temprature = tableau [1..10, 1..7] de rels
T.D.O
Objet
i, j
n
MT
cumul
http://web-tic.net
Type
octet
octet
T_temprature
rel
Rle
Compteurs
Nombre des villes
Matrice des tempratures
La somme des tempratures
15 / 15