Affichage des articles dont le libellé est Examens Passage - TDI Théorique. Afficher tous les articles
Affichage des articles dont le libellé est Examens Passage - TDI Théorique. Afficher tous les articles

3 juin 2012

Examen de Passage Session Juillet 2012 - Théorique V2



Examen de Passage Session Juillet 2012 - Théorique

Dossier 1 (5 pts)

1. Donner une définition succincte aux termes suivants : 
     a. Informatique ;   (0,25pt)
     b. Développement Informatique ;  (0,25pt)
     c. Algorithme ;  (0,25pt)
     d. Compilateur.  (0,25pt)

2.  Soient les fonctions logiques F et G, des variables logiques A, B, C et D, définies algébriquement par :


Examen de Passage Session Juillet 2012 - Théorique
Examen de Passage Session Juillet 2012 - Théorique


     a. Représenter sur une table de vérité les fonctions F et G ;  (0,5pt)
     b. Simplifier algébriquement, la fonction F ;  (0.5 pt)
     c. Simplifier graphiquement la fonction G ;  (0,5pt)

3. Dans la nouvelle immatriculation des véhicules, chaque plaque est composée d’un nombre (de 1 à 99 999) qui correspond au numéro d'enregistrement du véhicule, suivi d'une lettre (en arabe), et se termine par un numéro identifiant de la préfecture (de 1 à 87).
     a. Quel est le nombre total de numéros matricule qu’offre cette immatriculation ?  (0,5pt)
     b. Quel en est le nombre maximum qu’on peut enregistrer dans une préfecture ?  (0,5pt)
4. Convertir en binaire, octal et hexadécimal les nombres décimaux suivants :
     a. (2011)10 (1pt)
     b. (2012)10 (0,5pt)

Dossier 2  (4 pts)

1. Ecrire un programme, dans un langage de programmation structurée, qui permet de saisir un nombre entier N (quelconque) et affiche N ligne(s) ayant l’allure suivante : (1,25pt)


Examen de Passage Session Juillet 2012 - Théorique
Examen de Passage Session Juillet 2012 - Théorique


C’est le résultat pour N = 5.
2. Ecrire un programme qui lit une chaîne de caractères quelconque et affiche des lignes ayant l'allure suivante : (1,25pt)


Examen de Passage Session Juillet 2012 - Théorique
Examen de Passage Session Juillet 2012 - Théorique


C'est le résultat pour chaîne = " SALUT ".
3. On veut obtenir une bonne approximation du nombre e (qui est la valeur de la fonction exponentielle de 1). Pour cela, on construit une suite de nombres réels de cette façon :
     U0 = 1 et pour chaque entier n>0, Un = Un-1 + (1/n!). Avec n! = 1 x 2 x…x n
     Cette suite va tendre vers le nombre e quand n tend vers l’infini (+∞).
     Ainsi, U1 = U0 + (1/1!) = 1 + 1 = 2 et U2 = U1 + (1/2!) = 2 + (1/2) = 2,5…
Il faut savoir que le terme (1/n!) va tendre rapidement vers zéro et donc pour une certaine valeur de n, nous aurons Un = Un-1 du fait des imprécisions dans la représentation des nombres réels dans l’ordinateur.
Ecrire un programme qui permet de calculer et d’afficher les valeurs de e (= Un) et du premier n qui vérifie Un = Un-1. (1,5pt)

Dossier 3  (4 pts)
Lors du travail sur son ordinateur, on se retrouve rapidement avec un grand nombre de fichiers.
On voudrait réaliser une application de gestion de ces fichiers, qui permettrait de compléter celles déjà offertes par les gestionnaires des systèmes d’exploitation (SE). 
On aborde dans cette partie, la phase d’analyse ; et on s’intéresse plus particulièrement aux données.
Conformément aux règles de gestion communément utilisées par les SE, tout fichier est caractérisé par les caractéristiques habituelles (nom, type, taille et date de création ou mise à jour …) ; et se trouve bien sûr dans un dossier ; lui-même pouvant être un sous-dossier d’un dossier parent.
L’ensemble des dossiers, constituant une telle arborescence, sont enregistrés  sur un support de stockage qui peut être un disque (physique ou logique), un CD ou DVD, une clé USB …
On ajoutera, pour chaque fichier ou dossier, une ou plusieurs catégories, qui les regroupent logiquement par centre d’intérêt (livre, polycopié, image, programme,…).
Une catégorie pouvant être une sous catégorie d’une autre, un fichier appartenant à une catégorie, appartient par conséquent à toutes ses sous catégories.
D’autre part, un fichier, ou même un dossier dans son intégralité appartient à un, voir plusieurs utilisateurs.
Il vous est demandé de :
     a. Créer un modèle conceptuel de donnée, pour cette organisation ;  (3 pts)
     b. Etablir le modèle logique correspondant. (1 pt)

Dossier 4  (7 pts)
On voudrait réaliser une application simplifiée, pour la gestion du SI précédent. Dans le cadre de ce projet, il vous est demandé d’implémenter :
1. Une classe « Propriétaire », (1,25pt)
     a. Déclarer les attributs refProp (entier), nomProp(chaine) ;
     b. Ajouter les accesseurs ou propriétés correspondants à ces attributs ;
     c. Ajouter des constructeurs, dont un d’initialisation ayant pour paramètres les deux attributs.
     d. Ajouter une méthode « equals », qui permet de vérifier si deux utilisateurs sont égaux. (Deux utilisateurs seront considéré égaux, s’ils ont la même référence).
     e. Ajouter une fonction « toString », qui retourne une chaine représentative d’un propriétaire.
2. Une classe « Catégorie », (1pt)
     a.  Déclarer les attributs nomCat (chaine) et catégorie (instance du même Dossier) ;
     b. Ajouter un accesseur ou propriété correspondant à ces attributs ;
     c. Ajouter des constructeurs, dont un d’initialisation ayant des paramètres qui correspondent à ces deux attributs ;
     d. Ajouter une fonction « toString », qui retourne une chaine représentative d’une instance de cette classe : nom de la catégorie, suivi de toutes les sous catégories.
3. Une classe abstraite « F-D », (1pt)
     a. Déclarer les attributs nom (String), cat (instance de « Categorie ») et prop (instance de «Proprietaire»;
     b. Ajouter les accesseurs ou propriétés correspondants à ces attributs ;
     c. Ajouter des constructeurs, dont un d’initialisation ayant pour paramètre le nom ;
     d. Ajouter une fonction « toString », qui retourne une chaine représentative d’une instance de cette classe.
4. Une classe « Fichier », qui hérite de la classe précédente, (1pt)
     a. Déclarer deux nouveau attributs taille (entier) et dossier (instance de la classe « Dossier ») ;
     b. Ajouter les accesseur ou propriété correspondant à ces attributs ;
     c. Ajouter des constructeurs, dont un d’initialisation ayant pour paramètres le nom et la taille et le dossier;
     d. Ajouter une fonction « toString », qui retourne une chaine représentative d’une instance de cette classe : Nom du fichier, sa taille et le dossier qui le contient.
5. Une classe « Dossier », qui hérite de la classe « F-D », (1pt)
     a.  Déclarer un attribut dossierParent (instance de la classe Dossier) ;
     b. Ajouter un accesseur ou propriété correspondant à cet attribut ;
     c. Ajouter des constructeurs, dont un d’initialisation ayant pour paramètres le nom et le dossierParent ;
     d. Ajouter une fonction « toString », qui retourne une chaine représentative d’une instance de cette classe : nom du dossier précédé de son chemin à partir de la racine.
6. Dans un module application, effectuer les opérations suivantes : (1,75pt)
     a.  Instanciation les catégories : « Général »,  « Cours », « Programmation » (sous catégorie de Cours) et « POO » (sous catégorie de Programmation) ;
     b. Afficher cette 3ème  catégorie ;
     c. Instancier les dossiers : Racine ("\"), « dossier1 » (à la racine), « dossier2 » sous dossier de dossier1) ;
     d. Afficher ce dernier dossier ;
     e. Instancier deux fichiers : « fichier1 » (à la racine), « fichier2 » (dans le dossier2) ;
     f. Afficher les deux fichiers et leurs catégories respectives.
Voici un aperçu de l’exécution de ce module d’application sur la figure suivante :


Examen de Passage Session Juillet 2012 - Théorique
Examen de Passage Session Juillet 2012 - Théorique

1 juin 2012

Examen de Fin de Formation - Théorique Session Juillet 2012 - TDI

Examen de Fin de Formation - Théorique Session Juillet 2012 - TDI

Examen de Fin de Formation - Théorique Session Juillet 2012 - TDI


Dossier 1 : (6 pts)
Les stagiaires d’un établissement de formation désirent développer une application Web genre réseau social appelée netAtlas. L’application permet aux membres inscrits de créer un réseau d’amis et d’échanger des contenus.
Pour devenir membre de netAtlas, un internaute doit s’inscrire lors de sa visite du site web. Lorsque l’administrateur valide  l’inscription, l’internaute devient membre ; il peut alors se connecter pour réaliser les opérations suivantes : chercher un membre, inviter un membre d’être son ami, accepter  un autre membre comme ami, refuser une invitation d’amitié, retirer un ami de sa liste d’amis. Un membre peut également publier des contenus.
Un modérateur consulte les contenus publiés par les membres et peut avertir, par un message, un membre qui publie du contenu non conforme au règlement de netAtlas ;  après 3 avertissements,  l’administrateur supprime le compte de ce membre.
Un membre est identifié par une adresse e-mail, un nom et un prénom. Un membre peut avoir plusieurs amis qui sont aussi membres de netAtlas. Un membre peut effectuer une publication de contenu à une date donnée. une publication concerne une ressource à publier; une ressource possède un nom et peut être soit un message, soit une photo/vidéo soit un lien vers une page web. Une photo/vidéo a en plus du nom, une taille en Mo. Un lien vers une page web a une adresse (URL).
1) Etablir le diagramme des cas d’utilisation.  (1,25 pt)
2) Etablir le diagramme de séquence du cas d’utilisation « Publier contenu ».  (1 pt)
3) Etablir le diagramme de classes.   (1,25 pt)
4) On veut ajouter aux fonctionnements de netAtlas le fait que les amis d’un membre soient organisés en types d’amis : les amis peuvent être de type « Ami normal », « Amis proches », « connaissances » ou « Famille ». Une publication d’une ressource par un membre est autorisée à être consultée seulement  par un type d’amis donné ; par exemples une photo est partagée uniquement avec le type d’amis « Amis proches ». Modifier le diagramme de classes pour tenir compte de ce changement.   (1 pt)
5) Etablir le modèle conceptuel de données (1 pt). Traduire ce MCD en schéma relationnel.    (0,5 pt) 

