1
N.B : le sujet comporte 4 pages qui doivent être remises à la fin de l’épreuve
Exercice N°1 : (3 pts)
Soit le tableau PAT qui donne le nombre de patients ayant visités un certain cabinet médical
par mois :
292
300
231
182
169
143
151
128
156
169
251
Janvier Février Mars Avril Mai Juin Juillet Aout Septembre Octobre Novembre Décembre
Questions :
1. En utilisant le type scalaire énuméré, déclarer en Pascal un type mois contenant les mois de
l’année :
…………………………………………………………………………………………………
…………………………………………………………………………………………………
2. Soit TAB le type du tableau PAT, donner une déclaration en Pascal du type TAB :
…………………………………………………………………………………………………
…………………………………………………………………………………………………
3. Compléter le tableau ci-dessous en mettant une croix dans la colonne valide ou dans la colonne
non valide pour chaque instruction. Justifier votre réponse pour les instructions non valides.
Déclaration et instruction
Valide
Non valide
Justification
Writeln (PAT[Mai]) ;
i :string ;
for i := janvier to decembre do
PAT[i]:=PAT[i]+1;
M:mois;
Readln (M);
J:Mois;
J:=SUCC(J);
Lycée Beni Hassen Devoir de synthèse N°1 Classe : 3 SI
Année scolaire: 14/15 Matière : Algorithmique et Programmation Date : 09/12/2014
Prof : Bahri Aïda Durée : 2H
Nom & Prénom :………………………..........................................
Note : …………………………. / 20
2
Exercice N°2 : (3 pts)
Soit la fonction Pascal suivante :
Function Essai (ch :string ;nb,p :integer) : ………………..
Var
i:integer; r:string;
begin
r:=’ ’;
For i:=1 to length(ch) do
if i in [p..p+nb-1] then r := r + ch[i];
Essai := r;
end;
Questions:
1. Compléter les pointillés par le type de la fonction Essai.
2. Donner le résultat de cette function pour les paramètres suivants :
Ch = ‘Protocole’ p = 3 et nb = 4
…………………………………………………………………………………………..
3. Donner une fonction prédéfinie en Pascal qui donne le même résultat que la fonction
Essai.
…………………………………………………………………………………………..
4. Les paramètres ch, nb et p sont dits des paramètres :
Effectifs Sélectifs Formels
5. Transformer la fonction en procédure :
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
Exercice N°3 : (3 pts)
En classe, un enseignant a donné un exercice permettant de vérifier si un triplet de réels(a,b,c)
est dit triplet de Pythagore c'est-à-dire a2 + b2 = c2. Un élève propose une solution formée par
les deux algorithmes suivants :
3
L’algorithme du programme appelant L’algorithme, sans entête, de la fonction
Pythagore
En passant à la correction de la proposition de l’élève, l’enseignant vous demande de répondre
aux questions suivantes :
1°) Pour chacune des propositions suivantes mettre dans la case correspondante la réponse
Vrai si l’en-tête de la fonction Pythagore est correcte ou la réponse Faux dans le cas
contraire.
En-tête proposée pour la définition de la fonction Pythagore
Réponse
Fonction Pythagore (a,b,c : entier) : booléen
Fonction Pythagore (n1,n2,n3 : réel) : booléen
Fonction Pythagore (a,b,c : réel) : booléen
Fonction Pythagore (a,b,c : réel) : réel
2°) L’élève a oublié l’appel de la fonction Pythagore dans l’algorithme du programme
appelant, réécrire l’algorithme Prg_Appelant en ajoutant à l’endroit convenable l’appel
adéquat de cette fonction :
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
3°) Améliorer l’instruction n° 1/ de la fonction Pythagore en remplaçant la structure
conditionnelle par une instruction simple :
…………………………………………………………………………………………………
…………………………………………………………………………………………………
0/ Début Prg_Appelant
1/ Lire(n1)
2/ Lire(n2)
3/ Lire(n3)
4/ Si R = vrai alors
Ecrire(n1,’,’,n2,’,’,n3,’forment un triplet de
pythagore’)
Fin Si
5/ Fin Prg_Appelant
0/
1/Si carré(a) + carré(b) = carré(c) alors
Pythagore Vrai
Sinon
Pythagore Faux
Fin Si
2/ Fin Pythagore
4
Problème (11 pts)
Soit T un tableau de N chaines de caractères non vides, de taille maximale 5 et dont le premier
caractère est une lettre alphabétique.
On se propose d’écrire un programme permettant de réaliser le traitement suivant :
1. Remplir le tableau T par N chaînes (2 <= N <= 30).
2. Eliminer de chaque élément du tableau tous les caractères non alphabétiques.
3. Convertir toutes les chaînes en majuscules.
4. Afficher toutes les chaînes palindromes.
NB : une chaîne est dite palindrome si elle se lit de la même façon de gauche à droite et de
droite à gauche. Exemples : AZZA, RADAR, AA, Z,…
Exemple :
N= 5 et T=
B5 ?ac
Z15@2
Ra8d9ar
M200#a
Az9%ZA
Le tableau après l’étape 2 contiendra les chaînes suivantes :
Bac
Z
Radar
Ma
AzZA
Le tableau après l’étape 3 contiendra les chaînes suivantes :
BAC
Z
RADAR
MA
AZZA
Le programme affichera : Z RADAR AZZA
Questions :
1°) Analyser le problème en le décomposant en modules.
2°) En déduire l’algorithme principal.
3°) Analyser chacun des modules envisagés.
Bon Travail
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !