TD6
PARTIE 1. On a enregistré dans un tableau les ages et les poids d’un ensemble d’individus d’un entreprise de 200 personnes.
1)	Préparez un tableau de 200 lignes pour enregistrer les âges  (variant entre  18 et 65 ans) et les poids (entre 40 et 120 kg). Remplir au hasard une soixantaine de lignes (en utilisant Alea()).
2)	Donner le tableau des effectifs par age :  pour chaque valeur v de l’âge,  donner le nombre de personnes dont l’âge est v.
3)	Donner un tableau des effectifs par classe (ou intervalles) d’âges. On doit, auparavant, se fixer une borne inférieure de toutes les classes  et une amplitude des classes. Par exemple, si la borne inférieure est 15 et l’amplitude 10, on aura à étudier les classes d’âges suivantes : [15, 25[, [25, 35[, [35, 45[ etc. Le tableau suivant montre un exemple. Pour chaque classe , on a calculé : les bornes inférieures  et supérieures, l’effectif, le poids moyen (égal à Somme.Si() / NB.Si( )).

		debut classes	15							
		amplitude de chaque classe	10							
										
		borne inf 	15	25	35	45	55	65	75	
		borne sup 	25	35	45	55	65	75	85	
										
		effectif	3	9	7	9	9	0	0	
		poids moyen	?	?						
										
Age	poids									
53	98		FAUX	FAUX	FAUX	VRAI	FAUX	FAUX	FAUX	
32	107		FAUX	VRAI	FAUX	FAUX	FAUX	FAUX	FAUX	
24	87		VRAI	FAUX	FAUX	FAUX	FAUX	FAUX	FAUX	

Partie 2. Dans Visual Basic (outils / macro / VB editor) puis (insertion/module) compléter et tester les programmes suivants, où nous avons supposés que les données sont dans la plage « A10 :B70 »

Calcul âge moyen	Calcul minimum et maximum poids et les lignes qui les contiennent	
Option explicit 

Sub calculAge()
’déclaration des variables  
dim totalAge, nbreAge, nroligne  as integer
dim moyenneAge as single

totalAge =0
nbreAge = 0
For  nroligne = 10 to 70
    	TotalAge = totalAge + cells(nroligne, 1)
	NbreAge = nbreAge + 1
Next   nro ligne

’ écrire dans la feuille le résultat
MoyenneAge = totalAge / nbreAge
Cells(1, 1).value = “moyenne”
Cells(2, 1).value = moyenneAge
End Sub	
Sub miniMaxPoids()
’décalartion  des  variables

Dim nroligne, miniLigne, maxiLigne as integer
Dim valeur, miniPoids, maxiPoids as single

valeur  = cells(10, 2).value
miniPoids = valeur 
MiniLigne = 10
maxiPoids = valeur
MaxiLigne = 10 

For nroLigne = 11 to 70 
     Valeur = cells(nroligne, 2).value
      if valeur < miniPoids then 
                       miniPoids = valeur
                       miniLigne = nroLigne
       end if
      ‘ completer pour le maximum

Next   nroligne
’ecrire cans la feuille les résultats
	
Sub generer()
Dim nroligne as integer
For nroligne = 10 To 70
   Cells(nroligne, 1).Value = Rnd()
Next nroligne
End sub	Corriger le programme generer() pour avoir des entiers entre 18 et 65, sachant que int(x) retourne la partie entière de x, en VB