Année scolaire : 2011/2012 Lycée Pilote de Sousse Matière : Informatique Devoir de Synthèse Mr. Med Abdallah Mani N° 3 Nom & Prénom : ……………………………………………………. Exercice 1. Soit l’algorithme suivant : 0) Début Vérification 1) Ecrire ("Taper SVP une chaine ") 2) Lire (ch1) 3) Ecrire ("Taper SVP une 2ème chaine ") 4) Lire (ch2) 5) T2 Upcase(ch2 [1]) Dans [ ‘A’..’Z’] 6) T1 ch1 [1] Dans [ ‘0’..’9’] 7) Ecrire ("Vérification de ch1 : ", T1) 8) Ecrire ("Vérification de ch2 : ", T2) 9) Fin Vérification Durée : 1H Classe : 3 sc 4 Note : ……. / 20 a) Faites le tournage à la main avec les valeurs suivantes : ch 1 "xyz" "1abf" "01b" T1 F V V & & & ch2 T2 "mg5" V ".b-" F "658" F b) Donner le rôle de l’algorithme Tester si le premier caractère de la chaine ch1 est un chiffre et tester si le deuxième caractère de la chaine ch2 est une lettre Exercice 2. 1) Compléter les affectations suivantes par un opérande ou un opérateur de manière à affecter dans chacun des cas, à la variable booléenne « Y » la valeur « true ». (2 pts) 1. Y:= (ROUND (9.49) = ………………6……..) ; 2. Y := (UPCASE ( ‘0’ ) IN [ ‘A’..’Z’ ] ) …and..(5 IN [1..10] ) ; 3. Y :=( LENGTH ( ‘Pascal’ ) div 3 < ……2….) ; 4. Y := (CONCAT (‘bac’,’2010’) = ’bac’…+..’2010’ ; 2) Corriger les erreurs dans les déclarations ci-dessous. (2 pts) 1. Var Jour-pair : (lundi, mercredi , vendredi) ; Type Jour-pair =(lundi, mercredi , vendredi) ; 2. Var char : ’A’..’Z’ ; Type c = ’A’..’Z’ ; 3. Type Voyelle = [‘a’ ‘e’ ‘o’ ‘i’ ‘u’ ‘y’] ; Type Voyelle = (a,e,o,i,u,y) ; 4. Type tab = array [2.5 .. 10] of char ; Type tab = array [1 .. 10] of char ; 3) Soit l’algorithme suivant : P 1 Réécrire les instructions en Pascal : Pour i de 1 à N faire P :=1 ; Si (t[i] > 0) alors For i :=1 to n do p p * t[i] If t[i]>0 then Fin si P :=p*t[i] ; Fin pour 1) Donner la valeur finale de P pour le tableau T suivant : T -5 2 -3 4 1 -6 P = ………8………… 2) Qu’elle est le rôle de cet algorithme : …………multiplier les entiers positifs d’un tableau t et mettre le résultat dans p............... Exercice 4. Ecrire une analyse, un algorithme et la traduction en Pascal d'un programme intitulé "SOMME_CHIFFRES", qui permet de lire une chaîne de caractères CH commençant obligatoirement par une lettre alphabétique majuscule (et supposée composée par des lettres et des chiffres), détermine et affiche l'entier S formé par la somme des chiffres qui figurent dans la chaîne CH. Exemple: Pour CH='Ali12abc26' la valeur de S est 1+2+2+6 = 11 Le programme affichera le résultat suivant : S = 11 Algorithme Traduction Pascal program somme_chiffr; uses wincrt; var ch:string; s,i,x:longint; e:integer; begin writeln('Donner une chaine'); readln(ch); s:=0; for i:=1 to length(ch) do if ch[i] in ['1'..'9'] then begin val(ch[i],x,e); s:=s+x; end; writeln(ch); writeln(s); end.