• Aucun résultat trouvé

Vrai 3) Dans la séquence suivante, le texte «Deuxième valeur» ne sera jamais affiché, peu importe la valeur de X (de type Integer)

N/A
N/A
Protected

Academic year: 2022

Partager "Vrai 3) Dans la séquence suivante, le texte «Deuxième valeur» ne sera jamais affiché, peu importe la valeur de X (de type Integer)"

Copied!
6
0
0

Texte intégral

(1)

DIRECTION DE L'ENSEIGNEMENT DE SERVICE EN INFORMATIQUE

COURS: IFT 1175 EXAMEN INTRA

DATE: Jeudi, 2 juin 2005 DURÉE: Deux heures

TOUTE DOCUMENTATION PERMISE PAR: Francis Fournelle

PARTIE - I Connaissances générales (20 questions, 40 points)

Si l’énoncé est une question, répondez-y brièvement. S'il s'agit d'un énoncé incomplet, indiquez l'expression qui le complète le mieux. S’il s’agit d’une affirmation, répondez par "Vrai" ou par

"Faux" selon qu’elle est vraie ou fausse. Si elle est fausse, ou si elle n’est pas toujours vraie, expliquez brièvement et succinctement pourquoi. Notez la distinction qu'il faut faire entre le déclenchement (activation) d'un événement d'un contrôle et l'exécution de cet événement par la procédure événementielle qui lui est associée.

1) Si le focus passe du contrôle «A» au contrôle «B», l'événement «Leave/LostFocus» de «B» sera déclenché avant l'événement «Enter/GotFocus» de «A».

Faux Inverser «A» et «B»

2) Il est possible que l'énoncé «Compteur = Comteur + 1» donne un résultat différent selon la présence ou l'absence de l'énoncé «Option Explicit» au début du module de programmation.

Vrai

3) Dans la séquence suivante, le texte «Deuxième valeur» ne sera jamais affiché, peu importe la valeur de X (de type Integer).

Select Case X Case <= 20

MsgBox("Première valeur") Case 5, 10, 15, 20

MsgBox("Deuxième valeur") Case Else

... ' Suite du programme Vrai

4) La propriété «Text» d'un contrôle «Barre de défilement» (ScrollBar) permet d'afficher sa valeur en tout temps.

Faux C'est la propriété «Value»

5) La façon de réagir aux actions de l'utilisateur est de programmer les _____ des contrôles.

événements

(2)

6) Une des principales différences entre les zones de listes (ListBox) et les zones de listes modifiables (ComboBox) est que les ______ ne permettent pas de sélectionner plus d'un choix.

ComboBox

7) Tous les contrôles internes de VB possèdent des propriétés graphiques qui permettent à l'auteur de déterminer précisément ce que verra l'utilisateur.

Faux Ex. Timer

8) Pour afficher du texte à l'utilisateur sans qu'il ne puisse le modifier, on peut le placer soit dans un contrôle étiquette «Label», soit dans un contrôle zone de texte muni d'une propriété _____mise à

«False».

Enabled

9) Dans une procédure d’un événement «KeyPress», la propriété «Handled» du paramètre «e» est généralement en lecture seule.

Faux Doit pouvoir être modifiée

10) Si une minuterie a sa propriété «Enabled» fixée à Vrai (True) et sa propriété «Interval» à 5, son événement «Tick» sera déclenché à toutes les 5 secondes jusqu'à ce qu'elle soit désactivée.

Faux 5 millièmes de seconde

11) Si on ouvre un objet «MonFS» de la classe FileStream en mode Append, on pourra ensuite lui associer un objet «MonSR» de la classe StreamReader au moyen de l'énoncé

MonSR = New StreamReader(MonFS) Faux erreur : en mode Append, on ne peut pas lire.

12) Dans tous les contrôles possédant une propriété «Text», l’auteur peut permettre à l’utilisateur d’entrer du texte.

Faux ex. label

13) Si «MonSR» est un objet de type «StreamReader», «K» une variable entière et «Lettres» un tableau de 5 caractères, la boucle

For K = 0 to 4

Lettres(K) = MonSR.Peek() Next K

placera les 5 prochains caractères du fichier dans le tableau Lettres.

