Divisible par 7 – Bac Pratique 2015 [ Algorithme + Python ]

Algo et Python 09-09-24
31 0

Travail demandé

On se propose de construire à partir d’un chiffre E impaire donné une pyramide composée de L lignes. Chaque ligne est calculée en fonction de la ligne qui la précède en insérant à son début et à sa fin un chiffre C tel que:

C= (somme des chiffres de la ligne précédente+nombre de chiffres de la ligne précédente) Mod 10

Pour déterminer si un nombre N est divisible par 7, il suffit de le décomposer en des tranches de trois chiffres en commençant par la droite et d’insérer alternativement des + et des –devant les tranches en commençant par l’opérateur +. On effectue l’opération ainsi écrite, si le résultat est divisible par 7 alors n est divisble par 7.

Exemple : pour n=682068212860286 et en appliquant la règle de divisibilité par 7 ci-dessus, on obtient 286-860+212-068+682=252 qui est divisible par 7 donc n est divisible par 7.

Ecrire un programme Python qui permet de saisir un entier E impair (1≤E≤9), d’afficher les entiers correspondants à E selon le principe décrit précédemment à raison d’un entier par ligne. (Le candidat n’est pas appelé à afficher les entiers sous la forme d’une pyramide).

Solution Algorithmique

Pour résoudre ce problème, nous devons créer un algorithme qui, à partir d'un entier impair EE compris entre 1 et 9, génère plusieurs lignes d'entiers en fonction de la ligne précédente. Le nombre de lignes LL est défini par l'utilisateur.

1. Initialisation :

Demander à l'utilisateur de saisir un entier impair E tel que 1≤E≤9.

Demander à l'utilisateur de saisir le nombre de lignes L de la pyramide à générer.

2- Première ligne :

La première ligne de la pyramide est simplement l'entier E.

3- Génération des lignes suivantes :

Pour chaque nouvelle ligne, nous devons calculer un nouveau chiffre CC qui sera ajouté au début et à la fin de la ligne précédente.

La règle pour calculer C est : C=(somme des chiffres de la ligne précédente+ nombre de chiffres de la ligne précédente)mod  10

C = (somme des chiffres de la ligne précédente+ nombre de chiffres de la ligne précédente) mod 10

La nouvelle ligne sera construite en ajoutant ce chiffre C à la fois au début et à la fin de la ligne précédente.

La génération de la ligne s'arrête si l'entier généré est divisible par 7 selon le principe décrit au dessus.

4- Affichage :

À chaque itération, afficher la nouvelle ligne.

Dans cet algorithme, On va utiliser deux fonctions et une procédure :


Algorithme du programme principal

La fonction saisie

Cette fonction retourne un chiffre impair.

Déclaration des objets

Objet Type / Nature
n entier

 

La fonction divisible_7

Cette fonction teste si un entier est divisible par 7

Déclaration des objets

Objet Type / Nature
i entier
ch1 chaîne des caractères
j entier
t tableau de 100 entiers
s entier

 

La procédure affiche_lignes

Cette procédure génère et affiche des lignes contenant des chiffres.

Déclaration des objets

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

 

Solution en Python

Exécution du programme

Solution en Python et Designer QT

Pour créer une application en Python pour construire à partir d’un chiffre E impaire donné une pyramide composée de L lignes 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:

QPushButton nommé 'afficher_bt' pour exécuter le module affiche_lignes().

QLabel nommé 'msg' pour afficher un message d'erreur et le résultat de la devinette du numéro de téléphone.

QLabel nommé 'resultat' pour afficher les lignes formées par des chiffres.

QLineEdit nommé 'e' pour entrer un chiffre impair.

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

 

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