You are on page 1of 3

Projet d’algorithmique et de programmation

I. Objectif
Concevoir des algorithmes simples et les implémenter en Visual Basic for Applications sous
Excel (VBA Excel). Ceci vous permettra d’approfondir vos compétences en analyse et
conception algorithmiques ainsi que la programmation en VBA

II. Dossier de projet


Chaque groupe de projet doit fournir, en plus des fichiers Excel contenant les codes VBA, un
dossier de programmation contenant :
• Les noms et prénoms des étudiant faisant partie du groupe de projet. Un groupe de
projet ne doit pas avoir plus de quatre (04) étudiants ;
• Justifier et expliquer la conception : le découpage en sous algorithmes (si c’est le
cas), la signification et l’utilité des paramètres des algorithmes, des variables, les
instructions un peu complexes.
• Pour chaque problème, dire comment exécuter les programmes VBA sous Excel
(Raccourci clavier, Bouton ou Menu)

Le dossier et les fichiers Excel devront être mis ensemble dans un fichier .zip et envoyer à
l’adresse email suivante : ppkabore@hotmail.com et avec pour sujet « Projet algo et
programmation 2ie ».

Pour les fichiers Excel, utiliser un classeur par problème. Par exemple :
ElelementsUniques.xlsm, Cribble.xlsm, Pile.xlsm

NB : les projets doivent être faits et retourner au plus le 30/12/2018

III. Problèmes à programmer

1/ Trouver les éléments uniques (4 points)

On dispose d'un tableau de numériques, qui contient des doublons (des nombres présents
plusieurs fois) que l'on veut éliminer : on veut récupérer une liste contenant les mêmes
éléments, mais où chaque élément ne serait présent qu'une seule fois.

a) Proposer un algorithme permettant de le faire

b) Implémenter l'algorithme en VBA et tester.


2/ Cribble d'Erasthothène (8 points)

Le problème consiste à déterminer les nombres premiers inférieurs à un nombre donné n


en utilisant la cribble d’Erasthothème. Le procédé est le suivant :

1) On prend les nombres entiers entre 2 et n


2) On répète les étapes 3 et 4 ci-dessous
3) On calcule le carré du plus petit nombre non rayé et non marqué de ces nombres
entiers ;
4) Si le carré est plus petit que n, on marque le nombre et on raye tous les multiples de
ce nombre et on recommence (étape 3) ;
5) Si le carré est supérieur ou s'il n'y a plus de nombre non rayé et non marqué, on
arrête.

Les nombres premiers sont les nombres non rayés restants.

a) Proposer une modélisation des données (l'ensemble des paramètres et/ou variables)
et écrire un algorithme pour résoudre le problème

b) Implémenter l'algorithme en VBA et tester .

3/ Implémentation d'une pile par un tableau (8 points)

Une pile est une structure de donnée (comme les tableaux), qui fonctionne selon le mode
dernier entré premier sorti (LIFO: Last In First Out). On manipule une pile en utilisant les 5
opérations suivante:

1) PileVide() : crée et retourne une nouvelle pile


2) EstVide(…) : teste si la pile est vide ( retourne VRAI ou FAUX)
3) EstPleine(…) : teste si la pile est pleine ( retourne VRAI ou FAUX)
4) Empiler(…) : ajoute d'un élément en tête de la pile
5) Depiler (…) : supprime l'élément en tête de liste et retourne cet élément

Depiler est possible si EstVide retourne FAUX. Depiler avec une pile vide donne une erreur.
De même, on considère que la capacité maximale de la pile est donnée à la création et que
Empiler n’est possible que si cela n’engendrera pas un débordement de capacité

a) En utilisant un tableau, proposer une modélisation des données (l'ensemble


des paramètres et/ou variables) permettant de simuler le fonctionnement de
la pile (2 points)

b) Ecrire les algorithmes des 4 opérations de la pile


c) Implémenter les algorithmes en VBA