Foro | | | | - Página 1 - |
| Stefan Landsberg | ¡Hola,
Yo möchte una Programa escribir, dass el Quadratwurzel un número berechnet. ABER lo se no en 6 Nachkommastellen runden, pero solange weitermachen a uno en Stop klickt.
Cuestión: (como) puede ser el Kürzen en 6 Nachkommastellen en sqrt() y pow() abstellen.
Si el no va, entonces muss Yo irgend una Procedimiento einfallen dejar el dass macht. Aber Por favor, no Fertiglösung puesto. Dann lerne Yo nichts.
Noch una Cuestión: es en XProfan 10 el länge uno floats begrenzt? |
| | | | |
| | | | | - Página 1 - |
| Jac de Lad | Nein, nein, nein! Typischer Anfängerfehler. Um con el Eingaben a rechnen musst du lo sólo de String en una Float umwandeln (siehe "Val()") y a Edición en el MultiEdit otra vez en una String (siehe "Str$()").
Declarar
declarar in&,out&,btn&,ergebnis$,ende%,eingabe$
Ventana redactar
windowstyle 575
windowtitle "Quadratwurzel"
window 20,20 - 600,400
usefont "MS Sans Serif",20,0,0,0,0
Ventana 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
caso %key=2 : romper
if clicked(btn&)
eingabe$=gettext$(in&)
ergebnis$=Str$(sqrt(Val(eingabe$)))
settext out&,""
settext out&,ergebnis$
endif
endwhile
Kürzer wäre dein Prog así:
Declarar
declarar in&,out&,btn&,ende%
Ventana redactar
windowstyle 575
windowtitle "Quadratwurzel"
window 20,20 - 600,400
usefont "MS Sans Serif",20,0,0,0,0
Ventana 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
if %key=2
romper
elseif clicked(btn&)
settext out&,Str$(sqrt(Val(gettext$(in&))))
endif
endwhile
Zum Thema Berechnung:
Usted puede entweder jede Punto einzeln berechnen dejar oder una Zahl quadrieren y je después de si ellos a groß oder a klein es siempre una wenig erhöhen oder abziehen. Dazu musst du los números en Cuerdas speichern y jede Punto 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 | ¡Hola,
Yo nehme para el ausgabe des ergebnisses una einfaches editfeld, aber como Yo en mi Programa sí a el vorhandene zahl siempre el neu berechnete lugar dranhängen voluntad, es meiner meinung después de unpraktisch y wahrscheinlich auch a langsam siempre sólo el aktuellen texto con gettext de el editfeld auszulesen, una neu ziffer dranzuhängen, y luego otra vez el zahl con settext en el editfeld a escribir. gibts como una bessere methode oder irgendeine mensaje (gibts una seite/datei en el el messages en Alemán erklärt son) ? |
| | | | |
| | | wm_copyData podría Usted hier helfen. |
| | | | |
| | Stefan Landsberg | hallo, danke primero aber hay irgendwo ne dokumentation en el el messages verständlich (al besten Alemán) erklärt son? Yo blick en msdn no así correcto por! |
| | | | |
| | | Klar, XProfan.com búsqueda y google son el Helfer en solcher Not! |
| | | | |
| | Stefan Landsberg | después de que jetz endlich otra vez una wenig zeit para XProfan gefunden tener (schule beansprucht ne todo menge zeit. antes allem latein ) lugar Yo veces otra vez una frage:
por qué wir en el if abfrage no wert a el variable firstpart$ transferencia? Yo tener auch ya intenta ellos como integer a declarieren. va auch no:
Declarar
declarar in&,out&,calcbtn&,stopbtn&,ergebnis$,ende%,eingabe$
PROC-Teil
Proc sqrtlong
Algorithmus para ziehen uno Quadratwurzel
Parámetros zahl$, output&, stopbtn&
declarar vorkomma$, div2%, firstsqrt%, firstpart$
zahl$=translate$(zahl$, "," , ".") Dezimalkomma por Dezimalpunkt sustituir
vorkomma$=substr$(zahl$,1,".") Ziffern antes el Komma en vorkomma$ speichern
div2%=Instr(".",str$(substr$(len(vorkomma$ / 2),1,"."))) Prüfen si el Anzahl el Ziffern antes el Komma gerade oder ungerade es.
if div2% = 0
firstpart$=mid$(vorkomma$,0,2) erste 2 Ziffern de vorkomma$ voluntad en firstpart$ gespeichert
firstsqrt%=substr$(str$(sqrt(val(firstpart$))), 1 , ".") lo se el sqrt de firstpart$ gebildet (rest se weggelassen)
más
firstpart$=mid$(vorkomma$,0,1) erste Ziffer de vorkomma$ se en firstpart$ gespeichert
firstsqrt%=substr$(str$(sqrt(val(firstpart$))), 1 , ".") lo se el sqrt de firstpart$ gebildet (rest se weggelassen)
endif
locate 4,1 sólo para testen qué firstpart$ enhält
imprimir "firstpart:",firstpart$ sólo para test qué firstpart$ enhält
sendmessage(output&,$004A,%hWnd,Addr(firstsqrt%))
ENDPROC
Ventana redactar
windowstyle 575
windowtitle "Quadratwurzel"
window 20,20 - 600,125
usefont "MS Sans Serif",20,0,0,0,0
Ventana 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
caso %key=2 : romper
if clicked(calcbtn&)
sqrtlong gettext$(in&), out&, stopbtn&
endif
endwhile
|
| | | | |
| | | Der Zweite Parámetro de Mid$ muss mindestens 1 ser si uno tatsächlich de erster Position ermitteln möchte. |
| | | | |
| | Stefan Landsberg | ahhh, danke (por qué bin Yo como no incluso en él gekommen ) |
| | | | |
| | | | - Página 2 - |
| | Stefan Landsberg | soo, Yo tener jetz todavía una bisschen weitergebastelt, y lo funktioniert auch alles como Yo voluntad. Aber jetz tener Yo otra vez mein Problema con sendmessage. Was muss Yo hacer, así el inhalt el variable firstsqrt% a el editfeld out$ gesendet se? KompilierenMarcaSeparaciónDeclare
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 entonces mach ego primero así. aber später wäre lo de folgendem grund doch effizienter una otro methode a nehmen oder:
Stefan Löwen
¡Hola,
Yo nehme para el ausgabe des ergebnisses una einfaches editfeld, aber como Yo en mi Programa sí a el vorhandene zahl siempre el neu berechnete lugar dranhängen voluntad, es meiner meinung después de unpraktisch y wahrscheinlich auch a langsam siempre sólo el aktuellen texto con gettext de el editfeld auszulesen, una neu ziffer dranzuhängen, y luego otra vez el zahl con settext en el editfeld a escribir. gibts como una bessere methode oder irgendeine mensaje (gibts una seite/datei en el el messages en Alemán erklärt son) ?
IF
wm_copyData podría Usted hier helfen. |
| | | | |
| | | Hängt su de, si Usted algo a el Cursorposition "anhängen" möchtest (wm_copyData), oder el ganzen Inhalt sustituir (setText). |
| | | | |
|
RespuestaTema opciones | 10.317 Views |
ThemeninformationenDieses Thema ha 4 subscriber: |