Initiation à la programmation/Exercices/Visual Basic
Établissons ensemble l'algorithme qui à partir de la largeur et de la longueur d'un rectangle nous donne le résultat de la surface et du périmètre.
De plus, affiche si le nombre obtenu pour le périmètre est inférieur ou supérieur au nombre obtenu pour la surface.
Remarques :
- la longueur et la largeur sont des entiers.
- les valeurs sont directement saisies dans le programme.
Début { commentaire } déclaration des variables longueur, largeur, périmètre : entier { déclare deux variables au nom de longueur, largeur et périmètre type entier. } longueur = x { on affecte la variable longueur de la valeur x, idem pour la largeur } largeur = y surface = longueur * largeur { action 1 ; calcul la surface est affecte la variable surface a cette valeur } périmètre = 2 * longueur + 2 * largeur { action 2 ; calcul le périmètre est affecte la variable périmètre a cette valeur } afficher surface { permet d'afficher la variable surface } afficher périmètre { permet d'afficher la variable périmètre } Si Alors afficher périmètre inférieur à surface ; Sinon afficher périmètre supérieur à surface ; Fin Si Fin
En blocs graphiques, cela nous donne la représentation suivante.
On comprend aisément à travers cet exemple, que cette représentation est peu commode.
Lancer le tableur « Excel », puis dans « Outils », puis « Macro », choisir « Visual Basic Editor ».
Dans « Visual Basic Editor », dans la fenêtre « Projet – VBA Project », cliquer sur « Afficher le code », dans la fenêtre de droite l'espace vous est réservé pour saisir votre programme.
Les commentaires sont en vert et précédé d'un '
, les mots système (réservé au langage informatique) sont en bleu. Sinon, on retrouve les mêmes structures que celles exposées dans le cours.
Sub SurfaceCarré() ' Sub remplace début, et est suivi du nom du programme, ici SurfaceCarré
Dim Largeur As Integer ' déclaration de la variable Largeur par l'instruction « Dim » (les majuscules ont leur importance aussi « largeur » est différent de « Largeur »). Le type est spécifié par l'instruction « As » et « Integer ».
Dim Longueur As Integer
Largeur = x ' affecte la varuabke Largeur de la valeur x
Longueur = y
Cells(1,1).Value = « Surface » ' affiche dans la cellule située 1er ligne et 1er colonne la chaine de caractères « Surface »
Cells(2,1).Value = « Périmètre »
Cells(1,2).Value = Largeur * Longueur
Cells(2,2).Value = 2 * Largeur + 2 * Longueur
If (Cells(2,2).Value < Cells(1,2).Value) Then ' Teste si la valeur de la 1er cellule est inférieur à la valeur de la 2nd cellule, si oui exécute la suite d'instruction après le « Then » sinon exécute les instructions après le « Else ».
Cells(2,2).Value = « Périmètre inférieur à surface »
Else
Cells(2,2).Value = « Périmètre supérieur à surface »
End If
End Sub
Exercice no 1
[modifier | modifier le wikicode]Établir l'algorithme qui permet d'afficher la valeur d'un entier dans la cellule (1, A) d'une feuille Excel.
Cette solution n'a pas été rédigée. Vous pouvez le faire en modifiant le paramètre « contenu
» du modèle. Comment faire ?
Exercice no 2
[modifier | modifier le wikicode]Établir l'algorithme qui permet de lire la valeur d'un entier dans la cellule (1, A) d'une feuille Excel, de sauvegarder cette valeur dans une variable et d'afficher cette valeur dans la cellule (3, B).
Cette solution n'a pas été rédigée. Vous pouvez le faire en modifiant le paramètre « contenu
» du modèle. Comment faire ?
Exercice no 3
[modifier | modifier le wikicode]Établir l'algorithme qui permet d'intervertir la valeur d'un entier dans la cellule (1, A) d'une feuille Excel, et la valeur d'un entier dans la cellule (2, A).
Cette solution n'a pas été rédigée. Vous pouvez le faire en modifiant le paramètre « contenu
» du modèle. Comment faire ?
Exercice no 4
[modifier | modifier le wikicode]Établir l’algorithme qui permet d'intervertir la valeur d'un entier dans la cellule (1, A) d'une feuille Excel, et la valeur d'un entier dans la cellule (2, A), si la cellule du haut est de valeur supérieure à la cellule du bas. Ne rien faire dans les autres cas.
Cette solution n'a pas été rédigée. Vous pouvez le faire en modifiant le paramètre « contenu
» du modèle. Comment faire ?
Exercice no 5
[modifier | modifier le wikicode]Établir l'algorithme qui à partir du rayon donne le résultat de la surface et du périmètre d'un cercle.
De plus, affiche si le nombre obtenu pour le périmètre est inférieur ou supérieur au nombre obtenu pour la surface.
- le rayon sera un entier.
- les valeurs seront lues à partir de valeurs écrites dans la feuille Excel.
Cette solution n'a pas été rédigée. Vous pouvez le faire en modifiant le paramètre « contenu
» du modèle. Comment faire ?
Exercice no 6
[modifier | modifier le wikicode]Dans un tableau de valeurs (déjà rangé et croissant) sur la colonne A, valeur comprise entre 5 et 50 (de 5 en 5). Trouver la position d'une valeur (indice dans le tableau) et l'afficher.
Cette solution n'a pas été rédigée. Vous pouvez le faire en modifiant le paramètre « contenu
» du modèle. Comment faire ?
Exercice no 7
[modifier | modifier le wikicode]Établir l'algorithme qui permet de remplir la feuille Excel sur les 10er lignes (1er colonne) par des nombres croissants. De 1 à …
On devra utiliser la structure de contrôle tant que.
Cette solution n'a pas été rédigée. Vous pouvez le faire en modifiant le paramètre « contenu
» du modèle. Comment faire ?
Exercice no 8
[modifier | modifier le wikicode]Établir l'algorithme qui remplit la feuille Excel sur les 10er lignes (1er colonne) par des nombres aléatoires compris entre 1 et 100.
Tous les entiers sont déclarés comme des variables de type entier. On devra utiliser la structure de contrôle tant que.
La fonction en Visual Basic générant 1 entier de façon aléatoire est la suivante :
Int(Rnd * 100 + 1) { Int() est une procédure qui retourne la partie entière du nombre dans la parenthèse ; Rnd génère une valeur aléatoire comprise entre 0 et 1 }
Cette solution n'a pas été rédigée. Vous pouvez le faire en modifiant le paramètre « contenu
» du modèle. Comment faire ?
Exercice no 9
[modifier | modifier le wikicode]Établir l’algorithme qui remplit la feuille Excel sur les 8er lignes et les 2er colonnes des entiers de 1 à n.
Première version : on remplira d'abord la 1er colonne puis la 2nd, ce qui donnera :
A | B | |
---|---|---|
1 | 1 | 9 |
2 | 2 | 10 |
3 | 3 | 11 |
4 | etc. | etc. |
Seconde version : on remplira d'abord la 1er colonne puis la 2nd, ce qui donnera :
A | B | |
---|---|---|
1 | 1 | 2 |
2 | 3 | 4 |
3 | 5 | 6 |
4 | etc. | etc. |
Tous les entiers sont déclarés comme des variables de type entier.
On pourra utiliser la structure de contrôle tant que.
Cette solution n'a pas été rédigée. Vous pouvez le faire en modifiant le paramètre « contenu
» du modèle. Comment faire ?
Exercice no 10
[modifier | modifier le wikicode]Établir l'algorithme qui fait la conversion décimale binaire d'un chiffre entier.
- Tous les entiers sont déclarés comme des variables de type entier.
- Les valeurs seront directement saisies dans le programme.
On dispose des variables : Quo
pour le quotient ; Den
pour le dénominateur ; Num
pour le numérateur et Res
pour le reste. Respecter ces dénominations pour que tout le monde ait les mêmes noms de variable.
L'instruction Int(…)
retourne la valeur entière de ce qui se trouve dans la parenthèse (donc sans la partie après la virgule).
Cette solution n'a pas été rédigée. Vous pouvez le faire en modifiant le paramètre « contenu
» du modèle. Comment faire ?
Exercice no 11
[modifier | modifier le wikicode]À partir de l'algorithme qui fait la conversion décimale — binaire d'un chiffre entier, réaliser celui qui fait la conversion décimale — hexadécimale.
Cette solution n'a pas été rédigée. Vous pouvez le faire en modifiant le paramètre « contenu
» du modèle. Comment faire ?
Exercice no 12
[modifier | modifier le wikicode]Établir l'algorithme qui classe en ordre décroissant les n entier dans un tableau, les n entiers étant classés de façon aléatoire au départ.
Tous les entiers sont déclarés comme des variables de type entier.
Cette solution n'a pas été rédigée. Vous pouvez le faire en modifiant le paramètre « contenu
» du modèle. Comment faire ?