in ,

Epreuve zéro de programmation au Baccalauréat TI 2024

Aucun document en dehors de ceux remis aux candidats par les examinateurs n’est autorisé.

Partie I : Programmation web /10pts

Une entreprise de la place souhaite mettre sur pied une application web dynamique de gestion de son magasin. Souhaitant faire une programmation modulaire, elle vous confie le module sur la recherche des informations sur un article. L’interface de cette page se présente comme l’indique l’extrait de la figure ci-dessous. recherche article

Afin de vous faciliter le travail, le code PHP ci-dessous vous est proposé :

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
4 <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5 <title>Rechercher un article dans le magasin</title>
6 </head>
7 <body>
8 <form action= "<?php echo \(_SERVER['PHP_SELF']?>" method="post" enctype="application/x-
www-form-urlencoded">
9 <fieldset><legend><b>Rechercher un article en magasin</b></legend>
10 Mot-cl&#233;: </td><td><input type="text" name="motcle" size="40" maxlength="40"
value="<?php \)_POST['motcle']?>"/>
11 Dans la cat&#233;gorie : <select name="categorie">
12 <option value="tous">Tous</option>
13 <option value="informatique">Informatique</option>
14 <option value="divers">Divers</option>
15 </select>
16 Trier par : <select name="tri">
17 <option value="prix">Prix</option>
18 <option value="categorie">Cat&#233;gorie</option>
19 <option value="id_article">Code</option>
20 </select>
21 En ordre: Croissant<input type="radio" name="ordre" value="ASC" checked="checked"/>
22 D&#233;croissant<input type="radio" name="ordre" value="DESC" />
23 Envoyer</td><td><input type="submit" name="" value="OK"/>
24 </fieldset>
25 </form>
26 <?php
27 if(!empty(\(_POST['motcle'])) {
28 \)idcom =new mysqli ("localhost","root","", "magasin");
29 \(motcle=(\)_POST['motcle']);
30 \(categorie=(\)_POST['categorie']);
31 \(ordre=(\)_POST['ordre']);
32 \(tri=(\)_POST['tri']);
33 //Requête SQL
34 \(reqcategorie=(\)_POST['categorie']=="tous")?"":"AND categorie='\(categorie'";
35 \)requete="SELECT id_article AS 'Code article',designation AS 'Description',prix,
36 categorie AS 'Cat&#233;gorie' FROM article WHERE lower(designation)
37 LIKE'%\(motcle%'".\)reqcategorie."ORDER BY \(tri \)ordre";
38 \(result=\)idcom–>query(\(requete);
39 if(!\)result) {
40 echo "Lecture impossible";
41 }
42 else{
43 \(nbcol=\)result–>field_count;
44 \(nbart=\)result–>num_rows;
45 \(titres=\)result–>fetch_fields();
46 echo "<h3> Il y a \(nbart articles correspondant au mot-cl&#233; : \)motcle</h3>";
47 //Affichage des titres du tableau
48 echo "<table border=\"1\"> <tr>";
49 foreach(\(titres as \)nomcol=>\(val) {
50 echo "<th>", \)titres[\(nomcol]–>name ,"</th>";
51 }
52 echo "</tr>";
53 //Affichage des valeurs du tableau
54 for(\)i=0;\(i<\)nbart;\(i++) {
55 \)ligne=\(result–>fetch_row();
56 echo "<tr>";
57 for(\)j=0;\(j<\)nbcol;\(j++) {
58 echo "<td>",\)ligne[\(j],"</td>";
59 }
60 echo "</tr>";
61 }
62 echo "</table>";
63 \)result–>close();
64 \(idcom–>close();
65 }
66 }
67 ?>
68 </body>
69 </html>

En vous servant du code ci-dessus et de vos connaissances en programmation web, répondre aux questions suivantes :

I/ Programmation HTML et JavaScript /3pts

1. Définir l’expression : Service web. (0.5pt)
2. Écrire le code HTML qui permet d’insérer le contenu du formulaire (ligne 10 à 23) dans un tableau de 5 lignes et 2 colonnes. (1.5pt)
3. Écrire le code JavaScript qui permet, après un clic sur le bouton OK, de tester si le champ de saisie Mot-clé est bien renseigné par une chaine de caractère et d’afficher le message « Saisissez un mot-clé valide » dans le cas où aucune valeur n’est entrée ou qu’elle soit erronée. (1pt)

II/ Programmation PHP /7pts

