| 1 |
james |
21 |
PROC m: |
| 2 |
|
|
GLOBAL a$(10),s$(10),t$(25),u$(25),v$(25) |
| 3 |
|
|
STATUSWIN ON |
| 4 |
|
|
FONT 12,0 |
| 5 |
|
|
gAT RND*gWIDTH,RND*gHEIGHT |
| 6 |
|
|
DO |
| 7 |
|
|
IF i: |
| 8 |
|
|
c: |
| 9 |
|
|
ELSE |
| 10 |
|
|
a$="" :s$="" :t$="" :u$="" :v$="" |
| 11 |
|
|
ENDIF |
| 12 |
|
|
gLINETO RND*gWIDTH,RND*gHEIGHT |
| 13 |
|
|
UNTIL 0 |
| 14 |
|
|
ENDP |
| 15 |
|
|
|
| 16 |
|
|
PROC i: |
| 17 |
|
|
LOCAL d% |
| 18 |
|
|
dINIT |
| 19 |
|
|
dTEXT "","Uniform acceleration: enter 3 values",$302 |
| 20 |
|
|
dEDIT a$,"Acceleration (a) ms-ý" |
| 21 |
|
|
dEDIT s$,"Displacement (s) m" |
| 22 |
|
|
dEDIT t$,"Time (t) s" |
| 23 |
|
|
dEDIT u$,"Initial velocity (u) ms-û" |
| 24 |
|
|
dEDIT v$,"Final velocity (v) ms-û" |
| 25 |
|
|
dBUTTONS "Exit",-27,"Clear all",-9,"Calculate",13 |
| 26 |
|
|
d%=DIALOG |
| 27 |
|
|
IF d%=0 :STOP :ENDIF |
| 28 |
|
|
RETURN (d%=13) |
| 29 |
|
|
ENDP |
| 30 |
|
|
|
| 31 |
|
|
PROC c: |
| 32 |
|
|
LOCAL a,s,t,u,v,t%,u1,u2,v1,v2,t1,t2 |
| 33 |
|
|
|
| 34 |
|
|
ONERR error1 |
| 35 |
|
|
IF a$<>"" :a=EVAL(a$) :ENDIF |
| 36 |
|
|
IF s$<>"" :s=EVAL(s$) :ENDIF |
| 37 |
|
|
IF t$<>"" :t=EVAL(t$) :ENDIF |
| 38 |
|
|
IF u$<>"" :u=EVAL(u$) :ENDIF |
| 39 |
|
|
IF v$<>"" :v=EVAL(v$) :ENDIF |
| 40 |
|
|
ONERR OFF |
| 41 |
|
|
|
| 42 |
|
|
t%=-(a$<>"")*10000-(s$<>"")*1000-(t$<>"")*100-(u$<>"")*10-(v$<>"") |
| 43 |
|
|
|
| 44 |
|
|
ONERR error2 |
| 45 |
|
|
IF t%=00111 :s=0.5*(u+v)*t :a=(v-u)/t |
| 46 |
|
|
ELSEIF t%=01011 :t=s/(0.5*(u+v)) :a=(v-u)/t |
| 47 |
|
|
ELSEIF t%=01101 :u=(2*s)/t-v :a=(v-u)/t |
| 48 |
|
|
ELSEIF t%=01110 :v=(2*s)/t-u :a=(v-u)/t |
| 49 |
|
|
ELSEIF t%=10011 :t=(v-u)/a :s=0.5*(u+v)*t |
| 50 |
|
|
ELSEIF t%=10101 :u=v-a*t :s=0.5*(u+v)*t |
| 51 |
|
|
ELSEIF t%=10110 :v=u+a*t :s=0.5*(u+v)*t |
| 52 |
|
|
ELSEIF t%=11001 :u1=SQR(v*v-2*a*s) :t1=(v-u1)/a :u2=-u1 :t2=(v-u2)/a :u=&7fffffff |
| 53 |
|
|
ELSEIF t%=11010 :v1=SQR(u*u+2*a*s) :t1=(v1-u)/a :v2=-v1 :t2=(v2-u)/a :v=&7fffffff |
| 54 |
|
|
ELSEIF t%=11100 :u=(s-0.5*a*t*t)/t :v=u+a*t |
| 55 |
|
|
ELSE ONERR OFF :GIPRINT "Enter 3 values!",1 :RETURN |
| 56 |
|
|
ENDIF |
| 57 |
|
|
ONERR OFF |
| 58 |
|
|
|
| 59 |
|
|
a$=GEN$(a,10) |
| 60 |
|
|
s$=GEN$(s,10) |
| 61 |
|
|
IF u=&7fffffff OR v=&7fffffff |
| 62 |
|
|
t$=GEN$(t1,10)+" or "+GEN$(t2,10) |
| 63 |
|
|
ELSE |
| 64 |
|
|
t$=GEN$(t,10) |
| 65 |
|
|
ENDIF |
| 66 |
|
|
IF u=&7fffffff |
| 67 |
|
|
u$=GEN$(u1,10)+" or "+GEN$(u2,10) |
| 68 |
|
|
ELSE |
| 69 |
|
|
u$=GEN$(u,10) |
| 70 |
|
|
ENDIF |
| 71 |
|
|
IF v=&7fffffff |
| 72 |
|
|
v$=GEN$(v1,10)+" or "+GEN$(v2,10) |
| 73 |
|
|
ELSE |
| 74 |
|
|
v$=GEN$(v,10) |
| 75 |
|
|
ENDIF |
| 76 |
|
|
RETURN |
| 77 |
|
|
|
| 78 |
|
|
error1:: |
| 79 |
|
|
ONERR OFF |
| 80 |
|
|
GIPRINT "Entry error: "+ERR$(ERR),1 |
| 81 |
|
|
RETURN |
| 82 |
|
|
error2:: |
| 83 |
|
|
ONERR OFF |
| 84 |
|
|
GIPRINT "Calculation error: "+ERR$(ERR),1 |
| 85 |
|
|
RETURN |
| 86 |
|
|
ENDP |