Vous êtes sur la page 1sur 4

REPUBLIQUE DU CAMEROUN Examen : Evaluation harmonisée période 2

Paix – Travail - Patrie Année : 2022/2023


********** Durée : 2h00 mn
MINESEC/DRES – CENTRE/DDES – MFOUNDI Coef. : 02
Lycée de Ngousso – Ngoulmekong Classe : Tle D
Département d’Informatique Examinateur : Dr. Jean Bernard BAKONGA

EPREUVE THEORIQUE D’INFORMATIQUE

PARTIE 1. ALGORITHMIQUE (10 PTS)

Le Ministère des Transports (MINTRANSPORTS) lance une demande d’appel d’offre (DAO) pour la réalisation d’un
progiciel de gestion de son système d’information. Une voiture est caractérisée par son immatriculation, sa marque, son
type, sa couleur et le numéro de matricule de son propriétaire (matpro). Une personne est caractérisée par son matricule,
son nom, son âge, son sexe. Toutefois, son système d’information actuel dispose d’un registre de voiture, dans lequel
sont consignées les informations sur les véhicules, d’une taille maximale de 10 000. Et également d’un registre de
personnes pouvant enregistrés 7 000 propriétaires au maximum, de ces véhicules. L’entreprise « KS@FT » retenue pour
l’exécution de cette DAO, vous sollicite afin de faire partir de l’équipe chargée de ce projet. A l’aide vos connaissances
dans la manipulation des types abstraits et des structures de données algorithmiques, répondre aux questions suivantes.
1. Définir structure de données : méthode permettant d’organiser et stocker les données dans un

ordinateur pour qu’elles soient manipulées efficacement 0.5pt


2. Identifier dans cet énoncé les deux types de structures de données mises en exergues (0.5pts x 2 = 1pts)
Enregistrement et tableau
3. Identifier dans le texte un exemple de chaque structure de données de la question précédente (ou type abstrait de
données). 0.5 pt x 2 = 1pt
- Pour l’enregistrement : voiture et personne

- Pour le tableau : registre de personnes et le registre de voitures

NB : Choisir un pour chaque cas

4. Dans le cadre de la phase de conception du projet, votre collaborateur vous propose l’algorithme ci-dessous.

Page 1 sur 4
Répondre aux questions ci-dessous pouvant aider votre collaborateur à mieux comprendre et utiliser cet
algorithme.
4.1.Expliquer en deux lignes maximum, ce que fait : (0.5pts x 4=2pts)

a) Les lignes 4 à 10 de l’algorithme : déclare ou définit un type Enregistrement nommé

« voiture »

b) La ligne 11 de l’algorithme : déclare un type Tableau nommé « Tab_vehi »


c) Les lignes 15 à 17 de l’algorithme : remplit le tableau « V » de voitures
d) Les lignes 20 à 24 de l’algorithme (annuler cette question et redistribuer les points)
4.2.Réécrire les lignes 20 à 24 de cet algorithme en utilisant la structure itérative REPETER (1.5pt)
i 0 ;
Répéter
i  i+1 ;
Si (V[i].matpro<>m) alors
k<-k+1;
Finsi
Jusqu’à (i > N)
5. A partir de cet algorithme déduire les déclarations des types abstraits de données : « personne » et « registre de
personnes » (que vous nommerez « Reg_pers »). (1pt x 2=2pts)

Page 2 sur 4
Type
personne = Enregistrement
matricule : Chaine;
nom : Chaine;
age : Entier ;
sexe : Caractère;
Finenregistrement
Reg_pers = Tableau [1..7000] de personne ;
6. Ecrire un algorithme qui demande les informations du registre des personnes, et les stocke dans la structure de
données réservée à cet effet (2pts)
Notation à partir du programme ci-dessous est :
Ligne 12 (0.5pt)
Ligne 14 (0.5pt)
Ligne 15 (1pt)

PARTIE 2. PROGRAMMATION PROCEDURALE EN C (10 PTS)

Rendu à la phase de programmation de ce projet, vos collaborateurs souhaitent traduire l’algorithme de la partie
1 en langage C. Vous devez les aider en répondant aux questions suivantes.
1. Définir le sigle IDE : Environnement de développement Intégré (0.5pt)
2. Enumérer les trois outils nécessaires à la programmation C contenus dans un IDE. (0.5pt x 3=1.5pts)
Editeur, compilateur, débogueur.
3. Citer deux exemples d’IDE utilisable pour la programmation en C. (0.5pt x 2=1pts)
Visual Studio, Code::Blocks, Eclipse, NetBeans, Visual C++ Express, Xcode
4. Donner une différence entre un langage de bas niveau et un langage de haut niveau. (0.5pt)
Page 3 sur 4
Un langage de bas niveau est compréhensif par les machines tandis qu’un langage de haut niveau est
compréhensif par les Hommes.
5. Citer deux exemples de chaque type de langage. (0.25pt x 4=1pts)
- Langage de bas niveau : binaire et assembleur (ou ASM)
- Langage de haut niveau : C/C++, Pascal, Delphi, PHP, Java, JavaScript, HTML, Visual Studio.net, Faro,
Sprint, Windev, …
6. Recopier et compléter le tableau suivant :

N° Traduction en C Points
Typedef Struct { Struct voiture {
Char immatriculation[15] ; Char immatriculation[15] ;
Char marque[20]; Char marque[20];
Char type[20]; ou Char type[20];
1 1 pt
Char couleur[10]; Char couleur[10];
Char matpro[10]; Char matpro[10];
} voiture ; };

2 voiture V[7000]; 0.5pt


3 int i, k ; 0.5pt
4 for (i = 0 ; i < 7000 ; i++) { … } 0.5pt
scanf("%s%s %s %s %s ", &V[i].immatriculation, &V[i].marque, &V[i].type, &V[i].couleur,
5 1pt
&V[i].matpro);
if (V[i].matpro != m) {
6 k = k+1; NB : les {} peuvent être absentes 1pt
}
7 printf ("Cette personne est propriétaire de %u ", k ,"voitures"); 1pt

Page 4 sur 4

Vous aimerez peut-être aussi