Please enable JavaScript to access this page. Recherche :: Examens Fin Passage - Corrigés :: - Techniques de Développement Informatique
Showing posts with label Examens Fin Passage - Corrigés. Show all posts
Showing posts with label Examens Fin Passage - Corrigés. Show all posts

Examen de Passage Théorique 2013

Examen de Passage 2013 Épreuve Théorique

Dossier 1 : (13pts)
1. Donner une définition succincte ou des informations assez précises des termes suivants :   
        Facebook     (0,5pt)
        Core Duo     (0,5pt)
        Skype          (0,5pt)
        Microsoft.    (0,5pt)
2. Soient la fonction logique F et des variables logiques A, B, C et D, définies algébriquement par :
Examen de Passage Theorie 2013
Examen de Passage Theorie 2013
    a- Représenter la fonction F sur une table de vérité. (1,5pts)
    b- Simplifier la fonction F en utilisant la méthode de Karnaugh. (1,5pts)
3. Au parlement, il y a 300 représentants qui tentent de voter une loi. Un vote peut se traduire par l’un des trois cas suivants : Oui, Non et Abstention. Abstention signifie refus de participer au vote.
    a- Dénombrer les résultats de vote possibles. (2pts)
    b- Quelle est la probabilité d’avoir le résultat suivant : 120 Oui, 120 Non et 60 abstentions ? (2pts)
4. Convertir en octal et en décimal les nombres suivants :
        (1001,1)16        (2pts)
        (1000,01)16      (2pts)

Dossier 2 : (12pts)
1. Écrire un programme en C ou en C++ qui permet de saisir un nombre entier N (quelconque) non nul et affiche (2 * N – 1) ligne(s) ayant l’allure suivante : (4pts)
           *
           **
           ***
           ****
           ********* C’est le résultat pour N = 5
               ****
               ***
               **
               *
2. Écrire un programme qui permet de saisir les éléments d’une matrice d’entiers 10 x 10 et d’afficher un message qui précise si elle est triangulaire supérieure ou pas. Une matrice est triangulaire supérieure si toutes les valeurs au-dessous de la première diagonale sont égales à zéro. (4pts)
Exemple de matrice triangulaire supérieure 4 x 4 :

Examen Passage Théorie 2013
Examen Passage Théorie 2013

Les éléments de la première diagonale sont en gras. Les éléments au-dessous de cette diagonale sont en italique. Dans cet exemple, ces derniers éléments sont tous égaux à zéro et donc, c’est une matrice triangulaire supérieure.

3. On veut obtenir une bonne approximation de l’intégrale d’une fonction f sur un intervalle [X0, Y0] :
Examen de Passage Théorie Session 2013
    Soit un entier N très grand. Soit h un réel. On pose :
Examen de Passage Théorie Session 2013
    Soit la somme suivante :
Examen de Passage Théorie Session 2013
Quand N tend vers l’infini (+∞), S tend vers l’intégrale citée plus haut. Mais on se contente d’une valeur très grande de N et on récupère la valeur de S correspondante qui sera donc une bonne approximation de l’intégrale.
On veut réaliser les calculs avec les données suivantes :
X0 = 0, Y0 = 10, N = 215 (on obtient de meilleurs résultats avec N une puissance de 2),
Exemple : pour f(x) = x et ainsi notre somme pourra s’écrire ainsi :
S = f(0) * h + f(h) * h + f(2 * h) * h + f(3 * h) * h + … + f(i * h) * h + … f((N-1) * h) * h
S = (0) * h (h) * h + (2 * h) * h + (3 * h) * h + … + (i * h) * h + … ((N-1) * h) * h
Avec :
Examen de Passage Théorie Session 2013
L’exemple précédent est fourni pour vous aider à mieux comprendre.
Travail à faire : Écrire un programme qui permet de calculer et d’afficher une bonne approximation de l’intégrale : (4 pts)
Examen Passage Théorie Session Juin 2013
Examen Passage Théorie Session Juin 2013


Dossier 3 : (6pts)
    Les établissements de l’OFPPT organisent des séminaires au profit d’employés de différents organismes. Chaque séminaire porte sur une formation et est animé par un seul formateur. Chaque séminaire a un coût : c’est le prix à payer au formateur concerné. Un ou plusieurs participants peuvent assister à un séminaire. Pour chaque séminaire, le montant à payer par chaque participant et par jour est le même pour tous les participants. Chaque formation est compatible avec une ou plusieurs filières et inversement chaque filière est compatible avec une ou plusieurs formations. Chaque formateur est spécialisé dans une seule filière. Un formateur ne peut assurer une formation que s’il est spécialisé dans l’une des filières compatibles avec cette formation. Chaque formateur dépend d’un établissement et chaque établissement appartient à une région.
Vous trouverez ci-dessous, des informations supplémentaires :

- Matricule du formateur
- Nom du formateur
- Prénom du formateur
- Nom de l’établissement
- Code de la formation
- Code de la région
- Code de l’organisme
- Code de la filière
- Numéro de l’établissement
- Ville de l’établissement
- Nom de la région
- Description de la formation
- Nom de la filière
- CIN du participant
- Nom du participant
- Prénom du participant
- Nom de l’organisme
- Numéro du séminaire
- Date du début du séminaire
- Durée du séminaire
Il vous est demandé de :
    a. Établir un modèle conceptuel de données    (4 pts)
    b. Établir le modèle logique correspondant.    (2 pt)

Dossier 4 : (9pts)
    Soit la classe Personne possédant les champs publics suivants : Nom, Prénom, Père et Mère. Les deux premiers champs sont de type chaine de caractères et les deux autres sont de type Personne. Père et Mère désignent les parents de l’instance en cours. Lorsque l’un de ces 2 derniers champs est égal à null ou nothing (selon le langage utilisé), cela signifie que ce parent est inconnu et dans ce cas, on ne connait aucun des ancêtres de ce parent. Nous souhaitons retrouver les ancêtres (père, grand-père, …) de l’instance actuelle (uniquement du côté des pères).
    a- Définir la classe Personne. (0,5pt)
    b- Écrire le constructeur permettant d’initialiser le nom et le prénom. (1pt)
    c- Écrire le constructeur complet (4 paramètres). (1pt)
    d- Écrire la méthode NomComplet() qui retourne le nom et le prénom de l’instance séparés par tabulation. (1pt)

Écrire la méthode ToString() qui renvoie une chaine de caractères vide si le père de l’instance actuelle n’est pas connu. S’il est connu, cette méthode renvoie une ou plusieurs lignes. Chaque ligne contient le nom et le prénom d’un ancêtre de l’instance actuelle séparés par tabulation.
La ligne la plus haute contient les données du plus ancien ancêtre connu et la plus basse contient les données du père de l’instance actuelle. Lire les exemples plus en avant pour mieux comprendre. (3,5pts)
    e- Écrire la méthode affiche() qui fait appel à la méthode ToString pour afficher un état semblable au suivant :
Examen de Passage Théorique Session Juin 2013
Examen de Passage Théorique Session Juin 2013
N.B : Vous pouvez appeler la méthode ToString même si vous ne l’avez pas conçue.
Indications :
Examen Passage Théorique Session 2013
Examen Passage Théorique Session 2013
Télécharger L'Examen de Passage Théorique 2013 :
en format .pdf sur le lien suivant :

Examen de Passage Théorique 2013
Lire la suite

EP - Examens Passage - TDI - Pratique 2012 - V7-V8-V9


EP - Examen Passage - TDI - Pratique 2012 - Variante 7

Dossier 1 : (4,5 pts)
1. Calcul du coût d’un trajet : (1pt)
Ecrire un programme qui permet de calculer le coût engendré, pour un transporteur, par un voyage.
Le programme devrait permettre de saisir la distance du trajet et le coût au Km, puis calcule le montant correspondant, auquel il faut ajouter un montant forfaitaire de frais divers (indépendant du kilométrage), pour calculer le coût globale engendré par le voyage.
2. Somme des termes d’une suite :
Soit la suite définie par :
      U1=a
      U2=b et 
      Un=Un-1+Un-2  (pour n>2)
avec a et b deux nombres réels.

a. Ecrire une fonction qui retourne, le nième terme de cette suite ;  (0,5pt)
b. Ecrire une fonction qui calcule la somme des termes, de cette suite, inférieurs ou égaux à un entier donné ;  (0,5pt)
c. Ecrire une programme qui utilise cette fonction, pour calculer la somme des entiers impairs, inférieurs ou égaux à un entier donné.  (0,5pt)
3. Calculs sur les dates :
      a. Ecrire une fonction qui retourne le nombre de jours d’un mois donné.  (0,5pt)
(On rappelle que :
            Les mois de janvier, mars, mai, juillet, août et décembre font 31 jours ;
            Les mois d’avril, juin, octobre et novembre font 30 jours ;
            et le mois février fait 29 jours pour les années bissextiles (divisibles par 4) ; et 28 jours pour les autres.
      b. Ecrire une fonction qui permet de vérifier si une année, donnée en paramètre est bissextile ou non. La fonction retournera une valeur logique : vrai si l’année est bissextile et faux sinon.
(On rappelle qu’une année est bissextile, si elle est divisible par 4, sans être un multiple de 100, sauf si elle est un multiple de 400).
Exemples :
            2011 n’est pas bissextile, car elle n’est pas divisible pas 4 ;
            2012 est bissextile, car elle est divisible par 4, et ne l’est pas par 100 ;
            2000 est bissextile car elle est divisible par 4, et même si elle est divisible par 100, elle l’est aussi par 400).  (0,5pt)
      c. Ecrire une fonction qui admet en paramètre une date, sous forme d’un jour, d’un mois et d’une année, et qui retourne une valeur logique indiquant si la date est valide (valeur vrai), ou erronée (valeur faux).  (0,5pt)
      d. Ecrire un programme qui permet à l’utilisateur d’entrer une date, vérifie si elle est valide ; et si c’est le cas, calcule et affiche le nombre de jours écoulés depuis le début de cette année. (0,5pt)

