Page 1 of 1

Utilisation de la fonction Request

Unread postPosted: 17 Jan 2013, 21:59
by hermes
pdc.89p
Bonsoir,

Je souhaiterais utiliser une fonction Request pour la saisie de données (réutilisation d'une syntaxe de Bisam) cependant la fonction enregistrée sous forme de chaîne de caractères que je n'arrive pas à réexploité pour utilisation. Quelqu'un aurait-il une idée pour surmonter ce problème.

Voila un exemple de code avec ma dernière tentative infructueuse
Code: Select all
()
Prgm
DelVar ‡,v,j,l,p
Text "Pdc = Ž‡xxv^2/2+jxL+Pdc part"
Input "nb de tronçons",nb
{‡,v,j,l,p}»vr
{‡‡,vv,jj,ll,pp}»vrr
For i,1,nb
Dialog
Title "par tronçons de diametre"
Request "Ž‡",‡‡
Request "v ou 4xqm/(Œxd)",vv
Request "j",jj
Request "L",ll
Request "Pdc part",pp
EndDlog
For i,1,5
&val(vrr[i])»(vr[i])
EndFor
‡*1.2*v^2+j*l+p»pd
Disp "Pdc tronçon",pd
EndFor
EndPrgm
     


Bonne soirée

Re: Utilisation de la fonction Request

Unread postPosted: 23 Jan 2013, 11:23
by Bisam
Pour transformer une chaîne de caractères en expression, il faut utiliser la fonction "expr" et non "eval" comme tu as l'air de l'avoir fait.

PS : Ce serait tout de même plus lisible sur l'ordinateur si tu remplaçais tous les caractères bizarres...

Re: Utilisation de la fonction Request

Unread postPosted: 28 Jan 2013, 13:59
by hermes
Bonjour,

j'ai bien commencer par utiliser la fonction expr puis j'ai fais d'autre essais. En faite en remplassant eval par expr le programme ne fonctionne pas mieu car je n'arrive pas à renvoyer les valeurs dans les memoires correspondantes.

Re: Utilisation de la fonction Request

Unread postPosted: 30 Jan 2013, 13:32
by Bisam
En lisant un peu plus attentivement ton code, je m'aperçois que tu as voulu faire ce qu'on appelle une "indirection"... mais sans utiliser le symbole # pour le faire ! C'est normal que ça ne marche pas.

Si on corrige ton code (en laissant les caractères bizarres), cela donne :
Code: Select all
()
Prgm
Local ‡,v,j,l,p,‡‡,vv,jj,ll,pp,nb,vr,vrr,i,pd
Text "Pdc = Ž‡xxv^2/2+jxL+Pdc part"
Input "nb de tronçons",nb
{"‡","v","j","l","p"}»vr
{"‡‡","vv","jj","ll","pp"}»vrr
For i,1,nb
Dialog
Title "par tronçons de diametre"
Request "Ž‡",‡‡
Request "v ou 4xqm/(Œxd)",vv
Request "j",jj
Request "L",ll
Request "Pdc part",pp
EndDlog
For i,1,5
#(vrr[i])»#(vr[i])
EndFor
‡*1.2*v^2+j*l+p»pd
Disp "Pdc tronçon",pd
EndFor
EndPrgm


A vrai dire, il n'y a pas besoin des variables avec "doubles lettres".... mais je te laisse le découvrir.
J'ai également remplacé le "Delvar" par "Local" qui est bien plus adapté.

Re: Utilisation de la fonction Request

Unread postPosted: 30 Jan 2013, 20:55
by hermes
Bonsoir

Merci pour ta reponse mais problème presiste: le but est de recuperé des données à travers la fonction request. le probleme est que cette fonction stock les donné sous forme de chaine de caractaire alors que moi j'en ai besoin sous forme numérique et dans l'idéal dans une memoire definie et non une liste

Hermès

Re: Utilisation de la fonction Request

Unread postPosted: 31 Jan 2013, 10:54
by Bisam
Ecoute, je veux bien t'aider, mais ce n'est pas en recopiant des bouts de code que l'on apprend à programmer !

Il faut que tu apprennes comment marche ta calculatrice. Je t'ai déjà dit quelles fonctions il fallait utiliser, je ne vais pas en plus te dire comment les utiliser. Il suffit d'aller regarder dans le manuel et d'apprendre par toi-même.
Il y a des exemples de programmes utilisant des chaînes de caractères et même des indirections.

Tu peux aussi télécharger certains de mes programmes où j'ai pu faire ce genre de choses, si ça peut t'aider... mais comme ils ne sont pas commentés, il faut déjà connaitre la syntaxe pour la comprendre.

Re: Utilisation de la fonction Request

Unread postPosted: 01 Feb 2013, 09:56
by hermes
Bonsoir,

j'ai bien un code qui fonctionne pour faire se que je souhaite cependant la question et de l'optimisation

Voila le code

()
Prgm
Local z,v,j,l,p,pd
Text "Pdc = Ž‡xxv^2/2+jxL+Pdc part"
Input "nb de tronçons",nb
For i,1,nb
Dialog
Title "par tronçons de diametre"
Request "Ž‡",z
Request "v ou 4xqm/(Œxd)",v
Request "j",j
Request "L",l
Request "Pdc part",p
EndDlog

voila la partis que je n'arrive pas à optimisé et que j'ai voulus avec une boucle For afin d'evité la repétition


expr(z)»z
expr(v)»v
expr(j)»j
expr(l)»l
expr(p)»p



z*1.2*v^2+j*l+p»pd
Disp "Pdc tronçon",pd
EndFor
EndPrgm