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

1ère Méthode

I) La préanalyse de la méthode 1 :

II) L'analyse :

Nom = Insertion

Séquences Liste des définitions Explicites Objets Utilisés
9 Résultat = Ecrire(R) N1
8 R ß    C1*10000+D2*1000+D1*100+U2*10+U1 N2
3 C1 ß   N1 Div 100 C1
1  Répeter D1
             Lire(N1)  U1
  Jusqu'à (N1>=100)  et  (N1<=999) D2
6 D2 ß     N2 Div 10 U2
2 Répeter R
           Lire(N2)   
  Jusqu'à (N1>=10)  et  (N1<=99)  
4 D1 ß     N1 Mod 100 Div 10  
7 U2 ß     N2 Mod 10  
5 U1 ß     N1 Mod 10  
10 Fin Insertion  
III) Le tableau de déclaration des objets :
Objets Utilisés Code Nature/Type   Rôle
N1 N1 variable/Entier

Recevoir le 1er entier

N2 N2 variable/Entier Recevoir le 2ème entier
C1 C1 variable/Entier Recevoir la centaine du 1er entier
D1 D1 variable/Entier Recevoir la dizaine du 1er entier
U1 U1 variable/Entier Recevoir l'unité du 1er entier
D2 D2 variable/Entier Recevoir la dizaine du 2ème entier
U2 U2 variable/Entier Recevoir l'unité du 2ème entier
R R variable/Entier Recevoir le résultat de l'insertion
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- C1 ß     N1 Div 100
4- D1 ß     N1 Mod 100 Div 10
5- U1 ß     N1 Mod 10
6- D2 ß     N2 Div 10
7- U2 ß     N2 Mod 10
8-   ß     C1*10000+D2*1000+D1*100+U2*10+U1
9- Ecrire (R)
10- Fin Insertion
V) La traduction en turbo pascal :
Program Inertion;
uses Wincrt;
Var N1, N2, U1, D1, U1, D2, U2, R : Integer;
Begin
	Repeat
		Write('N1 :');
		Readln(N1);
	Until (N1>=100)  And  (N1<=999);
	Repeat
		Write('N2 :');
		Readln(N2);
	Until (N2>=10)  And  (N2<=99);
	C1: = N1 Div 100;
	D1: = N1 Mod 100 Div 10;
	U1 : = N1 Mod 10;
	D2: = N2 Div 10;
	U2 : = N2 Mod 10;
	R : = C1*10000+D2*1000+D1*100+U2*10+U1;
	Write('R=',R);
End.
VI) La traduction en langage C++ :
#include <stdio.h>
int main()
{int N1,N2,U1,D1,C1,D2,U2,R ;
     do
	{printf("N1 :");
	scanf("%d",&N1);}
     while ((N1<100) ÇÇ (N1>999));
     do
	{printf("N2 :");
	scanf("%d",&N2);}
     while ((N2<10) ÇÇ (N2>99));
     C1 = N1 / 100;
     D1 = N1 % 100 / 10;
     U1 = N1 % 10;
     D2 = N2 / 10;
     U2 = N2 % 10;
     R  = C1*10000+D2*1000+D1*100+U2*10+U1;
     printf("R=%d",R);
     getchar();getchar();
}

 

Page d'index Série structures simples Haut