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

Algo et Python 17-10-24
4 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:

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.

QPushButton nommé 'remplirid_bt' pour mettre les identificateurs des cartes à puces dans le tableau IDENT.

QPushButton nommé 'remplirdate_bt' pour mettre les dates  dans le tableau DATE.

QPushButton nommé 'afficher_bt' pour afficher la liste des identificateurs des cartes à puces ainsi que leurs dates de création et leurs codes générés.

QLabel nommé 'tabident_label' pour contenir les identificateurs des cartes à puces.

QLabel nommé 'tabdate_label' pour contenir les dates de création des cartes à puces.

QLabel nommé 'tabcode_label' pour contenir les codes des cartes à puces.

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

QLabel nommé 'resultat' pour contenir la liste des nouveau-nés ayant une heure de naissance miroir et les nombres des nouveau-nés pour chaque type d'heure miroir.

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) Remplissage du tableau IDENT

2) Remplissage du tableau DATE

3) Remplissage du tableau CODE et affichage des données des cartes à puces

 

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