Faux 5 fois le premier caractère

14) Toutes les variables définies dans un module régulier sont visibles à partir de toutes les feuilles de l'application.

Faux pas si Private

(3)

15) Pour désactiver (désélectionner) un bouton d'option (RadioButton), l'utilisateur n'a qu'à cliquer de nouveau dessus.

Faux demeure sélectionné

16) On peut associer un objet «MonSR» de type «StreamReader» à un objet MonFS de type

«FileStream», par exemple «MonSR = New StreamReader(MonFS)» ou bien directement à un fichier, par exemple «MonSR = New StreamReader("toto.txt")». Dans le premier cas, la lecture se fera au moyen d'un FileStream, dans le deuxième cas, elle se fera directement sans passer par un FileStream.

Faux passera par un FileStream «caché» (en arrière-plan)

17) Quelle propriété doit-on utiliser pour qu’une zone de liste (ListBox) ne permette qu’un seul choix?

Faux SelectionMode

18) La valeur de la propriété SelectedIndex d'une zone de liste modifiable (ComboBox) varie entre zéro et ________ .

ComboBox1.Items.Count - 1

19) Dans le corps de la définition d'une propriété d'une classe, il doit y avoir le même nombre d'énoncés «GET» que d'énoncés «SET».

Faux ReadOnly et WriteOnly

20) L’énoncé «Z = Replace("("123", "(", "")» placera dans Z la valeur "123".

Faux erreur de syntaxe

PARTIE - II Analyse et programmation (4 questions, 60 points)

La question 21 : 15 pts

La meilleure des autres réponses : 25 pts, La moins bonne des autres réponses: 5 pts L'«autre» réponse : 15 pts

21) Dans une procédure, la variable «Nom» contient une chaîne de caractères qui peut se terminer par le caractère «,» (virgule) et une variable «Prenom» qui peut commencer par une «,». On veut placer dans la variable «NomPren» le texte formé du nom en majuscule et du prénom (tel quel) séparé par une (et une seule) «,» et un espace. Ainsi, «LeTarte» et «Mimi» donnera

«LETARTE, Mimi», tout comme «LeTarte» et «,Mimi», «LeTarte,» et «,Mimi», ou bien

«LeTarte,» et «Mimi».

NomPren.Text = Nom.Text, & ",^" & Prenom.Text ' ^ représente espace NomPren.Text = Replace(NomPren.Text, ",," , ",") ' (virgule dans nom) NomPren.Text = Replace(NomPren.Text, "^," , "^") ' (virgule dans prénom)

Ou bien

NomPren.Text = Nom.Text.Replace(",", "^") & ",^" & _ Prenom.Text.Replace(",", "^")

(4)

22) Une variable est définie comme suit : Dim LstEmp() As TypEmp.

Le type «TypEmp» est un type personnalisé (Structure) qui comporte dans l'ordre un champ Nom de type «chaîne de longueur variable», un champ Sexe de type «1 seul caractère» et un champ Salaire de type «entier» ainsi que quelques autres champs. On suppose que le fichier séquentiel «Employes.dta» contient, pour un certain nombre d'employés, une ligne de données par champ conformément à la description précédente.

A) Écrivez la description du type TypEmp et des variables LstEmp et NbEmp.

Public Structure TypEmp Dim Nom As String Dim Sexe As Char

Dim Salaire As Integer

...

End Structure

Dim LstEmp() As TypEmp Dim NbEmp As Integer = 0

B) Programmez la section du «Form_Load» (pas les en-têtes) qui place dans une variable NbEmp le nombre d'employés dont les données sont lues et placées dans le tableau.

Dim UnFich As New FileStream("Employes.dta", Filemode.Open) Dim UnLect As New StreamReader(UnFich)

...

Do While UnLect.Peek() <> -1

NbEmp += 1 ' Le tableau ira de 1 à NbEmp ReDim Preserve LstEmp(NbEmp)

With LstEmp(NbEmp)

.Nom = UnLect.ReadLine() .Sexe = UnLect.ReadLine() .Salaire = UnLect.ReadLine() End With

Loop

UnLecteur.Close

