NXT-G, leçon n°10 : Opérations et calculs

Pour expliquer certains fonctionnements, principes et fondements.
Avatar de l’utilisateur
roboleo
Level 8
Level 8
 
Messages: 955
Localisation: Hauts de Seine
expertnxt

Messagepar roboleo » Sam Mar 21, 2009 7:04 pm

NXT-G, Leçon n°10: Opération…Calculs

Ceux qui aiment les maths seront servis. Vous verrez comment avec quelques blocs il est possible d'effectuer n'importe quelle opération.
N'oubliez pas que le NXT est d'abord un calculateur, aussi sachez vous en servir dans les programmes.
Nous allons d'ailleurs les examiner; d'abord pour des opérations simples, puis en combinaison avec d'autres blocs faisant intervenir quelques notions particulières.
Voici à quoi ressemble ces blocs. Vous les trouverez dans la palette Complète, en survolant l'icône Données
Fig.1
Image

Calculs basiques:
Rappelons d'abord une règle fondamentale:
* 3ème règle: Un bloc ne peut accomplir qu'une seule tâche à la fois. Il faut autant de blocs que de tâches à accomplir.
Cela signifie un bloc pour chaque opération.

addition, soustraction, multiplication et division
Bloc MATH
Fig.2
Image

Le type d'opération est sélectionné à partir du champ de saisie dans la zone Opération. Ils se comportent tous de la même façon.
Ce bloc emploie 2 valeurs numériques A et B. Ces valeurs peuvent être positives, négatives et seulement en entier. Cela signifie que les valeurs décimales ne sont pas acceptées. Si vous tentez d'écrire une valeur comme -5,3 ou 8,7, le bloc MATH arrondira cette valeur à la valeur entière la plus proche soit -4 et 9 pour notre exemple.
Le menu déroulant permettant de choisir l'opération donne ceci:
Addition: A et B sont additionnés.
Soustraction: B est soustrait à A
Multiplication: A est multiplié par B
Division: A est divisé par B.
Vous remarquerez que les plots de données acceptent deux entrée pour A et B, et trois sortie pour A, B et le résultat de l'opération; toutes les valeurs sont numériques. Rien d'autre; ce bloc est très simple et facile à utiliser.

Si aucune valeur est saisie dans les champs A et B, le zéro (0) est la valeur de défaut. Ces nombres peuvent être saisie à la main ou fournis par un autre bloc, à l'aide d'un fil de données raccordé à cet autre bloc. En voici un exemple:
Fig.3
Image

Vous devez comprendre que vous ne pouvez rien faire avec le bloc MATH si les plots de données ne sont pas accessibles. La raison est simple; quel que soit le type d'opération à effectuer, le résultat se trouve dans le plot de sortie, et si vous voulez l'utiliser, vous avez besoin d'un fil de données à raccorder à un bloc qui vous permettra ensuite de lire le résultat sur un écran d'affichage par exemple.


Calculs aléatoires
Imaginons un jeu de 52 cartes battues et étalées, faces cachées sur une table, et que vous en choisissiez une au hasard. Vous avez 1 chance sur 52 de tirer celle que vous avez en main. Si vous recommencez la même opération, vous avez toujours 1 chance sur 52 de tirer n'importe quelle autre carte, y compris celle déjà tirée (puisqu'elle n'a pas été retirée du jeu).
Voyons autrement à l'aide d'une paire de dés à jouer. Chaque dé en roulant, a la faculté de montrer sur chacune de ses faces une valeur de 1 à 6. Quand vous lancez une paire de dés sur un tapis, les valeurs qui apparaissent sont quelconques. Les chances d'avoir un 3 sur un dé sont les mêmes que celles d'avoir un 6. Elles ont toutes la même probabilité. Aléatoire: c'est ainsi que l'on désigne ce phénomène de probabilité. Il ne suit aucune règle, aucune logique; il est imprévisible.
Votre robot est lui aussi capable de générer des nombres aléatoires. Vous pouvez construire un robot succeptible de lancer une paire de dés virtuels, ou de tirer au hasard un nombre entre 1 et 1000. C'est ce que nous allons voir maintenant.

