Auteur : Mohamed Messabihi Matière : Initiation à l'algorithmique Date 15 Janvier 2014
Durée 1h30
Université Abou Bakr Belkaïd - Tlemcen Faculté des Sciences 1èreAnnée MI Semestre 1
Correction de l'Examen Final
Aucun document n'est autorisé.
Les solutions sous forme de programme Pascal sont aussi acceptées.
Tout appareil électronique doit être éteint (Téléphone, Ordinateur, Tablette, etc.).
1 Calcul des impôts (6 pts)
On veut calculer le montant des impôts d'un salarié. La grille à utiliser est la suivante :
Salaire Taux d'impôt
Salaire < 15000 DA 5%
15000 DA
≤Salaire < 30000 DA 10%
30000 DA
≤Salaire < 60000 DA 20%
60000 DA
≤Salaire 25%
Écrire un algorithme qui saisit le salaire et ache le montant des impôts à payer.
Solution
Listing 1 Algorithme Calcul des impôts
1 Program Calcul_Impots ;
2 Var
3 s a l a i r e , taux , impots : real ; (1 pt )
4 Begin
5 Writeln ( ' Donner votre s a l a i r e ' ) ; ( 0 . 5 pt )
6 Readln( s a l a i r e ) ; ( 0 . 5 pt )
7 I f s a l a i r e <15000 then ( 0 . 5 pt )
8 taux :=0.05 ( 0 . 2 5 pt )
9 Else I f s a l a i r e <30000 then ( 0 . 5 pt )
10 taux :=0.1 ( 0 . 2 5 pt )
11 Else I f s a l a i r e <60000 then ( 0 . 5 pt )
12 taux :=0.2 ( 0 . 2 5 pt )
13 Else ( 0 . 5 pt )
14 taux : = 0 . 2 5 ; ( 0 . 2 5 pt )
15 impots := taux∗s a l a i r e ; ( 0 . 5 pt )
16 Writeln ( ' Le montant des impots e s t : ' , impots ) ; ( 0 . 5 pt )
17 End.
2 Chires Cubiques (5 pts)
Un entier naturel de trois chires est dit cubique s'il est égal à la somme des cubes de ses trois chires. Exemple : 153 est cubique car
153 = 13+ 53+ 33Écrire un algorithme qui permet de chercher et acher tous les entiers cubiques de 3 chires.
B
Mohamed.Messabihi@gmail.com
Page 1Solution
Listing 2 Algorithme Chires cubiques
1 Program Chiffres_Cubiques ;
2 Var c h i f f r e , som , i , cent , dec , unit : integer ; (1 pt )
3 Begin
4 For c h i f f r e := 100 To 999 Do (1 pt )
5 Begin
6 cent := c h i f f r e Div 100; ( 0 . 5 pt )
7 dec := ( c h i f f r e Mod 100) Div 1 0 ; ( 0 . 5 pt )
8 unit := c h i f f r e Mod 1 0 ; ( 0 . 5 pt )
9 som:= ( cent∗cent∗cent )+( dec∗dec∗dec )+( unit∗unit∗unit ) ; ( 0 . 5 pt )
10 I f c h i f f r e = som Then ( 0 . 5 pt )
11 Writeln ( c h i f f r e ) ; ( 0 . 5 pt )
12 End;
13 End.
3 Croissance démographique (9 pts)
Pour réaliser des études statistiques sur la croissance démographique, on vous demande de mettre en place un système informatique (sur internet) pour récolter et traiter un ensemble de données liées au taux d'accroissement démographique.
1. Écrire un algorithme qui permet de demander à N utilisateurs leur année de naissance et de les stocker dans un tableau TabNaissance.
An d'aller un peu plus loin dans cette études, on voudrait s'intéresser aux trois catégories d'âges, à savoir : les jeunes, les adultes et les vieux.
2 On vous demande de compléter l'algorithme précédent pour qu'il puisse répartir les données du tableau TabNaissance sur trois tableaux et ensuite les acher avec leur pourcentage correspon- dant :
TabJeunes : un tableau des jeunes : personnes âgées de moins de 24 ans.
TabAdultes : un tableau des adultes : personnes âgées plus 24 ans et moins de 60 ans.
TabVieux : un tableau des vieux : personnes âgées plus de 60 ans.
Exemple : Soit N = 10
TabNaissance 1956 1991 1938 1976 1945 1985 1968 1989 2001 1995 On doit obtenir les tableaux suivants :
TabJeunes 30% 1991 2001 1995
TabAdultes 50% 1956 1976 1985 1968 1989 TabVieux 20% 1938 1945
Solution
B
Mohamed.Messabihi@gmail.com
Page 2Listing 3 Algorithme Croissance Démographique
1 Program Croissance_Demographique ;
2 Type
3 TAB = Array [ 1 . . 2 0 0 ] of integer ;
4 Var
5 N , i , PTJ,PTA,PTV: integer ; (0 ,5 pt )
6 TabNaissance , TabJeunes , TabAdultes , TabVieux : TAB; (1 pt )
7 Begin
8 Writeln ( ' Donnez l a t a i l l e du tableau ' ) ;
9 Readln(N) ; ( 0 . 2 5 pt )
10 For i := 1 To N Do ( 0 . 5 pt )
11 Begin
12 Writeln ( ' Donnez votre date de n a i s s a n c e ' , i ) ;
13 Readln( TabNaissance [ i ] ) ; ( 0 . 2 5 pt )
14 End;
15 PTA:=0;
16 PTJ:=0; ( 0 . 7 5 pt )
17 PTV:=0;
18 For i := 1 To N Do ( 0 . 5 pt )
19 I f 2014−TabNaissance [ i ]<24 Then ( 0 . 5 pt )
20 Begin
21 PTJ:=PTJ + 1 ; ( 0 . 2 5 pt )
22 TabJeunes [ PTJ]:= TabNaissance [ i ] ; ( 0 . 2 5 pt )
23 End
24 Else I f 2014−TabNaissance [ i ]<60 Then ( 0 . 5 pt )
25 Begin
26 PTA:=PTA + 1 ; ( 0 . 2 5 pt )
27 TabAdultes [PTA]:= TabNaissance [ i ] ; ( 0 . 2 5 pt )
28 End
29 Else Begin ( 0 . 5 pt )
30 PTV:=PTV + 1 ; ( 0 . 2 5 pt )
31 TabVieux [PTV]:= TabNaissance [ i ] ; ( 0 . 2 5 pt )
32 End;
33 Write( ' Tableau des jeunes : ' PTJ/N∗100 , '%' ) ; ( 0 . 2 5 pt )
34 For i := 1 To PTJ Do ( 0 . 2 5 pt )
35 Write( TabJeunes [ i ] , ' | ' ) ; ( 0 . 2 5 pt )
36 Writeln ; Write( ' Tableau des a d u l t e s ' , PTA/N∗100 , '%' ) ; ( 0 . 2 5 pt )
37 For i := 1 To PTA Do ( 0 . 2 5 pt )
38 Write( TabAdultes [ i ] , ' | ' ) ; ( 0 . 2 5 pt )
39 Writeln ; Write( ' Tableau des vieux ' , PTV/N∗100 , '%' ) ; ( 0 . 2 5 pt )
40 For i := 1 To PTV Do ( 0 . 2 5 pt )
41 Write ( TabVieux [ i ] , ' | ' ) ; ( 0 . 2 5 pt )
42 End.
Bon courage !
B