Dossier 2 : (10 pts)
On voudrait réaliser une application orientée objet,  pour la gestion des inscriptions d’entrée dans les établissements de formation professionnelle.
Dans cette partie,  on s’intéressera essentiellement au dépôt, du dossier de candidature.
Comme vous l’aviez vous-même vécu, vous aviez rempli, sur le dossier de candidature, vos informations personnelles, des données sur votre scolarité; puis aviez effectué des choix concernant le niveau et la filière (spécialités).
Il vous est demandé d’implémenter :
1. Une classe « Niveau », représentant les niveaux de formation offerts (Technicien Spécialisé (TS), Technicien (T), Qualification (Q), Formation (F)).
      a. Créer la classe. 
      b. Ajouter à cette classe les attributs :
            numNiv (entier), pour le numéro du niveau ;
            intitNiv (chaine), pour son intitulé ;
      c. Ajouter les accesseurs, ou méthodes propriétés pour ces attributs ;
      d. Ajouter les constructeurs ; 
      e. Ajouter une méthode toString, qui retourne une forme affichable, d’une instance de « Niveau ». 
2. Une classe « Filière », représentant les spécialités de formation offertes :  (2pts)
      a. Créer la classe ; 
      b. Ajouter à cette classe les attributs :
            codeFil (entier), pour le numéro de filière ;
            intitFil (chaine), pour son intitulé ;
      c. Ajouter les accesseurs, ou méthodes propriétés pour ces attributs ; 
      d. Ajouter les constructeurs ;
      e. Aouter une méthode toString, qui retourne une forme affichable, d’une instance de « Filière ». 
3. Une classe « Candidat » :  (3pts)
      a. Créer la classe ; 
      b. Ajouter à cette classe les attributs : 
            cne (entier), pour le code national de l’étudiant ;
            nom (chaine) ;
            prenon (chaine) ;
            dateNaiss (date) ;
            sexe (M/F) ;
            nivScolaire (chaine de caractère) ;
      c. Ajouter les accesseurs, ou méthodes propriétés pour ces attributs ; 
      d. Ajouter les constructeurs ; 
      e. Aouter une méthode toString, qui retourne une forme affichable, d’une instance de « Candidat ». 
4.  Une classe « Inscription » :  (3pts)
      a. Créer la classe ;
      b. Ajouter à cette classe les attributs :  
            numDossier (entier), numéro du dossier de candidature ;
            dateInscription (date) ;
            candidat (instance de la classe « Candidat ») ;
            niveau (instance de la classe « Niveau ») ;
            filieres(tableau de 3 instances de la classe « Filiere ») ;
      c. Ajouter les accesseurs, ou méthodes propriétés pour ces attributs ; 
      d. Ajouter les constructeurs ; 
      e. Aouter une méthode toString, qui retourne une forme affichable, d’une instance de « Inscription ». 

Dossier 3 : (5,5 pts)
Dans cette partie, on vous demande de réaliser une interface graphique, pour la gestion des dossiers de candidature, qui seront stockés dans un premier temps dans une collection.


EP - Examens Passage - TDI - Pratique 2012 - V7-V8-V9
EP - Examens Passage - TDI - Pratique 2012 - V7-V8-V9


1. Réaliser cette interface. (1,5pt)
2. Déclarer une collection d’instance de la classe « Dossier », implémentée dans le dossier 2. (0,25pt)
3. Ecrire le code du bouton « Nouveau », qui permet d’initialiser, la fenêtre pour la saisie d’une nouvelle candidature. La Date sera affectée de la date système. (0,25pt)
4. Ecrire le code du bouton « Enregistrer » qui permet d’instancier une candidature, et de l’ajouter à la collection. (0,75pt)
5. Ecrire le code du bouton « Supprimer », qui supprime la candidature en cours d’affichage de la collection. (0,75pt)
6. Ecrire le code du bouton « Rechercher », qui permet, après avoir choisi un ou plusieurs critères de recherche et saisi les champs relatifs dans le formulaire, d’effectuer la recherche de la candidature qui correspond à ces critères et de l’afficher ; ou le cas échéant d’afficher un message indiquant qu’aucun candidat ne correspond à cette recherche et rétablit l’écran à son état précédent. (1pt)
7. Ajouter le code des boutons de déplacement (|< premier, <  précédent,  > suivant et >| dernier), qui affichent le dossier correspondant. (1pt)

EP - Examen Passage - TDI - Pratique 2012 - Variante 8

Dossier 1 : (4,5 pts)
1. Calcul facture pompiste : (1pt)
Ecrire un programme qui permet de calculer le montant de payement dans une station essence.
Les carburants disponibles sont : l’ "essence super", qui coute 10,50 dh/litre, le "diesel normal", qui vaut 7,45 dh/litre ; et le "diesel 350", à 9,30 dh/litre.
Le programme devrait permettre de saisir le type de carburant et la quantité, en nombre de litres, puis calcule et affiche le montant correspondant.
2. Suite numérique :
On considère la suite numérique définie par :
             S1=1
             S2=2  et 
             Sn=Sn-1 x Sn-2  (pour n>2)
      a. Ecrire une fonction qui retourne, le nième terme de cette suite ; (0,5pt)
      b. Ecrire un programme qui calcule et affiche les termes, de cette suite, inférieurs ou égaux à un entier entré par l’utilisateur ; ainsi que leur somme. (1pt)
3. Calcul sur le temps :
      a. Ecrire une fonction qui admet en paramètre une durée, sous forme d’un nombre d’heures, de minutes et de secondes, et retourne une valeur logique indiquant  si elle est valide (valeur vrai), ou erronée (valeur faux).  (0,5pt)
      b. Ecrire une fonction qui converti un nombre quelconque de secondes en minutes et secondes (le nombre de secondes restant en plus des minutes).  (0,5pt)
      c. Ecrire une fonction qui converti un nombre minutes en heures et minutes (le nombre de minutes restant en plus des heures).  (0,5pt)
      d. Ecrire un programme qui permet de calculer la somme de deux durées, exprimées en heures, minutes et secondes. Le programme vérifie si les données sont valables ; autrement, il demandera de les corriger.   (0,5pt)

Dossier 2 : (5,5 pts)
On voudrait réaliser une application orientée objet,  pour la gestion d’un tour de cyclisme. On s’intéressera spécialement à l’enregistrement des temps réalisés par les coureurs, durant les étapes.
Les cycliste sont, d’autre part, organisés en équipes.
Il vous est demandé d’implémenter :
1. Classe « Etape » : (1,5pt)
      a. Créer la classe 
      b. Ajouter à cette classe les attributs : 
            et_num (entier), comme numéro d’étape ;
            et_distance (entier), distance sur parcours de l’étape en Km ;
            et_villeD (chaine), ville de départ ;
            et_villeA (chaine), ville d’arrivé ;
            et_type (1 - Etape de pleine, 2 - Etape de montagne, 3 - Etape contre la montre) ;
      c. Ajouter les accesseurs, ou méthodes propriétés pour ces attributs ; 
      d. Ajouter les constructeurs ; 
      e. Aouter une méthode toString, qui retourne une forme affichable, d’une instance de « Etape ». 
2. Classe générique « Equipe » : (1,5pt)
      a. Créer la classe ;  
      b. Ajouter à cette classe les attributs :  
            aq_num (entier), numéro attribué à chaque équipe.
            eq_nom (chaine) ;
      c. Ajouter les accesseurs, ou méthodes propriétés pour ces attributs ; 
      d. Ajouter les constructeurs ; 
      e. Aouter une méthode toString, qui retourne une forme affichable, d’une instance de « Equipe ». 
3. Classe « Cycliste » : (2,5pts)
      a. Créer la classe ;  
      b. Ajouter à cette classe les attributs :  
            c_num (entier), numéro d’un cycliste participant à la course ;
            c_nom (chaine) ;
            c_prenom (chaine) ;
            c_nationnalite (chaine) ;
            c_age (entier) ;
            c_chrono (temps en format mm-ss) ;
            c_equipe (instance de la classe « Equipe ») ;
            c. Ajouter les accesseurs, ou méthodes propriétés pour ces attributs ; 
            d. Ajouter les constructeurs ; 
            e. Aouter une méthode toString, qui retourne une forme affichable, d’une instance de « Cycliste ». 

Dossier 3 : (10 pts)
Dans cette partie, on vous demande de réaliser une interface graphique, pour la gestion des étapes d’une course cycliste, qui seront stockées dans un premier temps dans une collection.


EP - Examens Passage - TDI - Pratique 2012 - V7-V8-V9
EP - Examens Passage - TDI - Pratique 2012 - V7-V8-V9


1. Réaliser cette interface. (2pts)
2. Déclarer une collection d’instance de la classe « Etape », implémentée dans le dossier 2. (0,5pt)
3. Ecrire le code du bouton « Ajouter » qui permet d’instancier une candidature, et de l’ajouter à la collection.  (1pt)
4. Ecrire le code du bouton « Modifier » qui permet de reporter le contenu des contrôles sur les attributs de l’instance en cours, de la collection. (1pt)
5. Ecrire le code du bouton « Supprimer », qui supprime l’étape en cours d’affichage de la collection.  (1pt)
6. Ecrire le code du bouton « Rechercher », qui doit afficher un deuxième formulaire, pour entrer les critères et valeurs de recherche, et d’effectuer après validation,  la recherche. Autrement, d’afficher un message indiquant qu’aucun résultat n’a été trouvé pour cette recherche  et rétablit l’écran à son état précédent. (1,5pt)
7. Ajouter le code des boutons de déplacement, "Prem." (premier), "Prec" (précèdent),  "Suiv." (suivant) et "Der." (dernier), qui affichent l’« Etape » correspondante.  (1pt)
8. Lors du défilement entre étapes, on voudrait afficher, au milieu de boutons de déplacement, le rang de l’étape en cours, sur le nombre total d’étapes. Ecrire le code nécessaire pour réaliser cet affichage : (1pt)


