0% ont trouvé ce document utile (0 vote)
32 vues7 pages

PROGRAMMATION

Ce document contient plusieurs exercices de programmation structurée et orientée objet en Java. Les exercices portent sur la manipulation de tableaux et de matrices, la programmation d'interfaces graphiques Android et la modélisation objet avec des classes.

Transféré par

sheneyjuniors
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
32 vues7 pages

PROGRAMMATION

Ce document contient plusieurs exercices de programmation structurée et orientée objet en Java. Les exercices portent sur la manipulation de tableaux et de matrices, la programmation d'interfaces graphiques Android et la modélisation objet avec des classes.

Transféré par

sheneyjuniors
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

REPUBLIQUE DU CAMEROUN REPUBLIC OF CAMEROON

Paix-Travail-Patrie Peace-Work-Father/and
MINISTERE DE L'ENSEIGNEMENT SUPERIEUR MINISTRY OF HIGHER
EDUCATION
COMMISSION NATIONALE D'ORGANISATION DE L'EXAMEN NATIONAL COMMISSION FOR THE
ORGANIZATION
NATIONAL DU BREVET DE TECHNICIEN SUPERIEUR (BTS) OF BTS EXAM
Examen National Du Brevet De Technicien Supérieur — Session
2019
Spécialité/Option : GENIE LOGICIEL (GL)
Epreuve écrite : PROGRAMMATION
Crédit. : 06Durée : 4 heures

PARTIE 1 : PROGRAMMATION STRUCTUREE 5 points


I.I Ecrire un programme qui saisit la dimension N d'un tableau de int, remplit le tableau par
des valeurs entrées au clavier et l'affiche. Copier ensuite toutes les composantes strictement
positives dans un deuxième tableau Tpos et toutes les valeurs strictement négatives dans un
tableau Tneg. Afficher Tpos et Tneg 2 points
1.2 Ecrire un programme qui réalise l'addition de deux matrices A et B de même dimension N
x M (N et M sont saisies au clavier) 1,5 point
1.3 Ecrire un programme c permettant de compter le nombre de valeur paire dans un tableau
dont les données sont entrées par l'utilisateur. 1,5 point

PARTIE 2 : PROGRAMMATION ORIENTEE OBJET 5 points


11.1 Dans la programmation en Java, donner le rôle de base des éléments suivants : la classe,
l'objet, le constructeur, la méthode, la classe abstraite, l'interface, l'encapsulation et
l'héritage 2 points
11.2 Soit le diagramme de classe UML ci-dessous

Voiture
marque 4
couleur type
vitesse diamètre
état
rouler()

Page 1 sur 7
démarrer
( ) arrêter
( )
accélérer
( ) freiner
()

Proposez le code sources Java complet de déclaration des classes ci-dessus en intégrant dans
chaque classe la notion d'encapsulation et en prévoyant l'initialisation de tous les
champs de chaque classe à la création de la classe 3 points

PARTIE 3 : PROGRAMMATION WEB 5 points


On souhaite mettre en place un formulaire d'inscription des abonnés dans une
institution. Le schéma ci-dessous montre l'aspect du formulaire

Matricule
Nom

Prénom Date de
naissance
Lieu

Téléphone
Sexe—

Valider Annuler

111.1 Créer une page HTML contenant le formulaire ci-dessus d'enregistrement d'un abonné
2 points
111.2 Configurer la page web à travers le bouton valider pour qu'on puisse afficher les
informations saisies dans les zones de textes à l'aide du JavaScript. 3
points

PARTIE 4 : PROGRAMMATION POUR TERMINAUX MOBILES


5
points

Page 2 sur 7
Le but de l'exercice est de construire une interface humain-machine (IHM) présentant
plusieurs composants graphiques Android (View). Cette IHM permet de faire une
authentification en demandant un couple (nom de login, mot de passe). Après action sur le
bouton Connecter, un Toast indique si le couple donné convient ou pas.
IV. 1 Indiquez les composants graphiques Android qui interviennent dans cette IHM 2
points IV.2 Construire cette IHM avec l'environnement Java et le plug-in Android. (Ecrire en
utilisant le moins de code Java possible. Les chaînes de caractères seront définies dans le
fichier

[Link]) 3 points

