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

CH1

CH2

R

E

 

 

 

 

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