EP - Examens Passage - TDI - Pratique 2012 - V7-V8-V9
EP - Examens Passage - TDI - Pratique 2012 - V7-V8-V9


9. Modifier ce formulaire, en lui ajoutant un contrôle approprié pour présenter le type de l’étape ; et le code en conséquences. Enregistrer ce deuxième formulaire sous un autre nom. (1pt)
                                                                                                                                                        

EP - Examen Passage - TDI - Pratique 2012 - Variante 9

Dossier 1 : (4,5 pts)
1. Calcul facture pompiste :  (1pt)
Ecrire un programme qui permet de calculer la  quantité de carburant achetée dans une station essence.
Les carburants disponibles sont : L’ "essence super", qui coute 11,35 dh/litre, le "diesel normal", qui vaut 7,42 dh/litre ; et le "diesel 350", à 10,1 dh/litre.
Le programme devrait permettre de saisir le type de carburant et du montant de payement, puis calcule et affiche la quantité de carburant correspondante.
2. Suite numérique :
On considère la suite numérique définie par :
             U1=1
             U2=2  et 
             Un=2(Un-1 + Un-2)  (pour n>2)
      a. Ecrire une fonction qui retourne, le nième terme de cette suite ;  (0,5pt)
      b. Ecrire un programme qui calcule et affiche les termes, de cette suite, inférieurs ou égaux à un entier entré par l’utilisateur ; ainsi que leur somme.  (1pt)
3. Calcul sur les distances :
Dans un atelier de menuiserie, on manipule des planchés dont les dimensions sont exprimées en mètres (m), centimètre (cm) et millimètres (mm).
      a. Ecrire une fonction qui admet en paramètre une distance, sous forme d’un nombre de mètres, centimètre et de millimètres, et retourne une valeur logique indiquant si elle est valide (valeur vrai), ou erronée (valeur faux).  (0,5pt)
      b. Ecrire une fonction qui converti un nombre quelconque de millimètres en centimètres et millimètres (le nombre de millimètres restant en plus du nombre entier de centimètres).  (0,5pt)
      c. Ecrire une fonction qui converti un nombre quelconque de centimètres en mètres et centimètres (le nombre de centimètres restant en plus d’un nombre entier de mètres).  (0,5pt)
      d. Ecrire un programme qui permet de calculer la somme de deux distances, exprimées en mètres (m), centimètre (cm) et millimètres. Le programme vérifie si les données sont valables ; autrement, il demandera de les corriger.   (0,5pt)

Dossier 2 : (6,5 pts)
On voudrait réaliser une application orientée objet,  pour la gestion, simplifiée d’une agence bancaire.
Dans cette agence les clients peuvent disposer de comptes bancaires, qui sont soit des « comptes courants » ou des « comptes sur carnet ». Dans les deux cas les clients pourront effectuer des « dépôts » ou des « retraits ». Enfin un client est pris en charge par un employé, de cette agence, qui est ainsi son interlocuteur et conseillé.
Il vous est demandé d’implémenter :
1. Une classe « Client », pour modéliser un client de cette agence : (1,25pt)
      a. Créer la classe. 
      b. Ajouter à cette classe les attributs :
            numCli (entier), pour le numéro du client ;
            nomCli (chaine), pour le nom du client ;
            prenomCli (chaine), pour le prénom du client ;
            AdrsCli (chaine), pour l’adresse du client ;
      c. Ajouter les accesseurs, ou méthodes propriétés pour ces attributs ;
      d. Ajouter les constructeurs ; 
      e. Ajouter une méthode toString, qui retourne une forme affichable, d’un client. 
2. Une classe abstraite « Compte », pour modéliser un compte créé au niveau de l’agence : (1,25pt)
      a. Créer la classe. 
      b. Ajouter à cette classe les attributs :
            numCompte (entier), pour le numéro du compte ;
            dateCompte (date), pour la date d’ouverture du compte ;
            soldeCompte(réel), pour le montant du solde du compte ;
            propCompte (instance de la classe « Client »), pour représenter le client propriétaire de ce compte)
      c. Ajouter les accesseurs, ou méthodes propriétés pour ces attributs ;
      d. Ajouter les constructeurs ; 
      e. Ajouter une méthode toString, qui retourne une forme affichable, d’un compte. 
      f. Ajouter une méthode « depot », qui permet d’ajouter un montant, au solde d’un compte.
      g. Ajouter une méthode « retrait », qui permet d’enlever un montant, du solde d’un compte.
3. Une classe « CompteCourant », pour modéliser un compte courant, par héritage de la classe « Compte » : (2pts)
      a. Créer la classe. 
      b. Ajouter à cette classe l’attribut :
            decouvert (réel), pour le montant du découvert accordé à ce compte, soit le montant maximum à retirer dans un compte débiteur (négatif) ;
      c. Ajouter les accesseurs, ou méthodes propriétés pour cet attribut ;
      d. Ajouter les constructeurs ; 
      e. Ajouter une méthode toString, qui retourne une forme affichable, d’une instance de « compteCourant ». 
      f. Réécrire la méthode « retrait », en prenant compte du découvert, et empêcher de faire un retrait au-delà de cette limite.
4. Une classe « CompteCarnet », pour modéliser un compte sur carnet, par héritage de la classe « Compte » : (2pts)
      a. Créer la classe. 
      b. Ajouter à cette classe l’attribut :
tauxInteret (réel), pour exprimer, sous forme d’un pourcentage, le taux d’intérêt attribué annuellement à ce compte.
      c. Ajouter les accesseurs, ou méthodes propriétés pour cet attribut ;
      d. Ajouter les constructeurs ; 
      e. Ajouter une méthode toString, qui retourne une forme affichable, d’une instance de « CompteCarnet ».
      f. Réécrire la méthode « retrait », le solde d’un compte sur carnet, ne pouvant être négatif.

Dossier 3 : (9 pts)
Dans cette partie, on vous demande de réaliser une interface graphique, pour le suivi des comptes de cette agence.


EP - Examens Passage - TDI - Pratique 2012 - V7-V8-V9
EP - Examens Passage - TDI - Pratique 2012 - V7-V8-V9


Suivant le type du compte, l’un des deux boutons radio sera activé.
Si le compte est de type « compte courant », la fenêtre présente le découvert accordé à ce compte ; et une mention « Créditeur » est ajoutée devant le solde s’il est positif, ou « Débiteur » s’il est positif négatif.
Si le compte est de type « compte sur carnet », la fenêtre présente le taux d’intérêt qui lui est accordé (au lieu de découvert accordé, qui est caché) ; et la mention (Créditeur/Débiteur) n’ayant plus lieu d’être est aussi cachée.
Le formulaire se présenterait, dans ce deuxième cas, plutôt ainsi :


EP - Examens Passage - TDI - Pratique 2012 - V7-V8-V9
EP - Examens Passage - TDI - Pratique 2012 - V7-V8-V9


1. Réaliser cette interface. (2pts)
2. Déclarer une collection d’instance de la classe « Compte », implémentée dans le dossier 2. (0,5pt)
3. Ecrire le code du bouton « Ajouter » qui permet d’instancier un compte, et de l’ajouter à la collection.  (1pt)
4. Ecrire le code du bouton « Modifier » qui permet de reporter le contenu des contrôles sur les attributs de l’instance en cours, dans la collection. (1pt)
5. Ecrire le code du bouton « Supprimer », qui supprime le compte en cours d’affichage de la collection.  (1pt)
6. Ecrire le code du bouton « Rechercher », qui doit afficher un deuxième formulaire, pour entrer les critères et valeurs de recherche, et d’effectuer après validation, la recherche. Autrement, d’afficher un message indiquant qu’aucun résultat n’a été trouvé pour cette recherche et rétablit l’écran à son état précédent ; (1,5pt)
7. Ajouter le code des boutons de déplacement, "Prem." (premier), "Prec." (précèdent),  "Suiv." (suivant) et "Dern." (dernier), qui affichent le « compte » correspondant ;  (1pt)
8. Lors du défilement entre comptes,  on voudrait afficher, au milieu de boutons de déplacement, l’indice du compte en cours sur le nombre total des comptes de la collection. Ecrire le code nécessaire pour réaliser cet affichage : (1pt)


EP - Examens Passage - TDI - Pratique 2012 - V7-V8-V9
EP - Examens Passage - TDI - Pratique 2012 - V7-V8-V9



Télécharger Les EP - Examens Passage - TDI - Pratique 2012 - V7-V8-V9 :
en format .pdf sur le lien suivant :

EP - Examens Passage - TDI - Pratique 2012 - V7-V8-V9


Lire la suite

Examens Passage Pratique 2012 - TDI - V4-V5-V6


Examen Passage Pratique 2012 - TDI - Variante 4

Dossier 1 : (1,5 pts)
a. Ecrire un programme dans un langage structuré permettant d’afficher tous les nombres compris entre 100 et 2000 répondants au critère suivant : il y a au moins un chiffre de chacun de ces nombres qui est répété exactement deux fois. Exemples de tels nombres : 101 (le chiffre 1 est répété exactement deux fois), 1505 (le chiffre 5 est répété deux fois), 1771 (le chiffre 1 est répété deux fois ou le chiffre 7 est répété deux fois). Mais 1101 ne fait pas partie de ces nombres car le chiffre 1 est répété trois fois et le chiffre 0 une fois, et ainsi aucun des chiffres n’est répété exactement deux fois. A l’exécution, les 5 premiers nombres affichés sont : 100, 101, 110, 112, 113... (1 pt)
b. Modifier le programme précédent pour avoir les effets suivants :
Afficher un seul nombre par ligne et chaque fois que 20 de ces nombres sont affichés, le programme affichera le message suivant « Tapez ENTREE pour continuer ». Quand l’utilisateur tape la touche « ENTREE », l’écran s’efface et on obtient une autre partie de ces nombres (s’il en reste). Le dit message s’affiche encore quand tous ces nombres ont été affichés. (0,5 pt)