Bloc ALEATOIRE
C'est un bloc d'usage très simple, avec peu de paramètres de configuration, mais importants.
Fig.4
Image

Dans la zone Plage, vous remarquerez la présence de 2 champs de saisie: Minimum (A) et Maximum (B). Dans ces champs vous préciserez les valeurs haute et basse de la plage dans laquelle le bloc "piochera" d'une manière aléatoire. La valeur minimum peut être inférieure à zéro (0), et la valeur maximum ne peut dépasser 32 737.
Une autre façon de choisir ces les limites minimale et maximale est de tirer les deux glissières. La limite supérieure de la glissière est fixée à 100 ; toutefois, si vous entrez une valeur dans la zone de saisie, vous pouvez fixer la limite supérieure au-delà de 100. Vous pouvez également entrer un nombre négatif dans la zone de la limite minimale ; ce nombre supplantera la valeur de la glissière.
Pour fixer les limites minimale et maximale de manière dynamique, branchez des fils de données en entrée au plot de données du bloc.

Exemple:
Nous allons maintenant écrire un pseudo-code:
LEO :cri: > BONG, affiche sur l'écran du NXT et signale par un top sonore, un nombre aléatoire compris entre 20 et 80. Recommence jusqu'à ce que j'appuie sur le bouton flèche droite pour tout arrêter.
Et voilà à quoi ressemble le programme NXT-G.
Fig.5
Image

Le bloc NOMBRE EN TEXTE permet l'affichage de la valeur aléatoire en passant par le bloc TEXTE (qui lui contient une description en A et la valeur convertie en B). Un top sonore ponctue l'affichage du résultat. La boucle recommence la même opération avec une autre valeur aléatoire, jusqu'à ce que la flèche droite soit appuyée. On termine alors le programme.
Autre application: si vous souhaitez faire évoluer votre robot d'une manière indépendante de votre volonté, vous programmerez en utilisant ce bloc qui fournira justement une valeur fruit du hasard, qui conditionnera ses mouvements (voir leçon n°8).

Comparaison
Vous connaissez le vieil adage: "on ne mélange pas les torchons avec les serviettes!". Mais parfois cela pourrait être utile de comparer des objets dissemblables. Comme par exemple: qui est plus lourd, qui est plus grand?
Votre robot peut aussi faire de même; non pas comparer des objets, mais des nombres. Et cela grâce à une particularité des bloc NXT-G qui manipules des valeurs Logiques.
Supposons que je vous dise: "5 est-il plus grand que 3?". Votre réponse est sans aucun doute OUI. Lorsque vous programmez votre robot de la même manière (5 est plus grand que 3), la réponse ne peut-être que VRAI ou FAUX; VRAI dans notre cas.
De même, si je vous demande: "la lune est-elle de forme cubique?", votre réponse serait NON et votre robot répondrait FAUX à la même question.
Aussi, n'oubliez pas qu'un robot répond à des ordres (des instructions) par VRAI ou par FAUX.

