Classer des chansons – Bac pratique 2017 [ Algorithme + Python ]

Algo et Python 01-10-24
16 0

Travail demandé

Une station de radio lance chaque début de semaine un concours hebdomadaire intitulé « Hitparade » pour classer cinq titres de chansons qu’elle propose à ses auditeurs et affiche le résultat du classement le samedi.

Tout au long de la semaine, un responsable de la station reçoit par téléphone les propositions des participants au concours des participants au concours parmi ses auditeurs qui sont appelés à choisir le titre préféré afin d’ajouter à son score 3 points.

Pour obtenir le classement final des cinq chansons suite à la participation d’un nombre donné des auditeurs de la station, on se propose d’écrire un programme qui permet de :

- Remplir un tableau T1 par les cinq titres des chansons, sachant qu’un titre est composé uniquement par des lettres alphabétiques et des espaces.

- Saisir le nombre N de participants avec 5≤N≤100.

Générer un tableau T2 représentant les scores des cinq chansons en ajoutant 3 points au score de chacune si le numéro qui lui correspond a été choisi par un participant. Ce numéro est un chiffre allant de 1 à 5, représentant l’emplacement de la chanson dans le tableau T1.

- Afficher le classement des chansons, comme indiqué dans l’exemple ci-après, en commençant par le titre de la chanson ayant le plus grand score. Il est à noter que les chansons ayant un même score auront un même score auront un même rang dans le classement.

Exemple : T1

Happy Sorry Me Quemo Rosa Hello

Et un nombre de participants N=11 ayant fait les mêmes suivants :

Choix de participant n°1 : 5

Choix de participant n°2 : 4

Choix de participant n°3 : 5

Choix de participant n°4 : 1

Choix de participant n°5 : 2

Choix de participant n°6 : 5

Choix de participant n°7 : 1

Choix de participant n°8 : 2

Choix de participant n°9 : 4

Choix de participant n°10 : 1

Choix de participant n°11 : 5

On aura T2 :

9 6 0 6 12

Le programme affiche :

Le classement est :

Rang 1 : Hello

Rang 2 : Happy

Rang 3 : Sorry, Rosa

Rang4 :  Me Quemo

Solution Algorithmique

Voici une solution algorithmique en pseudo-code pour résoudre ce problème :

Variables

T1: tableau contenant les 5 titres de chansons

T2: tableau contenant les scores des 5 chansons, initialisé à zéro

N: nombre de participants (entier)

choix: tableau des choix des participants (tableau de taille N)

Algorithme

1- Initialiser le tableau T1 avec les 5 titres de chansons.

2- Initialiser le tableau T2 avec des scores à 0 pour chaque chanson.

3- Saisir le nombre de participants N tel que 5 ≤ N ≤ 100.

4- Pour chaque participant, saisir le choix d'une chanson (nombre de 1 à 5). Si le choix correspond à une chanson, ajouter 3 points au score correspondant dans T2.

5- Trier les chansons en fonction de leurs scores dans l'ordre décroissant. Si deux chansons ont le même score, elles partagent le même rang.

6- Afficher le classement final des chansons.

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

Algorithme du programme Principal

Déclaration des objets

 

Objet Type / Nature
t1  tableaux des chaînes
t2 tableaux des entiers
nbr_participants entier

 

La fonction verif_chanson

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

Déclaration des objets

Objet Type / Nature
i entier

 

La procédure remplir

Cette procédure remplit le tableau t par des noms des chansons composés uniquement des lettres et des espaces

Déclaration des objets

Objet Type / Nature
i entier

 

La fonction saisie_nbr_participants

Cette fonction saisit le nombre des participants entre 5 et 100.

Déclaration des objets

Objet Type / Nature
n entier

 

La fonction saisie_choix

Cette fonction saisit le choix de le la chanson entre 1 et 5.

Déclaration des objets

Objet Type / Nature
c entier

 

La procédure generer_scores

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
c entier

 

La procédure tri_classement_chansons

Cette procédure trie le tableau t2 des scores en utilisant la méthode par sélection.

Déclaration des objets

Objet Type / Nature
i entier
j entier
max entier

 

La procédure afficher_classement

Cette procédure affiche le classement des chansons selon leurs scores

Déclaration des objets

Objet Type / Nature
i entier
j 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 classe cinq titres de chansons qu’elle propose à ses auditeurs et affiche le résultat du classement, 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 chansons.

QLineEdit nommé 'choix' pour entrer les choix des chansons.

QPushButton nommé 'remplirtn_bt' pour mettre les nom des chansons dans le tableau t1.

QPushButton nommé 'remplirtg_bt' pour mettre les choix des chansons dans le tableau t2.

QPushButton nommé 'trier_bt' pour trier le tableau t2 dans un ordre décroissant en suivant la méthode par sélection.

QPushButton nommé 'afficher_bt' pour recherche le classement des chansons selon leurs scores.

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

QLabel nommé 'tabt1_label' pour afficher les noms des chansons du tableau t1.

QLabel nommé 'tabt2_label' pour afficher les scores du tableau t2.

QLabel nommé 'resultat' pour afficher le classement des chansons selon leurs scores.

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 chansons

2) Remplissage du tableau des scores

3) trier le tableau des scores

*

4) Afficher le classement des chansons selon leurs scores

 

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