Lycée Pilote de Sousse
Devoir de Contrôle N° 2
Année scolaire : 2013/2014
Matière : Informatique
Durée : 1H30MinMr. Med Abdallah Mani
Classe : 4ième TechNom & Prénom : ………. Note : ……. / 20
Exercice 1.(4.5pts)
Traduire les expressions suivantes en Pascal puis les évaluer en donnant le type de chaque objet utilisé.
Expression1 X ← (Abs (Arrondi (8.7)) < racine carrée (25)) Ouex (2<longueur ("l’élève")) Traduction
Pascal X := (Abs (Round (8.7)) < SQRT (25)) XOR (2<Length (‘l’élève’)) ; Evaluation
d’expression
X=Vrai Type X : Booléen
Expression2 Y ← long ("Le "+ souschaine("Le système solaire",4,7 ) + "automatique") Traduction
Pascal Y := Length (‘Le ‘+ Copy(‘Le système solaire’,4,7 ) + ‘automatique’) ; Evaluation
d’expression
Y=21 Type Y :Entier
Expression3
Ch ← "la valeur exacte du bénéfice=130.795 DT"
Effacer (ch,1,20)
Valeur (souschaine(ch,10,7),n,e) Traduction
Pascal
Ch := ‘la valeur exacte du bénéfice=130.795 DT’ ; Delete (ch,1,20) ;
Val (Copy(ch,10,7),n,e) ; Evaluation
d’expression
Type ch : Chaine de Caractères Type n : Réel
Type e :Entier Exercice 2. (3.5pts)
Soit la procédure suivante :
Procedure remplir(VAR t :tab ;n :integer) ; Var i,j :integer; trouve:Boolean;
Begin
Writeln(‘t[1]=’);
Readln(t[1]);
For i:=2 to n do Repeat
Write(‘t[‘,i,’]=’);
Readln(t[i]);
J:=1;
Trouve:=false;
Repeat
If t[i]=t[j] then trouve :=true;
J:=j+1;
Until (trouve=True) or (i= J);
Until(trouve=False);
End;
1. Compléter la procédure
2. Donner le rôle de la procédure
………Cette procédure permet de remplir un tableau par des valeurs distinctes (l’élément se
trouve une seule fois dans le tableau)………
1 | P a g e
Programme Principal
FN Conversion PROC Lecture
FN VerifChif FN VerifMaj
Problème. (12pts)
Ecrire un programme qui décrypte un mot construit à partir du code ASCII de lettres majuscules.
Exemple :
Si la chaine à décrypter est "77658472" le programme affichera "MATH" car : 77 est le code ASCII de la lettre M
65 est le code ASCII de la lettre A 84 est le code ASCII de la lettre T 72 est le code ASCII de la lettre H Remarques :
Les codes ASCII de [’’A’’..’’Z’’] sont respectivement [65..90]
Les modifications sont faites sur la chaîne elle-même.
1. Donner la décomposition modulaire du Programme Principal 2. Donner l’analyse et l’algorithme du programme principal 3. Donner l’analyse des modules
4. Donner l’algorithme et la traduction en pascal du module de conversion.
1. Décomposition Modulaire :
2. Analyse et Algorithme du Programme Principal
Analyse PP Algorithme PP
Résultat = Ecrire (’’La chaine ‘',ch,’' devient '’, FN Conversion(ch))
Ch=PROC Lecture (ch) Fin PP
T.D.O.G
Objet Type/Nature Rôle
Ch Chaine de
caractères Conversion Fonction Lecture Procédure
1) Début PP
2) PROC Lecture (ch)
3) Ecrire (’’La chaine ‘',ch,’' devient '’, FN Conversion(ch))
4) Fin PP
3. Traduction Pascal : PROGRAM MATH;
USES WINCRT;
VARCH:STRING;
I:INTEGER;
FUNCTION VERIFCHIF(CH:STRING):BOOLEAN;
VAR I:INTEGER;
BEGIN I:=0;
2 | P a g e
REPEAT I:=I+1;
UNTIL (I=LENGTH(CH)) OR NOT(CH[I] IN ['0'..'9']);
VERIFCHIF:= CH[I] IN ['0'..'9'];
END;
FUNCTION VERIFMAJ(CH:STRING):BOOLEAN;
VAR I:INTEGER;
BEGIN I:=-1;
REPEAT I:=I+2;
UNTIL (I>LENGTH(CH)) OR (COPY(CH,I,2)<'65') OR (COPY(CH,I,2)>'90');
WRITELN(COPY(CH,I-2,2));
VERIFMAJ := (COPY(CH,I-2,2)>='65') AND (COPY(CH,I-2,2)<='90');
END;
PROCEDURE LECTURE(VAR CH:STRING);
BEGIN REPEAT
WRITELN('DONNER UNE CHAINE CONTENANT LES CODES ASCII DE CARACTERES MAJUSCULES :');
READLN(CH);
UNTIL (LENGTH(CH) MOD 2=0) AND (VERIFCHIF(CH)) AND (VERIFMAJ(CH));
END;
FUNCTION CONVERSION(CH:STRING):STRING;
VAR
XCH :STRING ; X,E :INTEGER;
BEGIN I:=1;
REPEAT
XCH:=COPY(CH,I,2);
VAL(XCH,X,E);
XCH:=CHR(X);
DELETE(CH,I,2);
INSERT(XCH,CH,I);
I:=I+1;
UNTIL I>LENGTH(CH)-1;
CONVERSION:=CH;
END;
BEGIN
LECTURE(CH);
WRITELN('La chaine ',ch,' devient ',conversion(ch));
END. Bon Travail
3 | P a g e