Accueil           Recherche       Annuaire   

 Album   

Documents       Jeux     Chat     Blogs     Forum

Pratique
Formation-Orientation
Stage - Job
Vie étudiante
Sexualité - Psycho
Documents
Droit
Gestion
Finance
Economie
Econométrie
Commerce
Sciences sociales
Informatique
Détente
Test d'intelligence
Quiz
Humour
Jeux
Plus!
Traducteur
Annuaire inversé
Cartes & itinéraires
Service public
A propos
Charte du site
Récompenses
Nous recommander
Partenaires
Contact

 VBA : ANALYSE ET PROGRAMMATION

Support logiciels     Culture informatique    Programmation

 

Qualités d'un projet

  • Fiabilité : il doit donner les résultats corrects attendus.
  • Robustesse : il doit gérer les erreurs de manipulation des utilisateurs.
  • Convivialité : il doit être agréable à utiliser (souris, icônes, menus…)
  • Efficacité : il doit donner des réponses rapides et claires.
  • Compacité : il doit occuper le moins de place possible en mémoire.
  • Lisibilité : il doit être structuré en modules, commenté, présenté clairement.
  • Portabilité : il doit être aisément transférable sur une machine d'un autre type.

 

Algorithme 1

 Quand on a un problème à résoudre par programmation on doit tout d'abord trouver une stratégie pour y parvenir.

Il faut bien sur que cette stratégie soit "programmable" dans le langage de programmation choisi. Il faut donc bien connaître les caractéristiques et les possibilités de ce langage.

Le plus souvent on écrit un algorithme en français (c'est la stratégie adoptée) que l'on pourra ensuite coder dans le langage de programmation choisi.

 

Premier exempleHaut de page

Il s'agit de chercher quel jour de la semaine tombe la fête de Noël d'une année donnée.

Référence : Noël 1900 était un mardi.

Rappel : 1900 n'était pas bissextile mais 2000 le sera.

Analyse :

Noël se décale d'un jour par an (365 jours = 52 semaines + 1 jour) pour les années normales et de 2 jours par an pour les années bissextiles.

On suppose que le dimanche est numéroté 1, lundi 2 … … … et samedi 7 ou 0.

Donc le mardi 25 décembre 1900 porte le numéro 3.

Il suffit donc d'ajouter à ce nombre (3) les décalages occasionnés par les années (normales ou bissextiles).

Algorithme :

Année ß saisie de l'année à traiter

DécalageA ß nombre d'années entre 1900 et Année

DécalageB ß nombre d'années bissextiles entre 1900 et Année

DécalageTotal ß 3 + DécalageA + DécalageB

JourSem ß reste de la division de DécalageTotal par 7

 

Programme :Haut de page

Private Sub Form_Load()

Dim Année As Integer

Dim DécalageA As Integer, DécalageB As Integer

Dim NombreDeJours, JourSem As Integer

Année = InputBox("Taper une année")

DécalageA = Année - 1900

DécalageB = Int(DécalageA / 4)

NombreDeJours = 3 + DécalageA + DécalageB

JourSem = NombreDeJours Mod 7

MsgBox (JourSem)

End Sub

 

Algorithme 2

Deuxième exemple

Il s'agit de trier en ordre décroissant les nombre contenus dans un tableau de 100 entiers.

Différentes stratégies sont à notre disposition. La plus classique est celle du tri à bulles.

Analyse :

On peut comparer chaque nombre à son suivant et mettre en tête le plus grand des deux.

On avance ainsi dans le tableau jusqu'à la fin de celui-ci.

Puis on recommence au début jusqu'à ce que plus aucune permutation ne soit effectuée.

Pour cela il faut un indicateur de permutation (drapeau ou sémaphore).Haut de page

Alors le tableau est trié.

Algorithme :

Début

Faire

Permuté ¬ 0 ' drapeau indiquant qu'aucune permutation n'a été effectuée

Pour i = 1 à 99

Si Case i < Case i+1 alors

Auxiliaire ¬ Case i

Case i ¬ Case i+1

Case i+1 ¬ Auxiliaire

Permuté ¬ 1 ' drapeau indiquant qu'une permutation a été effectuée

Fin de Si

Nouveau i

Recommencer tant que Permuté = 1

Fin

Programme :

Public Sub TriABulles()

Dim Permuté As Integer

Dim Auxiliaire As Integer

Do

Permuté = 0

For i = 1 To 99

If TabEntiers(i) < TabEntiers(i + 1) Then

Auxiliaire = TabEntiers(i)Haut de page

TabEntiers(i) = TabEntiers(i + 1)

TabEntiers(i + 1) = Auxiliaire

Permuté = 1

End If

Next i

Loop While Permuté = 1

End Sub

 

Derniers conseils

  • Privilégier une étude descendante : du général au particulier.
  • Réfléchir à la structure des données la plus appropriée.

Par exemple pour le jeu du PENDU utiliser un tableau

TabTitres(1 To 10, 1 To 3) As String qui contiendra :

  1. En ligne 1 les titres des films
  2. En ligne 2 les squelettes (*******)
  3. En ligne 3 une aide sous forme de texte ("C'est un western")
  • Utiliser des noms de variables significatifs :

NombreATrouver As Integer

TitreIncomplet As String

LettreInitiale As String*1

  • Initialiser les variables même si VB le fait dans certains cas.
  • Si nécessaire travailler sous forme de procédures publiques utilisables dans toute la feuille.
  • Définir une interface utilisateur complète.

Par exemple pour le jeu du PENDU prévoir un bouton pour "Ajouter une lettre" et un autre pour "Proposer une réponse".

  • Commenter le programme pour qu'il soit plus compréhensible en vue de modifications ultérieures et le rédiger clairement.
  • Enfin : que le programme "Tourne" avant de soigner sa forme.

Haut de page    

Contact                                                    © Niant - Copyrightdepot.com                                          Site déclaré à la CNIL 

Positionnement et Statistiques Gratuites