Dossier 2 : (5 pts)
Une application de gestion des résultats des matchs de football de la saison 2011-2012 utilise la base de données suivante :


Examen de Fin de Formation - Théorique Session Juillet 2012 - TDI
Examen de Fin de Formation - Théorique Session Juillet 2012 - TDI


Les clés primaires sont en gras et soulignées ; les clés étrangères sont marquées par un #.
Un match se joue entre une équipe locale et une équipe visiteur dans un stade donné et pour une journée du championnat national (journée 1, 2 , …). La table Match enregistre également le nombre de buts marqués par l’équipe des locaux et le nombre de buts marqués par l’équipe des visiteurs.
1) Ecrire une requête qui affiche le nombre de matchs joués dans la journée n°12.  (0,5 pt)
2) Ecrire une requête qui affiche le nombre de matchs joués par journée.  (0,5 pt)
3) Ecrire une requête qui affiche le match qui a compté le plus grand nombre de spectateurs.  (1pt)
4) Ecrire une requête qui affiche le nombre de points de l’équipe de code 112 ; le nombre de points se calcule de la façon suivante : une victoire donne 3 points, une égalité donne 1 point et une défaite donne 0 point.  (1 pt)
5) Ecrire une procédure stockée qui affiche les équipes qui ont gagné leur match dans une  journée dont le numéro est donné comme paramètre. (1 pt)
6) Ecrire un trigger qui refuse l’ajout d’une ligne à la table Match pour laquelle la colonne codeEquipeLocaux est égale à la colonne codeEquipeVisiteurs. (1 pt)

Dossier 3 : (5 pts)
Dans une  grande surface commerciale, on utilise  des caméras de surveillance contre le vol d’articles. Une caméra peut tourner pour changer d’orientation selon 4 sens nord, est, sud et ouest. Une application orientée objet est créée pour la gestion des caméras.
La classe Camera contient les membres suivants :
      - le champ code de type entier : désigne le code de la  Camera
      - le champ type de type string : désigne la marque de la Camera
      - le champ orientation  de type entier : désigne l’orientation de la  Camera  (1 = Nord, 2 = Est, 3 = Sud, 4 = Ouest)
      - La méthode tourner (sens : entier) qui permet de changer l’orientation du Camera selon le paramètre sens.
      - La méthode afficher() qui permet d’afficher le code et l’orientation d’une caméra
