Entiers ZIGZAG – Bac Pratique 2015 [ Algorithme + Python ]

Algo et Python 05-09-24
24 0

Travail demandé

Un entier est dit zigzag lorsque ses chiffres croissent et décroissent ou inversement d’une façon alternative.

Exemples :

13254 est dit zigzag car i < 3 qui est > 2 qui est <5 qui est > 4.

8781 est dit zigzag car 8 est >7  qui est < 8 qui est > 1

Le nombre 8761 est dit non zizag car 8 > 7 qui est aussi > 6 .

Ecrire un programme Python qui permet de remplir un tableau t par n (5≤n≤25) entiers positifs composés d’au minimum 3 chiffres et d’afficher les nombres ZigZag du tableau T.

Exemple : Pour N=6 et le tableau T suivant :

121 5412 9674 4789 3624 8521

Le programme affiche : « les entiers ZIZAG sont : 121 9674 3624 »

Solution Algorithmique

1- Initialisation :

Créer un tableau T de taille n, où n est un nombre entier entre 5 et 25.

Chaque élément de T est un entier positif comportant au moins 3 chiffres.

2- Remplissage du tableau T :

Saisir les n entiers positifs dans le tableau T. Chaque entier doit avoir au moins 3 chiffres.

3- Détection des nombres ZigZag :

Parcourir chaque nombre du tableau et vérifier si ses chiffres forment un motif alterné de croissance et décroissance (ou vice versa). Autrement dit, il faut que pour chaque chiffre du nombre :

a) Si le chiffre précédent est plus petit, alors le chiffre suivant doit être plus grand.

b) Si le chiffre précédent est plus grand, alors le chiffre suivant doit être plus petit.

Algorithme détaillé pour vérifier si un nombre est ZigZag :

Pour chaque entier du tableau T :

1. Convertir l'entier en une liste de chiffres.

2. Si la liste contient moins de 3 chiffres, ce n’est pas un ZigZag.

3. Parcourir la liste des chiffres deux à deux, vérifier l’alternance :

a) Si à l’indice i, le chiffre est plus grand que celui à l’indice i-1, alors le chiffre à l’indice i+1 doit être plus petit que celui à l’indice i.

b) Si à l’indice i, le chiffre est plus petit que celui à l’indice i-1, alors le chiffre à l’indice i+1 doit être plus grand que celui à l’indice i.

Si l'alternance est respectée pour tous les chiffres, le nombre est ZigZag.

4- Affichage des résultats :

Après avoir parcouru tous les nombres dans T, afficher uniquement les nombres qui respectent la propriété de ZigZag.

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

Déclaration des objets

Objet Type / Nature
n entier
t tableau des 30 entiers

 

La fonction saisie_taille

Cette fonction retourne un entier n entre 5 et 25 saisi par l'utilisateur.

Déclaration des objets

Objet

Type / Nature

n

entier

La procédure remplir

Cette procédure remplit le tableau t des entiers >=100

Déclaration des objets

Objet

Type / Nature

i

entier

La fonction test_zig_zag

Cette fonction teste si un entier est zigzag ou non.

Déclaration des objets

Objet Type / Nature
i entier
test booléen
zigzag booléen
ch chaîne des caractères

 

La procédure afficher_entiers_zigzag

Cette procédure identifie et affiche les entiers zizag.

Déclaration des objets

Objet Type / Nature
i entier

 

Solution en Python

Exécution du programme

Solution en Python et Designer QT

Pour remplir un tableau des chaînes à partir d'une chaîne de caractères en Python, vous pouvez suivre les étapes suivantes :

1- Découper la chaîne de caractères en sous-chaînes contenant les mots.

3- Ajouter chaque sous-chaîne  au tableau.

Pour créer une application en Python pour identifier et afficher les entiers zizag

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 entiers .

QPushButton nommé 'remplir_bt' pour exécuter le module createTab afin de remplir le tableau à partir de la chaine 'ch'.

QPushButton nommé 'bt_recherche' pour exécuter le module afficher_entiers_zizgag.

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

QLabel nommé 'tab_label' pour afficher les éléments du tableau T.

QLabel nommé 'resultat' pour afficher les entiers zigzag.

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

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

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