Dossier 2 : (15,75 pts)
L’objet de cette application est la gestion informatisée des commandes de clients, Elle doit permettre de mettre à jour la quantité stock de chaque produit commandé.
Recommandation : utiliser des listes génériques (List<T> : listes typées) de préférence. Mais vous pouvez utiliser des ArrayList ou des Collections.
1- Classe Client. 
      a. Définir une classe Client dont les caractéristiques sont : Code client, Nom, Adresse, Tél, E-mail. (0,5 pt)
      b. Ecrire un constructeur à deux paramètres : Code client, Nom. (0,5 pt)
      c. Écrire un deuxième constructeur avec tous les paramètres. (0,5 pt)
      d. Écrire les accesseurs des champs et la méthode toString() qui renverra le Nom et l’adresse du client séparés par un retour à la ligne.(0,75pt)
2- Classe Produit.
      a. Définir une classe Produit dont les caractéristiques sont Référence, Désignation, Prix unitaire, Quantité stock. (0,5 pt)
      b. Choisir des types adaptés aux champs. (0,25 pt)
      c. Écrire un constructeur avec tous les paramètres. (0,5 pt)
      d. Écrire les accesseurs des champs. (0,5 pt)
      e. Écrire la méthode toString() qui renverra les informations de ce produit séparées par tabulation mais sans la quantité stock. (0,5 pt)
3- Classe Commande.
      a. Définir une classe Commande dont les caractéristiques sont : (1 pt)
- Numéro commande : le numéro de la 1ère commande créée est 1001 et à chaque création d’une nouvelle commande, ce numéro doit être automatiquement incrémenté de 1. Faire le nécessaire (données + code) pour y arriver.
- Cclient : c’est le client qui a passé cette commande.
- Date Commande : date où Cclient a passé cette commande.
- une liste des produits commandés et une liste des quantités commandées : ces deux listes doivent toujours avoir le même nombre d’éléments : à chaque produit commandé correspond une quantité commandée dans la 2ème liste (même indice).
      b. Ecrire un constructeur sans aucun paramètre permettant de définir la valeur du numéro commande et d’affecter la date système à Date commande. (0,75 pt)
      c. Écrire les accesseurs des champs et la méthode toString() qui renverra le numéro commande, la date commande et le nom client séparés par tabulation. (0,5 pt)
      d. Ecrire la méthode TotalCommande() qui retourne le coût global de la commande = Somme des (Prix unitaire * Quantité commandée) pour l’instance en cours. (0,5 pt)
      e. Ecrire la méthode AjouterProduit() ayant comme paramètres le produit à commander et la quantité commandée correspondante. Elle doit permettre la mise à jour de la liste des produits commandées, la liste des quantités commandées et la quantité stock de ce produit ajouté (Nouvelle quantité stock = Ancienne quantité stock - quantité commandée). (1 pt)
      f. Ecrire une méthode AfficherCommande() qui permet d’imprimer sur l’écran les détails d’une commande de la manière suivante : (1 pt)


Examens Passage Pratique 2012 - TDI - V4-V5-V6
Examens Passage Pratique 2012 - TDI - V4-V5-V6


Indication : Montant est une donnée calculée = Prix unitaire * Qté. Commandée
4- Programme principal
      a. Déclarer une liste de clients, une liste de produits et une liste de commandes accessibles par toutes les méthodes du programme principal. (0,5 pt)
      b. Ajouter une méthode rechercherClient() qui recherche un client par son code. Si trouvé, elle retourne le client correspondant dans la liste des clients. Sinon, elle retourne la valeur null. (0,5 pt)
      c. Ajouter une méthode rechercherProduit() qui recherche un produit par sa désignation. Si trouvée, elle retourne le produit correspondant dans la liste des produits. Sinon, elle retourne la valeur null. (0,5 pt)
      d. Ajouter une méthode rechercherCommande() qui recherche une commande par son numéro. Si trouvé, elle retourne l’indice correspondant dans la liste des commandes. Sinon, elle retourne la valeur -1. (0,5 pt)
      e. Ajouter par code (en mode conception) trois clients dans la liste des clients. (0,5 pt)
      f. Ajouter par code trois produits dans la liste des produits. (0,5 pt)
      g. Ajouter par code deux commandes dans la liste des commandes. La 1ère contenant un produit et la 2ème deux produits. Utiliser certains constructeurs et certaines méthodes déjà conçus. (0,5 pt)
      h. Concevoir le menu suivant : (en tenant compte des indications ci-dessous)
1- Ajouter client. (0,5 pt)
2- Ajouter produit. (0,25 pt)
3- Ajouter commande. (0,75 pt)
4- Rechercher commande par numéro commande. (0,5 pt)
5- Rechercher les commandes passées à une date. (0,75 pt)
6- Fin. (0,25 pt)
Indications concernant les traitements à réaliser dans le menu ci-dessus :
      • Ajouter commande :
      - Le numéro de la nouvelle commande est automatiquement affecté par programme et la date commande correspond à la date système.
      - Saisir le code du client qui doit correspondre à un client de la liste des clients et si trouvé, le client ainsi trouvé correspond à Cclient de la commande à ajouter, sinon le programme vous demandera de saisir un autre code client.
      - Pour chaque produit à commander, l’utilisateur saisira sa désignation à chercher dans la liste des produits (même principe que celui du code client). Si trouvée, le produit ainsi trouvé sera ajouté à la liste des produits de la commande en cours.
      - Chaque fois que la désignation saisie est trouvée, saisir la quantité commandée correspondante au produit trouvé. Cette dernière sera soustraite de la quantité stock de ce produit.
      - Après la saisie de la quantité commandée, le programme demandera à l’utilisateur s’il souhaite saisir un autre produit pour la commande en cours.
      • Rechercher commande par numéro commande : saisir le numéro de commande. Si trouvé, imprimer la commande comme précisé dans la question 3.f (méthode AfficherCommande()). Sinon, afficher un message adéquat pour avertir l’utilisateur de l’inexistence de cette commande.
      • Rechercher les commandes passées à une date : Imprimer la liste des commandes (Numéro commande, Date commande, Nom client) dont la date commande est égale à la date saisie. Si aucune commande ne correspond à cette date saisie, afficher un message adéquat.

Dossier 3 : (2,75 pts)
Dans cette partie, vous ferez appel uniquement à la classe Produit du dossier 2 (ni Client ni Commande).
Soit l’interface suivante de commande :


Examens Passage Pratique 2012 - TDI - V4-V5-V6
Examens Passage Pratique 2012 - TDI - V4-V5-V6


1- Réaliser l’interface Commande ci-dessus. (0,5 pt)
2- Ecrire une méthode possédant 2 paramètres de type ListBox, permettant d’ajouter l’élément sélectionné de la première liste à la fin de la deuxième et de supprimer cet élément de la première. (0,5pt)
3- Ecrire la procédure événementielle pour qu’au démarrage de l’application, la 1ère ListBox de l’interface Commande ci-dessus, soit chargée par les noms des produits contenus dans une liste de produits et dont les éléments sont eux aussi ajoutés automatiquement par code. (0,75 pt)
4- Ecrire le code du 1er bouton (>) : Si un produit de la 1ère ListBox est sélectionné, il sera ajouté à la 2ème et son prix unitaire sera ajouté au total. Sinon un message adéquat est affiché. Utiliser une liste de produits pour contenir les produits relatifs à la 2ème ListBox. (0,5 pt)
5- Ecrire le code du 2ème bouton (<) : Si un produit de la 2ème ListBox est sélectionné, il sera ajouté à la 1ère et son prix unitaire sera soustrait du total. Sinon un message adéquat est affiché. (0,5 pt)


Examen Passage Pratique 2012 - TDI - Variante 5

Dossier 1 : (1,5 pts)
a. Ecrire un programme dans un langage structuré permettant d’afficher tous les nombres compris entre 100 et 999 répondants au critère suivant : la somme de deux des trois chiffres qui composent ces nombres est égale au chiffre restant. Exemples de tels nombres : 101 (1+0=1), 286 (2+6=8), 268, 862, 633 (3+3=6). A l’exécution, les 5 premiers nombres affichés sont : 101, 110, 112, 121, 123…   (1 pt)
b. Modifier le programme précédent pour avoir les effets suivants :
Afficher un nombre par ligne et chaque fois que 15 de ces nombres sont affichés, le programme affichera le message suivant « Tapez ENTREE pour continuer ». Quand l’utilisateur tape la touche « ENTREE », l’écran s’efface et on obtient une autre partie de ces nombres (s’il en reste). Le dit message s’affiche encore quand tous ces nombres ont été affichés. (0,5 pt)

Dossier 2 : (15,75 pts)
L’objet de cette application est la gestion informatisée des ventes de clients, Elle doit permettre de mettre à jour la quantité stock de chaque article vendu.
Recommandation : utiliser des listes génériques (List<T> : listes typées) de préférence. Mais vous pouvez utiliser des ArrayList ou des Collections.
1. Classe Client.
      a. Définir une classe Client dont les caractéristiques sont : Code client, Raison sociale, Adresse, Tél, E-mail. (0,5 pt)
      b. Ecrire un constructeur à deux paramètres : Code client, Raison sociale. (0,5 pt)
      c. Écrire un deuxième constructeur avec tous les paramètres. (0,5 pt)
      d. Écrire les accesseurs des champs et la méthode toString() qui renverra la Raison sociale et l’adresse du client séparés par un retour à la ligne. (0,75 pt)
2. Classe Article.
      a. Définir une classe Article dont les caractéristiques sont Référence, Libellé, Prix unitaire, Quantité stock. (0,5 pt)
      b. Choisir des types adaptés aux champs. (0,25 pt)
      c. Écrire un constructeur avec tous les paramètres. (0,5 pt)
      d. Écrire les accesseurs des champs. (0,5 pt)
      e. Écrire la méthode toString() qui renverra les informations de cet article séparées par tabulation mais sans la quantité stock. (0,5 pt)
