Vous êtes sur la page 1sur 2

Université Sultan Moulay Slimane Département d’Informatique

FST – Beni Mellal Module : Alg & prog 2


Filière : MIPC (S3)

Durée : 2 h
EXAMEN
Exercice1 : (4 pts) Questions de cours

1. Quelle est la différence entre le passage par valeur et le passage par adresse.
2. Donner la déclaration dynamique d’un tableau d’entiers à deux dimensions (L*C).
3. Donner les différentes possibilités d’initialisation d’un pointeur.
4. Que signifie les instructions suivantes :

FILE* fich = fopen("fichier.txt","r+") ;


int fread(ch,sizeof(char),L,fich);
void rewind(FILE *stream);
Exercice 2 : (16 pts)

L’objectif de cette exercice est d’essayer de répondre au besoin de département


d’informatique de la FST Beni Mellal par la création d’un programme qui va permettre le
traitement automatique des différents stages effectués par les étudiants soit de la licence
informatique , Master et les doctorant au sein du laboratoire de recherche. Pour ce faire, on va
utiliser un tableau de structures où chaque stage est une structure. Un stage est caractérisé par
les informations suivantes :

typdef struct { int Mois;


int Annee; //(Mois/Annee : représente la date de stage)
} DATE;

typedef struct {
int ID; // identifiant de chaque stage
char TITRE [50]; // Titre de stage
DATE Date_debut // Date de début de stage
DATE Date_fin // Date de fin de stage
int CNE ; // Code de l’étudiant stagiaire
char Nom_sagiaire [20]; // Non Stagiaire
char Nom_societe [20]; // Nom de la société lieu de stage
char Domaine [20]; // (Réseaux, Développement, Base de données)
} Stage;

#define max 1000


Stage Liste [max]; // Tableau de type Stage
int N; //Nombre de stage

1
Université Sultan Moulay Slimane Département d’Informatique
FST – Beni Mellal Module : Alg & prog 2
Filière : MIPC (S3)

1. Ecrivez la fonction fonction void SaisirStage(Stage Liste[],int N) qui permet de


saisir les informations de N stage.

2. Ecrivez la fonction void AfficherStage(Stage Liste[],int N) qui permet d’afficher les


informations de chaque stage de la liste des stages.

3. Ecrivez la fonction void InsertionStage(Stage Liste[],int* N) d’insertion d’un stage


à la liste en prenant en considération l’ordre des identifiant des stages.

4. Donnez la fonction void SupprimerStage(char domaine[], Stage Liste[], int


*N) permettant de supprimer les stages du tableau dont le domaine est passé en
paramètre, si le domaine à supprimer n’existe pas on afficher un message d’erreur.

5. Créer une fonction void trierParTitre (Stage Liste [ ], int N) permettant d’afficher
les stages triés par ordre alphabétique des Titres en utilisant le tri par insertion.

6. Créer une fonction void trierParCNE (Stage Liste [ ], int N) permettant d'afficher la
liste des stages triés par ordre décroissant en utilisant le tri par bulle.

7. Donnez la fonction Stage * dureStage (Stage Liste [ ], int N) qui retourne un tableau
de structures concernat les stages dont la durée dépasse six mois.

8. Créer une fonction void EnregistrerStage (Stage Liste [ ], int n) permettant


d’enregistrer les informations de cahque stage dans un fichier texte « stage.txt », les
valeurs des champs de chaque stage seront séparées par « //».

Exemple :

ID// titre
//date_debut//date_fin//CNE//Nom_stagiaire//Non_societe//Domaine
…….
…….
9. Suposons que le fichier « stage.txt» contient les données de tous les stages contenu
dans la table Liste. Écrivez une fonction Stage recherch_identifiant (int ID),
permettant à partir du fichier « stage.txt», de retrouver les informations relatives à un
ID donné.

Vous aimerez peut-être aussi