AlgoQCM S1 VBA
AlgoQCM S1 VBA
AlgoQCM S1 VBA
1 Introduction 2
2 QCM Semaine 1 3
2.1 algorithmique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 language VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Page d’accueil
Page de Titre
Sommaire
JJ II
J I
Page 1 de 4
Retour
Plein Ecran
Fermer
Quitter
1. Introduction
Pour chaque semaine, un QCM d’algorithmique est suivi de QCM pour le langage informatique étudié.
– Pour commencer un QCM on doit cliquer sur le bouton Début.
– Pour le terminer, on clique sur Fin.
– Le score s’affiche.
Vous pouvez recommencer le QCM en cliquant de nouveau sur Début ou voir les bonnes réponses en cliquant sur Réponses.
Un clic sur les cases vertes permet de voir une petite explication sur la bonne réponse.
Quand une réponse litérale est à fournir et que l’on a demandé la correction, un clic sur Ans fournit la réponse dans la case en
bas du questionnaire. Un appui sur SIFT+clic donne la réponse complète si elle existe.
Page d’accueil
Page de Titre
Sommaire
JJ II
J I
Page 2 de 4
Retour
Plein Ecran
Fermer
Quitter
2. QCM Semaine 1
2.1. algorithmique
Plein Ecran
Fermer
Quitter
2.2. language VBA
Répondre aux 8 questions.
1. Pour déclarer 2 variables i et j de type entier, on écrit :
Dim i, j : Integer Dim i, j As Integer Dim i as Integer, j As Integer
2. Pour déclarer une variable x de type réel, on écrit :
Dim x As Real Dim x As Double Dim x As String
3. Pour tester qu’une variable entière i est différente de 0, on écrit :
If i Diff 0 Then If i <> 0 Then If i != 0 Then If i <− 0 Then
4. A l’issue de l’affectation : x = 100 \ 40, la variable x vaut :
0 0.4 2 2.5 20
5. Soient 2 variables entières a et b, respectivement égales à 1 et 2. A l’issue des 2 affectations successives a = b : b = a, que valent
respectivement a et b :
1 et 1 2 et 1 2 et 2
Page d’accueil
6. Soient 2 variables entières a et b initialisées, et Test une variable booléenne. Pour récupérer dans Test le résultat de la comparaison
entre a et b, on écrit :
Page de Titre
Test = a = b
Sommaire If a=b Then Test=True Else Test=False
Dim i As I n t e g e r , Somme As I n t e g e r
Somme = 0 : i = 1
For i = 1 t o 3 : Somme = Somme + i : Next i
Les réponses aux questionnaires
Réponse : Une constante est comme son nom l’indique non modifiable. Retour au questionnaire.
Page d’accueil
Page de Titre
Sommaire
JJ II
J I
Page 5 de 4
Retour
Plein Ecran
Fermer
Quitter
Réponse : Il n’y a que les mauvais programmeurs qui ne commentent pas leur programme. Retour au questionnaire.
Page d’accueil
Page de Titre
Sommaire
JJ II
J I
Page 6 de 4
Retour
Plein Ecran
Fermer
Quitter
Réponse : Une variable doit être initialisée avant toute utilisation, sinon sa valeur est quelconque. Retour au questionnaire.
Page d’accueil
Page de Titre
Sommaire
JJ II
J I
Page 7 de 4
Retour
Plein Ecran
Fermer
Quitter
Réponse : Les types fondamentaux sont au nombre de cinq ( Entier, Réel, Booléen, Caractère, Chaı̂ne de caractères).
Retour au questionnaire.
Page d’accueil
Page de Titre
Sommaire
JJ II
J I
Page 8 de 4
Retour
Plein Ecran
Fermer
Quitter
Réponse : Le compilateur est capable de détecter les erreurs de compatibilité de type dans une expression. Notons que certains
environnements de programmation peuvent exploiter cette information à l’exécution pour vérifier que la valeur d’une variable est
compatible avec son type, par exemple lors de la saisie. Retour au questionnaire.
Page d’accueil
Page de Titre
Sommaire
JJ II
J I
Page 9 de 4
Retour
Plein Ecran
Fermer
Quitter
Réponse : Cette expession est vrai. Retour au questionnaire.
Page d’accueil
Page de Titre
Sommaire
JJ II
J I
Page 10 de 4
Retour
Plein Ecran
Fermer
Quitter
Réponse : La multiplication est prioritaire sur l’addition donc le calcul s’effectue 5*12 : 60 puis 3 + 60 : 63 puis 63 - 5 : 58.
Retour au questionnaire.
Page d’accueil
Page de Titre
Sommaire
JJ II
J I
Page 11 de 4
Retour
Plein Ecran
Fermer
Quitter
Réponse : Les deux solutions peuvent convenir, la première étant plus logique. N’oublions pas que Selon .. Dans .. .. .. FinSelon
aurait été mieux dans ce cas ou un entier ne peut avoir que 3 valeurs distinctes. Retour au questionnaire.
Page d’accueil
Page de Titre
Sommaire
JJ II
J I
Page 12 de 4
Retour
Plein Ecran
Fermer
Quitter
Réponse : Il est nécessaire de répéter As Integer pour chaque variable. Bien que la réponse n˚2 ne provoque pas d’erreur de syntaxe
car le Visual BASIC effectue une déclaration implicite de la variable i avec un type particulier (le type Variant), on la considèrera
fausse car le type Variant n’est pas équivalent au type Integer. Retour au questionnaire.
Page d’accueil
Page de Titre
Sommaire
JJ II
J I
Page 13 de 4
Retour
Plein Ecran
Fermer
Quitter
Réponse : On peut aussi utiliser le type Single, qui est cependant moins précis (7 chiffres significatifs). Lorsqu’on n’a aucun a priori
sur le niveau de précision, il est préférable d’utiliser Double, qui offre la meilleure précision (15 chiffres significatifs). Le mot-clé Real
n’existe pas en Visual BASIC. Retour au questionnaire.
Page d’accueil
Page de Titre
Sommaire
JJ II
J I
Page 14 de 4
Retour
Plein Ecran
Fermer
Quitter
Réponse : If i <> 0 Then Retour au questionnaire.
Page d’accueil
Page de Titre
Sommaire
JJ II
J I
Page 15 de 4
Retour
Plein Ecran
Fermer
Quitter
Réponse : x=2 : L’opérateur \ correspond à la division entière du premier nombre par le second, donc sans partie décimale. La
valeur 2.5 correspond à x = 100 / 40 (division réelle), tandis que la valeur 20 correspond à 100 Mod 40 (reste de la division entière de
100 par 40). Retour au questionnaire.
Page d’accueil
Page de Titre
Sommaire
JJ II
J I
Page 16 de 4
Retour
Plein Ecran
Fermer
Quitter
Réponse : 2 et 2 : A l’issue de la première affectation, a reçoit la valeur 2, et donc l’affectation suivante affecte cette valeur 2 à
b. Retour au questionnaire.
Page d’accueil
Page de Titre
Sommaire
JJ II
J I
Page 17 de 4
Retour
Plein Ecran
Fermer
Quitter
Réponse : Dans l’instruction Test = a = b, le premier signe = est l’instruction d’affectation tandis que le second est l’opérateur
de comparaison : comme dans toute affectation, on commence par calculer la valeur du second membre de l’affectation, c’est-à-dire
ici l’expression booléenne a = b. Celle-ci renvoie, selon le cas, la valeur True ou la valeur False, laquelle valeur est ensuite affectée à
la variable Test constituant le premier membre de l’affectation. La réponse n˚2 est également correcte mais inutilement compliquée.
La réponse n˚3 est syntaxiquement fausse car l’instruction If est implicitement close en fin de ligne (puisque le Then est suivi d’une
instruction). Le End If provoquera donc une erreur de compilation. Retour au questionnaire.
Page d’accueil
Page de Titre
Sommaire
JJ II
J I
Page 18 de 4
Retour
Plein Ecran
Fermer
Quitter
Réponse : La variable Somme n’ayant pas été initialisée, le résultat est potentiellement indéterminé. Il faut rajouter l’instruction
Somme = 0 avant la boucle For pour garantir un résultat correct. Bien que la plupart des interpréteurs Visual Basic initialisent
implicitement les variables entières à 0 lors de leur déclaration (et c’est le cas sous Excel), il faut appliquer la règle algorithmique de
toujours initialiser explicitement les variables utilisées.
Retour au questionnaire.
Page d’accueil
Page de Titre
Sommaire
JJ II
J I
Page 19 de 4
Retour
Plein Ecran
Fermer
Quitter
Réponse : La réponse n˚1 est la bonne. La réponse n˚2 fournira le même résultat mais elle traduit une incompréhension du fonc-
tionnement de la boucle For : en effet, le compteur i d’une boucle For n’a pas à être initialisé avant la boucle puisque c’est la boucle
elle-même qui gère cet aspect. Retour au questionnaire.
Page d’accueil
Page de Titre
Sommaire
JJ II
J I
Page 20 de 4
Retour
Plein Ecran
Fermer
Quitter