Avant de présenter le bloc COMPARER, nous allons écrire un pseudo-code pour tester les connaissances de BONG.
LEO :cri: > BONG, je veux que tu crées 2 nombres aléatoires compris entre 1 et 9 (nombre A et nombre B); affiche-les sur l'écran, et dis moi si A est plus grand que B.
Je vais donc commencer par glisser 2 blocs ALEATOIRE et les configurer d'une manière identique (A=1 et B=9).
Après avoir convertis les valeurs en mode texte (à l'aide de 2 blocs NOMBRE EN TEXTE identiques), je les regroupe dans un bloc TEXTE unique. Enfin, je les affiche sur l'écran du NXT (ligne 3, x=2 et y=40). J'aurai donc une expression sous la forme; (valeur A) Plus grand que (valeur B).
Fig.6
Image
Remarque: dans le champ B, taper ">" précédé d'un espace (le texte de la fig.6 est trop long; il "mange" la suite.

Nous allons maintenant faire dire par BONG si l'expression est VRAI ou FAUX, et nous sommes prêt pour cela à utiliser le bloc COMPARER.
Désolé d'avoir été si long pour expliquer ce bloc (qui par lui-même est incapable de faire quoi que ce soit), mais un bon exemple en situation est nécessaire pour comprendre le mécanisme.

Bloc COMPARER

Je vais à présent créer un autre RAYON DE SEQUENCE en parallèle avec ce dernier. Je rappelle à cet effet que vous pouvez utiliser le point de départ pour créer des rayons de séquence supplémentaires qui permettent à votre programme d'accomplir des tâches simultanées (pour créer un rayon supplémentaire voir le menu AIDE du logiciel NXT-G).
Sur ce rayon je glisse un bloc COMPARER (pour comparer les valeurs A et B). Rappelez-vous: je veux vérifier l'expression A Plus grand que B et m'assurer que le résultat est VRAI ou FAUX.
Fig.7
Image

Observons le panneau de configuration.
Fig.8
Image

Ce bloc dispose d'un menu déroulant dans la zone Opération. Trois options sont visibles. Si vous choisissez l'option "Inférieur à", le bloc COMPARER déterminera si A est Inférieur à B et traduira l'expression par VRAI ou FAUX. Il procédera de même si vous choisissez une autre option.
J'ai choisi cette option, et le bloc fournira la réponse par le plot de sortie du résultat.

Vous remarquerez aussi que le bloc COMPARER dispose de 2 plots d'entrée. Je vais raccorder par un fil de données chacun de ces 2 plots a un plot de chaque bloc NOMBRE EN TEXTE.
Si nous revenons maintenant au pseudo-code, BONG doit m'afficher le mot VRAI ou FAUX (selon les valeurs fournies par le bloc ALEATOIRE) et vérifier l'expression "A plus grand que B". Pour accomplir cette tâche, je vais ajouter un bloc COMMUTATEUR.
Fig.9
Image

Dans le panneau de configuration, j'ai choisi "Valeur" et "Logique", et décoché "Vue à plat". J'ai de plus tiré un fil de données entre le plot de sortie du bloc COMPARER et le plot d'entrée du bloc COMMUTATEUR.

Je dois maintenant décider de ce qu'il adviendra lorsque le bloc COMMUTATEUR recevra un signal VRAI ou FAUX du bloc COMPARER.
Je veux lire le mot VRAI , si l'expression est vérifiée. Je vais donc placer un bloc TEXTE contenant le mot "VRAI".
Mais, pour rendre ce mot visible sur l'écran, je vais ajouter un autre bloc AFFICHER (en décochant "Effacer") en bout du rayon de séquence principal, puis tirer un fil de données vers le bloc TEXTE.
Pour compléter l'exemple, je procéderai de la même manière dans le cas où l'expression n'est pas vérifiée:
Dans le bloc COMMUTATEUR je sélectionne l'onglet X , je positionne un nouveau bloc TEXTE contenant le mot "FAUX"; j'ajoute un autre bloc AFFICHER sur le rayon de séquence principal relié à son tour par un fil de données au dernier bloc TEXTE (FAUX).
Et pour terminer, Un bloc ATTENDRE pour afficher durant un temps nécessaire à la lecture.
Fig.10
Image

Je vous conseille d'écrire vous-même et de tester ce programme. Il est recommandé pour une meilleure compréhension et une bonne pratique des fils de données. Modifiez-le à votre guise; changez également les conditions par "Supérieur à" ou "Egal à", et observez comment les résultats se modifient.

A suivre …
A+
Roboleo
" Je ne cherche pas, je trouve…" P. Picasso

Avatar de l’utilisateur
Alban42800
Level 11
Level 11
 
Messages: 2473
Localisation: Loire (42)
Âge: 51 ans
expertgbbexpertnxtvainqueurconcours

Messagepar Alban42800 » Mar Mar 24, 2009 5:45 pm

roboleo a écrit:Autre application: si vous souhaitez faire évoluer votre robot d'une manière indépendante de votre volonté

ça on sait le faire :tare:
C'est le contraire qui pose problème :sadique:
Sinon encore une bonne leçon de NXT-G. C'est dommage qu'il n'y ai pas un bloc permettant d'afficher des nombres directement. Sans passer par "nombre en texte" qui alourdi les programmes.

Avatar de l’utilisateur
semtou
Level 7
Level 7
 
Messages: 525
Localisation: Toulouse
Âge: 55 ans

Messagepar semtou » Mar Mar 24, 2009 8:18 pm

Oui encore un bon travail de léo alors comme d'habitude j'imprime et je lis ça à tête reposé. Encore merci à toi. :bounce:
"Ce qui se conçoit bien s’énonce clairement et les mots pour le dire viennent aisément..." Nicolas Boileau-Despreaux
Mon blog = http://semtou.skyrock.com/
Ma galerie photos = http://www.brickshelf.com/cgi-bin/gallery.cgi?m=SEMTOU

Avatar de l’utilisateur
roboleo
Level 8
Level 8
 
Messages: 955
Localisation: Hauts de Seine
expertnxt

Messagepar roboleo » Mer Mar 25, 2009 4:20 pm

Alban42800 a écrit:C'est dommage qu'il n'y ai pas un bloc permettant d'afficher des nombres directement. Sans passer par "nombre en texte" qui alourdi les programmes.


En effet, malheureusement ce cas n'a pas été prévu par National Instruments. L'explication se trouve dans la séparation des genres. Les données sont d'un seul type; elles ne peuvent pas être par exemple numérique ET texte. je pense que c'est aussi pour des raisons de capacité de mémoire. Une donnée numérique, c'est peu d'octets, mais constant quelle que soit la valeur exprimée.
Sur un plan plus pratique,je me suis fabriqué des routines qui allègent considérablement l'écriture des programmes; notamment l'affichage.
Merci à vous tous pour ces commentaires… ;)
A+
Roboleo
" Je ne cherche pas, je trouve…" P. Picasso

