Nombres de Keith – Examen théorique informatique [Bac scientifique 2025]

Bac SC 10-02-26
208 0

Sujet bac informatique théorique (Bac scientifique 2025)

Un nombre entier nb de k chiffrres est dit nombre de Keith s'il peut apparaltre dans une suite de nombres générés à partir de ses propres chiffres.Voiei les &tapes pour determiner si un nombre nb a k chiffres est un nombre de Keith ou non :

1- Déterminer les k premiers tonics de la suite : les k premiers termes de la suite sont les k chiffres du nombre nb en conainencant de gauche a droite.

2- Calculer le terme suivant de la suite : le terme suivant est la somme des k derniers ferules.

3- Répéter l'étape n°2 jusqu' a ce que le dernier terme calculé soit supérieur ou égal à nb

4- Verifier l'apparition du nombre nb : Si le nombre nb est un terme de la suite, alors it est un nombre de Keith sinon it n'est pas un nombre de Keith.

Exemnles

Pour nb = 14, on a done k =2 puisque 14 est un nombre forme de 2 ehiffres

1- Les 2 premiers termes de la suite sont sueeessivement : 1 et 4 (les k ehiffres de nb).

2- Le calcul du terme suivant de la suite : 5 = (1+4).

3- Le calcul des termes suivants : 9 — (4+5), puis 14 = (5+9). Arrest du calcul puisque le terme 14 est superieur ou egal a nb.

4- Verifier si 14 apparait dans la suite : puisque le terme 14 est egal a nb, done 14 est un nombre de Keith.

Pour nb = 189, on a done k --3 puisque 189 est un notnbre forme de 3 chiffres

1- Les 3 premiers termes de la suite sent successivement 1, 8 et 9 (les k chiffres de nb).

2- Le calcul du terme suivant de la suite : 18 = (1+8+9).

3- Le calcul des terries suivants : 35 = (8+9+18), puis 62 = (9+18+35). puis 115 = (18+35+62), puis 212 = (35+62+115). Arra du calcul puisque le terme 212 est supérieur ou égal à nb.

4- Verifier si 189 apparait dans la suite : puisque le terme 212 est strietement superieur a nb, done 189 n'appaxait pas dans la suite et par consequent 189 West pas un nombre de Keith.

Pour nb = 153 7, on a done k = 4 puisque 1537 est un nombre forme de 4 chiffres

1- Les 4 premiers termes de la suite sont successivement : 1, 5, 3 et 7 (les k chiffres de nb).

2- Le calcul du terme suivant de la suite : 16 = (1+5+3+7).

3- Le calcul des termes suivants : 31 = (5+3+7+16), puis 57 = (3+7+16+31), puis 111 = (7+16+31+57), puis 215 = (16+31+57+111), puis 414 = (31+57+111+215), puis 797 = (57+111+215+414), puis 1537 = (111+215+414+797). Arrêt du calcul puisque le terme 1537 est supérieur ou égal a

4- Vérifier si 1537 apparaît dans la suite puisque le terme 1537 est egal a nb, done le terme 1537 est un nombre de Keith.

On se propose d'écrire un algorithme d'un programme qui permet de :

- remplir un tableau T1 par N1 entiers sachant que chaque element du tableau doit etre un
entier compose de 2 chiffres au minimum et de 5 chiffres au maximum.

- générer un deuxieme tableau T2 contenant les elements de T1 qui sant des nombres de Keith.

- afficher les elements de T2 regroupes selon leurs nombres de chiffres conformement a l'exemple suivant

Exemple :

Pour N1 = 12 et le tableau T1 suivant :

Le tableau T2 généré sera donc :

Le programme affiche les lignes suivantes

14, 61, 47 nombre(s) de Keith de 2 chiffres.

Aucun nombre de Keith de 3 chiffres.

1537, 4788 : nombre(s) de Keith de 4 chiffres.

31331, 55604, 34285 : nombre(s) de Keith de 5 chiffres.

Travail demande

1- Ecrire un algorithme du programme principal, solution a ce problème, en le décomposant en

2- Ecrire un algorithme pour chaque module envisage.

N.B. : Le candidat est appelé a dresser les tableaux de déclaration des objets et des nouveaux types nécessaires.

 

Solution Algorithmique

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

- la fonction saisie_entier()

- la procédure remplir_tableau()

- la fonction test_keith()

- la procéduer generer()

- la procédure nbr_keith()

- la procédure afficher()

 

Algorithme du programme Principal

Déclaration des objets

Objet Type / Nature
taille_t2 entier
n entier
t1 tableau des entiers
t2 tableau des entiers

 

La fonction saisie_taille

Cette fonction permet de saisir un entier, en s’assurant que la valeur entrée par l’utilisateur est comprise entre deux bornes (binf et bsup).

Déclaration des objets

Objet Type / Nature
n entier

 

La procédure remplir_tableau

Cette procédure permet de remplir un tableau t avec n entiers saisis par l’utilisateur, en garantissant que chaque valeur est comprise entre 10 et 99999.

Déclaration des objets

Objet Type / Nature
i entier

 

La fonction test_keith

Cette fonction permet de tester si un nombre nb est un nombre de Keith. Elle retourne Vrai si nb est un nombre de Keith, et Faux sinon.

Déclaration des objets

Objet Type / Nature
ch chaîne
n entier
somme entier
i entier

 

La procédure generer

Cette procédure permet de générer un tableau t2 contenant uniquement les nombres de Keith extraits du tableau t1.

Déclaration des objets

Objet Type / Nature
i entier
taille_t2 entier (variable globale)

 

La procédure nbr_keith

Cette procédure permet d’afficher les nombres de Keith d’un tableau donné ayant un nombre précis de chiffres, ainsi que leur nombre total.

Déclaration des objets

Objet Type / Nature
cp entier
liste chaîne
i entier

 

La procédure afficher

Cette procédure permet d’afficher les n premiers éléments d’un tableau t sur une seule ligne, séparés par des espaces.

Déclaration des objets

Objet Type / Nature
i entier

 

Solution en Python

Exécution du programme:

 

Solution en Python et Designer QT

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 les éléments du tableau T1

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

QPushButton nommé 'remplirT1_bt' pour mettre les entiers saisis dans le tableau T1

QPushButton nommé 'remplirT2_bt' pour mettre les nombres de Keith dans le tableau T2

QLabel nommé 'tab1_label' pour contenir les entiers du tableau T1

QLabel nommé 'tab2_label' pour contenir les entiers du tableau T2

QPushButton nommé 'afficher_bt' pour rechercher et afficher les nombres de Keith selon leurs nombres de chiffres.

QLabel nommé 'resulat_label' pour contenir les nombres de Keith selon leurs nombres de chiffres.

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

2) Remplissage du tableau T2

3) Affichage des nombres de Keith selon leurs nombres de chiffres

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

Photos des articles

Site robotique réalisé par Mohamed Ali Haj Salah - Prof Info