![]() |
![]() |
![]() |
Les structures Simples
Mise à jour le : 01/11/2004
Énoncé
Écrire un programme Pascal qui lit deux entiers N1
et N2
(N1 est formé de trois chiffres, N2 est formé de deux chiffres)
puis insère N2 dans N1
càd
le 1er chiffre de N2 sera entre le 1er et le 2ème chiffre de N1
et
le 2ème de N2 sera entre le 2ème et le 3ème chiffre de
N1
Exemple : N1 = 125 N2 = 87
==> R = 18275
1ère
Méthode
2ème Méthode
I) La préanalyse de la méthode 2 :
II) L'analyse :
|
Nom = Insertion |
||
| Séquences | Liste des définitions Explicites | Objets Utilisés |
| 7 6 5 3 1 4 2 8 |
Résultat
=
Ecrire(R) Valeur (CH, R, E) CH ß CH1[1]+CH2[1]+CH1[2]+CH2[2]+CH1[3] Chaîne(N1, CH1) Répeter Lire(N1) Jusqu'à (N1>=100) et (N1<=999) Chaîne(N2, CH2) Répeter Lire(N2) Jusqu'à (N2>=10) et (N2<=99) Fin Insertion |
N1
N2 CH1CH2 RE
|
III) Le tableau de déclaration des objets :
| Objets Utilisés | Type / Nature | Rôle |
| N1 | Variable / Entier | Recevoir le 1er entier |
| N2 | Variable / Entier | Recevoir le 2ème entier |
| CH1 | Variable / Chaîne[3] | Recevoir la conversion de N1 en une chaîne |
| CH2 | Variable / Chaîne[2] | Recevoir la conversion de N2 en une chaîne |
| CH | Variable / Chaîne[5] | Recevoir l'insertion de CH2 dans CH1 |
| R | Variable / Entier | Recevoir le résultat de l'insertion |
| E | Variable / Entier | Recevoir le position du caractère qui va déclenché l'erreur lors de la conversion. Ici e=0 |
IV) L'algorithme :
| 0- | Début Insertion |
| 1- | Répeter |
| Lire(N1) | |
| Jusqu'à (N1>=100) et (N1<=999) | |
| 2- | Répeter |
| Lire(N2) | |
| Jusqu'à (N2>=10) et (N2<=99) | |
| 3- | Chaîne(N1,CH1) |
| 4- | Chaîne(N2,CH2) |
| 5- | CH ß CH1[1]+CH2[1]+CH1[2]+CH2[2]+CH1[3] |
| 6- | Valeur(CH,R,E) |
| 7- | Ecrire (R) |
| 8- | Fin Insertion |
V) La traduction en turbo pascal :
Program Inertion;
uses Wincrt;
Var N1, N2, E, R : Integer;
CH1:String[3];
CH1:String[2];
CH1:String[5];
Begin
Repeat
Write('N1 :');
Readln(N1);
Until (N1>=100) et (N1<=999);
Repeat
Write('N2 :');
Readln(N2);
Until (N2>=10) et (N2<=99);
STR(N1,CH1);
STR(N2,CH2);
CH : = CH1[1]+CH2[1]+CH1[2]+CH2[2]+CH1[3];
Val(CH,R,E);
Write('R=',R);
End.
| Page d'index | Série les chaînes de caractères | Haut |