Avatar de l’utilisateur
roboleo
Level 8
Level 8
 
Messages: 955
Localisation: Hauts de Seine
expertnxt

Messagepar roboleo » Sam Avr 04, 2009 1:43 pm

NXT-G, Leçon n°10: Opération…Calculs (suite et fin)

Il arrive parfois que la comparaison entre deux valeurs ne suffit pas pour résoudre une notion de logique. Où la question est de vérifier si une valeur se trouve à l'intérieur ou à l'extérieur d'une plage de nombres.
Est-ce que par exemple, 17 est-il dans la plage 5 - 22? Ou bien, 40 est-il en dehors de la plage 1 - 10?
Quelle utilité, demanderez-vous, peut-il y avoir ?
Et bien, dans le cas du bloc COMPARER seules 2 valeurs sont en cause: A et B.
dans le cas qui nous préoccupe, nous affinons l'approche logique en y introduisant 3 valeurs: A, B et C. Nous testons ici la valeur A par rapport à une série d'autres valeurs comprises entre B et C, pour en déduire une relation logique VRAI ou FAUX. Le NXT-G dispose à cet effet d'un bloc particulier que nous allons maintenant aborder.

Bloc PLAGE
Tout comme le bloc COMPARER, ce bloc répond à la règle suivante:
le résultat obtenu se présente sous la forme Logique VRAI ou FAUX.

Fig.11
Image