3. Classe Vente.
      a. Définir une classe Vente dont les caractéristiques sont : (1 pt)
- Numéro vente : le numéro de la 1ère vente créée est 5001 et à chaque création d’une nouvelle vente, ce numéro doit être automatiquement incrémenté de 1. Faire le nécessaire (données + code) pour y arriver.
- Vclient : c’est le client qui a reçu les produits vendus.
- Date Vente : Date où a eu lieu cette vente au profit de Vclient.
- une liste des articles vendus et une liste des quantités vendues. Ces deux dernières listes doivent toujours avoir le même nombre d’éléments:
à chaque article vendu correspond une quantité vendue dans la 2ème liste (même indice).
      b. Ecrire un constructeur sans aucun paramètre permettant de définir la valeur du numéro vente et d’affecter la date système à Date vente. (0,75 pt)
      c. Écrire les accesseurs des champs et la méthode toString() qui renverra le numéro vente, la date vente et la raison sociale séparés par tabulation. (0,5 pt)
      d. Ecrire la méthode TotalVente () qui retourne le coût global de la vente = Somme des (Prix unitaire * Quantité vendue) pour l’instance en cours. (0,5 pt)
      e. Ecrire la méthode AjouterArticle() ayant comme paramètres l’article à vendre et la quantité vendue correspondante. Elle doit permettre la mise à jour de la liste des articles vendus, la liste des quantités vendues et la quantité stock de cet article ajouté (Nouvelle quantité stock = Ancienne quantité stock - quantité vendue). (1 pt)
      f. Ecrire une méthode AfficherVente() qui permet d’imprimer sur l’écran les détails d’une vente de la manière suivante : (1 pt)


Examens Passage Pratique 2012 - TDI - V4-V5-V6
Examens Passage Pratique 2012 - TDI - V4-V5-V6


Indication : Montant est une donnée calculée = Prix unitaire * Qté. Vendue
4. Programme principal
      a. Déclarer une liste de clients, une liste d’articles et une liste de ventes accessibles par toutes les méthodes du programme principal. (0,5 pt)
      b. Ajouter une méthode rechercherClient() qui recherche un client par son code. Si trouvé, elle retourne le client correspondant dans la liste des clients. Sinon, elle retourne la valeur null. (0,5 pt)
      c. Ajouter une méthode rechercherArticle() qui recherche un article par son libellé. Si trouvé, elle retourne l’article correspondant dans la liste des articles. Sinon, elle retourne la valeur null. (0,5 pt)
      d. Ajouter une méthode rechercherVente() qui recherche une vente par son numéro. Si trouvé, elle retourne l’indice correspondant dans la liste des ventes. Sinon, elle retourne la valeur  1. (0,5 pt)
      e. Ajouter par code (en mode conception) trois clients à la liste des clients. (0,5 pt)
      f. Ajouter par code trois articles à la liste des articles. (0,5 pt)
      g. Ajouter par code deux ventes à la liste des ventes. La 1ère contenant un article et la 2ème deux articles. Utiliser certains constructeurs et certaines méthodes déjà conçus. (0,5 pt)
      h. Concevoir le menu suivant : (en tenant compte des indications ci-dessous)
            1- Ajouter client. (0,5 pt)
            2- Ajouter article. (0,25 pt)
            3- Ajouter vente. (0,75 pt)
            4- Rechercher vente par numéro vente. (0,5 pt)
            5- Rechercher les ventes passées à une date. (0,75 pt)
            6- Fin. (0,25 pt)
Indications concernant les traitements à réaliser dans le menu ci-dessus :
      • Ajouter vente :
- Le numéro de la nouvelle vente est automatiquement affecté par programme et la date vente correspond à la date système.
- Saisir le code du client qui doit correspondre à un client de la liste des clients et si trouvé, le client ainsi trouvé correspond à Vclient de la vente à ajouter, sinon le programme vous demandera de saisir un autre code client.
- Pour chaque article à vendre, l’utilisateur saisira son libellé à chercher dans la liste des articles (même principe que celui du code client). Si trouvé, l’article ainsi trouvé sera ajouté à la liste des articles de la vente en cours.
- Chaque fois que le libellé saisi est trouvé, saisir la quantité vendue correspondante à l’article trouvé. Cette dernière sera soustraite de la quantité stock de ce produit.
- Après la saisie de la quantité vendue, le programme demandera à l’utilisateur s’il souhaite saisir un autre article pour la vente en cours.
      • Rechercher vente par numéro vente : saisir le numéro de la vente. Si trouvé, imprimer la vente comme précisé dans la question 3.f (méthode AfficherVente()).Sinon, afficher un message adéquat pour avertir l’utilisateur de l’inexistence de cette vente.
      • Rechercher les ventes passées à une date : Imprimer la liste des ventes (Numéro vente, Date vente, Raison sociale) dont la date vente est égale à la date saisie. Si aucune vente ne correspond à cette date saisie, afficher un message adéquat.

Dossier 3 : (2,75 pts)
Dans cette partie, vous ferez appel à la classe Article du dossier 2.
Soit l’interface suivante :


Examens Passage Pratique 2012 - TDI - V4-V5-V6
Examens Passage Pratique 2012 - TDI - V4-V5-V6


1- Réaliser l’interface Vente ci-dessus. (0,5 pt)
2- Ecrire une méthode possédant 2 paramètres de type ListBox, permettant d’ajouter l’élément sélectionné de la première liste à la fin de la deuxième et de supprimer cet élément de la première. (0,5pt)
3- Ecrire la procédure événementielle pour qu’au démarrage de l’application, la 1ère ListBox de l’interface Vente ci-dessus, soit chargée par les noms des articles contenus dans une liste d’articles et dont les éléments sont eux aussi ajoutés automatiquement par code. (0,75 pt)
4- Ecrire le code du 1er bouton (>) : Si un article de la 1ère ListBox est sélectionné, il sera ajouté à la 2ème et son prix unitaire sera ajouté au total. Sinon un message adéquat est affiché. Utilisez une liste d’articles pour contenir les articles relatifs à la 2ème ListBox. (0,5 pt)
5- Ecrire le code du 2ème bouton (<) : Si un article de la 2ème ListBox est sélectionné, il sera ajouté à la 1ère et son prix unitaire sera soustrait du total. Sinon un message adéquat est affiché. (0,5 pt)


Examen Passage Pratique 2012 - TDI - Variante 6

Dossier 1 : (1,5 pts)
a. Ecrire un programme dans un langage structuré permettant de saisir trois entiers positifs a, b et c (c>0) et d’afficher tous les multiples de c compris entre a et b. Exemples :
      pour a = 3, b = 30 et c = 5, les nombres obtenus sont : 5, 10, 15, 20, 25, 30
      et pour a = 0, b = 45 et c = 13, les nombres obtenus sont : 0, 13, 26, 39. (1 pt)
b. Modifier le programme précédent pour avoir les effets suivants :
Afficher un nombre par ligne et chaque fois que 10 de ces nombres (multiples de c) sont affichés, le programme affichera le message suivant « Tapez ENTREE pour continuer ». Quand l’utilisateur tape la touche « ENTREE », l’écran s’efface et on obtient une autre partie de ces nombres (s’il en reste). Le dit message s’affiche encore quand tous ces nombres ont été affichés. (0,5 pt)

Dossier 2 : (15,75 pts)
L’objet de cette application est la gestion informatisée des factures de clients, Elle doit permettre de mettre à jour la quantité stock de chaque accessoire facturé.
Recommandation : utiliser des listes génériques (List<T> : listes typées) de préférence. Mais vous pouvez utiliser des ArrayList ou des Collections.
1. Classe Client. 
      a. Définir une classe Client dont les caractéristiques sont : Code client, Raison sociale, Adresse, Tél, E-mail. (0,5 pt)
      b. Ecrire un constructeur à deux paramètres : Code client, Raison sociale. (0,5 pt)
      c. Écrire un deuxième constructeur avec tous les paramètres. (0,5 pt)
      d. Écrire les accesseurs des champs et la méthode toString() qui renverra la Raison sociale et l’adresse du client séparés par un retour à la ligne. (0,75 pt)
2. Classe Accessoire.
      a. Définir une classe Accessoire dont les caractéristiques sont Référence, Intitulé, Prix unitaire, Quantité stock. (0,5 pt)
      b. Choisir des types adaptés aux champs. (0,25 pt)
      c. Écrire un constructeur avec tous les paramètres. (0,5 pt)
      d. Écrire les accesseurs des champs. (0,5 pt)
      e. Écrire la méthode toString() qui renverra les informations de cet accessoire séparées par tabulation mais sans la quantité stock. (0,5 pt)
3. Classe Facture.
      a. Définir une classe Facture dont les caractéristiques sont : (1 pt)
- Numéro facture : le numéro de la 1ère facture créée est 3001 et à chaque création d’une nouvelle facture, ce numéro doit être automatiquement incrémenté de 1. Faire le nécessaire (données + code) pour y arriver.
- Date Facture : Date où la facture a été envoyée à Fclient.
- Fclient : c’est le client qui recevra cette facture.
- une liste des accessoires facturés et une liste des quantités facturées. Ces deux dernières listes doivent toujours avoir le même nombre d’éléments : à chaque accessoire facturé correspond une quantité facturée dans la 2ème liste (même indice).
      b. Ecrire un constructeur sans aucun paramètre permettant de définir la valeur du numéro facture et d’affecter la date système à Date facture. (0,75 pt)
      c. Écrire les accesseurs des champs et la méthode toString() qui renverra le numéro facture, la date facture et la raison sociale séparés par tabulation. (0,5 pt)
