Vous êtes sur la page 1sur 11

OFPPT

Office de la Formation Professionnelle et de la Promotion du Travail

Direction Recherche et Ingnierie de la Formation


Examen de Passage(Correction)
Session Juillet 2015

Filire : Techniques de Dveloppement Informatique


Niveau: TS

Epreuve : Synthse
Variante: V1

Dure : 5 heures

Barme :

/ 120

Partie I : Thorie
Dossier 1: Notions de mathmatiques appliques linformatique

Exercice 1: Conversion numrique


Remplir le tableau suivant:
Dcimal
670
155
808
351

Binaire
1010011110
10011011
1100101000
101011111

Octal
1236
233
1450
537

Hexadcimal
29E
9B
328
15F

Exercice 2: Algbre de Boole


1- Simplifier analytiquement la fonction logique F.

+C
F ( A , B ,C )= A+ B
2- Construire la table de vrit.

Filire
DI

Epreuve
Synthse V1(Correction)

Session
Juillet 2015

1/11

3- Simplifier avec la mthode de Karnaugh la fonction logique F.


F

AB

Filire
DI

00

01

11

10

Epreuve
Synthse V1(Correction)

Session
Juillet 2015

2/11

+C
F ( A , B ,C )= A+ B

Dossier 2: Techniques de programmation structure

Exercice 1: Rsultat de lalgorithme :


S
SAL
SALUT
SALUTAT
SALUTATIO

SALUTATIONS

Exercice 2: Suppression des voyelles


Tableau T() : Caractre
Variables N,i : Entier
Dbut
Rpter
crire ("Donner la taille du tableau: " )
lire (N)
Pour i=1 N
Lire (T(i))
Fin Pour

SupVoyelles( T,N)
Fin
Procdure SupVoyelles (T : tableau() ; N : Entier )
i=1
Rpter
Si( t(i) = a ou t(i)=e ou t(i)=y ou t(i) = u ou t(i)=i ou
t(i)=o) alors
Pour j=i j<n
T(j)t(j+1)

FinPour
NN-1
FinSi
Filire
DI

Epreuve
Synthse V1(Correction)

Session
Juillet 2015

3/11

Jusqu (i<=N)
Redim t(N)
Fin

Dossier 3: Conception et modlisation d'un systme d'information


Conception dun systme dinformation pour une socit informatique
MCD

TypeP rojet

Projet
Id_projet
<pi>
Zone
DateDebut
DateFin

<Indfini> <O>
<Indfini>
<Indfini>
<Indfini>

1,n

Contenir

ID_type
<pi>
Libelle
Superficie
Nombrech
MontantTotal
MontantTrim

1,1

Identifiant_1 <pi>

<Indfini> <O>
<Indfini>
<Indfini>
<Indfini>
<Indfini>
<Indfini>

Identifiant_1 <pi>
0,n
Adhrent
CIN
1,n
Nom
Prenom
Adresse
Tel
DateInscription
Identifiant_1

Bnficier
Montant_pay <Indfini>
Modepaiement <Indfini>
...
0,n
Trimestre
Ntrimestre <pi> <Indfini> <O>
Identifiant_1 <pi>

MLD

Filire
DI

Epreuve
Synthse V1(Correction)

Session
Juillet 2015

4/11

TypeProjet
P rojet
Id_projet
Zone
DateDebut
DateFin

ID_type
Id_projet
Libelle
Superficie
Nombrech
MontantTotal
MontantTrim

FK_TYPEPROJ _CONTENIR_PROJ ET

Adhrent
CIN
Nom
Prenom
Adresse
FK_BNFICI_BNFICIE_ADHRENT
Tel
DateInscription

FK_BNFICI_BNFICIE_TYPEP ROJ

Bnficier
CIN
Ntrimestre
ID_type
Montant_pay
Modepaiement
...

Partie II: Pratique


