L e 03/03/2009 Examen de Fin de Module Techniques de Programmation Structurée Durée : 2h30 Barème : / 30 pts dont 2 pts réservés à la présentation générale de vos algorithmes et à la qualité des travaux effectués. Pour un agent de banque, il vous est demandé de réaliser une application lui permettant de faciliter ses tâches journalières. Cet agent par la nature de son travail peut être amené à faire du change, à créer des comptes ou à effectuer des opérations de dépôt ou de retrait d’argent. En fin de journée, l’application à réaliser doit lui permettre de contrôler si le montant qu’il a en espèce correspond à la situation finale de l’application. Vous disposez des fonctions prédéfinies suivantes : Val(chaine de caractère) : Qui reçoit une chaine de caractère et retourne la valeur numérique associée à cette chaine CDate(chaine de caractère) : Qui reçoit une chaine de caractère et retourne la valeur date associée à cette chaine Date() : Qui retourne la date du jour Le change Les taux de change correspondant à chaque devise sont enregistrés dans un fichier Devise.txt. Ce fichier contient trois champs le premier pour la devise, le deuxième pour le taux d’achat et le troisième pour le taux de vente Tâche 1. Ecrire l’algorithme qui permet de charger à partir du fichier précédent un tableau à deux dimensions Devise. La première colonne du tableau devra contenir les devises et la deuxième le taux d’achat et la troisième le taux de vente. ............................................... 2 pts Les taux de change peuvent varier en cours de journée. Tâche 2. Ecrire l’algorithme qui demande à l’agent de saisir la devise souhaitée et les nouveau taux correspondants. Si la devise n’existe pas dans le tableau l’algorithme retourne le message « Devise inconnue » sinon les taux pour la devise en question sont modifiés ................ 2 pts L’agent peut effectuer du change soit pour l’achat (un client dépose un montant d’une certaine devise autre que le DH et souhaite le prendre en DH) ou pour la vente (un client dépose un montant en DH et souhaite le prendre en une autre devise) Tâche 3. Ecrire l’algorithme qui demande à l’agent de saisir le montant à échanger, la devise de dépôt et la devise de retrait et qui affiche le montant à remettre au client dans la nouvelle espèce (en exploitant le tableau)....................................................................................... 3 pts Les nouveaux taux doivent être rechargés dans le fichier Tâche 4. Ecrire l’algorithme qui permet de charger les nouveaux taux dans le fichier Devise.txt 2 pts EFM Tech. Prog. Structurée / Naoual ABDALLAH / Gpe A et B Page 1 L e 03/03/2009 Les comptes L’agent est souvent amené à créer des comptes pour les nouveaux clients. Pour chaque compte, on note le numéro du compte, le nom du client, le prénom du client et le solde (0 à la création du compte). Les comptes sont enregistrés dans un tableau Comptes à quatre colonnes et la banque peut gérer 2000 comptes au maximum. Les numéros de comptes, pour être valide, doivent répondre à la règle suivante : Le nombre composé des deux derniers chiffres est le reste de la division du nombre composé des autres chiffres par 36. Tâche 5. Ecrire l’algorithme qui demande à l’agent de saisir les informations nécessaires pour ajouter un nouveau compte (Numéro de compte, Nom et prénom du client) sachant qu’avant de stocker un numéro de compte dans le tableau Comptes, le numéro de compte est saisi chiffre par chiffre dans un tableau TmpCompte à une dimension. L’utilisateur arrête la saisie en introduisant un point. Le système vérifie ensuite que le numéro de compte est valide. S’il ne l’est pas l’utilisateur doit reprendre la saisie du numéro de compte jusqu’à obtenir un numéro de compte valide. Le numéro de compte valide à insérer dans le tableau Compte sera alors construit à partir du tableau tmpCompte et stocké dans la première case du tableau Compte. ............................................................................... 4 pts Tâche 6. Ecrire une procédure ProcDéduire qui déduit 50 DH de frais de tenue de compte de tous les comptes créés le jour même ........................................................................................ 2 pts Tâche 7. Ecrire une procédure ProcTrier permettant de trier le tableau Comptes par solde décroissant ........................................................................................................................ 2 pts Les opérations sur les comptes Les opérations de dépôt ou de retrait effectuées sont enregistrées dans un tableau Opérations. Ce tableau contient une colonne pour le numéro de l’opération, une colonne pour le numéro de compte, une colonne pour la date de l’opération, une colonne pour le type de l’opération (Retrait ou Dépôt) et une colonne pour le montant. Pour ajouter une nouvelle opération, l’agent introduit le numéro de compte concerné, la date de l’opération, le type de l’opération et le montant (le numéro de l’opération est généré de manière automatique. L’algorithme cherche le plus grand numéro d’opération dans le tableau Opérations et l’incrémente de 1). Tâche 8. Ecrire une fonction FctSolde qui retourne le solde pour un compte dont le numéro est donné en paramètre .......................................................................................................... 2 pts Tâche 9. Ecrire l’algorithme permettant de créer une nouvelle opération (une opération de retrait n’est autorisée que si le compte contient le montant souhaité) et de mettre à jour les comptes (opération de retrait= le solde diminue, opération de dépôt= le solde augmente pour le compte en question) ............................................................................................. 5 pts Tâche 10. Ecrire une fonction FctCaisse permettant de calculer pour la journée en cours le montant que l’agent doit avoir en caisse (le montant total déposé pour la journée en cours – le montant total retiré) ......................................................................................................... 2 pts Tâche 11. Ecrire une procédure qui affiche la liste des opérations de dépôt pour une date donnée et retourne le montant total pour ces dépôts ......................................................................... 2 pts EFM Tech. Prog. Structurée / Naoual ABDALLAH / Gpe A et B Page 2