1) Ecrire la classe Camera, avec les constructeurs ; (0,5 pt)
2) Ecrire les méthodes tourner et afficher ;  (1 pt)
Certaines caméras sont des caméras mobiles qui peuvent se déplacer par télécommandes ; on utilise une classe CameraMobile qui hérite de la classe Camera et ayant en plus les attributs entiers privés abs et ord : ce sont les attributs qui définissent la positon de CameraMobile (abscisse et ordonné) ainsi qu’une méthode avancer(d : entier) qui permet d’avancer la Caméra selon son orientation d’une valeur exprimée par le paramètre d :
      - si on avance de d vers l’Est,  l’abscisse augmente de d,
      - si on avance de d vers l’Ouest,  l’abscisse diminue de d,
      - si on avance de d vers le nord,  l’ordonnée augmente de d,
      - si on avance de d vers le Sud,  l’ordonnée diminue de d.
On suppose que le NORD corresponde au sens positif des ordonnées, le SUD au sens négatif des ordonnées, l’EST correspond au sens positif des abscisses et l’OUEST au sens négatif des abscisses :


Examen de Fin de Formation - Théorique Session Juillet 2012 - TDI
Examen de Fin de Formation - Théorique Session Juillet 2012 - TDI


La  méthode afficherPosition()  affiche la position (les attributs abs et ord).
3) Ecrire la classe CameraMobile avec  un constructeur sans argument et un constructeur à quatre arguments (type, code, abs et ord) ;    (0,5 pt)
4) Ecrire la méthode afficherPosition et la méthode avancer ;  (0,5 pt)
5) Redéfinir  la méthode afficher  dans la classe CameraMobile  tout en utilisant celle de la classe mère et la méthode afficherPosition ;    (1 pt)
6) Ecrire une classe de test qui permet de créer un objet CameraMobile, afficher ses attributs et lui appliquer la séquence d’actions suivantes (de a à e) tout en affichant à chaque fois la position de la  Camera ainsi que son orientation :   (1,5 pt)
      a. Tourner vers l’Est ;
      b. Avancer de 10 vers l’Ouest ;
      c. Avancer de 16 vers le Nord ;
      d. Avancer de 5 vers l’Est ;
      e. Reculer de 12 vers le sud.

Dossier 4 : (4 pts)
Exercice 1 : (2 pts)
Pour s’inscrire dans un forum, un utilisateur doit remplir le formulaire suivant :


Examen de Fin de Formation - Théorique Session Juillet 2012 - TDI
Examen de Fin de Formation - Théorique Session Juillet 2012 - TDI


1) Ecrire le code HTML de la page web du formulaire.  (0,5 pt)
2) Ecrire le code permettant de respecter les règles :
a) Tous les champs sont obligatoires.  (0,25 pt)
b) La date de naissance doit être valide : 1<=jour<=31,   1<=mois<=12   et année >=1900.   (0,25 pt)
c) Le champ « Mot de passe » et le champ « Confirmer mot de passe » doivent être égaux.  (0,25 pt)
d) Si la case « J’accepte les conditions » n’est pas cochée, le bouton « Valider » est désactivé.  (0,25 pt)
3) Ajouter le code JavaScript qui permet de fermer automatiquement la  fenêtre du navigateur au bout de 20 secondes. (0,5 pt)

Exercice 2 : (2 pts)

1. Quelle est la signification de 10 base 5 ? Et de 100 base T ? (0,25 pt)

2. Quels sont les types d’adresses MAC auxquels une station doit répondre ?  (0,25 pt)
3. Que se passe-t-il après la détection d’une collision dans un réseau de type Ethernet ? (0,25 pt)
4. Décrivez sous forme synthétique le protocole CSMA/CD.  (0,25 pt)
5. On considère le réseau représenté par la figure ci-dessous :


Examen de Fin de Formation - Théorique Session Juillet 2012 - TDI
Examen de Fin de Formation - Théorique Session Juillet 2012 - TDI


      a. Donner les adresses IP et les masques de chaque machine. (0,25 pt)
      b. Donner le type de câble utilisé pour connecter les équipements entre eux. (0,25 pt)
      c. Donner la commande MSDOS pour tester si la machine 1 est connectée à Internet. (0,25 pt)
      d. On souhaite que la machine 1 joue le rôle d’un serveur Web (IIS ou Apache), donner les étapes d’installation et de configuration de ce serveur. (0,25 pt)

23 juil. 2011

Examen Passage 2011 - TDI -Théorie - Algo - C - POO - Merise


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
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
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
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.

17 juin 2010

Examen de Passage - Théorie 2010 - TDI



Examen de Passage - Théorie 2010 - TDI


I – CONNAISSANCES GÉNÉRALES ET LOGIQUE :

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
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
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
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
Examen de Passage - Théorie 2010 - TDI