Lycée Ouardia 2012/2013
Exercice
On se propose de remplir un tableau T1 par N chaînes de caractères.
Pour être valides, ces données doivent vérifier les conditions suivantes:
N est un entier entre 3 et 20.
Une chaîne de caractères doit commencer par une lettre en majuscule..
A partir de T1, on remplit un deuxième tableau T2 de sorte que B[i] contient la somme des chiffres qui figurent éventuellement dans T1[i]. Dans le cas où T1[i] ne contiendrait pas des chiffres alors la valeur de T2[i] est égale à -1.
Exemple : pour N = 5
1 2 3 4 5
T1 Ali15sd Refd0dr Tgdfrtkjhgf Abcd0d1e6f S628fd2
1+5 0 0+1+6 6+2+8+2
T2 6 0 -1 7 18
Questions
1. Analyser ce problème en le décomposant en modules.(Analyse Du Programme Principal )
2. Analysez Chaque Module Utilisé dans l’analyse du programme Principal
Corrigé Exercice
Analyses et algorithmes
Programme principal
Nom : Exe1 3
2 1
4
Résultat= Proc afficher(T2,N) T2=Proc Traitement(T1,N,T2) T1,N=Proc saisie (T1,N,3,20) ;
Afficher : procédure qui affiche un tableau à N éléments
Traitement : procédure qui remplit T2 par la somme des chiffres de T1
Saisie :procédure qui lit un entier en respectant qu’il soit dans un intervalle donnée et lit N chaînes de caractères à mettre dans un tableau.
Fin exe1
T2 N T1 Afficher Traitement Saisie
Khmili Meher 1/3 4éme Scientifique
Lycée Ouardia 2012/2013 T.D.O.
Objet Type/nature
T1 T2 N
Afficher, Traitement, saisie
Tabch TabEntier Entier Procédure Tableau des nouveaux types (T.N.T.) TabCh=Tableau de 20 chaîne
TabEntier = tableau de 20 entier Algo
0. Début exe2 1. Proc saisie (T1,N) 2. Proc traitement(t1,n,t2) 3. Proc afficher(t2,n) Fin exe2
Procédure Afficher
Déf Proc Afficher(T :tabentier ;n :entier) 1
2
Résultat=Pour i de 1 à n faire Ecrire (T[i]) Fin Pour
Fin afficher
Procédure saisie
Déf Proc saisie(var T :tabentier ; var n :entier )
S L.D.E O.U.
2
1 3
Résultat=T,n
T=Pour i de 1 à n Répéter Répéter
T[i]=donnée
T[i][1] majus(T[i][1]) Jusqu’à T[i][1] dans ["A".."Z"]
Fin Pour N=Répéter
N=donnée Jusqu’à N dans [3..20]
Fin saisie
i
T.D.O. Algo
0- Déf Proc saisie(var T :tabentier ;var n :entier ; a,b :entier) 1- Répéter
Lire(N)
Jusqu’à N dans [3..20]
Objet Type/nature
i Entier
Khmili Meher 2/3 4éme Scientifique Algo
0-Déf Proc Afficher(T :tabentier ;n :entier) 1-Pour i de 1 à n faire
Ecrire (T[i]) Fin Pour
2-Fin Afficher
Majus : fonction prédéFinie qui retourne la majuscule d’une lettre. (en pascal : upcase)
Lycée Ouardia 2012/2013 2- Pour i de 1 à n Répéter
Répéter
LIRE(T[i])
T[i][1] majus(T[i][1]) Jusqu’à T[i][1] dans ["A".."Z"]
Fin Pour 3- Fin Afficher
Procédure traitement
Déf Proc traitement(T1 :tabch ; n :entier ; var T2 : tabentier) 1
2
Résultat=T2
T2=Pour i de 1 à n répéter
SI ( FN Verif(T1[i]) = Vrai ) Alors T2[i] -1
Sinon
T2[i] FN Calcul( T1[i]) FIN SI
Fin Pour Fin traitement
i j ch e
Fonction Calcul
DEF FN Calcul( ch : chaine ) : entier Resultat = Calcul
Calcul S
S=[ S 0] Pour i de 1 à long(ch) faire Valeur(ch[i],x,e) S S + x FIN SI
FIN Pour Fin Calcul
Fonction Verif
0) DEF FN Verif ( ch : chaine ) : booléen 1) Ok vrai , i 0
Repeter
Si Majus(ch[i] ) Dans [“A“..“Z] Alos I i +1
Sinon ok Faux FINSI
Jusqu’à ( ok = faux ) ou ( i > Long(ch)) 2) Verif Ok
3) Fin Verif
Khmili Meher 3/3 4éme Scientifique Objet Type/nature
i , j, e
Ch Entier
chaîne
On parcourt T1 à l’aide du compteur i
La fonction Verif permet de verifier si chaque case est formé uniquement de lettre
alphabetique dans ce cas T2[i]
=-1
La fonction Calcul somme les chiffres se trouvant dans chaque case du tableau .