Codes participants – Bac pratique 2017 [ Algorithme + Python ]

Algo et Python 30-09-24
28 0

Sujet bac informatique pratique 2017 (Bac scientifique)

le ministère de l’éducation organise une olympiade d’informatique à l’échelle nationale.

Pour générer un code pour chaque participant à cette olympiade, on se propose un programme Python qui permet de :

- remplir deux tableaux tn et tg respectivement par, les noms et les gouvernorats d’origine des n participants avec 5≤n≤26. Il est à noter que le nom d’un participant ne doit pas dépasser 15 lettres et celui du gouvernorat est d’au maximum 10 lettres.

- générer dans un troisième tableau tc, un code pour chaque participant. Ce code est formé de 5 caractères dont :

les trois premiers caractères représentant les trois premières lettres du gouvernorat du participant.

Et les deux dernières caractères est un nombre de 2 chiffres représentant le rang du participant par rapport aux autres participants du même gouvernorat.

– afficher pour chaque participant, son nom et son code.

Exemple : pour n=9 et les deux tableaux tn et tg suivants :

tn :

Rahma Ayoub Aya Ali Mohamed Bilel Meriem Sana Anis

tg :

Jendouba Monasrir Beja Jendouba Tataouine Jendouba Monastir Sfax Sfax

Après génération des codes, la tableau tc sera :

Jen01 Mon01 Bej01 Jen02 Tat01 Jen03 Mon02 Sfa01 Sfa02

En effet, la participante Rahma aura le code Jen01 puisque les trois premières lettres de son gouvernorat est Jen et elle est la première participante du gouvernorat de Jendouba.

le participant Anis aura le code Sfa02 puisque les trois premières lettres de son gouvernorat est Sfa et il est le deuxième participant du gouvernorat de Sfax.

Le programme affiche :

Rahma       Jen01

Ayoub         Mon01

Aya             Bej01

Ali               Jen02

Mohamed   Tat01

Bilel            Jen03

Meriem       Mon02

Sana          Saf01

Anis      Saf02

Solution Algorithmique

Pour résoudre ce problème, nous allons suivre un principe algorithmique en plusieurs étapes :

1- Entrée des données :

Nous avons deux tableaux : tn pour les noms des participants et tg pour leurs gouvernorats respectifs.

Le nombre de participants n est tel que 5≤n≤26, et chaque nom ne dépasse pas 15 lettres, tandis que chaque gouvernorat ne dépasse pas 10 lettres.

2- Initialisation d'un dictionnaire pour les rangs par gouvernorat :

Utiliser un dictionnaire pour stocker le nombre de participants par gouvernorat. Ce dictionnaire permettra de compter le rang de chaque participant dans son gouvernorat.

3- Génération du code :

Pour chaque participant, le code sera généré en concaténant :

Les trois premières lettres de son gouvernorat.

Un numéro à deux chiffres correspondant à son rang parmi les participants de ce gouvernorat.

4- Affichage des résultats :

Pour chaque participant, afficher son nom ainsi que son code.

Dans cet algorithme, On va utiliser trois fonctions et quatre procédures:

Algorithme du programme Principal

Déclaration des objets

Objet Type / Nature
n entier
tn tableaux des chaînes
tg tableaux des chaînes
tc tableaux des chaînes

 

La fonction saisie_taille

Cette fonction saisit la taille du tableau entre 5 et 26.

Déclaration des objets

Objet Type / Nature
n entier

 

La fonction verif_chaine

Cette fonction vérifie si une chaîne est composée uniquement des lettres.

Déclaration des objets

Objet Type / Nature
i entier

 

La procédure remplir

Cette procédure remplit le tableau t par des chaines composé uniquement des lettres et dont leurs longueurs dépend du rôle du tableau à remplir.

Déclaration des objets

Objet Type / Nature
i entier

 

La fonction rang_participant

Cette fonction recherche et retourne le rang du participant par rapport aux autres participants du même gouvernorat.

Déclaration des objets

Objet Type / Nature
j entier

 

La procédure generer_code

Cette procédure génère dans un troisième tableau tc, un code pour chaque participant.

Déclaration des objets

 

Objet Type / Nature
i entier
ch chaîne des caractères
rang entier
cp entier

 

La procédure afficher

Cette procédure affiche les éléments du tableau

Déclaration des objets

Objet Type / Nature
i entier

 

La procédure afficher_noms_codes

Cette procédure parcourt les deux tableaux tn et tc pour afficher pour chaque participant, son nom et son code.

Déclaration des objets

Objet Type / Nature
i entier

Solution en Python

Exécution du programme

Solution en Python et Designer QT

Pour créer une application en Python et Designer QT qui génère un code pour chaque participant à cette olympiade, on va suivre ces étapes:

1- Créer l'interface graphique avec Qt Designer

a- Ouvrez Qt Designer et créez un nouveau fichier de type Main Window.

b- Ajoutez ces widgets:

QLineEdit nommé 'ch1' pour entrer les nom des participants.

QLineEdit nommé 'ch2' pour entrer les noms des gouvernorats.

QPushButton nommé 'remplirtn_bt' pour mettre les nom des participants dans le tableau tn.

QPushButton nommé 'remplirtg_bt' pour mettre les nom des gouvernorats dans le tableau tg.

QPushButton nommé 'bt_generer' pour générer et stocker des codes  dans le tableau tc.

QPushButton nommé 'bt_afficher' pour rechercher et afficher pour chaque participant, son nom et son code.

QLabel nommé 'msg' pour afficher des messages d'erreur.

QLabel nommé 'tabtn_label' pour afficher les noms participants du tableau tn.

QLabel nommé 'tabtg_label' pour afficher les noms des gouvernorats du tableau tg.

QLabel nommé 'tabtc_label' pour afficher les codes du tableau tc.

QLabel nommé 'resultat' pour afficher les noms participants et leurs codes.

Enregistrez le fichier avec l'extension .ui, par exemple tabtab-2.ui.

2- Créer le script Python pour l'application

Voici un exemple de script Python qui utilise l'interface graphique générée par Qt Designer.

Exécution du programme

1) Remplissage du tableau des noms des participants

2) Remplissage du tableau des noms des gouvernorats

3) Générer les codes et les stocker dans le tableau tc.

4) Afficher les noms des participants avec leur codes.

 

Vous pouvez voir aussi :

1) des exercices sur les chaînes des caractères

2) des exercices sur les tableaux

3) des sujets Bac pratique

4) des sujets Bac théorique

0 commentaire

laisser un commentaire

Veuillez noter s'il vous plaît*

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

Passion de robotique

Atelier robotique

Construction des robots

Bras robotique

Maison intelligente

But de ce site web

La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.

Coordonnées

Zaouiet Kontech-Jemmel-Monastir-Tunisie

+216 92 886 231

medaliprof@gmail.com

Photos des articles

Site robotique réalisé par Mohamed Ali-Prof Info