d. Ecrire la méthode TotalFacture () qui retourne le coût global de la facture = Somme des (Prix unitaire * Quantité facturée) pour l’instance en cours. (0,5 pt)
      e. Ecrire la méthode AjouterAccessoire() ayant comme paramètres l’accessoire à facturer et la quantité facturée correspondante. Elle doit permettre la mise à jour de la liste des accessoires facturés, la liste des quantités facturées et la quantité stock de cet accessoire ajouté (Nouvelle quantité stock = Ancienne quantité stock - quantité facturée). (1 pt)
      f. Ecrire une méthode AfficherFacture() qui permet d’imprimer sur l’écran les détails d’une facture de la manière suivante : (1 pt)


Examens Passage Pratique 2012 - TDI - V4-V5-V6
Examens Passage Pratique 2012 - TDI - V4-V5-V6


Indication : Montant est une donnée calculée = Prix unitaire * Qté. Facturée
4. Programme principal
      a. Déclarer une liste de clients, une liste d’accessoires et une liste de factures accessibles par toutes les méthodes du programme principal. (0,5 pt)
      b. Ajouter une méthode rechercherClient() qui recherche un client par son code. Si trouvé, elle retourne le client correspondant dans la liste des clients. Sinon, elle retourne la valeur null. (0,5 pt)
      c. Ajouter une méthode rechercherAccessoire() qui recherche un accessoire par son intitulé. Si trouvé, elle retourne l’accessoire correspondant dans la liste des accessoires. Sinon, elle retourne la valeur null. (0,5 pt)
      d. Ajouter une méthode rechercherFacture() qui recherche une facture par son numéro. Si trouvé, elle retourne l’indice correspondant dans la liste des factures. Sinon, elle retourne la valeur  1. (0,5 pt)
      e. Ajouter par code (en mode conception) trois clients à la liste des clients. (0,5 pt)
      f. Ajouter par code trois accessoires à la liste des accessoires. (0,5 pt)
      g. Ajouter par code deux factures à la liste des factures. La 1ère contenant un accessoire et la 2ème deux accessoires. Utiliser certains constructeurs et certaines méthodes déjà conçus. (0,5 pt)
      h. Concevoir le menu suivant : (en tenant compte des indications ci-dessous)
1- Ajouter client. (0,5 pt)
2- Ajouter accessoire. (0,25 pt)
3- Ajouter facture. (0,75 pt)
4- Rechercher facture par numéro facture. (0,5 pt)
5- Rechercher les factures passées à une date. (0,75 pt)
6- Fin. (0,25 pt)
Indications concernant les traitements à réaliser dans le menu ci-dessus :
      • Ajouter facture :
      - Le numéro de la nouvelle facture est automatiquement affecté par programme et la date facture correspond à la date système.
      - Saisir le code du client qui doit correspondre à un client de la liste des clients et si trouvé, le client ainsi trouvé correspond à Fclient de la facture à ajouter, sinon le programme vous demandera de saisir un autre code client.
      - Pour chaque accessoire facturé, l’utilisateur saisira son intitulé à chercher dans la liste des accessoires (même principe que celui du code client). Si trouvé, l’accessoire ainsi trouvé sera ajouté à la liste des accessoires de la facture en cours.
      - Chaque fois que l’intitulé saisi est trouvé, saisir la quantité facturée correspondante à l’accessoire trouvé. Cette dernière sera soustraite de la quantité stock de cet accessoire.
      - Après la saisie de la quantité facturée, le programme demandera à l’utilisateur s’il souhaite saisir un autre accessoire pour la facture en cours.
      • Rechercher facture par numéro facture : saisir le numéro de la facture. Si trouvé, imprimer la facture comme précisé dans la question 3. f (méthode AfficherFacture()).Sinon, afficher un message adéquat pour avertir l’utilisateur de l’inexistence de cette facture.
      • Rechercher les factures passées à une date : Imprimer la liste des factures (Numéro facture, Date facture, Raison sociale) dont la date facture est égale à la date saisie. Si aucune facture ne correspond à cette date saisie, afficher un message adéquat.

Dossier 3 : (2,75 pts)
Dans cette partie, vous ferez appel à la classe Accessoire du dossier 2.
Soit l’interface suivante :


Examens Passage Pratique 2012 - TDI - V4-V5-V6
Examens Passage Pratique 2012 - TDI - V4-V5-V6


1- Réaliser l’interface Facture ci-dessus. (0,5 pt)
2- Ecrire une méthode possédant 2 paramètres de type ListBox, permettant d’ajouter l’élément sélectionné de la première liste à la fin de la deuxième et de supprimer cet élément de la première. (0,5pt)
3- Ecrire la procédure événementielle pour qu’au démarrage de l’application, la 1ère ListBox de l’interface Facture ci-dessus, soit chargée par les noms des accessoires contenus dans une liste d’accessoires et dont les éléments sont eux aussi ajoutés automatiquement par code. (0,75 pt)
4- Ecrire le code du 1er bouton (>) : Si un accessoire de la 1ère ListBox est sélectionné, il sera ajouté à la 2ème et son prix unitaire sera ajouté au total. Sinon un message adéquat est affiché. Utilisez une liste d’accessoires pour contenir les accessoires relatifs à la 2ème ListBox. (0,5 pt)
5- Ecrire le code du 2ème bouton (<) : Si un accessoire de la 2ème ListBox est sélectionné, il sera ajouté à la 1ère et son prix unitaire sera soustrait du total. Sinon un message adéquat est affiché. (0,5 pt)

Télécharger Les Examens Passage Pratique 2012 - TDI - V4-V5-V6 :
en format .pdf sur le lien suivant :

Examens Passage Pratique 2012 - TDI - V4-V5-V6


Lire la suite

Examens de Passage Pratique 2012 - TDI - V1-V2-V3


Examen de Passage Pratique 2012 - TDI - Variante 1

Dossier 1 : (2,5 pts)
1. Ecrire un programme qui permet de calculer et d’afficher la somme des trente premiers éléments de la série suivante : 25, 36, 47, 58, 69 … (S = 25 + 36 + 47 + 58 + 69 + …), sachant que la différence entre deux éléments successifs de cette série est toujours égale à 11. (1,25 pt)
2. Ecrire un programme qui permet de remplir un tableau de N entiers et qui cherche et affiche le premier élément, lorsqu’il existe, de ce tableau qui divise tous les autres éléments du tableau. Lorsqu’un tel élément n’existe pas, le programme affiche le message suivant : " Pas de solution ". (1,25 pt)
Exemples :
     a- Pour N=5 et le tableau comprenant les éléments suivants :
     20        12        16        4        2
Le nombre recherché est 2, car il divise toutes les autres valeurs.
     b- Pour N=4 et le tableau comprenant les éléments suivants :
     20        12        16        5
Dans ce cas, le programme affiche "Pas de solution", car aucun élément du tableau ne divise tous les autres.

Dossier 2 : (15,25 pts)
L’objet de cette application est la gestion informatisée des voyages organisés par une société possédant des bus. Chaque voyage est assuré par un seul chauffeur.
Recommandation : utiliser des listes génériques (List<T> : listes typées) de préférence.Mais vous pouvez utiliser des ArrayList ou des Collections.
1- Classe Chauffeur.
      a. Définir une classe Chauffeur dont les caractéristiques sont : CIN, Nom, Prénom. (0,5 pt)
      b. Écrire un constructeur avec tous les paramètres. (0,5 pt)
      c. Écrire les accesseurs des champs et la méthode toString() qui renverra tous les champs  séparés par tabulation. (0,5 pt)
2- Classe Bus.
      a. Définir une classe Bus dont les caractéristiques sont : Immatriculation, Marque,  Type.(0,5pt)
      b. Écrire un constructeur avec tous les paramètres. (0,5 pt)
      c. Écrire les accesseurs des champs. (0,5 pt)
      d. Écrire la méthode toString() qui renverra les informations du bus séparées par tabulation. (0,5 pt)
3- Classe Voyage
      a. Définir une classe Voyage dont les caractéristiques sont : (0,75 pt)
     - Numéro voyage : le numéro du 1er voyage créé est 1 et à chaque création d’un nouveau voyage, ce numéro doit être automatiquement incrémenté de 1. Faire le nécessaire (données+ code) pour y arriver.
     - Vchauffeur  : c’est le chauffeur qui a assuré le voyage courant.
     - Vbus : C’est le bus conduit par Vchauffeur au cours de ce voyage.
     - Date Voyage : date où a eu lieu ce voyage.
     - Ville de départ.
     - Ville d’arrivée.
     - Nombre de voyageurs : nombre des personnes qui ont effectué ce voyage.
     - Prix du billet : prix payé par chaque voyageur de ce voyage (le même prix pour tous).
     b. Ecrire un constructeur sans aucun paramètre permettant de définir la valeur du numéro du voyage et d’affecter la date système à Date voyage.(0,75 pt)
     c. Ecrire un constructeur permettant de définir les valeurs des autres champs. Ce constructeur doit faire d’abord appel au constructeur précédent. (0,75 pt)
    d. Écrire les accesseurs des champs. (0,5 pt)
    e.Ecrire la méthode toString() qui renverra le numéro du voyage, la date du voyage, le nom et le prénom du chauffeur, l’immatriculation et la marque du bus, ville de départ, ville d’arrivée et recette du voyage tous séparés par tabulation. (1 pt)
La recette du voyage = Nombre de voyageurs * Prix du billet du voyage en cours.
4- Programme principal
      a. Déclarer une liste de chauffeurs, une liste de bus et une liste de voyages accessibles par toutes les méthodes du programme principal. (0,5 pt)
      b. Ajouter une méthode rechercherChauffeur() qui recherche un chauffeur par son CIN. Si trouvé, elle retourne le chauffeur correspondant dans la liste des chauffeurs. Sinon, elle retourne la valeur null. (0,5 pt)
      c. Ajouter une méthode rechercherBus() qui recherche un bus par son immatriculation. Si trouvée, elle retourne le bus correspondant dans la liste des bus. Sinon, elle retourne la valeur null. (0,5 pt)
      d. Ajouter une méthode rechercherVoyage() qui recherche un voyage par son numéro. Si trouvé, elle retourne l’indice correspondant dans la liste des voyages. Sinon, elle retourne la valeur -1. (0,5 pt)
      e.Ajouter par code (en mode conception) trois chauffeurs à la liste des chauffeurs. (0,5 pt)
      f. Ajouter par code trois bus à la liste des bus. (0,5 pt)
     g. Ajouter par code deux voyages à la liste des voyages. Utiliser certains constructeurs et certaines méthodes déjà conçus. (0,75 pt)
     h. Concevoir le menu suivant : (en prenant en compte les indications ci-dessous)