1. Nommer deux exemples d’environnement intégré de développement web. (0.5pt)
3. Décrire la procédure permettant de démarrer et d’arrêter d’un service web. (0.5pt)
4. Déterminer le format à utiliser pour enregistrer ce code. Justifier votre réponse. (0.5pt)
5. Identifier dans ce code :
5.1. Les numéros correspondants au début et à la fin du code PHP. (0.5pt)
5.2. Une variable de type booléen. (0.5pt)
6. Donner le rôle de la variable : \)_POST[‘motcle’]. (0.5pt)
7. Donner respectivement le rôle de la ligne 38 et la ligne 64. (0.5pt)
8. Donner le rôle de field_count, num_rows et fetch_fields() dans ce code. (1.5pt)
9. Écrire la requête qui crée la base de données manipulée dans ce code. (0.5pt)
10. Réécrire le bout de code allant de la ligne 54 à la ligne 61 en utilisant exclusivement la boucle while(). (1.5pt)

Partie II : Programmation procédurale en C /10pts

Soit le programme C ci-dessous qui permet de produire partiellement une facture

1: #include <stdio.h>
2: #include <stdlib.h>
3: #define Max 4
4: struct produit {
5: char designation[20];
6: int qantite ;
7: float prix;
8: float montant;
9: };
10: struct produit list[Max];
11: int i;
12: int main() {
13: for (i = 0; i < Max; i++) {
14: printf("\nEntrez le nom du produit : ");
15: scanf("%20s", list[i].designation);
16: printf("Entrez la quantité souhaitée: ");
17: scanf("%10s", list[i].quantite);
18: printf("Entrez le prix unitaire du produit : ");
19: scanf("%10s", list[i].prix);
20: list[i].montant= list[i].quantite* list[i].prix ;
21: }
22: printf("\n\n");
23: for (i = 0; i < Max; i++) {
24: printf("\nLes produits de la facture sont : %s %d %f = %f FCFA\n", list[i].designation,
list[i].quantite, list[i].prix, list[i].montant);
25: }
26: return 0;
27: }

En vous servant du code ci-dessus et de vos connaissances en programmation C, répondre aux questions suivantes :
1. Définir le terme Programme. (0.5pt)
2. Décrire les deux bibliothèques utilisées dans ce code. (1pt)
3. Donner le rôle de :
3.1. La ligne 3. (0.5pt)
3.2. La ligne 10. (0.5pt)
3.3. La ligne 22. (0.5pt)
4. Exécuter pas à pas ce programme pour les valeurs suivantes : (2.5pts)
list[0]= [Ordinateur, 5, 250000]
list[1]= [Disque dur externe, 20, 40000]
list[2]= [Souris optique, 12, 12000]
list[3]= [Anti-virus, 5, 25000]
5. Définir le prototype de la fonction somme() qui permettra de calculer le montant total des de la facture. (2.5pts)
6. Indiquer à quel niveau sera placé la déclaration de la fonction somme() définie précédemment. (0.5pt)
7. Donner la différence entre une variable globale et une variable locale. (0.5pts)
8. Réécrire le bout de code allant de la ligne 23 à la ligne 25 en utilisant la boucle while(). (1pt)

Notice: Cliquez ici pour rejoindre notre groupe Télégram afin d’être les premiers à être informé sur les concours, recrutements, offres, opportunités en cours

Ne perdez plus votre temps sur internet à chercher des informations sur les concours lancés, les anciens sujets ou épreuves des concours et des examens officiels d'Afrique et d'ailleurs. Notre équipe d’experts est désormais là pour vous aider et a déjà fait le travail pour vous.

Dans notre plateforme, vous trouverez les derniers sujets des examens nationaux (G.C.E, CAP, BEPC, PROBATOIRE, BAC, BTS, LICENCE, MASTER, DOCTORAT) et internationaux ainsi que les anciennes épreuves de concours d’entrée dans des grandes écoles au Cameroun, en Côte d’ivoire, au Gabon, au Senegal et dans le monde: ENS, EAMAU , ENAM, ENIEG, IRIC, IFORD, IDE, MINSANTE, ENSET, ESSEC, IUT, FGI, FASA, FMSB, ESSTIC, EGEM, ENSP, ENSPT, UCAC, ENIET, POLICE, MINE ET PONT , FMSP, IIA, FSMB, EAMAC, CAFOP, INFAS, FASTEF

Pour les étudiants internationaux, télécharger toute notre collection des épreuves sur notre site : BAC BURKINA FASO, BEPC BURKINA FASO, BAC MALI, DEF MALI, BAC GABON, BEPC GABON, BAC TOGO, BEPC TOGO, BAC BENIN, BEPC BENIN, BAC NIGER, BEPC NIGER, BAC SENEGAL, BFEM SENEGAL.

Vous trouverez aussi sur notre plateforme des informations utiles et gratuites sur LES BOURSES D’ETUDES disponibles dans le monde ainsi que les informations sur les GRANDES ECOLES DE FORMATION en Afrique et dans le monde.

Les informations gratuites que nous mettons à votre disposition sont vérifiées et certifiées par une équipe experte diplomés de Licence, Master, Doctorat et des Enseignants

Written by peter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *