Forum | | | | - page 1 - |
| Stefan Landsberg | Salut,
je voudrais un Programme écrivons, dass qui Quadratwurzel einer numéro berechnet. ABER es soll pas sur 6 Nachkommastellen runden, mais solange weitermachen jusqu'à on sur Stop klickt.
Frage: (comment) peux on cela Kürzen sur 6 Nachkommastellen chez sqrt() et pow() abstellen.
si cela pas allez, ensuite muss je mir irgend une Procédure envahir laisser qui dass pouvoir. mais s'il te plaît aucun Fertiglösung posten. ensuite lerne je rien.
encore une Frage: ist dans XProfan 10 qui länge eines floats begrenzt? |
| | | | |
| | | | | - page 1 - |
| Jac de Lad | non, non, non! Typischer Anfängerfehler. Um avec den Eingaben trop le calcul musst du es seulement de String dans un Float transformer (siehe "Val()") et zur Ausgabe im MultiEdit wieder dans une String (siehe "Str$()").
Déclarer
declare in&,out&,btn&,ergebnis$,ende%,eingabe$
la fenêtre erstellen
style de fenêtre 575
windowtitle "Quadratwurzel"
window 20,20 - 600,400
usefont "MS Sans Serif",20,0,0,0,0
la fenêtre gestalten
in&=create("edit",%hWnd,"25",5,5,580,20)
btn&=create("button",%hWnd,"Berechnen",250,30,100,30)
out&=create("multiedit",%hWnd,»,5,65,580,-270)
whilenot ende%
WaitInput
cas %clé=2 : pause
si clicked(btn&)
eingabe$=gettext$(in&)
ergebnis$=Str$(sqrt(Val(eingabe$)))
settext out&,»
settext out&,ergebnis$
endif
endwhile
Kürzer wäre dein Prog so:
Déclarer
declare in&,out&,btn&,ende%
la fenêtre erstellen
style de fenêtre 575
windowtitle "Quadratwurzel"
window 20,20 - 600,400
usefont "MS Sans Serif",20,0,0,0,0
la fenêtre gestalten
in&=create("edit",%hWnd,"25",5,5,580,20)
btn&=create("button",%hWnd,"Berechnen",250,30,100,30)
out&=create("multiedit",%hWnd,»,5,65,580,-270)
whilenot ende%
WaitInput
si %clé=2
pause
elseif clicked(btn&)
settext out&,Str$(sqrt(Val(gettext$(in&))))
endif
endwhile
Zum Thema Berechnung:
tu peux entweder chacun Stelle einzeln berechnen laisser ou bien une numéro quadrieren et je après que si vous trop grand ou bien trop petite ist toujours un peu erhöhen ou bien abziehen. en supplément musst du les numéros dans Cordes Sauver et chacun Stelle einzeln multiplizieren.
Jac |
| | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 15.08.2008 ▲ |
| |
| | Stefan Landsberg | Salut,
je prends pour qui ausgabe des ergebnisses un simple editfeld, mais là je dans mon Programme oui à qui vorhandene numéro toujours qui récente berechnete lieu dranhängen veux, ist es meiner attitude pour unpraktisch et wahrscheinlich aussi trop lente toujours seulement den aktuellen text avec gettext aus dem editfeld auszulesen, une récente ziffer dranzuhängen, et ensuite wieder qui numéro avec settext ins editfeld trop écrivons. gibts là une bessere methode ou bien irgendeine message (gibts une page/fichier dans qui qui messages sur allemande erklärt sommes) ? |
| | | | |
| | | wm_copyData pourrait Dir ici aider. |
| | | | |
| | Stefan Landsberg | allô, merci erstmal mais gibt es irgendwo ne dokumentation dans qui qui messages verständlich (am besten allemande) erklärt sommes? je perspective chez msdn pas so richtig par! |
| | | | |
| | | bien sûr, XProfan.com cherche et google sommes qui Helfer dans solcher Not! |
| | | | |
| | Stefan Landsberg | après que je jetz enfin wieder un peu zeit pour XProfan trouvé hab (une école beansprucht ne ganze la quantité zeit. avant allem latin ) lieu je la fois wieder une frage:
pourquoi wir dans qui si abfrage aucun wert à qui variable firstpart$ transfert? je hab aussi déjà versucht vous comme integer trop declarieren. allez aussi pas:
Déclarer
declare in&,out&,calcbtn&,stopbtn&,ergebnis$,ende%,eingabe$
PROC-partie
Proc sqrtlong
Algorithmus zum tirer einer Quadratwurzel
Paramètres numéro$, output&, stopbtn&
declare vorkomma$, div2%, firstsqrt%, firstpart$
numéro$=translate$(numéro$, » , ".") Dezimalkomma par Dezimalpunkt ersetzen
vorkomma$=substr$(numéro$,1,".") Les chiffres avant dem Komma dans vorkomma$ Sauver
div2%=Instr(".",str$(substr$(len(vorkomma$ / 2),1,"."))) vérifier si qui Anzahl qui Les chiffres avant dem Komma justement ou bien ungerade est.
si div2% = 0
firstpart$=mid$(vorkomma$,0,2) erste 2 Les chiffres aus vorkomma$ volonté dans firstpart$ gespeichert
firstsqrt%=substr$(str$(sqrt(val(firstpart$))), 1 , ".") es wird qui sqrt aus firstpart$ gebildet (reste wird weggelassen)
d'autre
firstpart$=mid$(vorkomma$,0,1) erste Ziffer aus vorkomma$ wird dans firstpart$ gespeichert
firstsqrt%=substr$(str$(sqrt(val(firstpart$))), 1 , ".") es wird qui sqrt aus firstpart$ gebildet (reste wird weggelassen)
endif
locate 4,1 seulement zum testen quoi firstpart$ enhält
imprimer "firstpart:",firstpart$ seulement zum test quoi firstpart$ enhält
sendmessage(output&,$004A,%hWnd,Addr(firstsqrt%))
endproc
la fenêtre erstellen
style de fenêtre 575
windowtitle "Quadratwurzel"
window 20,20 - 600,125
usefont "MS Sans Serif",20,0,0,0,0
la fenêtre gestalten
in&=create("edit",%hWnd,"25,5",5,5,580,20)
calcbtn&=create("button",%hWnd,"Berechnen",170,30,100,30)
stopbtn&=create("button",%hWnd,"Stop",310,30,100,30)
out&=create("edit",%hWnd,»,5,65,580,20)
whilenot ende%
WaitInput
cas %clé=2 : pause
si clicked(calcbtn&)
sqrtlong gettext$(in&), out&, stopbtn&
endif
endwhile
|
| | | | |
| | | qui Zweite paramètre de Milieu$ muss mindestens 1 son si on réellement ab erster Position ermitteln voudrais. |
| | | | |
| | Stefan Landsberg | ahhh, merci (pourquoi suis je là pas selbst sur elle gekommen ) |
| | | | |
| | | | - page 2 - |
| | Stefan Landsberg | soo, je hab jetz encore un bisschen weitergebastelt, et es funktioniert aussi alles so comment je es veux. mais jetz hab je wieder mon Problem avec sendmessage. quoi muss je faire, avec cela qui le contenu qui variable firstsqrt% à cela editfeld out$ gesendet wird? KompilierenMarqueSéparationDeclare
declare in&,out&,calcbtn&,stopbtn&,ergebnis$,ende%,eingabe$
PROC-Teil
Proc sqrtlong
Algorithmus zum ziehen einer Quadratwurzel
Parameters zahl$, output&, stopbtn&
declare vorkomma$, div2$, firstsqrt%, firstpart$
zahl$=translate$(zahl$, "," , ".") Dezimalkomma durch Dezimalpunkt ersetzen
vorkomma$=substr$(zahl$,1,".") Ziffern vor dem Komma in vorkomma$ speichern
div2$=substr$(len(vorkomma$)/2,2,".") Prüfen ob die Anzahl der Ziffern vor dem Komma gerade oder ungerade ist.
locate 3,1
print "div2:",div2$
if div2$ = 0
firstpart$=mid$(vorkomma$,1,2) erste 2 Ziffern aus vorkomma$ werden in firstpart$ gespeichert
firstsqrt%=val(substr$(str$(sqrt(val(firstpart$))), 1 , ".")) es wird die sqrt aus firstpart$ gebildet (rest wird weggelassen)
else
firstpart$=mid$(vorkomma$,1,1) erste Ziffer aus vorkomma$ wird in firstpart$ gespeichert
firstsqrt%=val(substr$(str$(sqrt(val(firstpart$))), 1 , ".")) es wird die sqrt aus firstpart$ gebildet (rest wird weggelassen)
endif
locate 4,1 nur zum testen was firstpart$ enhält
print "firstpart:",firstpart$ nur zum test was firstpart$ enhält
locate 5,1
print "firstsqrt:",firstsqrt%
sendmessage(output&,$004A,%hWnd,Addr(firstsqrt%))
endproc
Fenster erstellen
windowstyle 575
windowtitle "Quadratwurzel"
window 20,20 - 600,125
usefont "MS Sans Serif",20,0,0,0,0
Fenster gestalten
in&=create("edit",%hWnd,"25,5",5,5,580,20)
calcbtn&=create("button",%hWnd,"Berechnen",170,30,100,30)
stopbtn&=create("button",%hWnd,"Stop",310,30,100,30)
out&=create("edit",%hWnd,"",5,65,580,20)
whilenot ende%
WaitInput
case %key=2 : break
if clicked(calcbtn&)
sqrtlong gettext$(in&), out&, stopbtn&
endif
endwhile
|
| | | | |
| | | | | | | |
| | Stefan Landsberg | ok ensuite mach ego erstmal avec cela. mais später wäre es aus folgendem grund doch effizienter une autre methode trop prendre ou bien:
Stefan Löwen
Salut,
je prends pour qui ausgabe des ergebnisses un simple editfeld, mais là je dans mon Programme oui à qui vorhandene numéro toujours qui récente berechnete lieu dranhängen veux, ist es meiner attitude pour unpraktisch et wahrscheinlich aussi trop lente toujours seulement den aktuellen text avec gettext aus dem editfeld auszulesen, une récente ziffer dranzuhängen, et ensuite wieder qui numéro avec settext ins editfeld trop écrivons. gibts là une bessere methode ou bien irgendeine message (gibts une page/fichier dans qui qui messages sur allemande erklärt sommes) ?
iF
wm_copyData pourrait Dir ici aider. |
| | | | |
| | | Hängt en ab, si Du quelque chose à qui Cursorposition "anhängen" vouloir (wm_copyData), ou bien den ganzen le contenu ersetzen (setText). |
| | | | |
|
répondreOptions du sujet | 10.327 Views |
Themeninformationencet Thema hat 4 participant: |