1- Ajouter bus. (0,75 pt)
2- Ajouter voyage.(1 pt)
3- Lister tous les voyages. (0,75 pt)
4- Lister les voyages passés entre deux dates. (0,75 pt)
5- Nombre de voyageurs de l’année en cours. (0,75 pt)
6- Fin. (0,25 pt)
Indications concernant les traitements à réaliser dans le menu ci-dessus :
     • Ajouter bus :
Saisir les données nécessaires et faire le nécessaire pour que deux bus dans la liste n’aient pas la même immatriculation.
     • Ajouter voyage :
     - Le numéro du nouveau voyage est automatiquement affecté par programme et la date voyage correspond à la date système.
     - Saisir le CIN du chauffeur qui doit correspondre à un chauffeur de la liste des chauffeurs et si trouvé, le chauffeur ainsi trouvé correspond à Vchauffeur du voyage à ajouter, sinon le programme vous demandera de saisir un autre CIN.
     - Saisir l’immatriculation du bus qui doit correspondre à un bus de la liste des bus et si trouvée, le bus ainsi trouvé correspond à Vbus  du voyage à ajouter, sinon le programme vous demandera de saisir une autre immatriculation.
     - Saisir les autres données restantes et chaque fois qu’une donnée saisie n’est pas valide, le programme vous demandera de la saisir de nouveau.
     • Lister tous les voyages : Imprimer la liste de tous les voyages de la manière suivante :


Examens de Passage Pratique 2012 - 

TDI - V1-V2-V3
Examens de Passage Pratique 2012 - TDI - V1-V2-V3


Indication : la date en haut à droite correspond à la date système.
     • Lister les voyages passés entre deux dates : Imprimer une liste des voyages semblable au niveau de la présentation à celle de la question précédente mais contenant uniquement  les voyages qui se sont déroulés entre deux dates que l’utilisateur de l’application devra saisir. En bas de la liste ainsi imprimée, indiquer le nombre des voyages listés.
     • Nombre de voyageurs de l’année en cours :
Le programme va calculer et afficher le nombre de voyageurs de l’année en cours (utiliser la date système pour récupérer l’année en cours). Ce nombre correspond au nombre total des voyageurs ayant utilisé les bus de la société pendant l’année en cours.

Dossier 3 : (2,25 pts)
On cherche à appliquer différentes mises en forme au contenu d’une zone de texte.


Examens de Passage Pratique 2012 - 

TDI - V1-V2-V3
Examens de Passage Pratique 2012 - TDI - V1-V2-V3


1- Reproduire l’interface ci-dessus. (0,5 pt)
2- Ecrire le code de chaque bouton radio (couleur). (0,75 pt)
3- Ecrire le code de chaque case à cocher (style). (0,75 pt)
Les cases à cocher sont indépendantes : on peut combiner les effets de deux ou des trois cases.
4- Ajouter une case à cocher « Normal » pour que le texte de la zone de texte redevienne normal lorsqu’elle est activée.Lorsque cette case n’est pas activée, ce sont les autres cases qui sont prises en considération. (0,25 pt)

Examen de Passage Pratique 2012 - TDI - Variante 2

Dossier 1 : (2,5 pts)
1. Ecrire un programme qui permet de calculer et d’afficher la somme des quarante premiers éléments de la série suivante : 13, 21, 29, 37, 45 … (S = 13 + 21 + 29 + 37 + 45 + …), sachant que la différence entre deux éléments successifs de cette série est toujours égale à 8. (1,25 pt)
2. Ecrire un programme qui permet de remplir un tableau de N entiers et qui cherche et affiche le premier élément, lorsqu’il existe, de ce tableau qui est multiple de tous les autres éléments du tableau. Lorsqu’un tel élément n’existe pas, le programme affiche le message suivant : " Pas de solution ". (1,25 pt)
Exemples :
a- Pour N=5 et le tableau comprenant les éléments suivants :
     25        10        5        50        2
Le nombre recherché est 50, car il est multiple de toutes les autres valeurs.
b- Pour N=4 et le tableau comprenant les éléments suivants :
     25        10        5        40
Dans ce cas, le programme affiche "Pas de solution", car aucun élément du tableau n’est multiple de tous les autres.

Dossier 2 : (15,25 pts)
L’objet de cette application est la gestion informatisée des vols organisés par une société possédant des avions. Chaque vol est assuré par un seul pilote.
Recommandation : utiliser des listes génériques (List<T> : listes typées) de préférence.Mais vous pouvez utiliser des ArrayList ou des Collections.
1- Classe Pilote.
      a. Définir une classe Pilote dont les caractéristiques sont : Matricule, Nom, Prénom. (0,5 pt)
      b. Écrire un constructeur avec tous les paramètres. (0,5 pt)
      c. Écrire les accesseurs des champs et la méthode toString() qui renverra tous les champs  séparés par tabulation. (0,5 pt)
2- Classe Avion.
      a. Définir une classe Avion dont les caractéristiques sont : Numéro avion, Marque,  Type, Capacité (c’est le nombre maximum de voyageurs que peut transporter l’avion courant). (0,5pt)
      b. Écrire un constructeur avec tous les paramètres. (0,5 pt)
      c. Écrire les accesseurs des champs. (0,5 pt)
      d. Écrire la méthode toString() qui renverra les informations de l’avion séparées par tabulation. (0,5 pt)
3- Classe Vol
      a. Définir une classe Vol dont les caractéristiques sont : (0,75 pt)
     - Numéro vol : le numéro du 1er vol créé est 1 et à chaque création d’un nouveau vol, ce numéro doit être automatiquement incrémenté de 1.
Faire le nécessaire (données + code) pour y arriver.
     - Vpilote  : c’est le pilote qui a assuré le vol courant.
     - Vavion : C’est l’avion conduit par Vpilote au cours de ce vol.
     - Date Vol : date où a eu lieu ce vol.
     - Ville de départ.
     - Ville d’arrivée.
     - Nombre de voyageurs : nombre des personnes qui ont pris ce vol.
     - Prix du billet : prix payé par chaque voyageur de ce vol (le même prix pour tous).
     b. Ecrire un constructeur sans aucun paramètre permettant de définir la valeur du numéro du vol et d’affecter la date système à Date vol. (0,75 pt)
     c. Ecrire un constructeur permettant de définir les valeurs des autres champs. Ce constructeur doit faire d’abord appel au constructeur précédent. (0,75 pt)
     d. Écrire les accesseurs des champs.  (0,5 pt)
     e.Ecrire la méthode toString() qui renverra le numéro du vol, la date du vol, le nom et le prénom du pilote, le numéro et la marque de l’avion, ville de départ, ville d’arrivée et recette du vol tous séparés par tabulation. (1 pt)
La recette du vol = Nombre de voyageurs * Prix du billet du vol en cours.
4- Programme principal
      a. Déclarer une liste de pilotes, une liste d’avions et une liste de vols accessibles par toutes les méthodes du programme principal. (0,5 pt)
      b. Ajouter une méthode rechercherPilote() qui recherche un pilote par son matricule.Si trouvé, elle retourne le pilote correspondant dans la liste des pilotes. Sinon, elle retourne la valeur null. (0,5 pt)
      c. Ajouter une méthode rechercherAvion() qui recherche un avion par son numéro. Si trouvé, elle retourne l’avion correspondant dans la liste des avions. Sinon, elle retourne la valeur null. (0,5 pt)
      d. Ajouter une méthode rechercherVol() qui recherche un vol par son numéro. Si trouvé, elle retourne l’indice correspondant dans la liste des vols.
Sinon, elle retourne la valeur -1. (0,5pt).
     e.Ajouter par code (en mode conception) trois pilotes à la liste des pilotes. (0,5 pt)
     f. Ajouter par code trois avions à la liste des avions. (0,5 pt)
     g. Ajouter par code deux vols à la liste des vols. Utiliser certains constructeurs et certaines méthodes déjà conçus. (0,75 pt)
     h.Concevoir le menu suivant : (en prenant en compte les indications ci-dessous)
1- Ajouter avion. (0,75 pt)
2- Ajouter vol. (1 pt)
3- Lister tous les vols. (0,75 pt)
4- Lister les vols passés entre deux dates. (0,75 pt)
5- Nombre de voyageurs de l’année en cours. (0,75 pt)
6- Fin. (0,25 pt)
Indications concernant les traitements à réaliser dans le menu ci-dessus :
     • Ajouter avion :
Saisir les données nécessaires et faire le nécessaire pour que deux avions dans la liste n’aient pas le même numéro.
     • Ajouter vol :
     - Le numéro du nouveau vol est automatiquement affecté par programme et la date vol correspond à la date système.
     - Saisir le matricule du pilote qui doit correspondre à un pilote de la liste des pilotes et si trouvé, le pilote ainsi trouvé correspond à Vpilote du vol à ajouter, sinon le programme vous demandera de saisir un autre matricule.
     - Saisir le numéro de l’avion qui doit correspondre à un avion de la liste des avions et si trouvé, l’avion ainsi trouvé correspond à Vavion  du vol à ajouter, sinon le programme vous demandera de saisir un autre numéro.    
     - Saisir les autres données restantes et chaque fois qu’une donnée saisie n’est pas valide, le programme vous demandera de la saisir de nouveau.
     • Lister tous les vols : Imprimer la liste de tous les vols de la manière suivante :


