HP49 WGV-PACK
EXAMPLES
Ó HEUSON SOFTWARE
INHALT:
WGV: Weggrößenverfahren der Baustatik, XZ, XY, XYZ-Rahmen, Theorie I. und II. Ordnung.
CALENDAR: Kalender zur Verwaltung der Termine mit Tages-, Wochen-, Monatsansicht.
CONSTANT: über 70 physikalische Konstanten, Basis- und abgeleitete Einheiten auch in algebraischen Termen.
HELP49: Hilfe mit allen HP49 Kommandos, einzeln oder gruppiert. Editierbare Hilfeliste.
HPDATA: Datenbankprogramm mit Listen und Formularansicht, Dateneingabe am HP oder PC.
HPTEXT: Textprogramm mit vielen Funktionen, Texteingabe am HP oder PC.
PT: Periodensystem der Elemente mit 6 Eigenschaften, Molekulargewichte, vom Symbol zu den Daten.
UTILS: Programmierwerkzeuge, Memory, Ports, Verschiedenes.
VECTOR: Vektoralgebra für Vektoren mit Variablen.
Diese Textdatei enthält Beispiele zu den meisten Verzeichnissen.
Die Beispiele sind in folgender Form dargestellt:
PROG : O1 O2 .. ON -> O1' .. OM'
Dh. stehen die Objekte O1 .. ON im Stack und man drückt PROG, so ergeben
sich daraus O1' .. OM'. Man gibt zuerst O1 ein, dann O2 usw, im Stack er-
scheint also N: O1 .. 1: ON .
HINWEIS:
Verwenden Sie stets die neueste ROM-Version
VERZEICHNIS WGV
XZRAHMEN (THEORIE I. ORDNUNG)
EINGABE
Wechseln Sie ins Verzeichnis WGV XZRAHMEN und drücken Sie die Taste BXZ2 und es erscheint im Stack 1: { { 0 0 0 4 32000 ¥ o } { 0 4 5 4 25000 ¥ r } { 5 4 8 0 25000 ¥ l }}. Der 1. Stab hat somit die Anfangskoordinaten 0 0 und die Endkoordinaten 0 4, EI=32000 [kNm^2], EA=¥, o = ohne Gelenk, analog für die anderen Stäbe. Für Ihre eigenen Berechnungen müssen Sie diese Liste von Hand eingeben und es empfiehlt sich diese Liste in BXZ2 oder einer anderen Variablen zu speichern.
PLOT und CHECK der Eingabe MIT [STPLOT],[SRPLOT],[CHECK]
Drücken Sie nun [CUSTOM] [STPLOT] (neben C) oder [CUSTOM] [NEXT] [SRPLOT] um einen Plot zu erhalten, man sieht ob man die Stabkoordinaten richtig eingegeben hat, sowie die Nummerierung der Stäbe und Knoten. Die Stäbe werden nach ihrer Reihenfolge in der Liste nummeriert. Die Nummerierung der Knoten geht folgendermaßen: Stab 1 linkes, rechtes Ende = Knoten 1,2; Stab 2 das noch nicht verwendete Ende erhält Nummer 3 usw. Das Programm SRPLOT liefert ein Bild bei dem die Nummern der Knoten mit Kreisen und die der Stäbe mit Kästen eingerahmt sind ist aber etwas langsamer als STPLOT. Die Position der Gelenke entnimmt man der Eingabeliste. Drücken Sie nach Verlassen der Grafikumgebung mit [ON] die Tasten [CUSTOM] [CHECK] und Sie erhalten die Meldung "Eingabe okay". Wenn Sie bei Ihrer Eingabe die Reihenfolge laut Kurzanleitung falsch haben, dann gibt CHECK eine entsprechende Meldung. Beispiel: { { 0 4 5 4 25000 ¥ r } { 0 0 0 4 32000 ¥ o } { 5 4 8 0 25000 ¥ l }}[CHECK] ->"Stab 2 Koordinaten, Gelenke vertauschen".
Berechnung von TI, KIL, KIG MIT [XZKI]
In Stack 1: muß nun das Beispiel BXZ2 stehen. Nach Drücken von [VAR] (Variablenanzeige) und [XZKI] erhält man die Transformationsmatrizen Ti, sowie globale und lokale Steifigkeitsmatrizen kiL, kiG für alle Stäbe nach ca 5 Sek. Die Ausgabe erfolgt in einer Liste {{T1 k1L k1G}..} die für spätere Verwendung zugleich in der Variablen Lki (x NEXT drücken) abgespeichert wird. Ansehen der Liste mit [CUSTOM] [View]. Blättern mit Kursor ab, auf = vor zurück, Kursor links, rechts = erste, letzte Seite des Bildes, beenden der Ansicht mit [ENTER]. Man erhält z.B. die Matrizen des Stabes 3 durch 3 [CUSTOM] [GET]. Das Zerlegen einer Liste in Elemente erfolgt am einfachsten mit [EVAL].
Kges und Kges reduziert MIT [XZKG],[XZKR]
Gesamte Steifigkeitsmatrix (reduziert): Drücken Sie nun [VAR] und wieder [BXZ2]. Jetzt muß man die Liste der Randbedingungen RB ( = Nummern der zu löschenden Zeilen und Spalten) von Hand eingeben in diesem Beispiel: {1 2 3 5 9 10 11 12} [ENTER] (4 Knoten => 4x3=12 Elemente).Im Stack steht nun in 2: {{}} (BXZ2) 1:{1 2...}. Erläuterung: U1,W1,F1,W2,F3,U4,W4,F4=0 =>entsprechende Zeilen/Spalten werden gelöscht. Drücken Sie nun XZKR (reduzierte Gesamtsteifigkeitsmatrix) nach ca 20 Sek. erscheint die reduzierte Gesamtsteifigkeitsmatrix im Stack 1 (=4x4-Matrix, zugleich in Kges abgespeichert).
Ergebnis: :Kges(reduziert) [[6000 12000 0 0][12000 47000 0 3000][0 0 384 -288][0 3000 -288 816]].
Die nicht reduzierte Gesamtsteifigkeitsmatrix (12x12-Matrix) erhält man mit XZKG, Eingabe {{}} (BXZ2), die auch in Kges gespeichert ist. Man kann nachträglich noch die Zeilen und Spalten löschen mit dem Programm RC-. Gibt man ein: 2:[[]] (Kges) 1:{1 2 3 5 9 10 11 12} und drückt [CUSTOM] [RC-] so erhält man wieder Kges(reduziert)
XZKR und XZKG berechnen auch Lki und speichern es in der Variablen 'Lki' ab. Man muß also nicht unbedingt das Programm XZKI ausführen !
VERSCHIEBUNGEN, KINEMATIK mit [KVPRED], [KVP]
Einbau der Nebenbedingungen (Kinematik) und lösen von RTKR*V=RT*P: Geben Sie in den Stack ein: 3:Kges(red) berechnet von XZKR 2: Pges: [-10 -18.75 0 11.25] (Lastvektor) 1:[[1 0][0 1][1 0][-.75 0]] (Reduktionsmatrix für Kinematik, W3=-0.75*U2). Drücken Sie nun [VAR] [NXT] [NXT] [KVPR]. Das Programm KVPRED berechnet nun Vges mit Reduktionsmatrix. Ergebnis: 2: :RT*Kges*RT: [[7275 9750][9750 47000]] 1: Vges:[-2.76E-3 1.75E-4 -2.76E-3 2.07E-3]. Die Reduktionsmatrix wird automatisch in der Variablen 'RedMat' , Pges in 'Pges' , Kges in 'Kges' sowie das Ergebnis Vges in 'Vges' gespeichert für spätere Verwendung. Alle Variablen sieht man durch Drücken von [VAR] und mehrmals [NXT]. Das Programm KVP löst das System K*V=P ohne Reduktionsmatrix und Kinematik.
LOKALE, GLOBALE LASTVEKTOREN mit [PI0LXZ], [PI0G]
Mit dem Programm PI0LXZ werden lokale Lastvektoren interaktiv berechnet. Drücken Sie VAR NXT PI0LXZ zur Berechnung der lokalen Lasten. Man wird zunächst zur Eingabe des Gelenkes aufgefordert (o=ohne, l=links, r=rechts, b=beidseitig) danach zur Eingabe des Lastfalles P M q q12 (=q1,q2) DT T Dw, wenn das Gelenk = o,l,r ist bzw. des Lastfalles p p12 pa T wenn das Gelenk = b ist. Die Bezeichnung der Lastfälle finden Sie in der Kurzanleitung.
Beispiel: Drücken Sie [PI0LXZ], Gelenk l (=links), Lastfall q, dann [ENTER] drücken, nun gibt man bei :q:6 (kN) und bei :l:5 (Stablänge in m) ein und man erhält in Stack 2: die Formel für Gleichlast :pql: {0 '-3*q*l/8' 0 0 '-5*q*l/8' '-q*l^2/8'} und in Stack 1: den berechneten Wert: :pql: [0 -11.25 0 0 -18.75 -18.75].
Berechnung globaler Lastvektoren erfolgt entweder durch Transformation von Hand mit Drehmatrix TaXZ oder mit dem Programm PI0G. Voraussetzung zur Anwendung von PI0G ist, daß Lki mit XZKI oder XZKG, XZKR berechnet wurde und in der Variablen Lki gespeichert ist: 2: [0 -11.25 0 0 -18.75 -18.75] (lokaler Lastvektor berechnet von [PI0LXZ]) 1: 3 (Stab 3) [PI0G], daraus folgt [9 -6.75 0 15 -11.25 -18.75], da lokales und globales System beim schiefen Stab nicht identisch sind.
SCHIEFE LASTEN MIT [PI0S], [QI0S], [WI0S]
Schiefe Lasten berechnen mit PI0S (S=schief). Beispiel: Eingabe: 4: 15 (P=15KN) 3: 0 (a=Winkel von P zu Vertikalen. 2: 5 (=Abstand der Last vom linken Stabende) 1: {2.5 6 10.5 0 10000 100000 o} (=Eingabeliste von Stab) [VAR][NXT][PI0S] -> 2: pL:[-4.5 -6 15 -4.5 -6 -15] (lokaler Lastvektor) 1: pG:[0 -7.5 15 0 -7.5 -15] (globaler Lastvektor). Das Programm funktioniert bei Gelenk l,r,o,b.
Schiefe Schneelast berechnen mit QI0S: 100 (S) {0 0 2.5 6 0 219700 l} -> pLS: {'-p*l/2' '-3*q*l/8' 0 '-p*l/2' '-5*q*l/8' '-q*l^2/8' } pLS:[115.38 ...] pGS:[11.09..]
Schiefe Windlast mit WI0S: 100 {0 0 2.5 6 0 219700 l} -> pLS: {'-p*l/2' '-3*q*l/8' 0 '-p*l/2' '-5*q*l/8' '-q*l^2/8' } pLS:[115.38 ...] pGS:[-236.09..]
EINFLUßLINIEN MIT [PIEL]
Einflußlinien berechnen mit PIEL: Interaktive Eingabe von Lastfall: Dpa,l,r und Gelenk: o,l,r -> Berechnung von p: {..}(Formel) und p: [..] (Wert). Zur Bezeichnung der Fälle siehe Grafik am Ende der Anleitung.
Beispiel: [PIEL] Eingabe LF: Dpa GE: l, Werte: Dp: 100 EI:1E5 a:2(Abstand vom linken Stabende in m) l:5(Stablänge)
-> pDpal: { 0 3*EI*a/l^3*Dp 0 0 -3*EI*a/l^3*Dp -3*EI*a/l^2*Dp} pDpal: [0 480000 0 0 -480000 -2400000]
LOKALE KNOTENKRÄFTE MIT [XZPI]
Lokale Knotenkräfte für jeden Stab berechnen mit dem Programm XZPI. Beispiel BXZ2. Eingabe: 3: Vi : [0 0 1.7564E-4 0 2.0773E-3 -8.6017E-5] (man gibt Vi als 6-Vektor ein [U1 W1 F1 U2 W2 F2] erhalten aus Vges 2: Pi0 [0 -18.75 18.75 0 -11.25 0] 1:2 (Stab Nummer 2). Voraussetzung: man hat Lki berechnet mit XZPI. Man drückt nun [VAR] [NXT] [XZPI] und erhält 2: ri [[0 0 ...]..] Spannungsauswertematrix ri=ki*Ti sowie 1: pi: [0 -20.53 27.61 0 -9.47 0]. Nullzeilen und Spalten in Matrizen kann man von Hand mit [CUSTOM][RC-] löschen, Nullspalten in Vektoren mit [CUSTOM] [COL-]. In obigem Beispiel bei pi erhält man mit {1 4 6} [COL-] : [-20.53 27.61 -9.47]. Der Vektor pi wird in der Variablen 'Pi' gespeichert.
FEDERN IN KGES EINSETZEN MIT [FEDER]
Verwenden Sie hierzu das folgende Beispiel BXZ1 und drücken dann XZKG. Beim einsetzen von Federn muß man stets Kges berechnen. Nun geben Sie die Federliste ein in der Form FL={ Uk a Wk b Pk c } (P=PHI=F, P wurde gewählt, weil das F am HP48 etwas schwer zugänglich ist). Beispiel: 2:Kges (berechnet von XZKG aus Beispiel 1) 1:{U3 1000 P3 1600 } (dh am Knoten 3 greift in U-Richtung eine Zugfeder und in P(=F) eine Drehfeder an). Drücken Sie nun [VAR][NXT][FEDER]. Ausgabe KgesF: [[..]] fast identisch mit der Matrix Kges aus Beispiel 1, die Matrix wird wieder in 'Kges' gespeichert. Das Element {7 7} ist nun 21500 und das Element {9 9 } ist 23600. Durch Löschen der Zeilen und Spalten {1 2 3 10 11 12} mit RC- erhält man die reduzierte Gesamtsteifigkeitsmatrix.
DREHMATRIZEN MIT [TaXZ] UND [KaXZ]
[TaXZ] erzeugt eine Drehmatrix um den Winkel a: 30 (Grad) -> T30: [[.86 -.5 0 ...][.5 .86 0 ...][0 0 1 ..]..] (6x6-Matrix)
[KaXZ] dreht eine 6x6 Steifigkeitsmatrix um den Winkel a. Beispiel: [BXZ2] [XZKI] -> {{}} [CUSTOM] 3 [GET]
2 [GET] -> k3L -53,1301 (Drehwinkel a) [kaXZ] -> [[..]] Matrix identisch zu k3G ([Lki] [CUSTOM] 3 [GET]
2 [GET].
LÖSCHEN DER ERGEBNISSE MIT [XZSET]
Wenn Sie nach einer Berechnung die Ergebnisse Lki, Kges etc nicht mehr benötigen, empfiehlt es sich diese Daten in den entsprechenden Variablen zu löschen um Speicherplatz auf dem Rechner zu sparen. Dies wird durch das Programm XZSET automatisch getan, welches die Zahl 0 in allen diesen Variablen speichert. Drücken Sie hierzu einfach [VAR] [PREV] [XZSET]. Die Liste in Lki umfasst i.a. mehrere KB.
XZRAHMEN (THEORIE II. ORDNUNG)
EINGABE
Wechseln Sie am HP ins Verzeichnis WGV und dann ins Unterverzeichnis XZRAHMEN. Drücken Sie Menütaste B [BXZII] es erscheint : {{0 0 0 8 90000 ¥ o -1116.376}..} im Stack 1: . 0 0 0 8 sind die X und Z Koordinaten vom linken und rechten Ende des Stabes 1, EI=90000, EA=¥ ,o= ohne Gelenke, -1116.376= Normalkraft. ...=analog für die anderen Stäbe. Das Programm [XZKII] bringt eine Fehlermeldung wenn man vergessen hat die Normalkraft einzugeben. Die Orientierung des lokalen Koordinatensystems kann mit dem Programm CHECK : [CUSTOM][CHECK] getestet werden. Vertauschen Sie z.B. beim 2 Stab linke und rechte Koordinaten, so bringt CHECK eine entsprechende Fehlermeldung. Diese Fehlerroutine wurde nicht in XZKI,II eingebaut, damit man Stäbe mit beliebiger lokaler Orientierung berechnen kann.
PLOT und CHECK der Eingabe MIT [STPLOT],[SRPLOT],[CHECK]
Drücken Sie nun [CUSTOM] [STPLOT] um einen Plot zu erhalten und überprüfen Sie die Orientierung der Stäbe mit [CHECK]. Sie können auch mit [SRPLOT] eine graphische Darstellung des Tragwerkes erhalten.
TI, KIL, KIG MIT [XZKII]
Berechnen Sie nun aus BXZII mit [XZKI] : Ti, kiL, kiG nach Theorie I. Ordnung, das Ergebnis ist auch in Lki gespeichert. Sehen Sie die Liste mit [CUSTOM] [View] an und speichern Sie die Ergebnisse zum späteren Vergleich in der Variablen LkiI ab. Berechnen Sie nun mit Theorie II. Ordnung: [VAR] [BXZII] [NXT] [XZKII]. Und vergleichen Sie mit der Theorie I. Ordnung, das Ergebnis ist wieder in 'Lki' gespeichert. Ansehen und Vergleichen durch Zerlegen der Liste mit EVAL oder mit CST View. Die Werte für die Konstanten der Theorie 2.ter Ordnung e A B C D werden berechnet und in der Variablen 'eABCD' gespeichert, wobei die Nummer in der Liste der Stabnummer entspricht. e=l*Ö(ïNï/EI) Stabkennzahl, A,B,C,D werden aus e berechnet (die in XZKII eingebauten Formeln werden hier nicht angegeben.). obiges Beispiel: BXZII ->
'eABCD'={{:e: .89 :A:3.89 :B: 2.02 :C: 2.87 :D: .79} (<- 1. Stab) {:e: 0 :A: 4 :B: 2 :C: 3. :D: 0} (<- 2. Stab)
{:e: .61 :A: 3.95 :B: 2.01 :C: 2.92 :D: .37} (<- 3. Stab)}
KGES UND KGES REDUZIERT MIT [XZKGII],[XZKRII]
Gesamte Steifigkeitsmatrix (nicht reduziert): Drücken Sie [VAR] und [BXZII] [NXT] [XZKGII] (nicht reduzierte Gesamtsteifigkeitsmatrix) Sie erhalten eine 12x12 Matrix :KgesII: [[1941.75 0 8325.22 ...]]. Durch Streichen der Spalten
{1 2 3 5 7 8 9 10 11 12} mit RC- können Sie die reduzierte Gesamtsteifigkeitsmatrix erhalten. Die Berechnungsergebnisse sind in Lki und Kges gespeichert.
Gesamte Steifigkeitsmatrix (reduziert): Drücken Sie nun [VAR] und wieder [BXZII]. Randbedingungen RB: {1 2 3 5 7 8 9 10 11 12} [ENTER] (4 Knoten => 4x3=12 Elemente). Drücken Sie nun [VAR] [NXT] [XZKRII] (reduzierte Gesamtsteifigkeitsmatrix) und vergleichen Sie das Ergebnis mit der Theorie I. Ordnung. Die Kinematik muß wieder gesondert berücksichtigt werden. Ergebnis: :KgesII: [[1941.75 8325.22][8325.22 95996.60]]
XYRAHMEN
PLOT und CHECK der Eingabe MIT [STPLOT],[SRPLOT],[CHECK]
Wechseln Sie ins Verzeichnis XYRAHMEN (Unterverzeichnis von WGV). Sie sehen 2 Beispiele BXY1 und BXY2. Wegen der Symmetrie von BXY1 verwendet BXY2 nur die Stäbe 1 2 4, die von den Programmen jetzt als 1 2 3 numeriert werden. Plotten Sie beide Beispiele mit [CUSTOM] [STPLOT] oder [SRPLOT] zur Ansicht und überprüfen Sie die Orientierung der Stäbe mit [CHECK].
Berechnung von TI, KIL, KIG MIT [XYKI]
Im folgenden wird nur Beispiel BXY2 verwendet, was wegen der Symmetrie ausreicht und weniger Speicher benötigt. Drücken Sie BXY2 und dann [XYKI] und Sie erhalten die Matrizen Ti KiL KiG für die drei Stäbe, auch abgespeichert in der Variablen 'Lki'. Sehen Sie die Matrizen mit [CUSTOM] [View] an. Es sind alles 6x6 Matrizen, entsprechend der Randbedingungen nicht benötigte Zeilen und Spalten kann man mit CST RC- selbst von Hand streichen. Streichen Sie nun zb in der Matrix k3G die Zeilen und Spalten {1 2 3}: [VAR] [NXT][NXT] [Lki] [CUSTOM] 3 [GET] 3 [GET] {1 2 3} [RC-] so erhalten Sie: K3G:[[60 120 -90][120 356 -192][-90 -192 244]]
Kges und Kges reduziert MIT [XYKG],[XYKR]
Drücken Sie [VAR] [BXY2] [XYKG]. Die gesamte XY-Steifigkeitsmatrix wird berechnet Kges = [[60 -120 -90..]..]
(12x12-Matrix). Die Liste der Transformations- und globalen und lokalen Steifigkeitsmatrizen wird berechnet und in Lki gespeichert. [XYKR] gibt die reduzierte Matrix aus bei Eingabe einer Liste der zu streichenden Zeilen und Spalten. Die Programme XYKR und XYKG entsprechen den Programmen XZKR und XZKG.
LOKALE, GLOBALE LASTVEKTOREN mit [PI0LXY], [PI0G]
Berechnen lokaler Lastvektoren für die Lastfälle m,m12,M (Beschreibung der einzelnen Lastfälle siehe Kurzanleitung). Gelenk: o,l,r,gl,gr. (gl,r=Gabellager links rechts). Beispiel: [PI0LXY] Lastfall: q, Gelenk:o ; q:20000 l:5 (Stablänge) ->
pqo: {-q*l/2 0 q*l^2/12 -q*l/2 0 -q*l^2/12} pqo: [-50000 0 41666.66 -50000 0 -41666.66].
Die Berechnung globaler Lastvektoren erfolgt analog zum XZ-Rahmen mit PI0G.
SCHIEFES MOMENT MIT [MI0S]
Berechnung der Lastvektoren bei schiefem Moment M. (S=schief). Beispiel: Eingabe: 4: 20 (M=20KN) 3: 15 (a=Winkel von M zur Vertikalen. 2: 3 (=Abstand M vom linken Stabende) 1: 8 (Stablänge) [VAR][NXT][PI0S] ->
pL: {M*COS(a)*6*a*(l-a)/l^2 ...} pL:[27.16 -3.23 -96.59 -27.16 -15.52 -50.71]
DREHMATRIZEN MIT [TaXY] UND [KaXY]
[TaXY] erzeugt eine Drehmatrix um den Winkel a: 30 (Grad) -> T30: [[1 0 0 ...][0 .86 -.5 ..][0 .5 .86 ...].] (6x6-Matrix)
[KaXY] dreht eine 6x6 Steifigkeitsmatrix um den Winkel a. Beispiel: [BXZ2] [XYKI] -> {{}} [CUSTOM] 1 [GET]
2 [GET] -> k1L 53,1301 (Drehwinkel a) [kaXZ] -> [[..]] Matrix identisch zu k1G ([Lki] [CUSTOM] 3 [GET]
2 [GET].
ÜBERTRAGUNGSMATRIZEN MIT [UIX]
UIX erzeugt aus der Eingabe BXY2 die Übertragungsmatrizen für jeden Stab. Eingabe 1: BXY2 Ausgabe : 1: {U1 U2 U3}
{U1: [[1 0 -.5 -3.33 ..] ..] ...}
VERSCHIEBUNGEN, KINEMATIK, LOKALE KNOTENKRÄFTE mit [KVPRED], [KVP], [XYPI]
Berechnungen analog zum XZ-Rahmen
LÖSCHEN DER ERGEBNISSE MIT [XYSET]
Wenn Sie nach einer Berechnung die Ergebnisse Lki, Kges etc nicht mehr benötigen, empfiehlt es sich diese Daten in den entsprechenden Variablen zu löschen um Speicherplatz auf dem Rechner zu sparen. Dies wird durch das Programm XYSET automatisch getan, welches die Zahl 0 in allen diesen Variablen speichert. Drücken Sie hierzu einfach [VAR] [PREV] [XYSET]. Die Liste in Lki umfasst i.a. mehrere KB.
XYZRAHMEN:
Berechnung von KIL MIT [XYZKI]
wechseln Sie ins Verzeichnis XYZRAHMEN und drücken Sie die Taste [BXYZ], Sie sehen ein Beispiel mit mit einem Stab Eingabe = {{Xl Yl Zl Xr Yr Zr EIY EIZ GI}..}. Das Programm XYZKI gibt die lokalen Steifigkeitsmatrizen KiL aus, die zugleich in der Variablen 'Lki' gespeichert sind. BXYZ -> k1L:[[3571428.57143 0 0 ....]] (12x12)-Matrix
Das Programm [XYZSET] speichert 0 in der Variablen Lki und spart dadurch Speicherplatz.
CALENDAR
(Terminverwaltung)
Hinweis: als Datumsformat wird: DD.MM.YYYY verwendet.
Calendar = selbsterklärendes Programm mit integrierter Hilfe erhältlich durch Drücken von [MODE] im Programm. Sie können das Programm Calendar z.B. der Benutzertaste hold left shift [9] zuweisen: Drücken Sie hierzu im CALENDAR Verzeichnis [->] [Calendar] 74.21 ASN. Speichern Sie dann eine leere Liste im HOME Verzeichnis: {} 'Cdat' [STO]. Ordnen Sie Cdat dann an die letzte Stelle im HOME Verzeichnis mit FILES ORDER. Durch drücken von hold left shift [9] können Sie dann das Programm starten.
CONSTANT
(physikalische Konstanten)
Die Konstanten wurden entnommen aus folgenden Quellen :
CODATA recommended values of the fundamental physical constants, Reviews of Modern Physics April 2000
Particle Data Group, Phys. Rev. D50, August 1994 part I; Cohen, Taylor, Physics Today, August 1994, p. 9-13
The European Physical Journal C 1998. Horst Stöcker, Taschenbuch der Physik, Verlag Harri Deutsch, 1998.
In Klammern sind die Unsicherheiten bei einer Standard-Abweichung in den letzten Zahlen angegeben. (Alle Konstanten ohne Gewähr)
Const gibt Wert von Konstanten bei Eingabe des Symbols.
'c' -> 299792458_m/s; 'hb/(me*c)' -> .. UBASE -> 3.86..E-13_m = Comptonwellenlänge des Elektrons.
'q^2/(4*p*e0*r^2)' (Coulombkraft, r^2 unbestimmt) -> '(2.30..E-28_C^2*m/F)*r^-2'.
'q^2/(4*p*e0*1E-16_m^2)' -> UBASE -> 2.30..E-12_kg*m/s^2.
'Ö(hb*c/G)' -> 1.23..E-6_J*m/C UBASE -> 2.17..E-8_kg Planck Masse.
(p und e werden durch numerische Werte ersetzt !)
{c 'h/(me*c)'} -> {:c: 299792458_m/s '2.42631060001E-12_J*s^2/(kg*m)}
'F=G*mE*mS/rES^2' -> [Ubase] [Uderi] -> 'F=3.54_N' Gravitation Erde-Sonne
'EXP(hb/(me*c)' -> [Ubase] -> 'EXP(3.86E-13m)' Const, Tconst werten Konstanten auch innerhalb von Funktionen aus. Um den numerischen Wert zu erhalten muss man natürlich zuerst [Ubval] oder [Uval] ausführen. 'EXP(3.86E-13m)' [Ubval] [->NUM] -> 1.
Tconst 'F=q^2/(4*p*e0*r^2)' {r 1_cm}, 'r=1_cm' -> 'F=2.30..E-24_N'
Ubase UBASE bei Termen mit Einheiten oder Listen
{:c: 299792458_m/s '2.426E-12_J*s^2/(kg*m)} -> {299792458_m/s 2.426E-12_m }
'l=hb/(MP*c)' Const -> 'l=2.8808684281E-62_J*s^-2*c^2/(GeV*m)'
Ubase -> 'l=1.61604796831E-35_m', l ist die Plancklänge, 'lP' Const -> :lP: 1.61605E-35_m
Uval UVAL bei Termen mit Einheiten oder Listen
{:c: 299792458_m/s '2.42631060001E-12_J*s^2/(kg*m)} -> {299792458 2.42631060001E-12 }
'l=hb/(mP*c)' Const -> 'l=2.88E-62_J*s^-2*c^2/(GeV*m)'
Uval -> 'l=2.88E-62', l ist die Plancklänge
Ubval UBASE UVAL bei Termen mit Einheiten oder Listen
{:c: 299792458_m/s '2.42631060001E-12_J*s^2/(kg*m)} -> {299792458 2.42631060001E-12 }
'l=hb/(MP*c)' Const -> 'l=2.8808684281E-62_J*s^-2*c^2/(GeV*m)'
Ubval -> 'l=1.61604796831E-35', l is the Plancklänge (lP=1.61605E-35_m)
Uderi abgeleitete SI-Einheiten in Termen oder Listen (Uderi ist die inverse Operation von Ubase)
Die SI Einheiten nach denen uderi vereinfacht sind: N J W Pa C V OHM S F Wb H T lm lx
3.4_kg*m^2/(A^2*s^3) -> 3.4_OHM, 1_s^2/(kg*m) -> 1/1_N,
'A*1.2_kg/s^3' -> 'A*1.2_W/m^2'; {2_A^2*s^4/(kg*m^2) 'V*3_kg/(m*s^2)'} -> {2_F 'V*3_Pa'}
UNIVERSAL Universal Constants c ..
ELECTROMAGNETIC electromagnetic constants
ATOMIC-NUCLEAR Atomic and nuclear
PHYSICOCHEMICAL PhysicoChemical Constants
PARTICLEMASS Particle masses in MeVand or kg
ASTROPHSICAL astrophysical constants
SOLARSYSTEM solarsystem data
Hinweis : wenn Sie weitere Konstanten verwenden wollen speichern Sie diese mit Wert und Einheit unter Ihrem Symbol im Verzeichnis CONSTANT ab. Mit Const können Sie dann diese Konstanten aufrufen.
In HELP finden Sie die Symbole und Namen der gespeicherten Konstanten.
HELP49
Hilfeprogramm mit Hilfe zu allen HP49G(+)-Kommandos.
Nach Übertragung des Verzeichnisses HELP49, wechseln Sie in dieses Verzeichnis und drücken die Taste Install, wodurch die Listen Comm49, Commgroup49 und die Hilfeprogramme HelpComm49, HelpGroup49 nach Port 2 kopiert werden und anschließend wird das Verzeichnis HELP49 gelöscht wird. HelpComm49, HelpGroup49 werden den Benutzertasten MODE hold right shift, a right shift zugeordnet. Die CAS Kommandos werden der Taste MODE hold left shift zugeordnet. (Memo H=Help). Um HelpComm49 auszuführen, wechseln Sie in den Usermode durch drücken von <- USER und drücken die beschriebenen Benutzertasten, wonach eine Choose-Box mit allen Kommandos erscheint. Nach Auswahl eines Kommandos erscheint die Hilfe dazu am Bildschirm. HelpGroup49 stellt eine Kopie des ausgewählten Punktes in den Stack, so dass man ihn in einer Variable speichern kann.
Sie können die Listen Comm49, Commgroup49 bearbeiten und Beispiele oder Erläuterungen einfügen. Kopieren Sie dazu die Liste ins Home Verzeichnis, stellen Sie die Liste in Stack 1 und zerlegen sie mit EVAL. Danach können Sie mit dem Kursor zum entsprechenden Kommando hochfahren und die Liste bearbeiten. Am Ende bewegen Sie den Kursor in die oberste Liste mit -> cursor up und führen das Kommando ->LIST aus. Die Liste speichern Sie dann in Comm49, Commgroup49 und kopieren sie wieder nach Port2.
HPDATA
(Datenbank für den HP49)
Ein Datenbankprogramm für den HP49, mit dem man Adressen oder beliebige Datensätze verwalten kann. Das Programm selbst hat nur 4500 KB und ist fast selbsterklärend. Es besitzt einen Listen- und Formularbildschirm und man kann Daten hinzufügen, Löschen, editieren, suchen, sortieren, ausschneiden, kopieren und einfügen. Zwei Beispiele : adress und particle sind im Verzeichnis vorhanden.
Database Datenbankprogramm. 'name' -> start; _ -> start.
Drücken Sie database bei leerem stack. Sie sehen die Meldung
"create new database or select old one key in name". Drücken Sie
jetzt die Menütaste adress und ENTER und Sie sehen den ersten Datensatz von adress.
Kursor links/rechts : vorheriger/nächster Datensatz
Kursor auf/ab : vorherige/nächste Seite des aktuellen Datensatzes des Listenbildschirm
STO : speichere Datenbank;
ON : beendet Program, normalerweise mit ENTER beenden.
NXT : nächste Seite des Menues. Tipt man nochmals NXT, so kommt man zur ersten Seite zurück.
Menuetasten :
ADD : füge neuen Datensatz hinzu bei aktueller Position
DEL : löscht aktuellen Datensatz
EDIT : editiere aktuellen Datensatz
SRCH : suche Datensatz, Angabe eines beliebigen Suchstrings.
LIST : schaltet zwischen Listen- und Formular-ansicht hin und her.
Im Listenbildschirm wird die erste Zeile des Formularbildschirms als Titelzeile dargestellt. Jeder
Datensatz ist mit einer Nummer versehen und der aktuelle Datensatz ist markiert. Alle Funktionen
sind im Listenbildschirm verfügber, aber langsamer als im Formularbildschirm.
STK aktueller Datensatz in den Stack für spätere Verwendung
NXT => Menuetasten:
GOTO : gehe zu Datensatz Nummer n: n -> ..
SORT : sortiere Daten welches langsamer als das HP49 Kommando ist)
CUT : schneide Datensätze von m bis n aus; man kann diese danach
an jeder Position wieder einsetzen.
COPY : Kopiere Datensätze von m bis n, man kann diese danach an
jeder Position wieder einsetzen.
PASTE : Füge kopierte oder ausgeschnittene Datensätze an Position n wieder ein.
OPEN : öffne neue Datenbank ohne die alte zu speichern.
Man kann Datensätze die in der alten DB kopiert oder ausgeschnitten
wurden in die neue Datenbank einsetzen.
ADRESS.DB Beispiel Adress-Datenbank, PARTICLE.DB Beispiel Datenbank mit Teilchendaten.
S«D transformiert String in Datenbank, die einzelnen Datensätze müssen durch 2 Newlines
getrennt sein. Man kann so ASCII-Daten vom PC -> HP transferieren und mit S->DB
formatieren.
PC®D String vom PC (enthält Sonderzeichen n) Þ Datenbank {} wobei n gelöscht wird.
D®EQ Datenbank, satz mit Gleichung zB {"Newtons Law 'F=m*a' " } -> Gleichung {'F=m*a'}
zur Verwaltung einer Formelsammlung von Gleichungen
HPTEXT
(Textprogramm für den HP49)
Ein Textprogramm für den HP49. Die Erläuterungen hierzu befinden sich in der Datei HELP.TXT im Verzeichnis HPTEXT. Drückt man Textview und dann HELP.TXT, so sieht man Erklärungen zu den Dialogprogrammen.
Texte werden in Zeichengröße 1 dargestellt und sind eine Liste von Strings. Man kann daher sehr schnell auf beliebige Seitenzahlen eines Textes zugreifen. Das formatieren eines beliebigen Strings oder anderen Objektes erledigt das Programm S<-->T, wobei newline Zeichen beachtet werden. Ist ein String länger als 33 Zeichen so wird automatisch umgebrochen. Man kann daher die Texte einfach im PC als ASCII-Texte eingeben, zum HP49 übertragen (auch im Binärmodus) und mit S<->T formatieren.
Textview view und edit von Texten die mit S<->T formatiert worden sind.
'TEXT' -> view; leerer Stack oder anderes Object -> Eingabe eines Textnamens wird verlangt.
Kursor auf,ab,links,rechts = vorherige,nächste,erste,letzte Seite.
[STO] : speichere Text unter aktuellem Namen
[NXT] : schaltet zur nächsten Menueseite
[ENTER] Beende Programm mit/ohne Speichern der Änderungen
[ON] unterbricht Programm ohne Speichern der Änderungen
n [] (beliebige Taste ausser ON) : gehe zu Seite n, Zb 3 [] Seite 3 [] 23 Seite 23 etc
open : öffne neuen Text, ohne speichern der Änderungen
savas : speichere Text unter neuem Namen
edit : editiere aktuelle Seite, drücke CONT nach dem Editieren
del : lösche aktuelle Seite
stck : kopiere Text zwischen Seite Linie p1 l1 p2 l2 in den Stck
p:n zeigt aktuelle Seitenzahl, oder gehe zu Seite ?
Menuetasten (zweite Seite)
cut : schneide Text zwischen Seite Linie p1 l1 p2 l2
copy : kopiere Text zwischen Seite Linie p1 l1 p2 l2
paste : setze (kopierten oder ausgeschnittenen) Text an Seite Linie p1 l1 ein
srch : suche Text beginnend bei nächster Seite, gebe Suchstring ein.
repl : ersetze alten String durch neuen String, beginnend bei nächster Seite.
p:n zeigt aktuelle Seitenzahl, oder gehe zu Seite ?
Man kann das Program mit [ON] bebenden, dann bleibt -1 im Stack (von -1 WAIT)
S«T beliebiger String (zb. vom PC übertragen) Û Text mit Zeilenumbruch
S«P String mit korrekter Zeilenlänge <= 33 Û Textseiten ohne Zeilenumbruch
Deln PC-string enthält häufig n von Tabulatoren etc. Þ n gelöscht
HELP.TXT Text mit Erklärung der Programme. TIMBUKTU.TXT weiteres Textbeispiel
PT
(Periodic Table of Elements)
Quellen :
Particle Data Group (1998) Internet
Particle Data Group, Phys. Rev. D50, 1243 (1994)
Particle Data Group, Phys. Rev. D54, PartI (1996)
enthält das Periodensystem der Elemente und Programme die einen sehr
schnellen Zugriff auf die Elemente des Periodensystems und deren
Eigenschaften gestatten. Das Verzeichnis PTE muß im HOME-Verzeichnis
gespeichert werden!
Pts,l,g -> Periodensystem, blättern mit cursor up/down
Eldat gibt Daten des Elementes aus, bei Eingabe des chemischen Symbols:
Aa -> { Symbol Name Gruppe El.Konf. Masse Ordnungszahl}. zB: 'O' ->
{ O Oxygen :G: 16 :M: 15.9994 :Z: 8 :EC: "(He)(2s)^2(2p)^2" }
Elvw chemisches Symbol => Bild der Element-daten + Liste
Molwt Molekulargewicht einer chemischen Verbindung
'AmBCn' -> M(AmBCn): m.n1..nk; Beispiele : 'H2O' ->
M(H2O): 18.01528_g/mol; 'Fe3O4' -> M(Fe3O4): 231.5386_g/mol;
'CH3COOH' -> M(CH3COOH): 60.05256_g/mol.
Atwt Atomgewicht M eines Elementes bei Eingabe des Symboles :
Aa -> M(Aa): M zB 'U' -> M(U): 238.0289_g/mol.
Atno Ordnungszahl Z eines Elementes bei Eingabe des Symboles :
Aa -> Z(Aa): Z; zB 'U' -> Z(U): 92.
Nno Neutronenzahl N eines Elementes bei Eingabe des Symboles :
Aa -> N(Aa): N; zB 'U' -> N(U): 146. Hinweis : Die Angabe von N
ist problematisch, wenn mehrere stabile Isotope vorhanden sind.
Das Programm ermittelt die Differenz M-Z und rundet auf bzw ab.
Z->EL Gibt bei Eingabe von Z die Liste mit den Elementeigenschaften aus:
Z -> { .. }. zB 45 -> { Rh .. }.
N->EL NAME to ELement-data : 'NAME' -> { .. };
Oxygen -> { O Oxygen :G: 16 :M: 15.9994 :Z: 8 :EC: "(He).." }
Das Unterverzeichnis ELEMENTS enthält die Elemente in alphabetischer
Reihenfolge. Man kann sie editieren, um neue Elemente und Daten hinzuzufügen.
Gruppen des Periodensystems : 1..18 LAN (Lanthaniden) ACT (Actiniden).
Die Programme ELDAT, MOLWT arbeiten von jedem Verzeichnis aus. Man kann
sie zB in HOME speichern und hat sie dann überall zur Verfügung!
UTILS
(Utilities: Programmierung, Verschiedenes)
Srch 'FILE' -> { PATH1 }., Suche File in allen Directories in HOME aber nicht Subdirectories, sowie
in allen Ports.
Srchall 'FILE' -> { PATH1 }.{PATH2} :2: FILE ..., Suche File in allen Directories in HOME aber nicht
Subdirectories, sowie in allen Ports und gib alle Pfade aus.
Repl ersetze String SO in Objekt durch SN << a b c d >> "c " "xy" -> << a b xy d >>
<< HALT ALT >> "ALT" "NEU" -> << HNEU NEU >>
Replall ersetze SO in Objekt total durch SN : << a b c d a >> "a" "x" -> << x b c d x >>
Rcl 'FILE' -> <<>> 'FILE' File in Stack gestellt, wenn File in Home, Verzeichnissen in Home und Ports 0,1,2
Preval 'PROG' -> Programm ausgewertet , wenn PROG in irgendeinem Directory in HOME oder Port ist
Strxlist String zu Liste von Strings, nützlich für Daten vom PC. Der String wir bei jeder neuen Zeile in Substrings zerlegt.
"1
2
3" <-> {"1" "2" "3" }
"1 2
3 4" <-> {"1 2" "3 4"}
Strxobj String zu Liste von Objekten, nützlich für Daten vom PC.
gleiches Beispiel wie oben oder "1 2 3" -> {1 2 3}; führt OBJ-> aus. Seien Sie vorsichtig mit Texten vom PC, die eventuell Programmnamen oder HP49 Kommandos enthalten können.
Typchk Typecheck: Objekt { mögliche Typen } -> Objekt, wenn Objekttyp nicht in Liste -> ERROR
7.5 { 0 1 } -> 7.5 (okay); 'x*y' { 0 1 } -> 'x*y', ERROR
{X (0,1) 2 'X^2+a*X'}{0 1 5 6 9}->{X (0,1) 2 'X^2+a*X'} (okay)
{X (0,1) 2 'X^2+a*X'"a"}{0 1 5 6 9}->{X (0,1) 2 'X^2+a*X'"a"}, ERROR
Ermsg Errormessage n -> Message. Erzeugt HP-Fehlermeldungen
1 -> "Insufficient Memory", 514 -> "Bad Argument Type"
Choose erzeugt Choose Box mit Programmen im aktuellen Verzeichnis
Menus erzeugt Choose Box mit verborgenen Menus und alten HP48 Menus
Sort sortiere Listen mit Zahlen und Variablen in alphabetischer Ordnung
{ 2 X 1 a A } -> { 1 2 A X a }
View view object (end view mit [okay] oder ON)
Pview Seitenansicht von Objekt im Minifont, Ansicht von Listen von Listen
¬®¯=erste, letzte,vorige,nächste Seite
5 [] gehe zu Seite 5; 12 [] gehe zu Seite 12 etc, Ende mit [ENTER]
Pview2 Seitenansicht von Objekt im Large Font, Kursortasten wie bei Pview
Vview Vektoren, Listen in vertikaler Ansicht
Stview stack view in einem Bild blättern mit Kursor up down
Pictview Ansicht von Textstrings und Bildern zusammen, scrollen mit Kursortasten.
Beispiel: Eine Liste mit Graphikobjekten (grobs) und Textstrings wird als Bild dargestellt.
Txtview Textview von 10 Zeilen Texten, ¬®¯=erste, letzte,vorige,nächste Seite
5 [] gehe zu Seite 5; 12 [] gehe zu Seite 12 etc, Ende mit [ENTER]
S<->Txt String <-> Text mit 10 Zeilen; Help.Txt = Textbeispiel und Hilfe
Keymanager Programm zur Verwaltung der Benutzertastatur, selbsterklärendes Dialogprogramm
mit integrierter Hilfe!
Userkeys speichert folgende nützliche Benutzertastatur 1:_ 1:_
Wobei [¬],[®] = left,right shift hold (¬,®gedrückt halten)
[®]+[F5] = ausmultiplizieren (EXPAND+FDISTRIB), [®]+[F6] = faktorisieren (COLLECT)
[APPS] = FILES, [¬]+[] = large/small Stack; [¬]+[¯] = View Object, [HIST]=CMD (last commands)
[®]+[COS]= differenziere nach VX, (DERVX+EXPAND), [®]+[TAN]= integriere nach VX (INTVX+EXPAND), [®]+[5]=STAT Menü, [¬]+[2]= lösche Variable (PURGE über DEFINE), [¬]+[3]=CONST. Kommentar: Die [APPS] Taste wird kaum benötigt und ist daher im USER-Modus durch [FILER] ersetzt. Ebenso wird [HIST] durch CMD ersetzt.
Delkeys löscht Benutzertastatur (mit Bestätigung) 1:_ 1:_
Flagreset setzt folgende Flags
-22: Infinite -> +-9E499, -27: 'X+Yxi'-> 'X+Yxi', -28 Simulteanous Plot, -35: Binary transfer
-41: 24-hour clock, -42: dd.mm.yy format, -56 Standard beep off, -61: [USR] locks User
-62: User keys on, -70 ->GROB x lines str, -90 CHOOSE mini font, -117 Soft MENU,
-120: Silent mode on, -128 Vars are reals
Flagprog erzeugt ein Programm zum Flag Reset, welches die 1:_ 1:_
Flags auf die aktuellen Werte setzt,
und der Benutzertaste hold [®] [Ö] (R=Reset) zugewiesen wird.
STARTUP speichern Sie dieses Programm in HOME,
setzt KEYTIME auf 0, schaltet userkeys ein, 1:_ 1:_
zeigt VAR Menu nach jedem Warmstart [ON]+[F3]
VECTOR
(Vektoralgebra)
Hinweis: die meisten Programme arbeiten mit Vektoren als Arrays und Listen [1 2 3] <-> {1 2 3},
Vadd [A B C] [1 2 3]->['A+1' 'B+2' 'C+3']
Vsub [A B C] [1 2 3]->['A-1' 'B-2' 'C-3']
Vsmul [A B C] A -> ['A^2' 'A*B' 'A*C']
Vdot [A B C] [1 2 3]-> '1*A+2*B+3*C'
Vcross [A B C] [1 2 3]->['3*B-2*C' '-(3*A-C)' '2*A-B']
Vabs [A B C] -> 'Ö(A^2+B^2+C^2)' (real mode) , 'Ö(ïAï^2+ïBï^2+ïCï^2)' (complex mode)
Vunit [1 2 3] -> ['Ö14/14' 'Ö14/7' '3*Ö14/14']
Vangle [1 2 3] [4 5 6]-> 12.93 (DEG) ; .2257 (RAD)
Vtriple [1 2 3][4 5 6][7 8 1]-> 24
Vproj [1 2 3][4 5 6] -> ['128/77' '160/77' '192/77']
Schmidt [[-1 2 3 0][0 1 2 1][2 -1 -1 1]] (or [[]]) -> [ '-Ö14/14' 'Ö14/7' '3Ö14/14' 0 ][..][..]].
Vouter [1 2 3] [4 5 6]-> [[4 5 6][8 10 12][12 15 18]]
Vcoord [[1 2 3][4 5 6][7 8 1]] [2 1 3] -> ['-(73/24) ' '37/12' '-(3/8)']
Vdist [1 2 3] [4 5 6] -> '3*Ö3'
Vpart [1 2 3] [4 5 6] 2 -> [3 4 5]
->gij [[1 2 3][4 5 6][7 8 1]] -> [[14 32 26][32 77 74][26 74 114]]
C«C [[1 2 3][4 5 6][7 8 1]] <-> [['-43/24' '19/12' '-1/8']['11/12' '-5/8' '1/4']['-1/8' '1/4' '-1/8']]
B->UVECT [[1 2 3][4 5 6][7 8 1]] -> [['Ö14/14' 'Ö14/7' '3Ö14/14']['4*Ö77/77' ..][]]
R->SP [1 2 3] -> ['Ö14' 'ATAN(2)' 'ATAN(Ö5/3)']
SP->R ['Ö14' 'ATAN(2)' 'ATAN(Ö5/3)'] CST XNUM XQ -> [1 2 3]
R->CY [1 2 3] -> ['Ö5' 'ATAN(2)' 3]]
CY->R ['Ö5' 'ATAN(2)' 3]]-> CST XNUM XQ -> [1 2 3]
P->V [1 2 3] <<Ö >> -> [ 1 Ö2 Ö3]