23) Dans la même application qu'à la question précédente, votre feuille de travail comporte une zone de liste (ListBox) ListeChoix dont la propriété «Sorted» est mise à False, une zone de liste modifiable (ComboBox) ListeSalaires dont la propriété «Visible» est à False et une zone de texte txtTotSalaires.

A) Écrivez le code (seulement) qui placera dans la zone de liste ListeChoix les noms de toutes les femmes du tableau (Sexe vaut «F») et simultanément la valeur de leur salaire dans le combo ListeSalaires.

(5)

...

Dim J As Integer For J = 1 To NbEmp

If LstEmp(J).Sexe = "F" Then

ListeChoix.Items.Add(LstEmp(J).Nom)

ListeSalaires.Items.Add(LstEmp(J).Salaire) End If

Next

B) On suppose que l'utilisateur analyse la liste des femmes et, en l'honneur du «8 mars», il sélectionne celles à qui il veut accorder une augmentation de salaire. Programmez l'événement «LostFocus» (sans les en-têtes) de la zone de liste pour que la somme des salaires des employées qui ont été sélectionnées par l'utilisateur soit placée dans la zone de texte txtTotSalaires. (Conseil : utilisez les propriété SelectedIndices de la zone de liste et Items du combo).

...

Private Sub ...

Dim J, Ind, Total As Integer

For J = 0 To ListeChoix.SelectedIndices.Count - 1 Ind = ListeChoix.SelectedIndices(J)

Total += ListeSalaires.Items(Ind) Next

txtSalaires.Text = Str(Total) End Sub

24) Créez une classe «clSandwich» possédant les caractéristiques suivantes.

• Une propriété Nom de type «Chaîne de caractères» sans aucune contrainte.

• Une propriété Contenu en lecture-écriture de type «Chaîne» qui renvoie son contenu mais qui n'accepte une valeur que si aucune valeur n'est définie (écriture unique).

• Une propriété Prix en lecture-écriture de type réelle n'acceptant que des valeurs positives comprises entre 2,50 et 13,50.

• Le constructeur «New()».place la date du jour (au moment de la création) dans une variable privée (cachée).

• La méthode Jours renvoie un entier indiquant depuis combien de jours le sandwich a été fabriqué.

(6)

...

Public Class SandWich

Public Nom As String ' Propriété Nom Private mContenu As String ' Propriété Contenu Public Property Contenu() As String

Get

Contenu = mContenu End Get

Set(Value As String)

If mContenu = "" Then mContenu = Value End Set

End Property

Private mPrix As Single ' Propriété Prix Get

Prix = mPrix End Get

Set(Value As Single)

If Value >= 2.50 And Value <= 13.50 Then mPrix = Value

Else

mPrix = 2.50 End If

End Set

End Property

Private mDate As Date

Public Sub New() ' Constructeur place la date mDate = DateTime.Today

End Sub

Public Function Jours() As Integer ' Méthode Jours

Jours = DateDiff(DateInterval.Day), mDate, DateTime.Today) End Function

End Class

Références

Documents relatifs

ensemble de règles pour gérer les relations entre tables et éviter des incohérences dans une BD. Mettre à jour /supprimer en cascade.. 12) les requêtes menu requête pour type

Les fichiers de type texte (voir

Écrire un programme principal qui demande à l'utilisateur d'introduire les données concernant tous les matchs du premier tour, puis les stocker dans un chier, ensuite les charger

Étape 1 : Écouter pour s’imprégner de l’œuvre Première écoute du morceau.. Recueil et confrontation des impressions laissées

(un échantillon probabiliste est un échantillon ou chaque fragment a une probabilité non-nulle d’être sélectionné, il est sans biais si chaque.. fragment a une chance

« Borne inf » et « borne sup » (tq borne inf &lt;borne sup) appartenant à un type scalaire discret ordonnée (entier, caractère et scalaire énuméré). Activité: Définir le

In this chapter we study the existence and uniqueness of the solutions to mean-…eld re‡ected backward doubly stochastic di¤erential equation when the driver f is lipschitz. We

La distance d parcourue depuis le départ, exprimée en mètres, est alors donnée en fonction du temps t, exprimé en secondes par la relation : d = 0,5  t 2.. Quelle distance