Examens de Passage Pratique 2012 - TDI 

- V1-V2-V3
Examens de Passage Pratique 2012 - TDI - V1-V2-V3


Indication : la date en haut à droite correspond à la date système.
     • Lister les vols passés entre deux dates : Imprimer une liste des vols semblable au niveau de la présentation à celle de la question précédente
mais contenant uniquement  les vols qui se sont déroulés entre deux dates que l’utilisateur de l’application devra saisir. En bas de la liste ainsi imprimée, indiquer le nombre des vols listés.
     • Nombre de voyageurs de l’année en cours :
Le programme va calculer et afficher le nombre de voyageurs de l’année en cours (utiliser la date système pour récupérer l’année en cours). Ce nombre correspond au nombre total des voyageurs ayant utilisé les avions de la société pendant l’année en cours.

Dossier 3 : (2,25 pts)
On cherche à appliquer différentes mises en forme au contenu d’une zone de texte.


Examens de Passage Pratique 2012 - TDI 

- V1-V2-V3
Examens de Passage Pratique 2012 - TDI - V1-V2-V3


1- Reproduire l’interface ci-dessus. (0,5 pt)
2- Ecrire le code de chaque bouton radio (police). (0,75 pt)
3- Ecrire le code de chaque case à cocher (style). (0,75 pt)
Les cases à cocher sont indépendantes : on peut combiner les effets de deux ou des trois cases.
4- Ajouter une case à cocher « Normal » pour que le texte de la zone de texte redevienne normal lorsqu’elle est activée.Lorsque cette case n’est pas activée, ce sont les autres cases qui sont prises en considération. (0,25 pt)

Examen de Passage Pratique 2012 - TDI - Variante 3

Dossier 1 : (2,5 pts)
1. Ecrire un programme qui permet de calculer et d’afficher la somme des vingt premiers éléments de la série suivante : 30, 43, 56, 69, 82 … (S = 30 + 43 + 56 + 69 + 82 + …), sachant que la différence entre deux éléments successifs de cette série est toujours égale à 13. (1,25 pt)
2. Ecrire un programme qui permet de remplir un tableau de N entiers et qui cherche et affiche le premier élément, lorsqu’il existe, de ce tableau qui est égal à la somme de tous les autres éléments du tableau. Lorsqu’un tel élément n’existe pas, le programme affiche le message suivant : " Pas de solution ".(1,25 pt)
Exemples :
a- Pour N=5 et le tableau comprenant les éléments suivants :
     -30        2        5        27        0
Le nombre recherché est 2, car   2 = -30 + 5 + 27 + 0.
b- Pour N=4 et le tableau comprenant les éléments suivants :
     -30        2        5        0
Dans ce cas, le programme affiche "Pas de solution", car aucun élément du tableau n’est égal à la somme de tous les autres.

Dossier 2 : (15,25 pts)
L’objet de cette application est la gestion informatisée des traversées organisées par une société possédant des bateaux. Chaque traversée est assurée par un seul capitaine.
Recommandation : utiliser des listes génériques (List<T> : listes typées) de préférence.Mais vous pouvez utiliser des ArrayList ou des Collections.
1- Classe Capitaine.
      a. Définir une classe Capitaine dont les caractéristiques sont : Code, Nom, Prénom. (0,5 pt)
      b. Écrire un constructeur avec tous les paramètres. (0,5 pt)
      c. Écrire les accesseurs des champs et la méthode toString() qui renverra tous les champs  séparés par tabulation. (0,5 pt)
2- Classe Bateau.
      a. Définir une classe Bateau dont les caractéristiques sont : Numéro, Nom Bateau. (0,5pt)
      b. Écrire un constructeur avec tous les paramètres. (0,5 pt)
      c. Écrire les accesseurs des champs. (0,5 pt)
      d. Écrire la méthode toString() qui renverra les informations du bateau séparées par tabulation. (0,5 pt)
3- Classe Traversee
      a. Définir une classe Traversee dont les caractéristiques sont : (0,75 pt)
     - Numéro traversée : le numéro de la 1ère traversée créée est 1 et à chaque création d’une nouvelle traversée, ce numéro doit être automatiquement incrémenté de 1. Faire le nécessaire (données + code) pour y arriver.
     - Tcapitaine : c’est le capitaine qui a assuré la traversée courante.
     - Tbateau : C’est le bateau conduit par Tcapitaine au cours de cette traversée.
     - Date Traversée : date où a eu lieu cette traversée.
     - Pays de départ.
     - Pays d’arrivée.
     - Nombre de voyageurs : nombre des personnes qui ont effectué cette traversée.
     - Prix du billet : prix payé par chaque voyageur de cette traversée (le même prix pour tous).
     b. Ecrire un constructeur sans aucun paramètre permettant de définir la valeur du numéro de la traversée et d’affecter la date système à Date traversée.(0,75 pt)
     c. Ecrire un constructeur permettant de définir les valeurs des autres champs. Ce constructeur doit faire d’abord appel au constructeur précédent. (0,75 pt)
     d. Écrire les accesseurs des champs. (0,5 pt)
     e.Ecrire la méthode toString() qui renverra le numéro de la traversée, la date de la traversée, le nom et le prénom du capitaine, le numéro et le nom du bateau, pays de départ, pays d’arrivée et recette de la traversée tous séparés par tabulation. (1 pt)
La recette de la traversée = Nombre de voyageurs * Prix du billet de la traversée en cours.
4- Programme principal
      a. Déclarer une liste de capitaines, une liste de bateaux et une liste de traversées accessibles par toutes les méthodes du programme principal. (0,5 pt)
      b. Ajouter une méthode rechercherCapitaine() qui recherche un capitaine par son code.Si trouvé, elle retourne le capitaine correspondant dans la liste des capitaines. Sinon, elle retourne la valeur null. (0,5 pt)
      c. Ajouter une méthode rechercherBateau() qui recherche un bateau par son numéro. Si trouvé, elle retourne le bateau correspondant dans la liste des bateaux. Sinon, elle retourne la valeur null. (0,5 pt)
      d. Ajouter une méthode rechercherTraversee() qui recherche une traversée par son numéro. Si trouvé, elle retourne l’indice correspondant dans la liste des traversées. Sinon, elle retourne la valeur -1. (0,5pt).
     e.Ajouter par code (en mode conception) trois capitaines à la liste des capitaines. (0,5 pt)
     f. Ajouter par code trois bateaux à la liste des bateaux. (0,5 pt)
     g. Ajouter par code deux traversées à la liste des traversées. Utiliser certains constructeurs et certaines méthodes déjà conçus. (0,75 pt)
     h. Concevoir le menu suivant : (en prenant en compte les indications ci-dessous)
1- Ajouter bateau. (0,75 pt)
2- Ajouter traversée.(1 pt)
3- Lister toutes les traversées. (0,75 pt)
4- Lister les traversées passées entre deux dates. (0,75 pt)
5- Nombre de voyageurs de l’année en cours. (0,75 pt)
6- Fin. (0,25 pt)
Indications concernant les traitements à réaliser dans le menu ci-dessus :
     • Ajouter bateau :
Saisir les données nécessaires et faire le nécessaire pour que deux bateaux dans la liste n’aient pas le même numéro.
     • Ajouter traversée :
     - Le numéro de la nouvelle traversée est automatiquement affecté par programme et la date traversée correspond à la date système.
     - Saisir le code du capitaine qui doit correspondre à un capitaine de la liste des capitaines et si trouvé, le capitaine ainsi trouvé correspond à Tcapitaine de la traversée à ajouter, sinon le programme vous demandera de saisir un autre code.
      - Saisir le numéro du bateau qui doit correspondre à un bateau de la liste des bateaux et si trouvé, le bateau ainsi trouvé correspond à Tbateau de la traversée à ajouter, sinon le programme vous demandera de saisir un autre numéro.
     - Saisir les autres données restantes et chaque fois qu’une donnée saisie n’est pas valide, le programme vous demandera de la saisir de nouveau.
     • Lister toutes les traversées : Imprimer la liste de toutes les traversées de la manière suivante :


Examens de Passage Pratique 2012 

- TDI - V1-V2-V3
Examens de Passage Pratique 2012 - TDI - V1-V2-V3


Indication : la date en haut à droite correspond à la date système.
     • Lister les traversées passées entre deux dates : Imprimer une liste des traversées semblable au niveau de la présentation à celle de la question précédente mais contenant uniquement  les traversées qui se sont déroulées entre deux dates que l’utilisateur de l’application devra saisir. En bas de la liste ainsi imprimée, indiquer le nombre des traversées listées.
     • Nombre de voyageurs de l’année en cours :
Le programme va calculer et afficher le nombre de voyageurs de l’année en cours (utiliser la date système pour récupérer l’année en cours). Ce nombre correspond au nombre total des voyageurs ayant utilisé les bateaux de la société pendant l’année en cours.

Dossier 3 : (2,25 pts)
On cherche à appliquer différentes mises en forme au contenu d’une zone de texte.


Examens de Passage Pratique 2012 - TDI 

- V1-V2-V3
Examens de Passage Pratique 2012 - TDI - V1-V2-V3


1- Reproduire l’interface ci-dessus. (0,5 pt)
2- Ecrire le code de chaque bouton radio (taille). (0,75 pt)
3- Ecrire le code de chaque case à cocher (style). (0,75 pt)
Les cases à cocher sont indépendantes : on peut combiner les effets de deux ou des trois cases.
4- Ajouter une case à cocher « Normal » pour que le texte de la zone de texte redevienne normal lorsqu’elle est activée.Lorsque cette case n’est pas activée, ce sont les autres cases qui sont prises en considération. (0,25 pt)

Télécharger Les Examens de Passage Pratique 2012 - TDI - V1-V2-V3 :
en format .pdf sur le lien suivant :

Examens de Passage Pratique 2012 - TDI - V1-V2-V3


Lire la suite
Retrouvez-nous sur Facebook
×Facebook Mouad Ouisse