Télécharger

publicité
Devoir de synthèse N°1
Lycée Beni Hassen
Classe : 3 SI
Matière : Algorithmique et Programmation
Année scolaire: 14/15
Date : 09/12/2014
Prof : Bahri Aïda
Durée : 2H
Nom & Prénom :………………………..........................................
Note : …………………………. / 20
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
Janvier
300
231
182
Février Mars
Avril
169
Mai
143
151
Juin
Juillet
128
156
169
192
251
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
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);
1
Justification
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 :
2
L’algorithme du programme appelant
L’algorithme, sans entête, de la fonction
Pythagore
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
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
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
Réponse
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 :
…………………………………………………………………………………………………
…………………………………………………………………………………………………
3
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.
2.
3.
4.
Remplir le tableau T par N chaînes (2 <= N <= 30).
Eliminer de chaque élément du tableau tous les caractères non alphabétiques.
Convertir toutes les chaînes en majuscules.
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
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
Ra8d9ar
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
4
Téléchargement