3.2. dreieck.85g - Ein Programm zur Dreiecksberechnung

rc_next.gif (188 Byte)

 

Aus mindestens 3 gegebenen Stücken ermittelt das Programm alle restlichen Seiten, Winkel usw.

Zur Verfügung stehen:

  • Die Seiten a, b, c
  • Die Winkel a b g
  • Die Höhe hc
  • Die Katheten p und q und
  • der Flächeninhalt A
dreieck.gif (1389 Byte)

Über Menüs werden zuerst alle gegebenen Stücke eingegeben. Es stehen die Menüs [Seite], [Winkl] und [Sonst] zu Auswahl. Sie führen jeweils zu Untermenüs, in denen die einzelnen Stücke (Seiten, Winkel...) zur Auswahl stehen.

Seite Winkl Sonst go.on Exit

Durch Betätigung der Taste [F4], die für go.on steht, gelangt man in das zweite Menü. Es wird nach der Art des Dreiecks gefragt. Man kann wählen zwischen rechtwinkligem, gleichseitigem, gleichschenkligem und allgemeinem Dreieck. Diese Informationen ist wichtig für die weitere Berechnung der Werte. Gegebenenfalls werde bereits jetzt erste Stücke ermittelt (z.B. im gleichseitigem Dreieck sind ja somit alle 3 Seiten gegeben).

recht glsei glsch allg.

Nach dieser Auswahl wird eine Liste mit allen gegebenen Stücken eingeblendet. Nach Druck auf die Taste [Enter] beginnt das Programm mit der Berechnung.

Quelltext: (Auszug)

Hinweis: Aufgrund des Programmumfangs stehen an dieser Stelle nur Teile des Programmcodes. Der komplette Quelltext ist im TI-85 Programmformat oder Textformat im gleichen Verzeichnis vorhanden: dreieck1.txt , dreieck2.txt , dreieck3.txt

