Adhérents et leurs commentaires – Bac théorique 2018 [ Algorithme + Python ]

Algo et Python 02-10-24
86 0

Sujet bac informatique théorique 2018 (Bac scientifique)

Dans le but de gérer les discussions dans un groupe fermé créé au sein d'un réseau social, on se propose de réaliser une application informatique permettant d'afficher à l'administrateur du groupe :

- La liste des adhérents qui ont envoyé un même commentaire donné,

- La liste des adhérents inactifs dans le groupe, sachant qu'un adhérent est qualifié inactif s'il n'a envoyé aucun commentaire.,

Pour ce faire, on se propose de:

1- Remplir un tableau A par les noms d'utilisateurs des Na adhérents du groupe avec 6≤Na≤50, sachant qu'un nom d'utilisateur est unique et formé par une suite d'au minimum trois caractères commençant obligatoirement par une lettre majuscule.

2- Remplir un tableau M par les Nm commentaires émis par les adhérents de ce groupe avec 2≤Nm≤100 en respectant le format général suivant : NumE#commentaire, où:

- NumE est une donnée représentant l'indice de l'émetteur du commentaire dans le tableau A
- commentaire représente le texte envoyé par cf.:d. émetteur.

3- Afficher:

- le nom d'utilisateur de chaque adhérent qui a envoyé un commentaire donné.

- la liste des adhérents inactifs.

Exemple Pour Na=5, Nm= 7 et les tableaux A et M suivants :

A

Olfa Hichem_2018 Mohamed Amir@ Salah

M

2#Help 3#Help 0#salutation 2#coursinfo 2#Algo 0#OK 2#Help

 

Pour M[2]='0#salutation' signifie :

- 0 est l'indice de l'émetteur dans le tableau A

- 'salutation' est le texte du commentaire

Si le commentaire saisi est "Help", alors le programme devra afficher les deux résultats suivants :

Le commentaire Help est envoyé par Amir@, Mohamed

La liste des adhérents inactifs est:

Hiechem_2018   Salah20

Solution Algorithmique

Pour résoudre ce problème, nous allons créer un algorithme en trois étapes :

1- Remplir les tableaux des utilisateurs et des commentaires.

2- Extraire les informations relatives aux commentaires envoyés.

3- Afficher les adhérents qui ont envoyé un commentaire donné et la liste des adhérents inactifs.

Voici un algorithme en pseudocode pour cette tâche :

1- Entrée des adhérents dans le tableau A :

Demander à l'utilisateur d'entrer les noms des adhérents.

S'assurer que chaque nom commence par une lettre et contient au moins trois caractères.

2- Entrée des commentaires dans le tableau M :

Demander à l'utilisateur d'entrer les commentaires au format "NumE#commentaire".

Extraire les indices d'émetteurs et les commentaires correspondants.

3- Trouver les adhérents ayant envoyé un commentaire donné :

Prendre un commentaire comme entrée.

Parcourir le tableau M, et pour chaque commentaire qui correspond à celui donné, afficher le nom d'utilisateur correspondant à l'indice NumE extrait.

4- Identifier les adhérents inactifs :

Parcourir le tableau A.

Vérifier si l'adhérent a envoyé un commentaire en comparant son indice avec ceux présents dans le tableau M.

Si l'indice d'un adhérent n'est pas trouvé dans M, l'ajouter à la liste des inactifs.

5- Afficher les résultats :

Afficher les adhérents ayant envoyé le commentaire donné.

Afficher la liste des adhérents inactifs.

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

Algorithme du programme Principal

Déclaration des objets

Objet Type / Nature
a  tableaux des chaînes
m tableaux des entiers
na entier
nm entier

 

La fonction saisie_taille_nom

Cette fonction saisit la taille du tableau des adhérents entre 6 et 50.

Déclaration des objets

Objet Type / Nature
n entier

 

La fonction saisie_taille_commentaire

Cette fonction saisit la taille du tableau des commentaires entre 3 et 100.

Déclaration des objets

Objet Type / Nature
n entier

 

La fonction verif_unicite

Cette fonction vérifie si le nom de l'adhérent existe ou non dans le tableau a.

Déclaration des objets

Objet Type / Nature
j entier

 

La procédure remplir_nom

Cette procédure remplit le tableau a des adhérents par des noms commençant par une lettre majuscule.

Déclaration des objets

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

 

La procédure remplir_commentaire

Cette procédure remplit le tableau m des commentaires par des chaînes sous la forme 'NumE#commentaire' ou NumE est l'indice de l'émetteur du tableau des adhérents a.

Déclaration des objets

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

 

La procédure afficher

Cette procédure affiche les adhérents ayant envoyé le commentaire donné et la liste des adhérents inactifs.

Déclaration des objets

Objet Type / Nature
i entier
liste_commentaires chaîne des caractères
liste_adherents chaîne des caractères
ch2 chaîne des caractères

 

Solution en Python

Exécution du programme

Solution en Python et Designer QT

Pour créer une application en Python et Designer QT qui affiche la liste des adhérents qui ont envoyé un même commentaire donné et les  adhérents inactifs, 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 adhérents.

QLineEdit nommé 'ch2' pour entrer les commentaires.

QPushButton nommé 'remplirta_bt' pour mettre les nom des adhérents dans le tableau A.

QPushButton nommé 'remplirtm_bt' pour mettre les commentaires dans le tableau M.

QPushButton nommé 'afficher_bt' pour rechercher les adhérents ayant envoyé le commentaire donné et la liste des adhérents inactifs

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

QLabel nommé 'tabta_label' pour afficher les noms des adhérents du tableau a.

QLabel nommé 'tabtm_label' pour afficher les commentaires du tableau m.

QLabel nommé 'resultat' pour afficher les adhérents ayant envoyé le commentaire donné et la liste des adhérents inactifs.

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 A des adhérents

2) Remplissage du tableau M des commentaires

3) afficher les adhérents ayant envoyé le commentaire donné et la liste des adhérents inactifs

 

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