| |
|
|
p.specht
| In einen Zylinder mit gegebenem Innendurchmesser Z sollen N Spiegel (N>2) der Dicke D zu einem KALEIDOSKOP eingepasst werden. Gesucht ist die Spiegelbreite B des normal (mit 90°) abgekanteten Glases.
WindowTitle "Kaleidoskop-Berechnung"
'Versuchsprogramm, nicht sehr ausführlich getestet: OHNE JEDE GEWÄHR!
WindowStyle 24
Declare b!,d!,n&,ZyDm!,r!,w$
Repeat
CLS
font 0
sound 4000,30
print "\n In einen Zylinder mit gegebenem Innenradius r sollen n Spiegel (n>2)"
print " der Dicke d zu einem KALEIDOSKOP eingepasst werden. Gesucht ist die "
print " Spiegelbreite b des normal (mit 90°) abgekanteten Glases bei der "
print " gewünschten Spiegelanzahl, gegebenem Innendurchmesser des Zylinders ZyDm"
print " und bekannter Dicke D des Spiegelglases.\n\n Formel:\n"
print " b = 2*sin(Pi/N)*(d*cos(pi-pi/N) + Sqrt(d^2*(sin(Pi-Pi/N))^2+(ZyDm/2)^2)) \n"
font 2
print "\n Zylinder-Innendurchmesser ZyDm [mm] = ";format$("%g",ZyDm!);" "
print "\n Spiegeldicke d [mm] = ";format$("%g",d!);" "
print "\n Anzahl Spiegel n = ";n&;" "
locate %csrlin-6,1
print "\n Zylinder-Innendurchmesser ZyDm [mm] = ";:input w$:case w$>"":ZyDm!=val(w$)
locate %csrlin-2,1
print "\n Zylinder-Innendurchmesser ZyDm [mm] = ";format$("%g",ZyDm!);" "
print "\n Spiegeldicke d [mm] = ";:input w$:case w$>"":d!=val(w$)
locate %csrlin-2,1:print "\n Spiegeldicke d [mm] = ";format$("%g",d!);" "
print "\n Anzahl Spiegel n = ";:input w$:case w$>"":n&=val(w$)
locate %csrlin-2,1:print "\n Anzahl Spiegel n = ";n&;" "
case (zydm!<=0) or (n&<=2) or (d!<=0) or (d!>=zydm!):continue
if (sqr(d!)*sqr(sin(pi()-pi()/N&))+sqr(ZyDm!/2))>=0
b! = 2*sin(Pi()/N&)*(d!*cos(pi()-pi()/N&) + Sqrt(sqr(d!)*sqr(sin(pi()-pi()/N&))+sqr(ZyDm!/2)))
print "\n\n Die Spiegelbreite sollte betragen: ";format$("######0.#####",b!);" [mm]"
sound 400,60
Else
print " Lösung negativ!":sound 80,333
endif
waitinput 10000
UNTIL %Key=27
END
|
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 28.05.2021 ▲ |
|
|
|