Les structures de contrôle

Soit l’extrait d’un programme source en langage C++  :
				
unsigned char nbre=0x37;			
unsigned char masque=0x80; 			
unsigned char var=0x30; 			

cout << "0x3" << nbre <<" en binaire = "<<endl; 	
for (int i=0; i<8; i++){	//1	
if ((masque & nbre)== masque) 			
var=0x31 ;			
else
var=0x30 ;		
masque >>=1 ; 				//2		
cout << var ; 				//3				
}
		cout <<endl;
1.	Questions
•	Quel est la place occupée par les variables nbre et i ?
•	Quel est la plage des valeurs que peuvent couvrir les variables nbre et i ?
•	Proposez une autre forme d’écriture pour l’instruction masque >>=1.
•	Que fait l’instruction masque >>=1 ?
•	Que fait l’instruction cout << var ? 
•	Quelle vaut l’expression ((masque & nbre)== masque)pour masque=0x80 ?
•	Quelle est la condition pour que var vaille 0x31 ?
•	Quelle est la condition pour sortir de la boucle for.
•	Donnez les valeurs qui prises par var lorsque i=0 et i=1.
2.	Programmation

1.	Créez un projet de type console et codez cet extrait dans une fonction principale
 int main(void) en ajoutant les éléments nécessaires (librairies, instructions)
2.	Exécutez ce programme et analysez le résultat.
3.	Dans le programme source, posez des points d’arrêts au niveau des instructions  //1, //2 et //3.
4.	Affichez dans la fenêtre de visualisation : i, (masque&nbre)== masque, masque, nbre et var. Les valeurs sont affichées en hexadécimal.
5.	Exécutez le programme et relevez les valeurs des variables lorsque i vaut 0, 3 et 7 
6.	Proposez une solution pour le codage en remplaçant l’instruction for par une autre instruction.
7.	Validez le fonctionnement de ce programme.
8.	Commentez ce dernier programme source.
3.	Eléments à fournir
•	La réponse aux questions.
•	Le programme source § programmation - question 1.
•	Les copies d’écran § programmation - questions 2 et 5.
•	Le programme source § programmation - question 8.
4.	Ressources
Sur l’intranet http:// nt1 voir Saint-Mellion – Langage C++ - Eléments de Bases - Les aspects structurés

•	Langage C++ - Les aspects structurés (pdf 78 Ko)
•	Les Types de base et Opérateurs (pdf 15 Ko)
•	Visual Studio C++ Debug (pdf 290 Ko)