Page 3 sur 7
repond a tou ces question sa PARTIE 1 : PROGRAMMATION STRUCTUREE 5 points I.I Ecrire un programme
qui saisit la dimension N d'un tableau de int, remplit le tableau par des valeurs entrées au clavier et
l'affiche. Copier ensuite toutes les composantes strictement positives dans un deuxième tableau Tpos et
toutes les valeurs strictement négatives dans un tableau Tneg. Afficher Tpos et Tneg 2 points 1.2 Ecrire un
programme qui réalise l'addition de deux matrices A et B de même dimension N x M (N et M sont saisies
au clavier) 1,5 point 1.3 Ecrire un programme c permettant de compter le nombre de valeur paire dans un
tableau dont les données sont entrées par l'utilisateur. 1,5 point PARTIE 2 : PROGRAMMATION ORIENTEE
OBJET 5 points 11.1 Dans la programmation en Java, donner le rôle de base des éléments suivants : la
classe, l'objet, le constructeur, la méthode, la classe abstraite, l'interface, l'encapsulation et l'héritage 2
points 11.2 Soit le diagramme de classe UML ci-dessous Voiture marque couleur vitesse état démarrer ( )
arrêter ( ) accélérer ( ) freiner ( ) 4 type diamètre rouler() Proposez le code sources Java complet de
déclaration des classes ci-dessus en intégrant dans chaque classe la notion d'encapsulation et en
prévoyant l'initialisation de tous les champs de chaque classe à la création de la classe 3 points PARTIE 3 :
PROGRAMMATION WEB 5 points On souhaite mettre en place un formulaire d'inscription des abonnés
dans une institution. Le schéma ci-dessous montre l'aspect du formulaire Matricule Nom Prénom Date de
naissance Lieu Téléphone Sexe— Valider Annuler 111.1 Créer une page HTML contenant le formulaire ci-
dessus d'enregistrement d'un abonné 2 points 111.2 Configurer la page web à travers le bouton valider
pour qu'on puisse afficher les informations saisies dans les zones de textes à l'aide du JavaScript. PARTIE 4
: PROGRAMMATION POUR TERMINAUX MOBILES 3 points 5 points Le but de l'exercice est de construire
une interface humain-machine (IHM) présentant plusieurs composants graphiques Android (View). Cette
IHM permet de faire une authentification en demandant un couple (nom de login, mot de passe). Après
action sur le bouton Connecter, un Toast indique si le couple donné convient ou pas. IV. 1 Indiquez les
composants graphiques Android qui interviennent dans cette IHM 2 points IV.2 Construire cette IHM avec
l'environnement Java et le plug-in Android. (Ecrire en utilisant le moins de code Java possible. Les chaînes
de caractères seront définies dans le fichier [Link])
ChatGPT
ChatGPT
PARTIE 1 : PROGRAMMATION STRUCTURÉE

1.1 Programme pour remplir deux tableaux avec des valeurs positives et négatives :

c
Copier le code
#include <stdio.h> int main() { int N; printf ( "Entrez la dimension N du tableau : " ); scanf ( "%d" , &N); int
tableau[N], Tpos[N], Tneg[N]; int i, pos = 0 , neg = 0 ; // Remplir le tableau printf ( "Entrez les valeurs du tableau :\n" );
for (i = 0 ; i < N; i++) { scanf ( "%d" , &tableau[i]); if (tableau[i] > 0 ) { Tpos[pos] = tableau[i]; pos++; } else if
(tableau[i] < 0 ) { Tneg[neg] = tableau[i]; neg++; } } // Afficher Tpos printf ( "Tpos : " ); for (i = 0 ; i < pos; i++) {
printf ( "%d " , Tpos[i]); } printf ( "\n" ); // Afficher Tneg printf ( "Tneg : " ); for (i = 0 ; i < neg; i++) { printf ( "%d " ,
Tneg[i]); } printf ( "\n" ); return 0 ; }

1.2 Programme pour l'addition de deux matrices :

c
Copier le code
#include <stdio.h> int main() { int N, M; printf ( "Entrez les dimensions N et M des matrices : " ); scanf ( "%d %d" ,
&N, &M); int A[N][M], B[N][M], result[N][M]; int i, j; printf ( "Entrez les valeurs de la matrice A :\n" ); for (i = 0 ; i <
N; i++) { for (j = 0 ; j < M; j++) { scanf ( "%d" , &A[i][j]); } } printf ( "Entrez les valeurs de la matrice B :\n" ); for (i =
0 ; i < N; i++) { for (j = 0 ; j < M; j++) { scanf ( "%d" , &B[i][j]); } } // Addition des matrices A et B for (i = 0 ; i < N;
i++) { for (j = 0 ; j < M; j++) { result[i][j] = A[i][j] + B[i][j]; } } // Affichage du résultat printf ( "Résultat de l'addition
des matrices :\n" ); for (i = 0 ; i < N; i++) { for (j = 0 ; j < M; j++) { printf ( "%d " , result[i][j]); } printf ( "\n" ); } return
0; }

1.3 Programme pour compter le nombre de valeurs paires dans un tableau :

Page 4 sur 7
c
Copier le code
#include <stdio.h> int main() { int taille, i, compteur = 0 ; printf ( "Entrez la taille du tableau : " ); scanf ( "%d" ,
&taille); int tableau[taille]; printf ( "Entrez les valeurs du tableau :\n" ); for (i = 0 ; i < taille; i++) { scanf ( "%d" ,
&tableau[i]); if (tableau[i] % 2 == 0 ) { compteur++; } } printf ( "Nombre de valeurs paires dans le tableau : %d\n" ,
compteur); return 0 ; }

PARTIE 2 : PROGRAMMATION ORIENTÉE OBJET

11.1 Rôle des éléments en Java :

 La classe définit un modèle pour créer des objets.


 L'objet est une instance d'une classe.
 Le constructeur est une méthode spéciale pour initialiser les objets.
 La méthode est une fonction associée à une classe ou à un objet.
 La classe abstraite est une classe qui ne peut pas être instanciée et peut contenir des méthodes