Dossier 1: Langage de programmation structure
#include<stdio.h>
#include <string.h>
#include <stdlib.h>
#define max 50
///===============les declaration=============
int n,choix;
struct Route {
char nom[20];
int distance;
char villeD[20];
char villeA[20];
};
struct Route les_routes[max];
//=========procedure de saisie==============
void saisie_une_route(){
printf("Saisir les information de la route : \n\n");
printf("Nom de la route : ");
scanf("%s",&les_routes[n+1].nom);
printf("Distance : ");
scanf("%d",&les_routes[n+1].distance);
Filire
DI

Epreuve
Synthse V1(Correction)

Session
Juillet 2015

5/11

printf("Ville dpart : ");


scanf("%s",&les_routes[n+1].villeD);
printf("Ville arrive : ");
scanf("%s",&les_routes[n+1].villeA);
n=n+1;
}
//=========procedure d'affichage==============
void afficher_les_routes(){
int i;
for(i=1;i<n+1;i++)
printf("La route :%s Sa distance : %d & sa ville de dpart : %s & sa ville
d'arrive : %s
\n",les_routes[i].nom,les_routes[i].distance,les_routes[i].villeD,les_routes[i].v
illeA);
}
//=========procedure de recheche==============
void rechercher_route(){
int i;
printf("\nRechercher une route par ville dpart :\n");
char villeD[20];
printf("Entrer la ville de dpart : ");
scanf("%s",&villeD);
for(i=1;i<=n;i++){
if(strcmp(les_routes[i].villeD,villeD)==0){
printf("----------------------------------\n");
printf("Nom : %s\n",les_routes[i].nom);
printf("Distance : %d\n",les_routes[i].distance);
printf("Ville dpart : %s\n",les_routes[i].villeD);
printf("Ville Arrive : %s\n",les_routes[i].villeA);
}
}
}
//=========procedure de suppression==============
void supprimer_route(){
char nom[20];
int i,j,k;
printf("Saisir le nom de la route que vous voulez supprimer : ");
scanf("%s",&nom);
for(i=1;i<=n;i++){
if(strcmp(les_routes[i].nom,nom)==0){
k=i;
Filire
DI

Epreuve
Synthse V1(Correction)

Session
Juillet 2015

6/11

n=n-1;
for(j=k;j<=n;j++){
les_routes[j]=les_routes[j+1];
}
}
}
}
//=========Sauvegarder dans un fichier==============
void sauvegarder()
{int i;
char nomf[20];
printf("Saisir le nom du fichier: ");
scanf("%s",&nomf);
FILE* fichier = NULL;
fichier = fopen(nomf,"w");
if (fichier != NULL)
{
for(i=1;i<=n;i++)
{
fprintf(fichier,"%s,%d,%s,%s
\n",les_routes[i].nom,les_routes[i].distance,les_routes[i].villeD,les_routes[i].v
illeA);
}
fclose (fichier);
}
else
printf("Impossible d'ouvrir le fichier test.txt");
}
//=========Quitter==============
void quitter(){
system("cls");
printf("\n\n
\t------------FIN-----------\n\n\n");
printf("\n\n
\t------------MERCI-----------\n\n\n");
}
int main ()
{
do{
printf("**************Gestion des routes natioanles************* \n");
printf("
<1. Saisir une route------------------------------ \n");
printf("
<2. Afficher la liste des routes------------------ \n");
printf("
<3. Rechercher une route par ville dpart--------- \n");
printf("
<4. Supprimier une route-------------------------- \n");
printf("
<5. Sauvegarder----------------------------------- \n");
printf("
<6. Quitter--------------------------------------- \n");
printf("
======
\n ");

Filire
DI

Epreuve
Synthse V1(Correction)

Session
Juillet 2015

7/11

printf("Entre votre choix : ");


scanf("%d",&choix);
printf("\n\n");
switch(choix){
case 1: system("cls");saisie_une_route();break;
case 2: system("cls");afficher_les_routes();break;
case 3: system("cls");rechercher_route();break;
case 4: system("cls");supprimer_route();break;
case 5: system("cls");sauvegarder();break;
case 6:system("cls");quitter();break;
default : system("cls");printf("votre choix n'est pas valide !!!\n");
}
}while(choix!=6);
system("PAUSE>null");
return 0;
}

Dossier 2: Programmation oriente objet


Dveloppement dune application oriente objet pour la gestion dun magasin
Classe Article
class Article
{
private string nserie;
private float pht;
private int qte_stk;
private int qte_min;
//public Article ();
public Article(string nserie, float pht, int qte_stk, int qte_min)
{

this.nserie = nserie;
this.pht = pht;
this.qte_stk = qte_stk;
this.qte_min = qte_min;

}
public new string ToString()

{
return this.nserie +" "+this.pht +" "+ this.qte_stk +" "+ this.qte_min ;
}
public void Sapprovisionner (int qte)
{
this.qte_stk=this.qte_stk+qte;

Filire
DI

Epreuve
Synthse V1(Correction)

Session
Juillet 2015

8/11

}
public void Achat(int qte)
{
this.qte_stk = this.qte_stk - qte;
if (this.qte_stk < this.qte_min)
Console.WriteLine("Attention! il faut s'approvisionner");} }

Classe Habit
class Habit : Article
{
private int taille;
private string couleur;
public Habit (string nserie, float pht, int qte_stk, int
qte_min,int taille,string couleur)
:base( nserie, pht, qte_stk, qte_min)
{
this.taille = taille;
this.couleur = couleur;
}
public new string ToString()
{
return base.ToString() + " " + this.taille + " " +
this.couleur;
}
}

Classe Electromnager

class Electromenager : Article


{
private float poids;
private int duree;
public Electromenager(string nserie, float pht, int qte_stk, int
qte_min, float poids, int duree)
: base(nserie, pht, qte_stk, qte_min)
{
this.poids = poids;
this.duree = duree;
}
public DateTime datefinGarantie()
{
DateTime res = DateTime.Now.AddMonths(duree);
return (res);
}
public Boolean Sousgarantie(DateTime date_achat)
{
DateTime d = DateTime.Now;
if (date_achat.AddMonths(duree) > d)

Filire
DI

Epreuve
Synthse V1(Correction)

Session
Juillet 2015

9/11

return true;
else return false;
}
public new string ToString()
{
return base.ToString() + " " + this.poids + " " + this.duree;
}}
class Program
{
static void Main(string[] args)
{
Habit h1 = new Habit("hx123", 180, 1500, 300, 36, "rouge");
h1.Achat(90);
Console.WriteLine(h1.ToString());
Electromenager e1 = new Electromenager("Ex123", 12000, 1500,
30, 45, 12);

e1.Sapprovisionner(100);
Console.WriteLine(e1.ToString());
Console.WriteLine(e1.datefinGarantie());
Console.ReadLine();

Dossier 3: Programmation vnementielle


1.

le code permettant de remplir la liste

comboBox1.Items.Add("A");
comboBox1.Items.Add("B");
comboBox1.Items.Add("AB");
comboBox1.Items.Add("O");

2.

le code du bouton "Nouveau :

textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
comboBox1.Text = "";
radioButton1.Checked = false;
radioButton2.Checked = false;

3.

Filire
DI

le code du bouton " Ajouter :

Epreuve
Synthse V1(Correction)

Session
Juillet 2015

10/11

char rh='+';
if (radioButton1.Checked==false) rh='-';
dataGridView1.Rows.Add(textBox1.Text, textBox2.Text,
textBox3.Text,comboBox1.Text,rh);

4.

le code du bouton " Supprimer :

if (MessageBox.Show( "voulez vous


supprimer?","Suppression",MessageBoxButtons.YesNo) == DialogResult.Yes)
{
foreach (DataGridViewRow dr in dataGridView1.Rows)
{
if (dr.Cells[0].Value.ToString() == textBox1.Text)
{
dataGridView1.Rows.Remove(dr);
break;
}
}
}

5. le code du bouton " Sauvegarder :


.BinaryFormatter

f = new BinaryFormatter();
FileStream fs = new FileStream("Donneurs.dat", FileMode.OpenOrCreate, FileAccess.Write);
f.Serialize(fs, Donneurs);
fs.Close();

Filire
DI

Epreuve
Synthse V1(Correction)

Session
Juillet 2015

11/11

Vous aimerez peut-être aussi