Bac scientifique pratique 2012 [ Algorithme + Python ]

Algo et Python 05-08-24
48 0

Travail demandé

L’IMEI (International Mobile Equipement Identity) est un numéro composé de 15 chiffres. Il permet à opérateur de réseau GSM d’identifier le mobile appelant et ainsi de l’autoriser ou non à se connecter.

Un numéro est dit un IMEI s’il vérifie la formule de LUHN décrite ci-dessous :

1- Calculer la somme S des chiffres du numéro en appliquant le principe suivant :

Doubler les valeurs des chiffres de rang pair.

Si le double est supérieur ou égale à 10 alors il sera remplacé par la somme de ses chiffres.

N.B :Le premier chiffre à gauche est de rang 1, le deuxième chiffre à gauche est de rang 2 etc.

2- Si la somme S est un multiple de 10 alors le nombre est en accord avec la formule de LUHM et dans ce cas il est dit valide, sinon il est dit invalide.

Exemple :  Le nombre 354365039281174 est un IMEI, car en appliquant la formule de LUHN on obtient 60 qui est un multiple de 10.

Etape1 : 3    5*2   4   3*2   6   5*2   0   3*2   9   2*2   8   1*2   1   7*2    4

Etape2 : 3     10   4     6     6    10   0     6     9    4     8     2     1   14     4

Etape3 :S=3+1+0+4+ 6 +  6   1+0 +0 + 6  + 9  +4  + 8  +2   +1 +1+4 + 4 =60

Le nombre 100000000001111 n’est pas un IMEI, car en appliquant la formule de LUHN on obtient 7 qui n’est pas multiple de 10.

Ecrire un programme qui permet de saisir un numéro de 15 chiffres et de vérifier s’il est un IMEI ou non en appliquant la formule de LUHM.

Solution Algorithmique

Pour vérifier si un numéro de 15 chiffres est un IMEI valide en utilisant la formule de Luhn, voici le principe de l'algorithme en détail :

1- Saisie et validation de la longueur :

Saisir le numéro et vérifier qu'il contient exactement 15 chiffres.

2- Application de la formule de Luhn pour calculer la somme S :

Partir du premier chiffre à gauche (qui est de rang 1).

Pour chaque chiffre de rang impair (1, 3, 5, ...), ajouter directement ce chiffre à la somme S.

Pour chaque chiffre de rang pair (2, 4, 6, ...), doubler sa valeur :

- Si le double est supérieur ou égal à 10, remplacer le double par la somme des chiffres du double.

- Ajouter le résultat à la somme S.

3- Vérification de la validité :

Si la somme S est un multiple de 10, alors le numéro est un IMEI valide.

Sinon, le numéro est invalide.

Dans cet algorithme, On va utiliser trois fonctions:

Déclaration des objets

Objet

Type / Nature

ch

chaîne des caractères

La fonction verif

Cette fonction vérifie si une chaîne est formée uniquement de 15 chiffres.

Déclaration des objets

Objet

Type / Nature

i

entier

La fonction saisie_code

Cette fonction retourne une chaîne formée de 15 chiffres.

Déclaration des objets

Objet

Type / Nature

ch

chaîne des caractères

La fonction test_IMEl 

Cette fonction vérifie si un numéro de 15 chiffres est un code IMEI valide.

Déclaration des objets

Objet

Type / Nature

s

entier

v

entier

i

entier

Solution en Python

Exécution du programme

Solution en Python et Designer QT

Pour créer une application en Python pour vérifier si un numéro de 15 chiffres est un code IMEI valide en utilisant Qt Designer pour l'interface graphique, suivez 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é 'ch' pour entrer des lettres romains .

QPushButton nommé 'IMEI_bt' pour exécuter le module test_IMEI .

QLabel nommé 'msg' pour afficher un message d'erreur si long(ch) != 15 et si ch contient des caractères non numériques et afficher le résultat du test IMEI du code.

Enregistrez le fichier avec l'extension .ui, par exemple code_IMEI-interface.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

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