abstraites.
 L'interface est un contrat qui définit un ensemble de méthodes que les classes doivent implémenter.
 L'encapsulation est le regroupement des données et des méthodes qui agissent sur ces données dans
une classe.
 L'héritage est le mécanisme permettant à une classe de hériter des propriétés et des comportements
d'une autre classe.

11.2 Code Java des classes avec encapsulation et initialisation des champs :

java
Copier le code
public class Voiture { private String marque; private String couleur; private int vitesse; private boolean etat; public
Voiture(String marque, String couleur, int vitesse, boolean etat) { this .marque = marque; this .couleur = couleur;
this .vitesse = vitesse; this .etat = etat; } public void demarrer() { // Code pour démarrer la voiture } public void
arreter() { // Code pour arrêter la voiture } public void accelerer() { // Code pour accélérer la voiture } public void
freiner() { // Code pour freiner la voiture } } public class Roue { private String type; private int diametre; public
Roue(String type, int diametre) { this .type = type; this .diametre = diametre; } public void rouler() { // Code pour faire
rouler la voiture } }

PARTIE 3 : PROGRAMMATION WEB

111.1 Page HTML pour le formulaire d'inscription :

html
Copier le code
<!DOCTYPE html> <html> <head> <title> Formulaire d'inscription </title> </head> <body> <form
id="inscriptionForm"> <label for="matricule"> Matricule : </label> <input type="text" id="matricule"
name="matricule"><br><br> <label for="nom"> Nom : </label> <input type="text" id="nom" name="nom"><br><br>
<label for="prenom"> Prénom : </label> <input type="text" id="prenom" name="prenom"><br><br> <label
for="dateNaissance"> Date de naissance : </label> <input type="date" id="dateNaissance"
name="dateNaissance"><br><br> <label for="lieu"> Lieu : </label> <input type="text" id="lieu"
name="lieu"><br><br> <label for="telephone"> Téléphone : </label> <input type="tel" id="telephone"
name="telephone"><br><br> <label for="sexe"> Sexe : </label> <input type="text" id="sexe" name="sexe"><br><br>
<input type="submit" value="Valider"> <input type="reset" value="Annuler"> </form> </body> </html>

111.2 Script JavaScript pour afficher les informations saisies :

Page 5 sur 7
javascript
Copier le code
document . getElementById ( "inscriptionForm" ). addEventListener ( "submit" , function ( event )
{ event. preventDefault (); var matricule = document . getElementById ( "matricule" ). value ; var nom =
document . getElementById ( "nom" ). value ; var prenom = document . getElementById ( "prenom" ). value ; var
dateNaissance = document . getElementById ( "dateNaissance" ). value ; var lieu =
document . getElementById ( "lieu" ). value ; var telephone = document . getElementById ( "telephone" ). value ; var sexe
= document . getElementById ( "sexe" ). value ; alert ( "Matricule : " + matricule + "\nNom : " + nom + "\nPrénom : " +
prenom + "\nDate de naissance : " + dateNaissance + "\nLieu : " + lieu + "\nTéléphone : " + telephone + "\nSexe : " +
sexe); });

PARTIE 4 : PROGRAMMATION POUR TERMINAUX MOBILES

IV.1 Composants graphiques Android :

 EditText pour le champ de saisie du nom de login et du mot de passe.


 Button pour le bouton "Connecter".
 Toast pour afficher le résultat de l'authentification.

IV.2 IHM Android avec Java et XML :

 Fichier XML (activity_main.xml) :


xml
Copier le code
<LinearLayout xmlns:android="[Link]
xmlns:tools="[Link] android:layout_width="match_parent"
android:layout_height="match_parent" android:orientation="vertical" android:padding="16dp"
tools:context=".MainActivity"> <EditText android:id="@+id/editTextLogin" android:layout_width="match_parent"
android:layout_height="wrap_content" android:hint="Login"/> <EditText android:id="@+id/editTextPassword"
android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Password"/> <Button
android:id="@+id/buttonConnect" android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Connecter"/> </LinearLayout>

 Fichier Java ([Link]) :


java
Copier le code
import [Link]; import [Link]; import [Link]; import [Link];
import [Link]; import [Link]; public class MainActivity extends
AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState); setContentView([Link].activity_main); EditText editTextLogin =
findViewById([Link]); EditText editTextPassword = findViewById([Link]); Button
buttonConnect = findViewById([Link]); [Link]( new View .OnClickListener()
{ @Override public void onClick(View v) { String login = [Link]().toString(); String password =
[Link]().toString(); if ([Link]( "user" ) && [Link]( "password" ))
{ [Link](MainActivity. this , "Authentification réussie" , Toast.LENGTH_SHORT).show(); } else
{ [Link](MainActivity. this , "Authentification échouée" , Toast.LENGTH_SHORT).show(); } } }); } }

Page 6 sur 7
Page 7 sur 7

Vous aimerez peut-être aussi