Suivi du parcours du robot – Examen théorique informatique – 2020 [ Bac scientifique ]

Algo et Python 17-10-24
88 0

Sujet bac informatique théorique 2020 (Bac scientifique)

Un robot est capable de se déplacer dans un terrain rectangulaire en commençant d'un point de départ et en exécutant un parcours donné sous forme d'une succession de pas.

Les pas autorisés sont :

- Vers le haut, le pas est symbolisé par 'H'

- Vers le bas, le pas est symbolisé par 'B'

- Vers la droite, le pas est symbolisé par 'D'

- Vers la gauche, le pas est symbolisé par 'G'

Le terrain où se déplace le robot est représenté sous forme d'une grille formée de NL lignes et NC colonnes avec NL et NC sont deux entiers de l'intervalle [1..100].

Initialement, le robot se trouve dans une position désignée par un numéro de ligne(L) et un numéro de colonne (C) ou L est dans l'intervalle [1..NL] et C est dans l'intervalle [1..NC].

Le parcours est exprimé ainsi sous forme d'une séquence S formée uniquement par des lettres majuscules : "H", "B", "G" et "D".

Exemple: La séquence S="HHDDDGB" décrit le parcours suivant: 2 pas vers le haut, 3 pas vers la droite, 1 pas vers le gauche et 1 pas vers le bas.

Le robot exécute pas à pas le parcours décrit par la séquence S en commençant de sa position initiale de coordonnées L et C et il s'arrête dans l'un des deux cas suivants :

- Le cas de dépassement : Quand le dernier pas exécuté par le robot est à l'origine de sa sortie de la grille, un message est affiché "Attention cas de dépassement !" suivi par le numéro du pas qui est à l'origine du dépassement.

- Le cas de fin du parcours : Le robot a exécuté tous les pas de la séquence S sans aucun cas de dépassement. Un message est affiché contenant la nouvelle position du robot sur la grille.

Exemple:

Pour NL=7 et NC=9 et avec une position initiale du robot (L=5,C=4), nous présentons deux situations de parcours.

Situation 1 (parcours sur le schéma effectué avec des flèches vides )

Pour la séquence S="DDHGGHD", Le message affiché est "Je suis à la position (3,4)"

Situation 2 (parcours sur le schéma effectué avec des flèches pleines )

Pour la séquence S="GBBBHDDDDGGHH", Le message affiché est "Attention cas de dépassement de la ligne N°7"

Nous proposons d'écrire un algorithme et un programme Python qui permettent de simuler le parcours du robot. Pour ce faire il s'agit :

- de saisir les dimensions de la grille NL et NC où se déplace le robot, sa position L et C et la séquence de parcours à suivre S.

- d'afficher le résultat final du parcours selon le procédé décrit précedemment.

Solution Algorithmique

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

Algorithme du programme Principal

Déclaration des objets

Objet Type / Nature
nl entier
nc entier
l entier
c entier
sequence_parcours chaine des caractères

 

La fonction saisie_entier

Cette fonction saisit un entier entre a et b.

Déclaration des objets

Objet Type / Nature
n entier

 

La fonction verif_sequence

Cette fonction vérifie que la chaîne saisie est forme seulement des 4 lettres 'H', 'B', 'D' et 'G'.

Déclaration des objets

Objet Type / Nature
i entier

 

La fonction saisie_sequence_parcours

Cette fonction saisit la séquence qui décrit le parcours du robot dans le terrain.

Déclaration des objets

Objet Type / Nature
ch chaîne des caractères

 

La fonction executer_parcours

Cette fonction vérifie que la date respecte le format J/M avec J est un entier compris entre 1 et 31 et M est un entier compris entre 1 et 12.

Déclaration des objets

Objet Type / Nature
i entier

 

Solution en Python

Exécution du programme:

1) En cas de fin du parcours du robot

2) En cas de dépassement du robot des lignes du terrain

2) En cas de dépassement du robot des colonnes du terrain

Solution en Python et Designer QT

Pour créer une application en Python et Designer QT qui contrôle le parcours du robot dans un terrain rectangulaire , 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é 'nc' pour entrer le nombre des lignes du terrain.

QLineEdit nommé 'nl' pour entrer le nombre des colonnes du terrain.

QLineEdit nommé 'l' pour entrer le numéro de la ligne pour la position initiale du robot.

QLineEdit nommé 'c' pour entrer le numéro de la colonne pour la position initiale du robot.

QLineEdit nommé 'sequence' pour entrer le parcours du robot.

QPushButton nommé 'bt_test' pour vérifier la validité du parcours du robot dans le terrain.

QLabel nommé 'msg' pour afficher des messages d'erreur et le résultat de la vérification de la validité du parcours du robot .

Enregistrez le fichier avec l'extension .ui, par exemple tabtab-3.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)En  cas de fin du parcours du robot

2) En cas de dépassement du robot des lignes du terrain

1) En cas de dépassement du robot des colonnes du terrain

2)

 

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