Académique Documents
Professionnel Documents
Culture Documents
Solution
Algorithme :
Entrées : Liste : Nom, VA, Ville
Sorties : Liste : NomMax ; VAMAX, NC
Casa : Nom,VA, Ville, NCC,MVAC
Rabat : Nom,VA, Ville, NCR,MVAR
Traitement:
Début:
NT <- 0, NCC <- 0, NCR <- 0
SVAC<- 0, SVAR <-0
I=2
nomMAX <- Nom (2), VAMAx <- VA (2)
Repeter
Lire.Liste (Nom, VA, Ville)
Si VA > VAMAX Alors
VAMAX <- VA
NomMAX <- Nom
Fin Si
NT <- NT +1
Mostafa HANOUNE 2/11
Programme VB
Private Sub CommandButton1_Click()
Dim I, Nom, VA, Ville, NomMAX, VAMAX, NT, NCC, NCR, MVAC, MVAR, SVAC, SVAR As Variant
NT = 0: NCC = 0: NCR = 0
SVAC = 0: SVAR = 0
I=2
NomMAX = Cells(I, 1): VAMAX = Cells(I, 2)
Do
Nom = Cells(I, 1): VA = Cells(I, 2): Ville = Cells(I, 3)
If VA > VAMAX Then
NomMAX = Nom
VAMAX = VA
End If
NT = NT + 1
If Ville = "Casa" Then
NCC = NCC + 1
Sheets("Casa").Cells(I, 1) = Nom
Sheets("Casa").Cells(I, 2) = VA
Sheets("Casa").Cells(I, 3) = Ville
SVAC = SVAC + VA
Else
NCR = NCR + 1
Sheets("Rabat").Cells(I, 1) = Nom
Sheets("Rabat").Cells(I, 2) = VA
Sheets("Rabat").Cells(I, 3) = Ville
SVAR = SVAR + VA
End If
I=I+1
Loop Until Cells(I, 1) = ""
MVAC = SVAC / NCC: MVAR = SVAR / NCR
Cells(I + 1, 2) = NomMAX
Cells(I + 2, 2) = VAMAX
Mostafa HANOUNE 3/11
Cells(I + 3, 2) = NT
Sheets("Casa").Cells(I + 1, 2) = NCC
Sheets("Casa").Cells(I + 2, 2) = MVAC
Sheets("Rabat").Cells(I + 1, 2) = NCR
Sheets("Rabat").Cells(I + 2, 2) = MVAR
End Sub
Mostafa HANOUNE 4/11
Exercice 2
Ecrire l’algo et le VB qui permet, de calculer, à partir du PU et Q,
1. le montant par article (M)
2. Le montant Total, de tous les articles (MT)
3. Le montant de la remise sachant que (R) :
a. Si le Total est inférieur à 500 DH, pas de remise
b. Si le Total est compris entre 500 et 1500 le taux de la remise est de 5%
c. Si le Total est supérieur à 1500 le taux de la remise est de 15%
4. Le montant après remise (MAR)
5. Le montant de la taxe, sachant que le taux TVA est de 20% (Mtaxe)
6. Le montant TTC (MTTC)
7. Le bonus fidélité sachant que (Bon)
a. Si le TTC est inérieur à 700 DH pas de Bonus
b. Si le TTC est compris entre 700 et 1400 le Bonus est de 10 Points
c. Si le TTC est supérieur à 1400 le Bonus est de 20 Points
NB: On ne connait pas à l’avance le nombre d’article à traiter
Solution
Analyse
1. M = PU * Q
2. MT = MT + M
3. R = F(MT)
4. MAR = MT – R
5. Mtaxe = MAR * 20%
6. MTTC = MAR + Mtaxe
7. Bon = F(MTTC)
Algorithme
Entrées : PU, Q
Sorties : M, MT, R, MAR, Mtaxe, MTTC, Bon
Traitement :
Début :
MT 0
Mostafa HANOUNE 5/11
I2
TantQue PU <> vide
Lire (PU, Q)
MPU*Q
Afficher (M)
MT MT + M
I I +1
Fin TantQue
Afficher (MT)
Si MT < 500 Alors
R 0
Sinon
Si MT <1500 Alors
R 5%*MT
Sinon
R 15%*MT
Fin Si
FinSi
MAR MT – R
Mtaxe 20%*MAR
MTTC MAR + Mtaxe
Si MTTC < 700 Alors
Bon 0
Sinon
Si MTTC <1400 Alors
Bon 10
Sinon
Bon 20
Fin Si
Fin Si
Afficher (R, MAR, Mtaxe, MTTC, Bon)
Fin
Visual Basic
Private sub BC1_Click()
Dim I, PU, Q, M, MT, R, MAR As Variant
Dim Mtaxe, MTTC, Bon as Variant
MT = 0
I=2
Do While Cells(I, 2)<>’’’’
PU = Cells(I, 2)
Q = Cells(I, 3)
Cells(I, 4) = M
M = PU*Q
Cells(I, 4) = M
MT = MT + M
I = I +1
Loop
Cells(I, 4) = MT
If MT < 500 Then
R=0
Mostafa HANOUNE 6/11
Else
If MT < 1500 then
R = 0.05*MT
Else
R = 0.15*MT
End if
End if
MAR = MT – R
Mtaxe = 0.2*MAR
MTTC = MAR + Mtaxe
If MTTC < 700 Then
Bon = 0
Else
If MTTC < 1400 Then
Bon = 10
Else
Bon = 20
Cells(I+1, 4)=R : Cells(I+2, 4)=MAR
Cells(I+3, 4) )Mtaxe : Cells(I+4, 4)=MTTC
Cells(I+5, 4) = Bon
End Sub
Mostafa HANOUNE 7/11
Exercice 3
Ecrire l’algorithme et le programme VB qui permet de calculer et d’afficher :
1. Salaire de base SB
2. Prime
a. Si NHT est inférieur à 100 pas de Prime
b. Si NHT est compris entre 100 et 200 la prime est de 10% du SB
c. Si NHT est supérieur à 200
i. La prime est de 15% du SB si Ville est Casa
ii. La prime est de 20% du SB pour les autres ville
3. Salaire net (SN), sachant que SN = SB + AF + Prime - Prélèvements
a. Pour les AF
Pour Casa
i. L’état paie 300 DH pour les 4 premiers enfants, 200 DH pour les 2 qui suivent, 100
pour le 7ème enfant et Zéro pour le reste
b. Pour Rabat
i. L’état paie 350 DH pour les 4 premiers enfants, 150 DH pour les 2 qui suivent, 50
pour le 7ème enfant et Zéro pour le reste
c. Les Prélèvements sont de 5% du SB
4. La somme des SN
5. La moyenne des SN de Casa
NB : Les Entrées seront saisies dans la feuille « Liste » et les sorties dans la feuille « Paie »
Analyse :
SB, Prime, SN, SSN, MSNCasa
1. SB = NHT * TH
2. Prime = F(NHT, Ville)
3. SN = SB + Prime + AF – Pr
a. AF = F (Ville, NE)
b. Pr = 5% * SB
Mostafa HANOUNE 8/11
4. SSN = SSN + SN
5. MSNCasa = SSNCasa / NSCasa
a. SSNCasa = SSNCasa + SN (Casa)
b. NSCasa = NSCasa + 1 (Casa)
=================================================================
Algorithme
Entrées : Liste : NHT, TH, NE, Ville, Nom
Sorties : Paie : Nom, SB, Prime, SN, SSN, MSNCasa
Traitement :
Début
SSN 0 , SSNCasa 0 , NSCasa 0
Pour I = 2 A 7
Lire.Liste (NHT, TH, Ville, Nom)
SB NHT * TH
Si NHT < 100 Alors
Prime 0
Sinon
Si NHT < 200 Alors
Prime 10%*SB
Sinon
Si Ville = ‘’Casa’’ Alors
Prime 15%*SB
Sinon
Prime 20%*SB
Fin SI
Fin Si
Fin Si
Si Ville = ‘’Casa’’ Alors
Si NE<=4 Alors
AF300*NE
Sinon
Si NE<=6 Alors
AF4*300 + (NE-4)*200
Sinon
Si NE <= 7 Alors
AF4*300 + 2*200 + (NE-6)*100
Sinon
AF4*300 + 2*200 + 1*100
Fin Si
Fin Si
Fin Si
Sinon
Si NE<=4 Alors
AF 350*NE
Sinon
Si NE<=6 Alors
AF4*350 + (NE-4)*150
Sinon
Si NE<=7 Alors
AF4*350 + 2*150 + (NE-6)*50
Mostafa HANOUNE 9/11
Sinon
AF4*350 +2*150 + 1*50
Fin Si
Fin Si
Fin SI
Fin Si
Pr 5% * SB
SN SB + Prime + AF – Pr
SSN SSN + SN
Si Ville = ‘’Casa’’ Alors
SSNCasa = SSNCasa + SN
NSCasa = NSCasa + 1
Fin Si
Afficher.Paie (Nom, SB, Prime, SN)
Suivant
MSNCasa SSNCasa / NSCasa
Afficher.Paie (SSN, MSNCasa)
Fin
Mostafa HANOUNE 10/11
Exercice 4
Solution
Private Sub CommandButton1_Click()
Dim I, VT1, VT2, VT3, VA, P, VG, MVC, NCP As Variant
VG = 0
NCP = 0
For I = 2 To 5
VT1 = Cells(I, 2)
VT2 = Cells(I, 3)
VT3 = Cells(I, 4)
VA = VT1 + VT2 + VT3
VG = VG + VA
If VA < 4000 Then
Mostafa HANOUNE 11/11
P=0
Else
NCP = NCP + 1
If VA < 4500 Then
P = 0.03 * VA
Else
P = 0.05 * VA
End If
End If
Cells(I, 5) = VA
Cells(I, 6) = P
Next
Cells(10, 5) = VG
Cells(12, 5) = NCP
MVC = VG / 8
Cells(11, 5) = MVC
End Sub