Proposition D'examen AP1 2021-2022

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 2

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

Institut Supérieur des Etudes Technologiques de Kélibia


Département Technologies de l’Informatique
Classes : TI 11 à 16 Heure : 13H00
Niveau : S1-TC Durée : 1H30
Date : 10-01-2022 Nombre de pages : 2
Examen
Enseignants : LARNAOUT, Documents : Non autorisés
BEN MHAMMED, NACEF,
Algorithmique et Programmation 1 UE : Algorithmique et
MEJRI Programmation 1
La clarté et la simplicité des réponses sont tenues en compte , toute fraude ou tentative de fraude sera sévèrement sanctionnée
L’ÉCHANGE DE MATÉRIEL (STYLO, CALCULATRICE, ETC.) ENTRE ÉTUDIANTS AU COURS DE L’ÉPREUVE EST INTERDIT.

Exercice 1 (6 points)


Une personne est caractérisée par son nom, son prénom, son âge, le sexe et son état civil.
1. Proposer une structure de données permettant de représenter une personne.
2. Ecrire la procédure AjouterPersonne qui permet d’ajouter une personne dans un tableau de
personnes.
3. Ecrire la procédure Répartir qui permet de répartir un tableau de personnes en deux
tableaux ; TabHommes qui contient les personnes dont le sexe = "Masculin" et TabFemmes
qui contient les personnes de sexe = "Féminin".
4. Ecrire la fonction SuperieurAge qui permet de calculer le nombre de personnes ayant un
âge supérieur à une valeur donnée.
5. Ecrire une procédure Trier qui permet de trier un tableau de personnes selon l’ordre
décroissant de leurs âges.

Exercice 2 (9 points)

On souhaite modéliser des opérations permettant de gérer les articles dans un stock de magasin à
l'aide de tableaux à une dimension.

On considère pour cela un tableau TabArt de chaînes de caractères où les éléments représentent les
codes des articles (10 caractères maximum), un tableau TabStock d’entiers représentant la quantité
en stock de chaque article, et un tableau TabPrix de réels représentant les prix des articles.

Ainsi, un élément à l’indice i du tableau TabStock représente la quantité en stock de l’article de la


case i du tableau TabArt et qui a comme prix la case i du tableau TabPrix.

On suppose que les tableaux ont une capacité maximale définie par une constante max donnée (max
=100).

1. Ecrire une fonction void LireArticles (char TabArt [max][10],int TabStock[],float TabPrix, int
N) permettant de remplir un tableau de chaînes de caractères TabArt de N articles, ainsi que les
tableaux TabStock et TabPrix (pour chaque article lire son code, sa quantité en stock et son prix).

2. Ecrire une fonction void AfficherArticles (char TabArt[max][10], int TabStock[], float
TabPrix[], int N) permettant d’afficher la liste des articles avec leurs quantités en stock et leurs prix.
Page 1 sur 2
3. Ecrire une fonction int QuantitéStock(char TabArt[max][10], int TabStock[], char codeart[], int
N) permettant de rechercher la quantité en stock d’un article donné (codeart) et retourne sa quantité
en stock s’il existe et -1 sinon.

4. Créer une procédure void AjouterArticle (char TabArt[max][10], int Tabstock[], float TabPrix[],
char codeart[], int qs, float px, int *N) permettant d’ajouter un article (codeart). Cette opération
consiste à ajouter le code de l’article codeart à la fin du tableau TabArt, la quantité en stock qs dans
le tableau TabStock et le prix px dans le tableau TabPrix.

5. Ecrire une fonction void ApprovisionnerStock(char TabArt[max][10], int TabStock[], char


codeart[], int qs, int N) permettant d’approvisionner le stock d’un article en ajoutant une quantité
donnée au stock existant. Cette fonction effectue une recherche de code de l’article dans le tableau
TabArt, s’il existe alors elle ajoute la quantité qs au stock correspondant dans le tableau TabStock,
s’il n’existe pas elle affiche un message d’erreur.

6. Ecrire une fonction void MaxPrix(char TabArt[max][10], float TabPrix[], int N) qui permet
d’afficher le code et le prix de l’article le plus cher.

7. Ecrire une fonction void SupprimerArticle(char TabArt[max][10], int TabStock[], float


TabPrix[], char code[], int *N) permettant de supprimer un article stocké dans le tableau TabArt en
fournissant son code. Sa suppression entraine la suppression de sa quantité en stock dans le tableau
TabStock et de son prix du tableau TabPrix.

8. Ecrire un programme principale main() qui permet de :

a. Remplir les tableaux TabArt, TabPrix et TabStock.


b. Mettre à jour le stock d’un article donné par son code CD1 avec une quantité en stock
QT1 donnée.
c. Ajouter un article dont le code CD2, la quantité QT2 et le prix PX sont donnés par
l’utilisateur.
d. Supprimer les articles dont la quantité en stock est égale à 0.
e. Afficher tous les articles (code, prix et quantité).

Exercice 3  (5 points)

Etant donné une chaîne str composée de N chiffres, écrire une fonction (en pseudo-code) qui
retourne le nombre de nombres premiers distincts qui peuvent être formés à l'aide des chiffres de la
chaîne str.

Exemple : pour str = "123", ladite fonction doit retourner 5. En effet, les nombres premiers qui
peuvent être formés par les chiffres 1, 2 et 3 sont 2, 3, 13, 23 et 31.

Bon travail.

Page 2 sur 2

Vous aimerez peut-être aussi