Anweisungen Erläuterungen
:ClLCD Das Display wird gelöscht.
:0®A2: 0®B2: 0®C2 ... Allen im Programm verwendeten Variablen wird der wert 0 zugewiesen.
:Fix 3 Die Anzahl der angezeigten Dezimalstellen wird auf 3 gestellt.
:Degree Im TI-85 [MODE] Menü wird die Winkelmaßeinheit auf Degree gestellt, um die Winkelfunktionen verwenden zu können.
:Disp "Dreiecksberechnung"
:Disp "Version 1.0"
:Disp "Schmedi(@)sax.de"
:Disp " "
Informationen über Programm und Programmierer werden ausgegeben.
:Disp "Was ist gegeben?"
:Lbl Men
Die Marke Men wird deklariert.
:Menu(1,"Seite",Ds,2,"Winkl",Dw,
3,"sonst",Dso,4,"go.on",Dgo,5,"Exit",De)
Das Menü wird definiert. Es besitzt 5 Optionen (siehe oben). Jede Option enthält einen Sprungbefehl...
:Lbl Ds
:Menu(1,"a",Dsa,2,"b",Dsb,3,"c",Dsc)
:Lbl Dsa:Input "a=",A2:Goto Men
:Lbl Dsb:Input "b=",B2:Goto Men
:Lbl Dsc:Input "c=",C2:Goto Men
... zu einem Untermenü. Dies ist das Untermenü Seite. Es enthält wieder 3 Optionen und die gegebene Seite kann ausgewählt werden. Je nach Wahl, wird die Länge dieser Seite abgefragt und der Wert gespeichert. Danach springt das Programm zurück zum Hauptmenü.
... Auch die anderen Untermenüs sind so aufgebaut.
:Lbl Dgo
:Disp "Dreiecksart?"
:Menu(1,"recht",Dre,2,"glsei",Dgse,

3,"glsch",Dgsc,4,"allg.",Dgo15)
Wird die Option "go.on" im Hauptmenü gewählt, so erscheint das Dreiecks- Art- Menü. Handelt es sich bei dem Dreieck um einen speziellen Typ...
:Lbl Dgse
:2
®DA
:If A2
¹0:Then:A2®B2:B2®C2:End
:If B2
¹0:Then:B2®A2:B2®C2:End
:If C2
¹0:Then:C2®A2:C2®B2:End
:60
®a :60®b:60®g:Goto Dgo15
...so springt das Programm zu einer entsprechenden Marke. Dort werden weitere Werte bestimmt.
Hier wurde ein gleichseitiges Dreieck gewählt:
Die Variable D(reiecks)A(rt) erhält den Wert 2.
Es wird überprüft, ob bereits eine Seite bekannt ist. Wenn ja, dann wird dieser Wert allen Seiten zugewiesen, da sie gleich lang sind. Außerdem wird allen Winkeln der Wert 60° zugewiesen. Dann springt das Programm zur Marke
Dgo15.
:Lbl Dgo15
:ClLCD
:Disp "geg:"
:If A2
¹0:Disp "a:",A2
:If B2
¹0:Disp "b:",B2
:If C2
¹0:Disp "c:",C2
...
Das Display wird gelöscht und alle gegebenen Werte werden zur Übersicht noch einmal ausgegeben. Jede Variable, die ungleich 0 ist, weil sie gegeben ist, wird angezeigt.
:Pause "[ENTER...]" Um die Werte lesen zu können, wartet das Programm.
:Lbl Dgo2
:DREICEK2
:DREIECK3
Die Marke Dgo2 wird deklariert und die Unterprogramme Dreieck2 und Dreieck3 werden ausgeführt, in denen die eigentliche Berechnung stattfindet.
:If A2¹0 and B2¹0 and C2¹0 and P2¹0 and Q2¹0... Nachdem die Unterprogramme durchlaufen wurden, wird abgefragt, ob alle Wert ungleich 0, d.h. bereits errechnet sind.
:Then
:Goto Dgo3
Ist dies der Fall, so wird zur Marke Dgo3 gesprungen.
:Else
:Goto Dgo2:End
Sonst springt das Programm zur Marke Dgo2 und die Unterprogramme werden erneut ausgeführt.
:Lbl Dgo3
:ClLCD
:Outpt(1,1,"a:"):Outpt(1,4,A2)
:Outpt(2,1,"b:"):Outpt(2,4,B2)
:Outpt(3,1,"c:"):Outpt(3,4,C2)

...
:Lbl De
:Stop
Die Marke Dgo3 wird deklariert und das Display gelöscht.
Danach werden alle errechneten Werte formatiert ausgegeben, so dass die gut lesbar alle auf dem Display zu sehen sind.

Die Unterprogramme "Dreieck2" und "Dreieck3"

Die Unterprogramme dienen beide der eigentlichen Berechnung der gesuchten Werte. Sie enthalten sämtliche Kombinationen aller Formeln, mit denen eine Berechnung der gesuchten Werte möglich ist.

Beispiele:

:If a ¹0 and b ¹0:Then:If g==0:Then
:(180-(
a+b))®g:End:End
Wenn bereits 2 Winkel gegeben sind und der dritte noch gesucht ist, dann ergibt sich der dritte Winkel - nach dem Innenwinkelsatz - aus der Differenz der Summe beider Winkel und 180°.
:If A2¹0 and B2¹0 and g==90 or A2¹0 and C2¹0 and g==90 or B2¹0 and C2¹0 and g==90
:Then
:If A2==0
:Then
:
Ö (C22-B22)®A2
:Else
:If B2==0
:Then
:
Ö(C22-A22)®B2
:Else
:
Ö(A22+B22)®C2
:End
:End
:End
Wenn mindestens 2 Seiten bereits errechnet sind und es sich um ein rchtwinkliges Dreieck handelt, dann ergibt sich die dritte Seite, wenn sie bisher noch nicht errechnet wurde, aus dem Satz des Pythagoras.

Hinweis: Obwohl laut Texas Instruments ein Programm so groß sein darf, wie Speicher vorhanden ist, führte das Dreiecks- Programm immer wieder zu "Memory Errors", als der gesamte Quelltext ein einziges Programm war. Aus diesem Grund erstellte ich 2 Unterprogramme und das Programm lief wieder einwandfrei.