Le bloc PLAGE possède un plot de données avec trois ports d'entrée (à gauche) et quatre ports de sortie (à droite). Les ports d'entrée peuvent être connectés à d'autres blocs à l'aide de fils de données (sauf si un ou plusieurs des ports d'entrée reçoit un nombre que vous entrez).

La sortie Logique du bloc sera transmise à partir de la prise de sortie inférieure, à laquelle vous devez connecter un fil de données relié au plot de données d'un autre bloc. Les trois prises de sortie en face des prises d'entrée permettent, si nécessaire, de transmettre les nombres en entrée à d'autres blocs.

La valeur de test peut être tapé ou fourni de manière dynamique par un fil de données. La zone de test est grisée si un fil de données est connecté.
Les limites inférieure et supérieure peuvent être définies à l'aide de la glissière, être entrées ou être fournies de manière dynamique par des fils de données. Les zones de saisie sont affichées en grisé lorsque des fils de données sont connectés.
Le menu déroulant permet de choisir l'une des deux opérations disponibles :
* Dans la plage ([])
* Hors de la plage (][)

Ce bloc vérifiera les instructions suivantes:
A est à l'intérieur de la plage qui commence par B et se termine par C.
A est en dehors de la plage qui commence par B et se termine par C.
La réponse sera VRAI ou FAUX en fonction de ces vérifications.

Un petit exemple en pseudo-code pour illustrer son utilisation.

LEO :cri: > BONG, Génères un nombre aléatoire compris entre 1 et 100; affiches cette valeur sur ton écran, et dis moi moi si cette valeur est comprise entre 45 et 70.
Commencez par écrire ce début de programme:

Fig.12
Image

Ajoutez à présent le bloc PLAGE configuré ainsi:
Fig.13
Image

Observez le panneau de configuration définissant la plage 45 - 70 ainsi que le fil de données liant le bloc ALEATOIRE au bloc PLAGE.

Il ne reste plus qu'à ajouter un bloc COMMUTATEUR qui contiendra un bloc AFFICHER dans chacun des chemins, pour visualiser par les mots VRAI ou FAUX le résultat du tirage.
Et pour finir, un bloc ATTENDRE avec un bouton NXT flèche Gauche qui permet de maintenir l'affichage avant de quitter le programme. (Ne vous trompez pas de bloc: il s'agit d'un bloc ATTENDRE, et non pas un bloc Bouton NXT)).

Fig.14
Image

Exercez-vous avec ce programme, essayez l'option "Hors de la plage" et changez les limites de la plage. Poursuivez cet exercice jusqu'à obtenir une bonne maîtrise de l'usage de ce bloc.

Bloc LOGIQUE

Ce bloc est très proche du bloc COMPARER avec une différence fondamentale dans la natures des valeurs .
Alors que le bloc COMPARER manipule des valeurs numériques, celui-ci compare des valeurs LOGIQUES et donne comme réponse une valeur logique VRAI ou FAUX.
Avez-vous noté la différence? En effet il est possible de comparer et de faire des opérations avec des valeurs logiques; on entre ici dans la théorie des Ensembles, et on aborde un domaine d'opérations particulières.
C'est le bloc qui a ma préférence, celui de "l'élégance", celui qui par raisonnement logique permet l'écriture concise d'un programme. C'est celui qui économise de longues chaînes de blocs, celui de l'allégement.

Fig.15
Image

Examinons le panneau de configuration:
1. Utilisez les cases d'option pour choisir les entrées A et B, ou laissez des fils de données en entrée fournir les valeurs d'entrée de manière dynamique.
2. Le menu déroulant permet de choisir l'une des quatre opérations que vous pouvez appliquer aux entrées :
* Opération « Et »
* Opération « Ou »
* Opération « Ou exclusif »
* Opération « Non »

Fig.16
Image

Ces opérations font référence à l'algèbre de Boole dite algèbre combinatoire.
Le tableau ci après résume à l'aide d'icônes représentatives, les résultats qui en découlent.

Fig.17
Image

Nous allons créer un petit scénario pour BONG, et j'espère que cela vous aidera à comprendre comment ce bloc fonctionne.
J'ai fixé et branché sur BONG un capteur Photosensible et un capteur Sonore. Le pseudo-code que j'imagine est le suivant:

LEO :cri: > BONG, avance de 3 rotations (du moteur), si ces 2 conditions sont vérifiées (VRAI).
LEO :cri: > La 1ère condition est que le capteur Photosensible détecte un niveau lumineux inférieur à 35.
LEO :cri: > la 2ème condition est que le capteur Sonore détecte un niveau sonore inférieur à 25.

Bien, que va-t-il se passer? BONG vérifiera si le capteur lumineux détecte un faible niveau dans le local (< 35). Il vérifiera également si le capteur sonore détecte un niveau calme (< 25). Il enverra une valeur VRAI ou FAUX selon les conditions de configuration qui ont été paramétrées.
Le programme commencera par l'installation des 2 blocs capteurs sur le rayon de séquence avec leurs panneaux de configuration:

Fig.18
Image

Si on revient au pseudo-code, BONG doit avancer dans le cas unique où les 2 capteurs franchiront simultanément leurs points de déclenchement. Cela signifie que le capteur Photosensible doit réagir à une valeur inférieure à 35, pour le niveau lumineux du local, ET le capteur Sonore à une valeur inférieure à 25 pour le niveau sonore.
Les 2 conditions doivent être vérifiées (VRAI) en même temps, sinon BONG ne bougera pas.
Que se passe-t-il si le local est très lumineux et l'ambiance calme? RIEN; BONG reste immobile.
Que se passe-t-il si le local est dans l'obscurité et l'ambiance bruyante? RIEN également; BONG reste toujours immobile.
Que se passe-t-il si le local est lumineux et bruyant? Un gros mal de crâne pour BONG, mais il ne bougera toujours pas.

Comment BONG peut-il vérifier rapidement les conditions de luminosité et de bruit du local, et décider d'avancer ou pas?
Simple, il utilisera un bloc LOGIQUE, et le programme ressemblera à ceci:

Fig.19
Image

Le bloc LOGIQUE fonctionne comme un bloc COMPARER avec une particularité: c'est celle de pouvoir combiner à l'aide d'opérations (d'un type nouveau), des valeurs Logiques transmises par les capteurs, et de fournir un résultat qui est lui aussi une valeur Logique. Ces opérations ont été indiquées dans le tableau ci dessus, et dans notre cas nous avons choisi Et dans la Zone correspondante.
Pour éviter toute erreur, l'icône visualise le type de résultat recherché. On remarque ici la partie colorée en rouge de la zone commune des 2 cercles. Cette zone est bien commune aux 2 valeurs et correspond à l'objectif recherché.

