EP - Examen Passage 2011 - TDI -Théorie - Algo - C - POO - Merise
Partie 1: Connaissances générales et logique :
1- Définissez brièvement les termes suivants: ROM UAL MIPS CMOS 2- Quelle est la différence entre les deux mémoires vives DRAM et SRAM? 3- Remplir les cases du tableau suivant par les nombres correspondants, écrits dans les systèmes de numération spécifiés.
EP - Examen Passage 2011 - TDI -Théorie - Algo - C - POO - Merise
Chaque colonne correspondant au système spécifié; et chaque ligne au même nombre. 4- Soit la table de vérité suivante :
EP - Examen Passage 2011 - TDI -Théorie - Algo - C - POO - Merise
a- Donner les expressions algébriques des deux fonctions logiques F1 et F2. b- Simplifier, par la méthode de Karnaugh, la fonction F2.
Partie 2: Techniques et langages de programmation structurée:
Exercice 1: Donner la syntaxe du schéma itératif "Tanque"; et expliquer son fonctionnement Exercice 2: Pour chaque des deux séquences algorithmiques suivantes, dire s'il est possible de simplifier son écriture. Si oui, comment; et sinon pourquoi?
EP - Examen Passage 2011 - TDI -Théorie - Algo - C - POO - Merise Exercice 3: une matrice carrée est un tableau à deux dimensions dont le nombre de lignes est égale au nombre de colonnes. Une matrice est dite équilibrée si la somme de éléments de chaque ligne est égale à zéro, la somme des éléments de chaque colonne est égale à zéro et la somme de éléments de deux diagonales est égale à zéro aussi. Écrire un algorithme qui lit une matrice carrée d'entiers et vérifie si elle est équilibrée ou non. Vous devez afficher soit la mention "Votre matrice et équilibrée" ou la mention "Votre matrice est non équilibrée". Exercice 4: Écrire un programme dans un langage de programmation structurée, qui permet de trouver les nombres premiers inférieurs ou égaux à un entier N donné par l'utilisateur. La méthode consiste à remplir un tableau, dans l'ordre du plus petit au plus grand, par les entiers compris entre 2 et N (N étant l'entier limite précisé par l'utilisateur); puis de parcourir le tableau depuis le début, en gardant un entier rencontré et éliminant tous les multiples, par leur mise à zéro par exemple. A la fin du parcours, tous les entier restants (non nuls) ont des nombres premiers.
Partie 3: Programmation orientée objet:
Dan une application Windows tous les contrôles (fenêtres, bouton, zones de texte, cases à cocher ...) sont caractérisés par un nom (de type chaine de caractères), une position haut et une position gauche (de type entier) de l'objet sur l'écran. Une fenêtre et un contrôle comme les autres, caractérisée en plu d'un titre et d'une couleur d'arrière plan (de type entier). 1- Créer les classe Contrôle et Fenêtre avec un constructeur d'initialisation, un constructeur de copier, sachant que la classe Fenêtre hérite de la classe Contrôle. 2- Doter la classe Contrôle par la méthode Display qui permet d'afficher la mention suivante: "Le contrôle Texte1 et situé à la position 12x25" Avec Texte1 est le nom du contrôle et 12,25 représentent respectivement la position gauche, haut du contrôle sur l'écran. 3- Redéfinir la méthode Display pour la classe Fenêtre pour afficher la mention suivante: "Le contrôle Text1 est situé à la position 12x25, ayant comme titre "titre1" et une couleur d'arrière plan de 240". On souhaite ajouter à la classe Fenêtre une propriété type collection qui permet de gérer une liste de contrôles que l’utilisateur peut ajouter sur une fenêtre (zones de texte, lite déroulante, ...). 4- Donner le modifications à apporter à la classe Fenêtre et la méthode AjoutControle qui permet d'ajouter un contrôle à la collection. 5- Implémenter pour la classe Fenêtre la méthode RetireControle qui permet du supprimer un contrôle de la collection connaissant son nom. 6- Implémenter pour le classe Fenêtre la méthode DisplayTout qui permet d'afficher tous les contrôles ajouté à la fenêtre.
Partie 4: Conception de Systèmes d'informations:
Gestion d'un cabinet d'architecture Vous êtes appelé à concevoir un système de gestion pour un cabinet d'architecture, au sein duquel on réalise de projets architecturaux. l'étude préalable résulte des contacts suivants : Le personnel du cabinet est constitué de plusieurs architectes, dessinateurs et du personnel administratifs, pour lesquels on enregistre un matricule, un nom, un prénom, une fonction, et une date d'embauche. La cabinet et chargé par le client, appelé maître d'ouvrage, de concevoir le projet architectural. les maître d'ouvrage peuvent être des particuliers, des institutions publiques et privées, des promoteurs, entre autre. Pour le uns, comme pour les autres, on affecte une référence; et on enregistre le nom ou l'intitulé, l'adresse et le numéro de téléphone. Un maître d'ouvrage, et enregistré lors de son première contact avec le cabinet, et il garde la référence, qui lui est affectée au début pour tous le projets qu'il a passé au cabinet. Un projet est caractérisé par un numéro de référence, une date de dépôt, une date de remise prévisionnelle, un type (maison, immeuble, ...), une adresse, une superficie totale et bâtie, le type des travaux envisagés (construction ou aménagement), et une rémunération (prix du projet). Un seul architecte est chargé du projet, mais plusieurs dessinateurs peuvent intervenir dans la réalisation du projet. le personnel administratif du cabinet intervient dan le projet au niveau de la constitution du dossier auprès des autorités sous les directives de l'architecte considéré comme chef du projet. A la remise du projet, la date de fin effective de sa réalisation est enregistrée.
Travail à faire : 1- Donner un modèle conceptuel de données. 2- Déduire le modèle logique de données.
1. Ecrire un programme qui permet d’insérer une valeur X dans un tableau T, supposé trié, de façon à respecter l’ordre des éléments de T. le tableau T contient N éléments et sera dimensionné à N+1 (pour permettre de ranger X). (1 Pt) Si N=10 et T = 17 17 21 23 24 26 27 30 30 38 Si X =25 on doit obtenir : T = 17 17 21 23 24 25 26 27 30 30 38 2. Écrire un programme qui lit un entier X et un tableau A du type int au clavier et élimine toutes les occurrences de X dans A en tassant les éléments restants (décalage). (1 Pt) 3. Écrire un programme permettant de calculer le Poids Idéal (PI) obtenue par la formule de Lorentz (1 Pt) Pour les femmes : PI = t - 100 - [ ( t - 150 ) / 2 ] Pour les hommes : PI = t - 100 - [ ( t - 150 ) / 4 ] t = taille en centimètre 4. Faire un programme pour le calcul et l’affichage suivant : (2 Pts)
On veut développer une application qui gère les réparations des clients. Pour assurer cette gestion, le modèle relationnel suivant a été établi : CLIENT (NumCli, NomCli, PrenomCli, AdresseCli, VilleCli) TECHNICIEN (NumTech, NomTech, AdresseTech, DateEmbaucheTech, VilleTech) REPARATION (NumRept, MontantRep, DateRépot, DateReprise, NumCli, NumTech) 1. Créez la base de données sous MS Access (1 Pt) - Définir la clé primaire pour chaque table - Définir les clés étrangères - Définir les relations entre les tables - Saisir un jeu d’enregistrements significatif pour chaque table. 2. Créer les requêtes suivantes : (1 Pt) - Afficher la liste de tous les clients - Afficher les clients dont la deuxième lettre du nom est la lettre B - Afficher des clients ayant demandé plus que 3 réparations - Afficher les techniciens embauchés entre 2001 et 2009 3. Créer un formulaire pour mettre à jour la table REPARATION (1 Pt)
PARTIE III : PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA
Un centre de formation professionnelle souhaite mettre en place système de gestion de parrainage des stagiaires. Soit la class Formateur qui comporte les attributs suivants : codeIdentifiant int nom String prenom String sexe char (‘M’,’F’) age int spacialité String 1) Codage de la class Formateur : (1.5 Pts) - Ecrire la class Formateur. - Ajouter un compteur qui permet de compter le nombre des objets créés de la class Formateur. - Ajouter un constructeur sans argument qui initialise l’attribut codeIdentifiant de la class Formateur ; le code doit avoir la valeur du compteur. - Ajouter un constructeur qui initialise tous les attributs de la classe Formateur. - Ajouter une méthode afficher () qui afficher toutes les informations d’un formateur. 2) Créer une exception nommée erreurAge qui se déclenche lors de la saisie d’un âge négatif d’un formateur. (0.5 Pt) Soit la classe Stagiaire qui modélise un stagiaire et qui comporte les attributs suivants : codeStagiaire int nom String prenom String niveau int 3) Codage de la class Stagiaire : (1 Pt) - Ecrire la class Stagiaire - Ajouter un compteur qui permet de compter le nombre des objets créés de la class Stagiaire. - Ajouter un constructeur sans argument qui initialise l’attribut codeStagiaire de la class Stagiaire ; le code doit avoir la valeur du compteur. - Ajouter un constructeur qui initialise tous les attributs de la classe Stagiaire. Soit la classe Parrain qui reprend tous les attributs de la classe Formateur et qui y ajoute une collection d’objets Stagiaire (liste des stagiaires parrainés par le formateur identifiés par leurs codeStatgiaire). 4) Codage de la class Parrain : (1 Pt) - Ecrire la classe Parrain. - Ajouter une méthode afficher() qui affiche toutes les informations sur un parrain. 5) Ajouter une méthode ajouterStagiaire() qui ajoute un Stagiaire à la collection des stagiaires parrainés par le formateur. (1 Pt) 6) Ajouter une méthode supprimerStagiaire() qui supprime un stagiaire de la collection des stagiaires parrainés par le formateur. (1 Pt)
PARTIE IV : PROGRAMMATION EVENEMENTIELLE EN VB.NET, C# OU JAVA
Pour plus de convivialité, On souhaite développer quelques fonctionnalités de l’application de gestion de parrainage des stagiaires. 1) Créer un formulaire permettant de mettre à jour les informations relatives à un formateur (1 Pt) 2) Créer un formulaire permettant de mettre à jour les informations relatives à un stagiaire (1 Pt) 3) Créer un formulaire qui permet : a. Ajouter un stagiaire à la collection des stagiaires parrainés par un formateur. (0.5 Pt) b. Supprimer un stagiaire de la collection des stagiaires parrainés par un formateur. (0.5 Pt) c. Afficher la collection des stagiaires parrainés par un formateur donné. (0.5 Pt) d. Afficher le nombre de stagiaires parrainés par un formateur donné. (0.5 Pt) 4) Nous souhaitons enregistrer l’ensemble des stagiaires parrainés par un formateur dans un ficher texte. Ecrire le programme permettant de réaliser cette fonctionnalité. (1 Pt) 5) Proposer une animation de démarrage de votre application avec votre nom de famille (0.5 Pt) 6) Protéger l’accès à cette application par : (0.5 Pt) Nom d’utilisateur : ADMIN Mot de passe : t-d-info
Examens de Passage - 2010 - Pratique - Variante 8
PARTIE I : PROGRAMMATION STRUCTUREE EN C OU C++
1. Écrire un programme permettant de calculer le Poids Idéal (PI) obtenue par la formule de Lorentz (1 Pt) Pour les femmes : PI = t - 100 - [ ( t - 150 ) / 2 ] Pour les hommes : PI = t - 100 - [ ( t - 150 ) / 4 ] t = taille en centimètre 2. Ecrire un programme qui permet d’insérer une valeur X dans un tableau T, supposé trié, de façon à respecter l’ordre des éléments de T. le tableau T contient N éléments et sera dimensionné à N+1 (pour permettre de ranger X). (1 Pt) Si N=10 et T = 17 17 21 23 24 26 27 30 30 38 Si X =25 on doit obtenir : 17 17 21 23 24 25 26 27 30 30 38 3. Écrire un programme de recherche de la valeur maximale d'une matrice de réels de taille n x m. (1 Pt) 4. Faire un programme pour le calcul et l’affichage suivant : (2 Pts)
On vous demande de développer une application sous MS Access pour gérer les réservations des clients : Client (numCli, nomCli, AdresseCli, VilleCli) Chambre (numChambre, prixChambre, typeChambre) Réservation (numRes, dateDébut, dateFin, numCli#, NumChambre #) NB : numCli# et NumChambre # sont deux clés étrangères 1. Créez la base de données sous MS Access (1 Pt) - Définir la clé primaire pour chaque table - Définir les clés étrangères - Définir les relations entre les tables - Saisir un jeu d’enregistrements significatif pour chaque table. 2. Créer les requêtes suivantes : (1 Pt) - Afficher la liste des clients de Rabats - Afficher le prix moyen de toutes les chambres - Afficher le prix moyen par type Chambre - Afficher les réservations de l’année 2009 3. Créer un formulaire pour mettre à jour la table Réservation (1 Pt)
PARTIE III : PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA
La faculté des sciences et techniques de Settat souhaitent mettre en place système de gestion de parrainage des étudiants. Soit la class Enseignant qui comporte les attributs suivants : codeIdentifiant int nom String prenom String sexe char (‘m’,’f’) age int affectation String 1) Codage de la class Enseignant : (1.5 Pts) - Ecrire la class Enseignant. - Ajouter un compteur qui permet de compter le nombre des objets créés de la class Enseignant. - Ajouter un constructeur sans argument qui initialise l’attribut codeIdentifiant de la class Enseignant ; le code doit avoir la valeur du compteur. - Ajouter un constructeur qui initialise tous les attributs de la classe Enseignant. - Ajouter une méthode afficher () qui afficher toutes les informations d’un Enseignant. 2) Créer une exception nommée erreurAge qui se déclenche lors de la saisie d’un âge négatif d’un Enseignant. (0.5 Pt) Soit la classe Etudiantqui modélise un Etudiant et qui comporte les attributs suivants : codeÉtudiant int nom String prenom String niveau int 3) Codage de la class Etudiant: (1 Pt) - Ecrire la class Etudiant - Ajouter un compteur qui permet de compter le nombre des objets créés de la class Étudiant. - Ajouter un constructeur sans argument qui initialise l’attribut codeEtudiant de la class Etudiant; le code doit avoir la valeur du compteur. - Ajouter un constructeur qui initialise tous les attributs de la classe Étudiant. Soit la classe Parrain qui reprend tous les attributs de la classe Enseignant et qui y ajoute une collection d’objets Etudiant(liste des étudiants parrainés par l’Enseignant identifiés par leurs codeEtudiant). 4) Codage de la class Parrain : (1 Pt) - Ecrire la classe Parrain. - Ajouter une méthode afficher() qui affiche toutes les informations sur un parrain. 5) Ajouter une méthode ajouterÉtudiant() qui ajoute un Etudiant à la collection des étudiants parrainés par un enseignant. (1 Pt) 6) Ajouter une méthode supprimerÉtudiant() qui supprime un Etudiant de la collection des Etudiants parrainés par un enseignant. (1 Pt)
PARTIE IV : PROGRAMMATION EVENEMENTIELLE EN VB.NET, C# OU JAVA
Pour plus de convivialité, On souhaite développer quelques fonctionnalités de l’application de gestion de parrainage des étudiants. 1) Créer un formulaire permettant de mettre à jour les informations relatives à un Enseignant (1 Pt) 2) Créer un formulaire permettant de mettre à jour les informations relatives à un Etudiant (1 Pt) 3) Créer un formulaire qui permet : a. Ajouter un Etudiant à la collection des étudiants parrainés par un enseignant. (0.5 Pt) b. Supprimer un Etudiant de la collection des étudiants parrainés par un Enseignant. (0.5 Pt) c. Afficher la collection des étudiants parrainés par un Enseignant donné. (0.5 Pt) d. Afficher le nombre d’ étudiants parrainés par un Enseignant donné. (0.5 Pt) 4) Nous souhaitons enregistrer l’ensemble des étudiants parrainés par un Enseignant dans un ficher texte. Ecrire le programme permettant de réaliser cette fonctionnalité. (1 Pt) 5) Proposer une animation de démarrage de votre application avec votre nom de famille (0.5 Pt) 6) Protéger l’accès à cette application par : (0.5 Pt) Nom d’utilisateur : ADMIN Mot de passe : t-d-info
Examens de Passage - 2010 - Pratique - Variante 9
PARTIE I : PROGRAMMATION STRUCTUREE EN C OU C++
1. Écrire un programme de recherche de la valeur maximale d'une matrice de réels de taille n x m. (1 Pt) 2. Faire un programme pour le calcul et l’affichage suivant : (2 Pts)
3. Un nombre parfait est un entier positif supérieur a 1, égal à la somme de ses diviseurs NB : on compte 1 comme diviseur, mais on ne compte pas comme diviseur le nombre lui-même. Exemple : 6 est un nombre parfait puisque : 6 = 3 + 2 + 1. 1. Ecrire une fonction qui prend pour argument un nombre entier n et retourne Vrai si n est parfait ou Faux sinon. (1 Pt) 2. Ecrire un programme permettant de lister les 500 premiers nombres parfaits (1 Pt)
PARTIE II : LOGICIELS D’APPLICATION
Soit le modèle relationnel suivant : MEDECIN (Matricule, nom) PATIENT (NumPat, Nom) MEDICAMENTS (Code, Libelle, prix) CONSULTATION (NumConsult, date, prix, Matricule, N°_SS) PRESCRIT (Code, NumPat) (Pour simplifier l’analyse la base suppose qu’un patient peut voir un médecin une seule fois pour une date donnée.) 1. Créez la base de données sous MS Access (1 Pt) - Définir la clé primaire pour chaque table - Définir les clés étrangères - Définir les relations entre les tables - Saisir un jeu d’enregistrements significatif pour chaque table. 2. Créer les requêtes suivantes : (1 Pt) - Afficher la liste des médecins dont la première lettre est saisie au clavier - Déterminer le nombre de consultations pour chaque patient - Afficher les caractéristiques de toutes les consultations effectuées entre deux dates saisies au clavier (les champs à afficher sont : N°consultation, date, prix, nom du patient et le nom du médecin - Afficher le nombre de consultations effectuées par chaque médecin et trier le résultat par ordre décroissant. 3. Créer un formulaire pour mettre à jour la table CONSULTATION (1 Pt)
PARTIE III : PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA
Une école privée souhaite mettre en place un système de gestion de parrainage des élèves. Soit la class Professeur qui comporte les attributs suivants : codeIdentifiant int nom String prenom String sexe char (‘M’,’F’) age int affectation String 1) Codage de la class Professeur : (1.5 Pts) - Ecrire la class Professeur. - Ajouter un compteur qui permet de compter le nombre des objets créés de la class Professeur. - Ajouter un constructeur sans argument qui initialise l’attribut codeIdentifiant de la class Professeur ; le code doit avoir la valeur du compteur. - Ajouter un constructeur qui initialise tous les attributs de la classe Professeur. - Ajouter une méthode afficher () qui afficher toutes les informations d’un Professeur. 2) Créer une exception nommée erreurAge qui se déclenche lors de la saisie d’un âge négatif d’un Professeur. (0.5 Pt) Soit la classe Elève qui modélise un Elève et qui comporte les attributs suivants : codeEleve int nom String prenom String niveau int 3) Codage de la class Elève: (1 Pt) - Ecrire la class Elève - Ajouter un compteur qui permet de compter le nombre des objets créés de la class Elève. - Ajouter un constructeur sans argument qui initialise l’attribut codeEleve de la classe Elève; le code doit avoir la valeur du compteur. - Ajouter un constructeur qui initialise tous les attributs de la classe Elève. Soit la classe Parrain qui reprend tous les attributs de la classe Professeur et qui y ajoute une collection d’objets Eleve (liste des Elèves parrainés par le Professeur identifiés par leurs codeEleve). 4) Codage de la class Parrain : (1 Pt) - Ecrire la classe Parrain. - Ajouter une méthode afficher() qui affiche toutes les informations sur un parrain. 5) Ajouter une méthode ajouterEleve() qui ajoute un Elève à la collection des Elèves parrainés par un Professeur. (1 Pt) 6) Ajouter une méthode supprimerEleve() qui supprime un Elève de la collection des Elèves parrainés par un Professeur. (1 Pt)
PARTIE IV : PROGRAMMATION EVENEMENTIELLE EN VB.NET, C# OU JAVA
Pour plus de convivialité, On souhaite développer quelques fonctionnalités de l’application de gestion de parrainage des Elèves. 1) Créer un formulaire permettant de mettre à jour les informations relatives à un Professeur (1 Pt) 2) Créer un formulaire permettant de mettre à jour les informations relatives à un Elève (1 Pt) 3) Créer un formulaire qui permet : a. Ajouter un Elève à la collection des Elèves parrainés par un Professeur. (0.5 Pt) b. Supprimer un Elève de la collection des Elèves parrainés par un Professeur. (0.5 Pt) c. Afficher la collection des Elèves parrainés par un Professeur donné. (0.5 Pt) d. Afficher le nombre d’élèves parrainés par un Professeur donné. (0.5 Pt) 4) Nous souhaitons enregistrer l’ensemble des Elèves parrainés par un Professeur dans un ficher texte. Ecrire le programme permettant de réaliser cette fonctionnalité. (1 Pt) 5) Proposer une animation de démarrage de votre application avec votre nom de famille (0.5 Pt) 6) Protéger l’accès à cette application par : (0.5 Pt) Nom d’utilisateur : ADMIN Mot de passe : t-d-info
Télécharger Les Examens de Passage - 2010 - Pratique - V7 - V8 - V9 :
Examens de Passage - Pratique 2010 - Jour 2 - Variante n° 4
PARTIE I : PROGRAMMATION STRUCTUREE EN C OU C++
1. Ecrire un programme qui permet de comparer et de calculer la somme de deux nombres. Pour ce faire ce menu doit être affiché. (1 Pt) Entrez le nombre correspondant à votre choix 1. Comparer deux entiers 2. Somme de deux entiers 3. Quitter 2. On modélise un nombre entier de la base octale par un tableau d’entiers de dimension 10. Chaque élément du tableau contient un chiffre de 0 à 7. Le chiffre du poids faible occupera la case d’indice 9 du tableau. (2 Pts) Exemple : 3406 0 0 0 0 0 0 3 4 0 6 Le nombre est saisi en entrant successivement les chiffres du poids plus faible au poids plus fort, on marque la fin par un chiffre qui n’est pas compris entre 0 et 7. 3. Soit un tableau de 100 valeurs ordonnées de manière croissante. Ecrire un programme permettant de créer deux nouveaux tableaux ordonnés de manière croissante, contenant l’un les valeurs paires, l’autre les valeurs impaires. (2 Pts) Exemple : Tableau initial 2 4 10 13 15 21 28 55 44 77 Tableau des valeurs paires 2 4 10 28 44 Tableau des valeurs impaires 13 15 21 55 77
PARTIE II : PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA
On désire programmer une application de gestion de petit commerce. Pour cela, on va écrire une classe Produit et une classe Magasin. Dans notre commerce, chaque produit est caractérisé par son nom, son prix d'achat, son prix de vente, le nombre d'exemplaires en stock, et sa description. A la création du produit, on fixe son nom, son prix d'achat et son prix de vente, c'est-à-dire que ces données son fournies en argument au constructeur de la classe. Par défaut, la description du produit est « Pas de description », et la quantité de produits en stock est nulle. La classe Produit dispose d'un certain nombre de méthodes, qui lui permettent d'afficher la description du produit, de l'éditer, d'augmenter ou de diminuer le nombre d'exemplaires en stock, ainsi que d'obtenir les valeurs des différents attributs. Ecrivez la classe Produit (1.5 Pts) Un magasin se caractérise par son solde et par son stock de produits. Le stock de produit est représenté par un tableau ou un vecteur d'objets « Produit ». Avant de pouvoir acheter ou vendre un produit, il faut l'avoir ajouté dans le stock. Pour cela, la classe Magasin doit disposer d'une méthode AjouterProduit L'indice de la case du tableau (ou du vecteur) dans laquelle on a stocké le produit devient alors la référence de ce produit. Pour acheter ou vendre ce produit, on utilise alors la référence comme argument des méthodes: acheterProduit(int referenceProduit,int nombreExemplaires) vendreProduit(int referenceProduit,int nombreExemplaires) La classe Magasin dispose également des méthodes habituelles d'accès à ses attributs, et d'une méthode Bilan qui permet d'afficher un bilan du magasin. Ecrivez la classe Magasin. Testez-la. (1.5 Pts) - Différents types de produits Jusque là, les produits disposent d'une description qui est une simple chaine de caractère. Cela Peut être insuffisant dans certains cas. Par exemple, on aimerait avoir une classe Livre qui ait le même comportement que la classe Produit, mais qui dispose d'un attribut auteur et d'un attribut éditeur. De même, un cd se caractérise par son auteur, son interprète, et l'ensemble des titres de ses pistes. Ecrivez la classe Livre qui hérite de la classe Produit. Certaines méthodes doivent être surchargées (c'est-à-dire réécrites) (1 Pt) Ecrivez la classe Cd qui hérite de la classe Produit. (1 Pt) Il va maintenant falloir faire les modifications nécessaires dans la classe Magasin, mais elles sont minimes. En effet, Livre étant une sous classe de Produit, les objets de type Livre sont également de type Produit, donc le tableau (ou le vecteur) de produits peut également contenir des livres ou des cds. C'est à la création des objets que les choses changent. En plus de la méthode ajouterProduit, la classe Magasin doit également contenir une méthode ajouterLivre et une méthode ajouterCd. Modifier la classe Magasin pour tenir compte des nouveaux objets. (1.5 Pts) Pour utiliser pleinement votre classe Magasin, vous avez maintenant besoin, d'une méthode d'interaction permettant de proposer à l'utilisateur d'ajouter un livre, un cd ou un produit standard, d'acheter, de vendre, d'obtenir ou d'éditer la description d'un produit déjà existant, d'afficher un bilan général. Ecrivez la méthode interaction de la classe Magasin (1.5 Pts) - Recherche d’un produit Dans l'exercice précédent, pour acheter, vendre, éditer ou afficher la description d'un produit existant, il fallait le spécifier par sa référence, c'est-à-dire par son indice dans le tableau. Ce n'est pas un moyen très pratique d'aller chercher les produits, surtout si il y en a un très grand nombre. Nous allons écrire les deux méthodes suivantes : La méthode public Produit rechercherProduit(String nom) qui renvoie un objet Produit dont le nom est spécifié en argument. la méthode public Produit rechercherProduitParMot(String mot) qui renvoie un objet Produit dont la description contient le mot spécifié en argument. Pour écrire ces méthodes, nous allons avoir besoin d'un outil capable de comparer deux chaines de caractères, et d'un outil capable de dire si une chaine est incluse dans une autre. C'est la classe String elle-même qui est capable de faire cela. En effet, String est une classe à part entière qui a ses attributs et ses méthodes. Ecrivez la méthode rechercherProduit ( 2Pts)
PARTIE III : PROGRAMMATION EVENEMENTIELLE EN VB.NET, C# OU JAVA
Nous allons maintenant nous intéresser à la création d’interfaces qui vont nous permettre d’interagir et de communiquer avec notre application en mode graphique. 1. Créer une interface permettant la mise à jour d’un produit. a. Ajout d’un produit (0.5 Pt) b. Suppression d’un produit (0.5 Pt) c. Modification d’un produit (0.5 Pt) d. Rechercher un produit (0.5 Pt) e. Afficher la liste des produits (0.5 Pt) f. Afficher le nombre de produits dans le stock (0.5 Pt) 2. Construisez une interface permettant de créer un magasin et de lui affecter un stock de produit. Lors de l’affectation, le système propose à l’utilisateur les différentes possibilités (produit standard, livre, cd) (1 Pt) 3. Créer une interface permettant de rechercher un produit (1 Pt)
Examens de Passage - Pratique 2010 - Jour 2 - Variante n° 5
PARTIE I : PROGRAMMATION STRUCTUREE EN C OU C++
1. Dans un magasin les caissières saisissent pour chaque produit : • Le prix unitaire • La quantité achetée • La catégorie du produit Il y a une taxe pour chaque catégorie du produit
Examens de Passage - Pratique 2010 - Jour 2 - V4 - V5 - V6
Ecrire un programme qui permet d’afficher le prix à payer pour un client (2 Pts) 2. Ecrire un programme qui permet d’afficher tous les nombres abondants inférieurs à 50. Un nombre abondant est un nombre entier naturel n qui est strictement inférieur à la somme de ses diviseurs stricts. (2 Pts) Exemple : 12 est abondant car 1+2+3+4+6>12 3. Un palindrome est une chaîne de caractères qui se lit de gauche a droit ou de droit a gauche et donne la même résultat. Exemple : « radar », « Laval ». Ecrire un programme qui permet de tester si un mot est un palindrome ou non. (1 Pt)
PARTIE II : PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA
Nous allons développer une application pour gérer les différents types de produits dans un magasin. Pour cela, on va écrire une classe Article et une classe Magasin. Dans notre commerce, chaque Article est caractérisé par son nom, son prix d'achat, son prix de vente, le nombre d'exemplaires en stock, et sa description. A la création d’un article, on fixe son nom, son prix d'achat et son prix de vente, c'est-à-dire que ces données son fournies en argument au constructeur de la classe. Par défaut, la description de l’article est « Pas de description », et la quantité de Articles en stock est nulle. La classe Article dispose d'un certain nombre de méthodes, qui lui permettent d'afficher la description du Article, de l'éditer, d'augmenter ou de diminuer le nombre d'exemplaires en stock, ainsi que d'obtenir les valeurs des différents attributs. Ecrivez la classe Article (1.5 Pts) Un magasin se caractérise par son solde et par son stock de Articles. Le stock de Article est représenté par un tableau ou un vecteur d'objets « Article ». Avant de pouvoir acheter ou vendre un Article, il faut l'avoir ajouté dans le stock. Pour cela, la classe Magasin doit disposer d'une méthode AjouterArticle L'indice de la case du tableau (ou du vecteur) dans laquelle on a stocké le Article devient alors la référence de ce Article. Pour acheter ou vendre ce Article, on utilise alors la référence comme argument des méthodes: acheterArticle(int referenceArticle,int nombreExemplaires) vendreArticle(int referenceArticle,int nombreExemplaires) La classe Magasin dispose également des méthodes habituelles d'accès à ses attributs, et d'une méthode Bilan qui permet d'afficher un bilan du magasin. Ecrivez la classe Magasin. Testez-la. (1.5 Pts) - Différents types de Articles Jusque là, les Articles disposent d'une description qui est une simple chaine de caractère. Cela Peut être insuffisant dans certains cas. Par exemple, on aimerait avoir une classe Livre qui ait le même comportement que la classe Article, mais qui dispose d'un attribut auteur et d'un attribut éditeur. De même, un cd se caractérise par son auteur, son interprète, et l'ensemble des titres de ses pistes. Ecrivez la classe Livre qui hérite de la classe Article. Certaines méthodes doivent être surchargées (c'est-à-dire réécrites) (1 Pt) Ecrivez la classe Cd qui hérite de la classe Article. (1 Pt) Il va maintenant falloir faire les modifications nécessaires dans la classe Magasin, mais elles sont minimes. En effet, Livre étant une sous classe de Article, les objets de type Livre sont également de type Article, donc le tableau (ou le vecteur) de Articles peut également contenir des livres ou des cds. C'est à la création des objets que les choses changent. En plus de la méthode ajouterArticle, la classe Magasin doit également contenir une méthode ajouterLivre et une méthode ajouterCd. Modifier la classe Magasin pour tenir compte des nouveaux objets. (1.5 Pts) Pour utiliser pleinement votre classe Magasin, vous avez maintenant besoin, d'une méthode d'interaction permettant de proposer à l'utilisateur d'ajouter un livre, un cd ou un Article standard, d'acheter, de vendre, d'obtenir ou d'éditer la description d'un Article déjà existant, d'afficher un bilan général. Ecrivez la méthode interaction de la classe Magasin (1.5 Pts) Recherche d’un Article Dans l'exercice précédent, pour acheter, vendre, éditer ou afficher la description d'un Article existant, il fallait le spécifier par sa référence, c'est-à-dire par son indice dans le tableau. Ce n'est pas un moyen très pratique d'aller chercher les Articles, surtout si il y en a un très grand nombre. Nous allons écrire les deux méthodes suivantes : La méthode public Article rechercherArticle(String nom) qui renvoie un objet Article dont le nom est spécifié en argument. la méthode public Article rechercherArticleParMot(String mot) qui renvoie un objet Article dont la description contient le mot spécifié en argument. Pour écrire ces méthodes, nous allons avoir besoin d'un outil capable de comparer deux chaines de caractères, et d'un outil capable de dire si une chaine est incluse dans une autre. C'est la classe String elle-même qui est capable de faire cela. En effet, String est une classe à part entière qui a ses attributs et ses méthodes. Ecrivez la méthode rechercherArticle ( 2Pts)
PARTIE III : PROGRAMMATION EVENEMENTIELLE EN VB.NET, C# OU JAVA
Nous allons maintenant nous intéresser à la création d’interfaces qui vont nous permettre d’interagir et de communiquer avec notre application en mode graphique. 1. Créer une interface permettant la mise à jour d’un Article. a. Ajout d’un Article (0.5 Pt) b. Suppression d’un Article (0.5 Pt) c. Modification d’un Article (0.5 Pt) d. Rechercher un Article (0.5 Pt) e. Afficher la liste des Articles (0.5 Pt) f. Afficher le nombre de produits dans le stock (0.5 Pt) 2. Construisez une interface permettant de créer un magasin et de lui affecter un stock de Article. Lors de l’affectation, le système propose à l’utilisateur les différentes possibilités (Article standard, livre, cd) (1 Pt) 3. Créer une interface permettant de rechercher un Article (1 Pt)
Examens de Passage - Pratique 2010 - Jour 2 - Variante n° 6
PARTIE I : PROGRAMMATION STRUCTURÉE EN C OU C++
1. Un palindrome est une chaîne de caractères qui se lit de gauche a droit ou de droit a gauche et donne la même résultat. Exemple : « radar », « Laval ». Ecrire un programme qui permet de tester si un mot est un palindrome ou non. (1 Pt) 2. Ecrire un programme permettant de modéliser un nombre entier binaire par un tableau d’entiers de dimension 10. Chaque élément du tableau contient un bit 0 ou 1. Le bit du poids faible occupera la case d’indice 9 du tableau. Exemple : 10010 0 0 0 0 0 1 0 0 1 0 Le nombre est saisi en entrant successivement les bits du poids plus faible au poids plus fort, on marque la fin par un chiffre différent de 0 et 1. (2 Pts) 3. Ecrire un programme qui permet d’afficher tous les nombres abondants inférieurs à 50. Un nombre abondant est un nombre entier naturel n qui est strictement inférieur à la somme de ses diviseurs stricts. (2 Pts) Exemple : 12 est abondant car 1+2+3+4+6>12
PARTIE II : PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA
Mr. Alami, propriétaire d’un petit commerce souhaite mettre en place un système pour la gestion de son magasin afin de mieux contrôler les entrées/sorties et le stock. Pour cela, on va écrire une classe Article et une classe Magasin. Dans notre commerce, chaque Article est caractérisé par son nom, son prix d'achat, son prix de vente, le nombre d'exemplaires en stock, et sa description. A la création d’un article, on fixe son nom, son prix d'achat et son prix de vente, c'est-à-dire que ces données son fournies en argument au constructeur de la classe. Par défaut, la description de l’article est « Pas de description », et la quantité de Articles en stock est nulle. La classe Article dispose d'un certain nombre de méthodes, qui lui permettent d'afficher la description du Article, de l'éditer, d'augmenter ou de diminuer le nombre d'exemplaires en stock, ainsi que d'obtenir les valeurs des différents attributs. Ecrivez la classe Article (1.5 Pts) Un magasin se caractérise par son solde et par son stock de Articles. Le stock de Article est représenté par un tableau ou un vecteur d'objets « Article ». Avant de pouvoir acheter ou vendre un Article, il faut l'avoir ajouté dans le stock. Pour cela, la classe Magasin doit disposer d'une méthode AjouterArticle L'indice de la case du tableau (ou du vecteur) dans laquelle on a stocké le Article devient alors la référence de ce Article. Pour acheter ou vendre ce Article, on utilise alors la référence comme argument des méthodes: acheterArticle(int referenceArticle,int nombreExemplaires) vendreArticle(int referenceArticle,int nombreExemplaires) La classe Magasin dispose également des méthodes habituelles d'accès à ses attributs, et d'une méthode Bilan qui permet d'afficher un bilan du magasin. Ecrivez la classe Magasin. Testez-la. (1.5 Pts) - Différents types de Articles Jusque là, les Articles disposent d'une description qui est une simple chaine de caractère. Cela Peut être insuffisant dans certains cas. Par exemple, on aimerait avoir une classe Livre qui ait le même comportement que la classe Article, mais qui dispose d'un attribut auteur et d'un attribut éditeur. De même, un cd se caractérise par son auteur, son interprète, et l'ensemble des titres de ses pistes. Ecrivez la classe Livre qui hérite de la classe Article. Certaines méthodes doivent être surchargées (c'est-à-dire réécrites) (1 Pt) Ecrivez la classe Cd qui hérite de la classe Article. (1 Pt) Il va maintenant falloir faire les modifications nécessaires dans la classe Magasin, mais elles sont minimes. En effet, Livre étant une sous classe de Article, les objets de type Livre sont également de type Article, donc le tableau (ou le vecteur) de Articles peut également contenir des livres ou des cds. C'est à la création des objets que les choses changent. En plus de la méthode ajouterArticle, la classe Magasin doit également contenir une méthode ajouterLivre et une méthode ajouterCd. Modifier la classe Magasin pour tenir compte des nouveaux objets. (1.5 Pts) Pour utiliser pleinement votre classe Magasin, vous avez maintenant besoin, d'une méthode d'interaction permettant de proposer à l'utilisateur d'ajouter un livre, un cd ou un Article standard, d'acheter, de vendre, d'obtenir ou d'éditer la description d'un Article déjà existant, d'afficher un bilan général. Ecrivez la méthode interaction de la classe Magasin (1.5 Pts) Recherche d’un Article Dans l'exercice précédent, pour acheter, vendre, éditer ou afficher la description d'un Article existant, il fallait le spécifier par sa référence, c'est-à-dire par son indice dans le tableau. Ce n'est pas un moyen très pratique d'aller chercher les Articles, surtout si il y en a un très grand nombre. Nous allons écrire les deux méthodes suivantes : La méthode public Article rechercherArticle(String nom) qui renvoie un objet Article dont le nom est spécifié en argument. la méthode public Article rechercherArticleParMot(String mot) qui renvoie un objet Article dont la description contient le mot spécifié en argument. Pour écrire ces méthodes, nous allons avoir besoin d'un outil capable de comparer deux chaines de caractères, et d'un outil capable de dire si une chaine est incluse dans une autre. C'est la classe String elle-même qui est capable de faire cela. En effet, String est une classe à part entière qui a ses attributs et ses méthodes. Ecrivez la méthode rechercherArticle ( 2Pts)
PARTIE III : PROGRAMMATION ÉVÉNEMENTIELLE EN VB.NET, C# OU JAVA
Nous allons maintenant nous intéresser à la création d’interfaces qui vont nous permettre d’interagir et de communiquer avec notre application en mode graphique. 1. Créer une interface permettant la mise à jour d’un Article. a. Ajout d’un Article (0.5 Pt) b. Suppression d’un Article (0.5 Pt) c. Modification d’un Article (0.5 Pt) d. Rechercher un Article (0.5 Pt) e. Afficher la liste des Articles (0.5 Pt) f. Afficher le nombre de produits dans le stock (0.5 Pt) 2. Construisez une interface permettant de créer un magasin et de lui affecter un stock de Article. Lors de l’affectation, le système propose à l’utilisateur les différentes possibilités (Article standard, livre, cd) (1 Pt) 3. Créer une interface permettant de rechercher un Article (1 Pt)
Télécharger Les Examens de Passage - Pratique 2010 - Jour 2 - V4 - V5 - V6 :
Examens de Passage - Pratique - TDI - 2010 - Jour 1 - Variante 1
PARTIE I : PROGRAMMATION STRUCTUREE EN C OU C++
1. La Direction d’un supermarché a décidé d’accorder des réductions à ses clients selon le montant d’achat La réduction est calculée selon les règles suivantes : - 20% pour un montant d’achat de plus de 5000 dhs - 15% pour un montant d’achat entre 3000 dhs < MonantAchat ≤5000 dhs - 10% pour un montant d’achat entre 1000 dhs < MonantAchat ≤3000 dhs - Aucune réduction pour un montant d’achat inférieur à 1000 dhs Ecrire un programme qui permet de calculer et d’afficher la réduction et montant à payer. (1 Pt) 2. La Direction d’une entreprise désire automatiser le calcul de l’indemnité à verser aux cadres en cas de licenciement. Après un an d’ancienneté dans l’entreprise, il sera alloué aux cadres licenciés une indemnité tenant compte de leur ancienneté et s’établissant comme suit : - la moitié du salaire d’un mois par année d’ancienneté : pour la tranche d’ancienneté entre 1 et 10 ans - au delà de 10 ans un mois de salaire par année d’ancienneté - une indemnité supplémentaire serait allouée aux cadres âgés de plus de 45 ans de : - 2 mois si le cadre est âgé de 46 à 49 ans - 5 mois si le cadre est âgé de plus de 50 ans. Ecrire un programme qui permet de saisir l’âge, l’ancienneté et le dernier salaire et d’afficher l’indemnité du cadre. (1.5 pts)
PARTIE II : PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA
On souhaite gérer la répartition des modules entre les formateurs d’un institut de formation professionnelle. Soit la classe module qui modélise un module et qui comportera les attributs suivants : reference intitule formateur (matricule du Formateur qui enseigne ce module) Soit la classe Formateur qui modélise un Formateur et qui comportera les attributs suivants : matricule nom prenom echelle listeModule
Travail à faire : 1- Codage de la classe Module a. Ecrire la classe Module avec un compteur des objets créés. (1pt) 2- Codage de la classe Formateur a. Ecrire la classe Formateur avec un compteur des objets créés. (1pt) 3- Ajouter la méthode compare qui teste l’égalité de 2 objets Formateur (2 objets Formateur sont égaux s’ils ont le même matricule). (1pt) 4- Créer une exception nommée erreurEchelle qui se déclenche lors de la saisie d’une échelle de formateur qui n’est pas comprise entre 1 et 20. (1pt) 5- Ajouter une méthode choixEnseignant qui désigne l’enseignant d’un module. (1pt) 6- Ajouter une méthode supprimerFormateur qui annule le choix de l’enseignant d’un module. (1pt) 7- Ajouter une méthode ajouterFormateur qui ajoute un module à la liste des modules pris en charge un formateur. (1pt) 8- Ajouter une méthode supprimerModule qui supprime un module de la liste des modules d’un formateur. (1pt) 9- Ecrire un programme de test qui crée 4 formateurs et 5 modules : (1pt) 10- Ecrire un programme permettant d’enregistrer les objets crées dans deux fichiers texte : Formateurs.txt et Modules.txt (1pt)
PARTIE III : PROGRAMMATION ÉVÉNEMENTIELLE EN VB.NET, C# OU JAVA
Pour plus convivialité, on souhaite développer quelques fonctionnalités de l’application de gestion de la répartition des modules en mode graphique. 1- Créer une interface qui permet la gestion des modules. a. Ajouter un module (0.5pt) b. Supprimer un module selon sa référence. (0.5pt) c. Modifier un module selon sa référence. (0.5pt) d. Rechercher un module selon sa référence ou son intitulé. (1pt) e. Afficher dans un label le nombre des modules créés (0.5pt) 2- Créer une interface qui permet la gestion des formateurs. a. Ajouter un formateur. (0.5pt) b. Supprimer un formateur selon son matricule. (0.5pt) c. Modifier les informations d’identité d’un formateur. (0.5pt) d. Rechercher un formateur selon son matricule. (0.5pt) e. Afficher l’ensemble des formateurs dans une grille (0.5pt) 3- Créer un menu permettant d’accéder à ces différentes fonctionnalités. (0.5pt)
Examens de Passage - Pratique - TDI - 2010 - Jour 1 - Variante 2
PARTIE I : PROGRAMMATION STRUCTUREE EN C OU C++
1. La Direction d’une entreprise désire automatiser le calcul de l’indemnité à verser aux cadres en cas de licenciement. Après un an d’ancienneté dans l’entreprise, il sera alloué aux cadres licenciés une indemnité tenant compte de leur ancienneté et s’établissant comme suit : - la moitié du salaire d’un mois par année d’ancienneté : pour la tranche d’ancienneté entre 1 et 10 ans - au delà de 10 ans un mois de salaire par année d’ancienneté - une indemnité supplémentaire serait allouée aux cadres âgés de plus de 45 ans de : - 2 mois si le cadre est âgé de 46 à 49 ans - 5 mois si le cadre est âgé de plus de 50 ans. Ecrire un programme qui permet de saisir l’âge, l’ancienneté et le dernier salaire et d’afficher l’indemnité du cadre. (1.5 pts) 2. Ecrire un programme permettant de trier un tableau de n réels dans un ordre croissant en utilisant la méthode de tri bulle (1 pt) 3. Ecrire un algorithme qui effectue la lecture d’une matrice carrée A ainsi que sa taille n et affiche la trace de A. (1 pt) (Pour une matrice A(ai,j), Trace(A)=Σai,i la somme des éléments sur la diagonale). 4. Ecrire un programme qui demande à l'utilisateur de saisir un entier N et qui affiche la figure suivante sous forme des étoiles. (0.5 pt) N=3 *** ** *
PARTIE II : PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA
On souhaite développer une application pour la gestion des modules enseignés par des professeurs dans une Ecole privée. Soit la classe module qui modélise un module et qui comportera les attributs suivants : reference intitule professeur (matricule du Professeur qui enseigne ce module) Soit la classe Professeur qui modélise un Professeur et qui comportera les attributs suivants : matricule nom prenom echelle listeModule
Travail à faire : 1- Codage de la classe Module a. Ecrire la classe Module avec un compteur des objets créés. (1pt) 2- Codage de la classe Professeur a. Ecrire la classe Professeur avec un compteur des objets créés. (1pt) 3- Ajouter la méthode compare qui teste l’égalité de 2 objets Professeur (2 objets Professeur sont égaux s’ils ont le même matricule). (1pt) 4- Créer une exception nommée erreurEchelle qui se déclenche lors de la saisie d’une échelle de professeur qui n’est pas comprise entre 8 et 11. (1pt) 5- Ajouter une méthode choixProfesseur qui désigne l’enseignant d’un module. (1pt) 6- Ajouter une méthode supprimerProfesseur qui annule le choix de l’enseignant d’un module. (1pt) 7- Ajouter une méthode ajouterModule qui ajoute un module à la liste des modules pris en charge par un professeur. (1pt) 8- Ajouter une méthode supprimerModule qui supprime un module de la liste des modules d’un professeur. (1pt) 9- Ecrire un programme de test qui crée 4 professeurs et 5 modules : (1pt) 10- Ecrire un programme permettant d’enregistrer les objets crées dans deux fichiers texte : Professeurs.txt et Modules.txt (1pt)
PARTIE III : PROGRAMMATION EVENEMENTIELLE EN VB.NET, C# OU JAVA
Pour plus de convivialité, on souhaite développer quelques fonctionnalités de l’application de gestion de la répartition des modules en mode graphique. 1- Créer une interface qui permet la gestion des modules. a. Ajouter un module (0.5pt) b. Supprimer un module selon sa référence. (0.5pt) c. Modifier un module selon sa référence. (0.5pt) d. Rechercher un module selon sa référence ou son intitulé. (1pt) e. Afficher dans un label le nombre des modules créés (0.5pt) 2- Créer une interface qui permet la gestion des professeurs. a. Ajouter un professeur. (0.5pt) b. Supprimer un professeur selon son matricule. (0.5pt) c. Modifier les informations d’identité d’un professeur. (0.5pt) d. Rechercher un professeur selon son matricule. (0.5pt) e. Afficher l’ensemble des professeurs dans une grille (0.5pt) 3- Créer un menu permettant d’accéder à ces différentes fonctionnalités. (0.5pt)
Examens de Passage - Pratique - TDI - 2010 - Jour 1 - Variante 3
PARTIE I : PROGRAMMATION STRUCTUREE EN C OU C++
1. Ecrire un programme permettant de saisir le prix unitaire et la quantité commandée d’un article. Le programme affichera le prix à payer, le port, et la remise sachant que : -Le port est gratuit si le montant hors taxe est supérieur à 1000 dh -Le port est 3% dans le cas contraire -la remise est de 5 % si le montant hors taxe est compris entre 300 et 1000 et de 10% au -delà de 1000 (1 pt) NB : Montant hors Taxe = prix unitaire x quantité commandée 2. Ecrire un algorithme qui effectue la lecture d’une matrice carrée A ainsi que sa taille n et affiche la trace de A. (1 pt) (Pour une matrice A(ai,j), Trace(A)=Σai,i la somme des éléments sur la diagonale). 3. Ecrire un programme qui demande un entier N positif, et deux entiers Bd et Ba (compris entre 2 et 10) et convertit N de la base Bd en base Ba. (2 pts)
PARTIE II : PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA
On souhaite développer une application pour la gestion des modules enseignés par des enseignants dans une Ecole privée. Soit la classe module qui modélise un module et qui comportera les attributs suivants : reference intitule enseignant (matricule de l’enseignant qui enseigne ce module) Soit la classe Enseignant qui modélise un Enseignant et qui comportera les attributs suivants : matricule nom prenom echelle listeModule
Travail à faire : 1- Codage de la classe Module a. Ecrire la classe Module avec un compteur des objets créés. (1pt) 2- Codage de la classe Enseignant a. Ecrire la classe Enseignant avec un compteur des objets créés. (1pt) 3- Ajouter la méthode compare qui teste l’égalité de 2 objets Enseignant (2 objets Enseignant sont égaux s’ils ont le même matricule). (1pt) 4- Créer une exception nommée erreurEchelle qui se déclenche lors de la saisie d’une échelle de enseignant qui n’est pas comprise entre 8 et 11. (1pt) 5- Ajouter une méthode choixEnseignant qui désigne l’enseignant d’un module. (1pt) 6- Ajouter une méthode supprimerEnseignant qui annule le choix de l’enseignant d’un module. (1pt) 7- Ajouter une méthode ajouterModule qui ajoute un module à la liste des modules pris en charge par un enseignant. (1pt) 8- Ajouter une méthode supprimerModule qui supprime un module de la liste des modules d’un enseignant. (1pt) 9- Ecrire un programme de test qui crée 4 enseignants et 5 modules : (1pt) 10- Ecrire un programme permettant d’enregistrer les objets crées dans deux fichiers texte : Enseignants.txt et Modules.txt (1pt)
PARTIE III : PROGRAMMATION EVENEMENTIELLE EN VB.NET, C# OU JAVA
Pour plus de convivialité, on souhaite développer quelques fonctionnalités de l’application de gestion de la répartition des modules en mode graphique. 1- Créer une interface qui permet la gestion des modules. a. Ajouter un module (0.5pt) b. Supprimer un module selon sa référence. (0.5pt) c. Modifier un module selon sa référence. (0.5pt) d. Rechercher un module selon sa référence ou son intitulé. (1pt) e. Afficher dans un label le nombre des modules créés (0.5pt) 2- Créer une interface qui permet la gestion des enseignants. a. Ajouter un enseignant. (0.5pt) b. Supprimer un enseignant selon son matricule. (0.5pt) c. Modifier les informations d’identité d’un enseignant. (0.5pt) d. Rechercher un enseignant selon son matricule. (0.5pt) e. Afficher l’ensemble des enseignants dans une grille (0.5pt) 3- Créer un menu permettant d’accéder à ces différentes fonctionnalités. (0.5pt)
Télécharger Les Examens de Passage - Pratique - TDI - 2010 - Jour 1 - V1 - V2 - V3 :
1. Donner une définition aux termes suivants : BIOS (0,25 Pt) SDRAM PC133 (0,25 Pt) PCI (0,25 Pt) AGP (0,25 Pt) 2. Votre ordinateur affiche le message suivant : No CPU installed - Que signifie le message ? (0,25 Pt) - Comment vous allez remédier à ce problème ? (0,25 Pt) 3. Votre ordinateur affiche le message suivant : System failed memory test - Que signifie le message et comment vous allez remédier à ce problème ? (0,5 Pt) 4. Convertir en binaire le nombre décimal 37 (0,25 Pt) 5. Convertir le nombre hexadécimal B12 en un nombre décimal (0,25 Pt) 6. Effectuer les opérations suivantes : a. Multiplication : (0,25 Pts) 11111111 * 110001 b. Division : (0,25 Pts) 111101100111 / 111111 7. Soit la fonction F définie par la table de vérité ci-contre :
Examen de Passage - Théorie 2010 - TDI
a) Proposer une expression de F à partir de la table de vérité. (1 Pt) b) Donner l'expression simplifiée de la fonction F en utilisant la méthode de Karnaugh. (1 Pt)
II – ALGORITHMES ET PROGRAMMATION STRUCTURÉE EN C OU C++
IMPORTANT : Les programmes doivent être écrits en C ou C++, aucun autre langage de programmation ne sera accepté pour la programmation structurée 1) On souhaite écrire un algorithme qui permet de convertir un nombre entier naturel entré par l’utilisateur en binaire. a) Ecrire une fonction qui retourne le nombre de bits nécessaires pour représenter un entier naturel n en binaire. (1pt) b) Ecrire un algorithme qui permet d’afficher la représentation binaire d’un entier naturel n entré par l’utilisateur. (0.5pt) 2) Ecrire un algorithme qui permet de chercher toutes les occurrences d'une valeur donnée dans un tableau de N éléments. (1pt) Exemple :
Examen de Passage - Théorie 2010 - TDI
3) On donne en entrée un tableau de N éléments de type entier. Donner le programme qui affiche les éléments du tableau qui possèdent leur carrés (t(i)*t(i)) dans le même tableau. Les éléments sont rangés dans un ordre aléatoire à l’intérieur du tableau. (1pt) Exemple :
Examen de Passage - Théorie 2010 - TDI
les éléments dont les carrés sont présents : 1,2,4,5
4) Pour un entier n strictement positif on associe n/2 si n est pair et 3n+1 si n est impair. En réappliquant cette transformation à l'entier obtenu, on définit un algorithme dit de Syracuse. On admettra que pour tout entier strictement positif de départ on finisse toujours par arriver à 1. On demande d'écrire un programme qui, pour une valeur de départ proposée par l'utilisateur, affiche la liste des entiers obtenus jusqu'à 1, ainsi que le nombre de fois qu'il est nécessaire d'appliquer la transformation pour y arriver. (1.5pts) Voici un exemple de déroulement de cet algorithme : Valeur de départ (entier strictement positif) ? 12 6 3 10 5 16 8 4 2 1 On doit appliquer 9 fois la transformation avant d'arriver à 1 5) Quelle est la valeur de s après exécution des instructions suivantes (0.5 Pt) int i; int S = 0; for (i=1; i < 6; i=i+2) S = S + i;
a. 7 b. 9 c. 11 d. Erreur 6) Écrire un programme qui transfère une matrice M à deux dimensions L et C dans un tableau V à une seule dimension. (1.5pts)
III – PROGRAMMATION ORIENTÉE OBJET EN VB.NET, C # OU JAVA
On veut construire un programme capable d’afficher et de déplacer des figures géométriques colorées dans un repère en deux dimensions. Un graphique est un ensemble de figures affichables et déplaçables par translation. On veut pouvoir afficher des segments, des triangles, et des rectangles. Ces trois éléments graphiques sont définis à l’aide de points. Après une première analyse, on décide de modéliser l’application de la manière suivante : – une classe Point représentera les coordonnées d’un point qui serviront à créer des figures. – une classe Segment sera définie par deux points et une couleur, codée par un entier positif. – une classe Triangle sera définie par trois points et une couleur, codée par un entier positif. – une classe Rectangle sera définie par quatre points et une couleur, codée par un entier positif. – la classe Graphique est la classe principale et permettra d’afficher un ensemble d’objets graphiques. Comme nous pensons devoir ajouter ultérieurement de nouveaux types de figures géométriques, nous décidons d’utiliser des interfaces pour décrire leurs comportements communs. 1. Après avoir étudié les différences et les points communs entre les quatre premières classes que nous avons distinguées, décrivez la ou les interfaces utiles et précisez les classes qui les implémenteront. (1Pt) 2. Décrire la méthode static de la classe Graphique qui permet d’afficher un tableau de figures géométriques. (0.5 Pt) 3. Ecrire la classe Point en précisant ses constructeurs qui seront utilisés dans le reste du programme et la méthode toString (0.5 Pt) 4. Donnez le constructeur de la classe Segment, et la méthode qui effectuera une translation. (Attention : le constructeur doit recopier le point en utilisant le constructeur par copie de la classe Point. En effet, un point est modifiable par translation et peut servir à la création d’autres figures elles mêmes translatables.) (1Pt) 5. Ecrire le code de la classe Triangle. (1Pt) 6. Ecrire le code de la classe Rectangle (1Pt)
IV – ANALYSE DE SI :
Le document ci-dessous représente un bon de commande établit par la société NTIC Company pour la fourniture des articles. Les adresses de livraison et de facturation présentent respectivement le lieu de livraison des articles et l’adresse de règlement de la facture
Examen de Passage - Théorie 2010 - TDI
Travail à faire : 1. Donner un modèle conceptuel de données (2pts) 2. Déduire le modèle logique de données (1pt)
Télécharger L'Examen de Passage - Théorie 2010 - TDI :
Examen de Passage - TSDI - Pratique 2009 Variante 7
PARTIE I : PROGRAMMATION STRUCTUREE EN C OU C++
1. Ecrire un programme qui saisit une chaîne pouvant contenir des espaces et qui affiche chaque mot de la chaîne, le séparateur étant l'espace. Exemple, on tape : je pense donc je suis Le programme affiche : mot 1 : je mot 2 : pense mot 3 : donc mot 4 : je mot 5 : suis 2. Écrire un programme qui demande à l'utilisateur de taper le prix HT d'un kilo de tomates, le nombre de kilos de tomates achetés, le taux de TVA. Le programme affichera le prix TTC des marchandises. 3. Ecrire une fonction f ayant en paramètres un tableau t1 de taille quelconque et un entier n indiquant la taille du tableau, ainsi qu'un tableau t2 de la même taille que t1. f doit renvoyer par un return un entier nb indiquant le nombre de valeurs comprises entre 0 et 10 dans le tableau t1. f doit mettre dans le tableau t2 les différentes valeurs comprise entre 0 et 10 qu'il a rencontrées dans le tableau t1. 4. Ecrire un programme de recherche de la valeur maximale et minimale d'un tableau [N][M] de réels de taille N x M. 5. On considère une séquence d'entiers s de longueur L représentée dans un tableau T d'entiers défini sur l'intervalle [1…Lmax], 0 < L < Lmax. On veut écrire un programme qui remplace dans T la suite s par la suite s' de longueur L' (avec L' <= L), déduite de s en supprimant tous les éléments redondants. Un élément de s est redondant s'il est égal à un autre élément de s. Le programme ne doit pas utiliser de tableau intermédiaire pour créer s'. L'ordre des éléments reste celui de la séquence de départ. Etudier tout d'abord le problème en supposant que T peut ne pas être trié en ordre croissant. Exemple : si s = [15, 4, 19, 4, 8, 11, 11, 3, 4, 19] et L = 10 alors s' = [15, 4, 19, 8, 11, 3] et L = 6
PARTIE II : PROGRAMMATION ORIENTEE OBJET ET EVENEMENTIELLE
Un commerçant désire automatiser la gestion des commandes de ces clients. Il désire avoir la possibilité de mettre à jour quotidiennement ces commandes clients. Pour gérer les commandes, il a besoin des données citées ci-dessous :
Toutes ces informations seront enregistrées en mémoire, à vous de choisir les structures de données qui conviennent à leur stockage. Travail à faire : 1- Créer la classe Produit avec éventuellement des constructeurs et des accesseurs. 2- Créer la classe Commande avec éventuellement des constructeurs et des accesseurs. 3- Réaliser une interface pour ajouter des produits. 4- Réaliser une interface de mise à jour des commandes : a- Ajout en contrôlant la saisie. b- Recherche : la recherche se fait en saisissant le N° de la commande dans un InputBox). c- La recherche peut se faire aussi en sélectionnant le N° de la commande dans un combo. d- Suppression avec confirmation. 5- Réaliser une interface d’enregistrement des détails commande ( la commande est choisie à partire d’un Combo. 6- Ajouter dans la même feuille, un Label pour afficher le montant total de la commande. 7- Ajouter une feuille permettant de lister les commandes entre deux dates, calculer et afficher dans un Label, le montant total des ventes entre les même dates.
Examen de Passage - TSDI - Pratique 2009 Variante 8
PROGRAMMATION STRUCTUREE EN C OU C++.
1. Ecrire un programme qui lit le fichier VotreNom.txt créé dans votre dossier d’examen, et affiche son contenu. Le programme doit vérifier l’existence de ce fichier. 2. Faire un programme permettant d’écrire dans ce fichier, le programme ne doit pas sauvegarder dans le fichiers des donnés null. 3. Ecrire un programme qui demande à l'utilisateur de taper 10 entiers compris entre 0 et 20 qui seront stockés dans un tableau et qui affiche le nombre de fois qu'on a tapé un 0, le nombre de 1, le nombre de 2, ..., le nombre de 20. 4. Considérant un tableau numérique «T» de N éléments, et un deuxième tableau numérique «V» de M éléments. Concevoir un programme qui permet de poser les éléments des deux tableaux dans un troisième tableau numérique «R» de telle façon à l’avoir trié en ordre croissant.
Examen de Passage - TSDI - Pratique 2009 Variante 9
PROGRAMMATION STRUCTUREE EN C OU C++.
1. Ecrire un programme de faire le tri dans l’ordre croissant et décroissant d’une matrice de taille N x M. 2. Écrire un programme qui demande à l'utilisateur de taper le prix HT d'un kilo de tomates, le nombre de kilos de tomates achetés, le taux de TVA. Le programme affichera le prix TTC des marchandises. 3. Ecrire un programme qui lit le fichier VotreNom.txt créé dans votre dossier d’examen, et affiche son contenu. Le programme doit vérifier l’existence de ce fichier. 4. On considère la suite : u(0)=a (a entier) si u(n) pair alors u(n+1)=u(n)/2 sinon u(n+1)=3*u(n)+1 Pour toutes les valeurs a, il existe un entier N tel que u(N)=1 Ecrire un programme qui demande à l'utilisateur de taper a et qui affiche toutes les valeurs de u(n) de n=1 à n=N. 5. Ecrire un programme qui demande de saisir 10 entiers et qui affiche le nombre d'occurrences de la note la plus haute.
Télécharger Les Examens de Passage - TSDI - Pratique 2009 - V7 - V8 - V9 :
1. Faire un programme ayant cet effet : saisir deux vecteurs de dimension N puis tester s'il sont égaux ou non. Deux vecteurs sont égaux s'ils ont pour chaque indice la même valeur. (1 Pt)
3. Faire un programme qui lit N nombres entiers au clavier et qui affiche leur somme, leur produit et leur moyenne. Choisissez un type approprié pour les valeurs à afficher. Le nombre N est à entrer au clavier. (1,5 Pts) 4. Faire un programme qui calcule le produit scalaire de deux vecteurs d'entiers U et V (de même dimension). (1,5 Pts) Exemple:
5. On dispose de deux tableaux A et B (de dimensions respectives N et M), triés par ordre croissant. Fusionner les éléments de A et B dans un troisième tableau FUS trié par ordre croissant. (1,5 Pts) 6. Faire un programme qui construit le triangle de PASCAL de degré N et le mémorise dans une matrice carrée P de dimension N+1. (1,5 Pts) Exemple: Triangle de Pascal de degré 6 :
PARTIE II : PROGRAMMATION ORIENTEE OBJET ET EVENEMENTIELLE
on souhaite développer une application pour la gestion d’un club sportif. • Un adhérent peut s’inscrire pour pratiquer diverses disciplines (Natation, Musculation, Arts martiaux). • Lors de l’inscription, l’adhérent fournit les informations suivantes : - Nom - Prénom - Adresse - Date de naissance - Code d’identification. (généré automatiquement par l’application) - Discipline(s) choisie (s). • Toutes les disciplines sont définies par un code, un nom et une description.
Travail à faire : 1) Développer une classe Adherent, avec les constructeurs adéquats, les propriétés, et une méthode d’affichage Affchei_adherent(….) (1 Pt) 2) Développer une classe Disciplines, avec les constructeurs adéquats, les propriétés, et une méthode d’affichage Affchei_Disciplines(….) (1 Pt) 3) Développer une méthode Saisie_Adherent(….) permettant de saisir au clavier les informations d’un nouveau adhérent (1 Pt) 4) Développer une méthode Choix_Disciplines(….) permettant un à un adhérent donné, de choisir une au plusieurs disciplines. L’adhérent ne peut choisir que une des disciplines citées dans l’énoncé (1 Pt) 5) Créer un formulaire, permettant de mettre à jour les objets Adhérents créés : a. Ajout (Code généré automatiquement avec contrôle de saisie) (1 Pt) b. Suppression avec confirmation (1 Pt) c. Recherche par nom ou par prénom (1 Pt) 6) Créer un formulaire permettant à un adhérent donné, de choisir une ou plusieurs disciplines. Les disciplines choisies sont affichées automatiquement dans une liste (2 Pts) 7) Sachant que pour chaque discipline pratiquée, l’adhérent doit payer 200 Dhs mensuellement. Faire un programme permettant de lister l’ensemble des adhérents avec les disciplines pratiquées ainsi que les gains mensuels du club (3 Pts)
on souhaite développer une application pour la gestion des club de soutien proposés . par une association scolaire. • Un élève peut s’inscrire pour bénéficier de divers cours de soutien (Math, Français, Arabe). • Lors de l’inscription, l’élève fournit les informations suivantes : - Nom - Prénom - Adresse - Date de naissance - Code d’identification. (généré automatiquement par l’application) - Matière(s) choisie (s). • Toutes les matières sont définies par un code, un nom et une description.
Travail à faire : 1) Développer une classe Elève, avec les constructeurs adéquats, les propriétés, et une méthode d’affichage Affchei_Elève(….) (1 Pt) 2) Développer une classe Matière, avec les constructeurs adéquats, les propriétés, et une méthode d’affichage Affchei_Matière(….) (1 Pt) 3) Développer une méthode Saisie_Elève(….) permettant de saisir au clavier les informations d’un nouveau adhérent (1 Pt) 4) Développer une méthode Choix_Matière(….) permettant un à un élève donné, de choisir une au plusieurs matière. L’èlève ne peut choisir que une des matières citées dans l’énoncé (1 Pt) 5) Créer un formulaire, permettant de mettre à jour les objets élèves créés : a. Ajout (Code généré automatiquement avec contrôle de saisie) (1 Pt) b. Suppression avec confirmation (1 Pt) c. Recherche par nom ou par prénom (1 Pt) 6) Créer un formulaire permettant à un élève donné, de choisir une ou plusieurs matières. Les matières choisies sont affichées automatiquement dans une liste (2 Pts) 7) Sachant que pour chaque matière, l’élève doit payer 100 Dhs mensuellement. Faire un programme permettant de lister l’ensemble des élèves avec les matières dont ils sont inscrits, ainsi que les revenus générés mensuellement par l’association (3 Pts)
1. Créer une classe Ouvrier dont les données membre privées sont cités ci-après et ajouter un constructeur d'initialisation et un constructeur par défaut (1Pt) CodeOuv : Entier Nom : Chaîne de caractères Prénom : Chaîne de caractères GSM : Chaîne de caractères 2. Créer des accesseurs get et set pour chaque donnée membre (1 Pt) 3. Ajouter une méthode AfficheOuv() qui permet l’affichage des données relatives à un ouvrier (1 Pt) 4. Dans une classe de teste : a. Créer une méthode ranger(…) permettant de ranger une liste des ouvriers dans un tableau (1Pt) b. Créer une méthode trier(…) permettant de trier ce tableau par CodeOuv dans l'ordre croissant (2 Pts) c. Créer une méthode CopieVersfichier() qui copie la liste des ouvriers dans un fichier (1 pt) Sachant que chaque ouvrier peut être affecté dans un ou plusieurs projets selon les besoins. Chaque projet est identifié par un code, un titre, une description, le lieu et la durée. 5. Créer un formulaire pour mette à jour les objets ouvriers créés : a. Ajout (Code généré automatiquement avec contrôle de saisie) (1 Pt) b. Suppression avec confirmation (1 Pt) c. Recherche par nom ou par prénom (1 Pt) 6. Créer un formulaire permettant d’affecter un ouvrier dans un ou plusieurs projets. Les projets d’affectation de chaque ouvrier sont affichés automatiquement dans une liste (2 Pts) 7. Chaque ouvrier a un salaire de 2000 Dhs et une prime de 300 dhs par projet. Créer une interface permettant de lister les ouvriers et leurs salaires globaux. (2 Pts)