[..] Ajouter le nombre $n à la fin du nom de la variable

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Jingoku
Niveau 1
Niveau 1
Messages : 5
Enregistré le : sam. 23 nov. 2013 17:14
Localisation : Normandie
Status : Hors ligne

[..] Ajouter le nombre $n à la fin du nom de la variable

#1

Message par Jingoku »

Bonjour/bonsoir,

Je tente de tester mes capacités en Autoit en réalisant le Qcm 2014 de Prologin (avis aux amateurs si vous voulez aussi faire de même !).
Je bloque donc sur ce programme :
http://www.prologin.org/training/challe ... 4/sabotage

Ce que j'ai fait :
1. Je demande le nombre n de tuyaux
2. J'assigne le nombre de case(s) que l'on peut avancer en fonction de n
3. Je demande le nombre d'instructions
4. J'entre une à une les instructions : et la fonction correspondante est effectuée après chaque entrée. A pour avancer, R pour reculer et T pour parcourir le tube.
5. J'affiche le résultat

Bien évidemment, c'est le T qui me pose problème...

Le code :
► Afficher le texte
J'utilise donc

Code : Tout sélectionner

Assign("valtuyau"&$m, $valt, 0)
Pour créer les variables $valtuyau1, $valtuyau2, ..., $valtuyaun, qui correspondent aux différentes valeurs que va utiliser T.
Par exemple, si on a 3 tuyaux et que le 1er possède la variable $valtuyau1 = 2, l'opération T de l'étape 4 renverra 3 (c'est à dire 1 +2).

Bien évidemment, dans mes 3 fonctions, lorsque l'on dépasse le nombre de tuyau, il est fait en sorte de "recommencer" la boucle des tuyaux, c'est à dire que si l'on se trouve au tuyau 3 après avoir fait T, et que je souhaite faire A, on arrivera à 1.
On a posé $position le numéro de la case à laquelle on se trouve.

Le problème : Dans func tuyau(), je souhaitais que les :

Code : Tout sélectionner

Eval('valtuyau'&$position)
soient lus comme des $valtuyau1, $valtuyau2, ..., $valtuyaun, avec "n" le numéro de la case. Et comme on a affecté à ces variables tout à l'heure un certain nombre, cela permettrait de faire les opérations et de trouver le résultat.
Mais ce dernier code n'est pas pris en compte par autoit comme je le voudrais.
Par exemple, si $position = 1, j'aimerais qu'autoit lise mon code en :

Code : Tout sélectionner

Func tuyau()
   if $position+$valtuyau1 < $nbrtuyau Then
   $position = $position+$valtuyau1

Else
   $position = ($position+$valtuyau1)-$nbrtuyau
EndIf
EndFunc
Je reste persuadé que la solution est toute simple, mais je n'arrive pas à mettre la main dessus...

J'ai tenté d'expliquer le plus simplement possible, mais si vous avez des doutes n'hésitez pas à me demander :) . Merci d'avance si vous avez le courage de m'aider !
Qui a dit que 2+2 était forcément égal à 4 ? Tout bon informaticien sait pourtant que ça fait 0100...
Sea
Niveau 6
Niveau 6
Messages : 219
Enregistré le : ven. 22 juin 2012 18:51
Localisation : France
Status : Hors ligne

Re: [..] Ajouter le nombre $n à la fin du nom de la variable

#2

Message par Sea »

Pourquoi ne pas utiliser un tableau?
Avatar du membre
Jingoku
Niveau 1
Niveau 1
Messages : 5
Enregistré le : sam. 23 nov. 2013 17:14
Localisation : Normandie
Status : Hors ligne

Re: [..] Ajouter le nombre $n à la fin du nom de la variable

#3

Message par Jingoku »

Bonsoir Sea,

J'ai effectivement pensé à réaliser ça sous forme de tableau, mais j'ai réalisé ce code dans l'optique de le remettre en C++ par la suite (mais je ne maîtrise pas encore assez bien le C++ pour utiliser des tableaux, je débute tout juste !).
S'il n'existe pas de solutions à mon problème j'essaierai les tableaux :wink:
Merci de ton aide.
Qui a dit que 2+2 était forcément égal à 4 ? Tout bon informaticien sait pourtant que ça fait 0100...
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Ajouter le nombre $n à la fin du nom de la variable

#4

Message par jchd »

C++ n'est pas réflexif.
De toute façon, la réflexion (et plus précisément l'intercession, que tu cherches à employer) n'est pas -et de beaucoup- la meilleure solution à ce problème.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Ajouter le nombre $n à la fin du nom de la variable

#5

Message par mikell »

C'est clairement plus simple de passer par des tableaux
Mais l'énoncé du problème est bizarrement incomplet
L'exemple n°1 est facile à comprendre :
► Afficher le texte
Donc logiquement pour l'exemple n°2, la réponse devrait être 0
Mais le site dit que la réponse est 4, ce qui sous-entendrait que le nb d'indices = le nb de tuyaux
Mis en fonction ça donnerait ça :
► Afficher le texte
Ce qui est bizarre c'est qu'il y a des données superflues (le nombre de tuyaux est donné par le nb de chiffres dans le 2ème paramètre, le nb d'instructions par le nb de lettres dans le 4ème param) par contre on ne donne pas le nb de cases total ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Ajouter le nombre $n à la fin du nom de la variable

#6

Message par jchd »

Qui plus est, l'énoncé est digne d'un mauvais élève de CM2, autant du point de vue logique, clarté, grammaire qu'orthographe.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
Jingoku
Niveau 1
Niveau 1
Messages : 5
Enregistré le : sam. 23 nov. 2013 17:14
Localisation : Normandie
Status : Hors ligne

Re: [..] Ajouter le nombre $n à la fin du nom de la variable

#7

Message par Jingoku »

Bonjour Jchd et Mikell,

Merci de vos réponses, je vais prendre note de votre 1ere remarque (jchd) et je vais travailler votre proposition (mikell), je vous tiens au courant :)

Bonne journée

Edit: Au sujet de l'exemple 2, le résultat est bien 4 : lorsque l'on avance au tuyau 2, que l'on fait T, puisque la valeur du tuyau 2 est 0, on va rester sur place, et donc en reculant deux fois après, on arrive au 4, comme il n'existe pas de tuyau "0", c'est une sorte de boucle.
Qui a dit que 2+2 était forcément égal à 4 ? Tout bon informaticien sait pourtant que ça fait 0100...
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Ajouter le nombre $n à la fin du nom de la variable

#8

Message par mikell »

Jingoku a écrit :on arrive au 4, comme il n'existe pas de tuyau "0", c'est une sorte de boucle.
Ouais encore eût-il fallu qu'on le susse ...
C'est loin d'être évident si on regarde le shéma censé illustrer la question (10 cases et 3 tuyaux) qui contredit le résultat de l'exemple n°2
D'après ce shéma, si le résultat est 0 on arrive à la case 10, rien à voir avec le nb de tuyaux
Peut-être que "apprenez svp à énoncer un problème" est la vraie réponse ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Ajouter le nombre $n à la fin du nom de la variable

#9

Message par timmalos »

J'avais participé à une ancienne édition et c'etait deja le même problème :o
Au moins l'enoncé de la finale était plus clair :) Si on avait eu une architecture qui tienne le coup pendant plus de 2 heures d'affilé ca aurait été parfait 8)
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Ajouter le nombre $n à la fin du nom de la variable

#10

Message par jchd »

timmalos a écrit :Si on avait eu une architecture qui tienne le coup pendant plus de 2 heures d'affilé ca aurait été parfait 8)
Le bâtiment s'était effonfré ?
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Ajouter le nombre $n à la fin du nom de la variable

#11

Message par timmalos »

Disons que 100 KDE sur un serveur ca pose des problèmes si on y reflechit pas avant, et que passer sour xfce en plein milieu du concours de 36 heures pour essayer de résoudre les problèmes qui empêchent de coder pendant une bonne dizaine d'heures ne fait pas très serieux. (Au final on en profite pour dormir un peu :lol: )
Répondre