Nous compléterons ce programme par un bloc COMMUTATEUR qui orientera vers le chemin répondant à ces 2 conditions, chemin contenant un bloc AVANCER.

Fig.20
Image
5 blocs ont suffit pour que BONG réagisse dans un environnement complexe, joli non?

Ce bloc LOGIQUE est un magnifique outil qui combine avec art 2 valeurs Logiques. Il permet de manipuler un grand nombre de ces valeurs, dont les résultats peuvent-être associés à leur tour à d'autres valeurs logiques.
Pour combiner, par exemple 4 valeurs Logiques, j'utiliserai 2 blocs LOGIQUE et le résultat de chacun sera envoyé sur un 3ème bloc LOGIQUE qui fournira le résultat final.

Compliqué? Un peu en effet. Mais quand vous utiliserez ce bloc, commencez par l'associer aux BOUCLES et aux blocs COMMUTATEURS pour donner au robot de meilleures et plus larges possibilités de décision. La suite viendra lorsque vous aurez bien assimilé le concept…
A+
Roboleo
" Je ne cherche pas, je trouve…" P. Picasso

Vendetta826
Level 1
Level 1
 
Messages: 1

Messagepar Vendetta826 » Ven Aoû 20, 2010 1:10 am

Hello !

J'ai une question pour toi Roboleo (ou un autre utilisateur :) )

Voilà, je suis en train de créer un calculateur de vitesse de tir de revolver. Tout va bien dans le programme, la brique calcul la vitesse en m/s, elle l'affiche bien etc ... Mais dans la deuxième partie du programme (capture) pour le calcul des joules la brique m'affiche "0" ! Vois-tu une erreur dans la formation de mon programme ??? Image

Je suis totalement désespéré ^^, ca fait 2 heures que je suis sur le problème ... :tare:

Mercii d'avance ! :)

Avatar de l’utilisateur
roboleo
Level 8
Level 8
 
Messages: 955
Localisation: Hauts de Seine
expertnxt

Messagepar roboleo » Ven Aoû 20, 2010 12:49 pm

Salut,
Quatre remarques avant de répondre; cela concerne tous ceux qui posent des questions sur les programmes NXT-G.
1 - prenez toujours l'habitude de documenter vos programmes. Il existe une fonction permettant de taper du texte pour expliquer le contenu des blocs et le but recherché. Un programme documenté contient partiellement la réponse.
2 - précisez quelle est la version du NXT-G utilisée; vers 1.0, 1.1 ou 2.0
3 - donnez des noms explicites aux variables.
4 - Afficher le programme ne suffit pas pour comprendre la démarche. Il vaut mieux trouver une solution permettant le téléchargement du programme. Cela évite à ceux qui répondent les erreurs de réécriture, et facilite la compréhension (sauf, bien entendu, cas simple).

En ce qui concerne ta question, le programme affiché est partiel. Que se passe-t-il avant? Le premier bloc n'est relié à aucun plot de données… (?)
D'autre part, peux-tu préciser à quoi correspondent les variables Nombre1 et nombre2?
J'ai aussi remarqué que tu multiplies Nombre1 par Nombre1 (2 fois le même bloc); sans doute pour l'élever au carré? Les opérateurs maths manquent d'informations.
Voilà le type de renseignements à écrire sur le programme: la démarche intellectuelle et les éléments chiffrés.
Essaie d'être plus explicite… ;)
A+
Roboleo
" Je ne cherche pas, je trouve…" P. Picasso

Avatar de l’utilisateur
Nico71
Level 14
Level 14
 
Messages: 9618
Âge: 35 ans
expertgbbexpertsoft3dexperttrialtruckmoceurtechnicexpertvainqueurconcours3

Messagepar Nico71 » Ven Aoû 20, 2010 5:54 pm

Mais il y a pas une méthode pour afficher le programme sous forme d'algorithme ? C'est quant même plus simple et les erreurs sautent très vite aux yeux pour qui sait lire du code basique. Sur le RCX, on peut pas et c'est à vomir leur représentation.

Avatar de l’utilisateur
roboleo
Level 8
Level 8
 
Messages: 955
Localisation: Hauts de Seine
expertnxt

Messagepar roboleo » Sam Aoû 21, 2010 2:07 pm

Nico71 a écrit:Mais il y a pas une méthode pour afficher le programme sous forme d'algorithme ? C'est quant même plus simple et les erreurs sautent très vite aux yeux pour qui sait lire du code basique. Sur le RCX, on peut pas et c'est à vomir leur représentation.

Pas à ma connaissance.
Le logiciel NXT-G n'est pas fait pour lire du code basique (sauf pour les développeurs qui disposent des outils). Et puis ce logiciel n'est pas conçu pour des informaticiens; la plateforme graphique est destinée à former l'esprit sans connaître un langage code.
Mais cela n'empêche pas de documenter; il existe bien des lignes de commentaires dans la programmation classique, alors pourquoi pas pour le NXT-G?
Si tu préfères la solution classique, alors travaille sur Lejos (tu en as un peu l'expérience me semble-t-il avec ta participation à Fribot 2010) ou autre. Mais alors on ne parle plus de NXT-G!
Ce que j'aime dans ce logiciel c'est qu'il est dans l'esprit LEGO. On travaille avec des blocs comme avec des pièces pour faire du Technic. On les assemble, on teste le résultat et puis on défait pour employer d'autres blocs qui raccourcissent ou simplifient, etc… On cherche toujours à améliorer et c'est cela qui est formateur parce qu'il y a toujours quelque chose à apprendre. ;)
A+
Roboleo
" Je ne cherche pas, je trouve…" P. Picasso


Retourner vers De la théorie à la pratique

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 5 invités