@DATABASE Meßlabor


@$VER: Meßlabor_V1.0_4/2/95
@(C) by Henk Jonas
@AUTHOR Henk Jonas
@INDEX index
@SMARTWRAP


@NODE kurz "Kurzbeschreibung:"

  Dieses Programm soll einem die Möglichkeit geben, aus gegebenen x/y
Datenreihen Punktdiagramme zu erstellen. Es bestehen verschiedene Möglichkeiten,
die Punkte zuverbinden. Außerdem sind verschiedene @{"statistische" LINK zwei} Auswertungen
in Vorbereitung. Bisher wird jedoch nur die Berechnung der Regression ermöglicht.

@ENDNODE


@NODE req "Benötigt:"

  - WB 3.0 oder höher (sollte wohl kein Problem darstellen?)

  - 1 MegaByte RAM (je mehr, um so besser!)

  - iff.library 2.0

@ENDNODE


@NODE grund "Warum:"

  Da gibt es bei uns im Studiengang (E- & V-technik) ein Fach, da muß man
technische Probleme in mathematische Form umsetzen und dann numerisch lösen.

  Dabei fielen bei uns einige x/y Abhängigkeiten an. Auf der Suche nach einem
Programm zur Darstellung dieser Abhängigkeiten, bin ich auf ein großes Loch
in diesem Bereich gestoßen. Also dachte ich mir, selber programmieren ist das
Beste. Das ist das bescheidene und etwas unfertige Ergebnis.

@ENDNODE


@NODE copy "Copyrights:"
  
  Alle Rechte an diesem Programm gehören mir! Die Anleitung darf verbessert und
von Fehlern bereinigt werden, doch bitte ich denjenigen, mich davon in Kenntnis
zu setzen. Diese Programm darf frei verteilt werden, solange mit den Gebühren,
die der Datenträger kostet, auf dem das Programm sich befindet, kein Gewinn
gemacht wird.

  Jedwede komerzielle(r) Nutzung oder Vertrieb ist vorher von mir zu erlauben.
Ich übernehme keinerlei Garantie für irgendwelche Schäden jeder Art, die durch
Benutzung dieses Programms entstehen.

  Ich hoffe das Programm enthält keine Fehler, aber garantieren kann ich es
nicht. Sollte Jemandem ein Fehler auffallen, oder Jemand eine Idee haben, was
dieses Programm noch können sollte, so bitte ich um Handzeichen, also Brief
oder EMail. (@{"Adresse" LINK adresse})

  Für Geld-, Sach- und sonstige Spenden an mich, an bedürftige Personen oder an
militante (nicht militärische!) und/oder autonome Umwelt- und libertäre
Gruppen bin ich dankbar.

@ENDNODE


@NODE datei "Dateiformat:"

  Bisher werden nur ASCII-Dateien unterstützt. Das Einbinden von Binär-Dateien
ist angedacht, wenn jemand eine Idee für ein verbreitetes Format hat, kann er
mir ja mal schreiben.

Die Daten können in Spalten oder Zeilenformat vorliegen. Die x- und y-Daten
sind im Programm frei wählbar. Die Achsenbezeichnungen werden aus den ersten
Zellen entnommen, können jedoch frei editiert werden, ohne die Werte in den
Zellen zu verändern.

Zahlen dürfen keine Leerzeichen vorangestellt sein. Die Trennzeichen für
Spalten und Zeilen, sowie das Dezimalzeichen sind frei wählbar. (@{"Beispiel" LINK bsp})

@ENDNODE


@NODE bsp "Beispieldatei:"

Eine beispielhafte Datei mit 9 x-Werten und 9 y-Werten sieht so aus:

@{CODE}
Zeit,Weg
0,0
1,3
2,7
3,9
4,12
5,11
6,6
7,4
8,0
@{BODY}

Diese Datei könnte mit den @{"Einstellungen:" LINK prefs}

@{CODE}
ZEILENTRENNER=10
SPALTENTRENNER=44
DEZIMALPUNKT=46
SPALTEN=2
ZEILEN=10
@{BODY}

eingelesen werden.

@ENDNODE


@NODE prog "Programmbeschreibung:"

  Das Programm unterteilt sich in zwei Bereiche. Erstens den
@{"Tabellenbereich" LINK eins}, in dem die Möglichkeit besteht, die Daten in
Tabellenform zu betrachten, und zweitens den @{"Diagrammbereich" LINK zwei},
in dem die Daten in verschiedenster Form aufbereitet werden können.

@ENDNODE


@NODE eins "Tabellenbereich:"


Tabellenbereich


Die Menüpunkte:


@{B}Project@{UB}

 @{B}- Öffnen-->ASCII@{UB}    Lädt eine ASCII-(Text) @{"Datei" LINK datei}, die
die Daten enthält.

 @{B}- Speichern als...@{UB}  Speichert eine ASCII-(Text) @{"Datei" LINK datei}
unter einem beliebigen Namen.

 @{B}- Über@{UB}              Einige Informationen über Version und
@{"Programmierer" LINK adresse}.

 @{B}- Beenden@{UB}           Beendet das Programm.


@{B}Bearbeiten@{UB}

 @{B}- Transponieren@{UB}     Vertauscht Zeilen und Spalten in der Tabelle.

 @{B}- X-Werte@{UB}           Markierte Spalte enthält x-Werte.

 @{B}- 1.Y-Werte@{UB}         Markierte Spalte enthält Haupt-y-Werte, für die das
Diagramm skaliert wird und auf die sich die @{"Statistik-Fkt." LINK zwei} beziehen.

 @{B}- 2.Y-Werte@{UB}         Markierte Spalte enthält Neben-y-Werte. (noch ohne
Fkt.)

 @{B}- Zeichnen@{UB}          Zeichnet nach @{"Abfrage" LINK diawin} der
Achsenbeschriftungen und weiterer Daten ein x/y Diagramm.


@{B}Diverses@{UB}

 @{B}- Einstellungen...@{UB}  Öffnet ein @{"Einstellungsfenster" LINK prefs},
um Bildschirmmodus, Zeilen-, Spaltentrenner, Dezimalzeichen und Tabellengröße
einzustellen und im Piktogramm des Programms abzuspeichern.

 @{B}- Hilfe@{UB}             Öffnet diese Hilfedatei im Programm.


Für die Menüpunkte @{B}Öffnen-->ASCII@{UB}, @{B}X-Werte@{UB},
@{B}1.Y-Werte@{UB}, @{B}2.Y-Werte@{UB} und @{B}Zeichnen@{UB} existieren
über der Tabelle Schalter, die diese Funktionen ausführen.

@ENDNODE


@NODE diawin Diagrammeinstellungen:


Fenster: Diagrammeinstellungen


  Dieses Fenster öffnet sich, wenn man auf den '@{B}Plot@{UB}' Schalter klickt
oder im Menü die Funktion @{B}Bearbeiten/Zeichnen@{UB} anwählt.

  Ganz oben läßt sich der @{B}Titeltext@{UB} für das Diagramm sowie die dafür
benutzte Schrift einstellen.

  Als nächstes existieren drei Spalten, wobei die ersten beiden jeweils für
die X- und Y-Achse verantwortlich sind und die dritte allgemeine Festlegungen 
für das Diagramm trifft.


@{B}- erste Spalte (X-Achse):@{UB}
  
  In den ersten beiden Feldern lassen sich die X-Achsenbezeichnungen
festlegen. Dabei wird der Eintrag im oberen Feld auch im Diagramm als obere
Bezeichnung verwendet, während der Eintrag im unteren Feld darunter
geschrieben wird.

  Das mit Faktor bezeichnete Feld sollte einen Wert erhalten, wenn die X-Werte
im Bereich zwischen 0 und 1 liegen. Mit diesem Faktor werden alle X-Werte
multipliziert, da das Programm keine gebrochenen Werte als Achsenteilung
verwenden kann. Also kleinste Teilung ist 0,1,2,3,4,5.


@{B}- zweite Spalte (Y-Achse):@{UB}

  Die obersten drei Felder entsprechen denen der ersten Spalte, s.o.

  Das Feld '@{B}Regression@{UB}' ist erst anwählbar, wenn man im 
@{Diagrammteil LINK zwei} mittels des Menüpunktes @{B}Statistik/Regression@{UB}
die Regression für die Daten berechnet hat. Dann kann man mittels dieses Feldes
das Zeichnen des Regressionspolynomes an- und abschalten.


@{B}- dritte Spalte (Misc)@{UB}
  

@{B}  x-Werte@{UB}   Gibt an, ob für die Y-Werte X-Werte vorhanden sind oder 
nicht. (noch ohne Fkt.)
  

@{B}  Wertetabelle@{UB}  Gibt an, ob die Wertetabelle im Diagramm mit ausgege
ben werden soll. (noch ohne Fkt.)
  

@{B}  Nullpunkt@{UB}   Gibt an, ob die Achsen bis zum Nullpunkt duchgehen ob
wohl das Programm eine gebrochene Achse bevorzugen würde.
  

@{B}  Verbindung@{UB}  'Keine' Es werden nur die Punkte gemalt.
  
              'Geraden' Es werden die Punkte mit Geraden verbunden.
  
              'Bezier' Es werden die Punkte mit Bezierkurven verbunden.
  
  ACHTUNG: Aus mir unerklärlichen Gründen wird zwischen den ersten beiden
Punkten eine Gerade gezogen. Wenn das in diesem Fall störend ist, sollte man
überlegen in die Daten einen neuen 1. Punkt vor dem richtigen ersten Punkt
einzufügen, der knapp neben dem richtigen ersten Punkt liegt.
  

@{B}  Farben@{UB}    Kann man vielleicht mal den Kurven verschiedene Farben
zuordnen. Dann auch mit mehreren Y-Reihen. (noch ohne Fkt.)


@{B}  Schrift@{UB}, in der die Achsenbezeichnungen ausgegeben werden.


  Alle Schriften sollten zwecks verlustfreier Skalierbarkeit, skalierbare Fonts
sein. Also CGFonts mit der normalen WB3.0 oder PSFonts mit der type1.library
von Amish S. Dave.

Die beiden Felder '@{B}OK@{UB}' und '@{B}Cancel@{UB}' machen das, was man 
von ihnen erwartet.

@ENDNODE


@NODE zwei "Diagrammbereich:"
  

Diagrammbereich


  Der eigentliche Sinn und Zweck dieses Programms ist natürlich das Zeichnen
von Diagrammen. Wenn man nun im Diagrammfenster gelandet ist, sieht man
hoffentlich ein Diagramm, erstellt aus den angegebenen X- und Y-Werten.

Von hier sind nun mehrere Funktionen über das Menü erreichbar:


@{B}Project@{UB}

 @{B}- Update@{UB}    Eigentlich sinnlos, kann man mittels dieses Menüpunktes,
das Neuzeichnen des Diagramms bewirken.

 @{B}- Speichern-->als ILBM...@{UB}   Speichert das Diagramm als IFF-ILBM-Bild
mit frei definierbaren Abmessungen. Benötigt entsprechend viel ChipMem!

 @{B}- Speichern-->als GEM...@{UB}    Soll Bild mal als GEM-Metafile abspeichern.
(noch ohne Fkt.)

 @{B}- Speichern-->als CGM...@{UB}    Suche immer noch Infos über das CGM-Format.
(noch ohne Fkt.)

 @{B}- Speichern-->als EPS...@{UB}    Wird wohl als letztes kommen. (noch ohne
Fkt.)

 @{B}- Drucken@{UB}   Druckt Diagramm mittels Workbenchdruckertreiber aus.
Druckt mit der in der Preference eingestellten Auflösung. Braucht
entsprechend viel ChipMem! Wenn also der Speicher zu klein ist,
sollte man die Druckerauflösung entsprechend reduzieren in den
Druckervoreinstellungen.

 @{B}- Über@{UB}      Na das Übliche über Gott und das Programm.

 @{B}- Schließen@{UB}   Schließt das Diagrammfenster.


@{B}Clipboard@{UB}

 @{B}- Kopieren@{UB}    Kopiert das Diagramm in der dargestellten Größe ins
Clipboard, Unit 0.


@{B}Statistik@{UB}

 @{B}- Regression@{UB}  Berechnet zu den x/y Daten ein Polynom, dessen Grad
zwischen 1 und 5 liegen kann. Berechnet die Koeffizienten des Polynoms
mittels der Methode der kleinsten Quadrate.

(ein Dankeschön an meinen Bruder für den Tip, wie man die Koeffizienten 
berechnet)

Nach der Berechnung der Koeffizienten, werden diese angezeigt und können 
bei Wunsch verändert werden. Zusätzlich werden noch die Anzahl der Daten n
und der mittlere Schätzfehler SE angezeigt.


@{B}Diverses@{UB}

 @{B}- Einstellungen...@{UB}  Bringt das Fenster:
@{"Diagrammeinstellungen" LINK diawin} zum Vorschein.

 @{B}- Hilfe@{UB}  Öffnet im Programm diese Hilfsdatei.


Änderungen in diesem Fenster werden dann im Diagramm berücksichtigt.

@ENDNODE


@NODE prefs "Voreinstellungen:"


Voreinstellungen


  Alle Voreinstellungen können entweder im Programm oder in den
@{B}Merkmalen@{UB} (Tooltypes) im Programmpiktogramm vorgenommen werden.

  Das Fenster "Einstellungen" ist in 3 Bereiche unterteilt:


@{B}max. Tabellengröße@{UB}

  Hier können in den Bereichen Spalten und Zeilen die jeweiligen maximalen
Ausdehnungen eingetragen werden. Dabei ist zu beachten, daß bei Programmstart
gleich der ganze Speicher für diese Tabelle belegt wird (Speichergröße=
20*Zeilen*Spalten [Byte]), auch wenn noch keine Daten geladen wurden.


@{B}Trennzeichen@{UB}

  Hier können die Trennzeichen eingetragen werden, die in der 
@{"ASCII-Datei" LINK datei} verwendet wurden. Das Dezimalzeichen wird auch im
gesammten Diagramm als Dezimalzeichen verwendet.

  Hinter den Feldern zum Eintragen des @{B}ASCII-CODES@{UB} existiert jeweils
ein Feld in dem das gewählte Zeichen zur Kontrolle dargestellt wird. Wenn
in diesem Feld ein Quadrat erscheint, bedeutet dies, daß das Zeichen nicht
darstellbar ist (z.B. NeueZeile-Zeichen).


@{B}Diverses@{UB}

  Hier kann der zubenutzende Bildschirmmodus eingestellt werden. Eine Änderung
in diesem Feld ist jedoch erst nach Beenden und Neustarten des Programms
wirksam.


@{B}Änderungen des Bildschirmmodus und der Tabellengröße werden erst nach einem
Neustart des Programms wirksam.@{UB}


Die Änderungen werden bei Betätigen des @{B}OK@{UB} Feldes im Programm-
Piktogramm abgespeichert. Dort können diese Einstellungen auch direkt geändert
werden, um z.B. vor dem ersten Start des Programmes den gewünschten
Bildschirmmodus einzustellen.

Dazu stehen folgende @{B}Merkmale@{UB} (Tooltypes) zur Verfügung:

@{CODE}
SCREEN=           (Bildschirmmodus)
ZEILENTRENNER=    (ASCII-Code des Zeichens, das in der @{ASCII-Datei LINK datei} Zeilen trennt)
SPALTENTRENNER=   (ASCII-Code des Zeichens, das in der @{ASCII-Datei LINK datei} Spalten trennt)
DEZIMALPUNKT=     (ASCII-Code des Zeichens, das als Dezimalpunkt verwendet wird)
SPALTEN=          (maximale Spaltenanzahl)
ZEILEN=           (maximale Zeilenanzahl)
GUIDE=            (Name dieser Anleitungsdatei, mit Pfadangabe)
@{BODY}

  In ihnen können die Werte als ASCII-Code (Zeilen-, Spaltentrenner und Dezimalpunkt) oder als Dezimalzahl angegeben werden.

  Bei SCREEN muß der @{"Bildschirmmodus" LINK modis} eingetragen werden. 
(z.B. $69024 für EURO72:Produktivity)
Das Programm versucht daraufhin einen Bildschirm in diesem Modus zu öffnen.
Wenn das fehlschlug, werden alle Fenster auf der Workbench geöffnet.
Noch einige Beispiele für @{"Bildschirmmodis" LINK modis}.


  Wenn ein oder mehrere Merkmale nicht angegeben wurden, werden folgende
Voreinstellungen benutzt:

@{CODE}
ZEILENTRENNER=10  (normales RETURN)
SPALTENTRENNER=44 (,)
DEZIMALPUNKT=46   (.)
SPALTEN=10
ZEILEN=100
SCREEN=Workbench Screen
GUIDE=PROGDIR:Meßlabor.guide
@{BODY}

@ENDNODE


@NODE modis "Beispiele für Bildschirmmodis:"

@{CODE}
PAL:Hires Lace =$29004
NTSC:Hires Lace=$19004
MULTISCAN:Prod.=$39024
@{BODY}

@ENDNODE


@NODE credits "Danksagungen:"

Ich bedanke mich bei:


@{B}Stefan Le Breton@{UB} für das Amiga RKRM Devices und Betatesting?

@{B}Piet Jonas@{UB} für die Idee (er hat ein ähnliches Programm für WinDoof
geschrieben) und den Tip bei der Regression.

@{B}Heiko Bergmann@{UB} für seine Suche im WWW nach Infos über das
CGM-Format.

@{B}Dietmar Eilert@{UB} für seinen tollen Editor.

@{B}Wouter van Oortmerssen@{UB} für seinen E-Compiler (wenn mir ganz viel 
Leute ganz viel Geld für dieses Programm schicken, werde ich mir vielleicht ja auch mal
eine neuere Version, als die 2.1b zulegen können)

@{B}Haike@{UB} für ihre riesige Geduld (das waren viele Stunden am Rechner)

@ENDNODE


@NODE adresse "Adresse des Autors:"

SnailMail: @{B}Henk Jonas@{UB}, Zionskirchstr. 28, 10119 Berlin, Germany

EMail: subvcbhd@w271zrz.zrz.tu-berlin.de

@ENDNODE


@NODE history "Programmentwicklung"

folgende Fehler/Funktionen wurden beseitigt/eingeführt



V1.0     erste Veröffentlichung


V1.1     - Fehler bei StringToReal beseitigt

         - Regression zeigt Koeffizienten an

         - Regressionskoeffizienten können verändert werden

         - AmigaGuideLibrary wurde zweimal geschlossen (:-O)


@ENDNODE


@NODE main "INHALT"

Folgende Kapitel stehen zur Auswahl:


1. Eine kurze @{"Beschreibung" LINK kurz} des Programmes.

2. Was @{"benötigt" LINK req} dieses Programm zur richtigen Funktion? 

3. @{"Warum" LINK grund} schrieb ich dieses Programm? 

4. @{"Rechte" LINK copy} und Pflichten, was darf ich damit machen? 

5. Einige Erklärungen zum benutzten @{"Dateiformat" LINK datei}. 

6. eine kleine @{"Beispieldatei" LINK bsp} 

7. Wie benutze ich dieses @{"Programm" LINK prog}?

8. @{"Voreinstellungen" LINK prefs}

9. @{"Danksagungen" LINK credits}

10. die @{"Adresse" LINK adresse} des Autors

11. @{"Programmentwicklung" LINK history}

@ENDNODE


@NODE INDEX index

INDEX des Dokuments

@{"Kurzbeschreibung" LINK kurz}

@{"Benötigt" LINK req}

@{"Warum?" LINK grund}

@{"Copyrights" LINK copy}

@{"Dateiformat" LINK datei}

@{"Beispieldatei" LINK bsp}

@{"Programmbeschreibung" LINK prog}

@{"Tabellenbereich" LINK eins}

@{"Diagrammeinstellungen" LINK diawin}

@{"Diagrammbereich" LINK zwei}

@{"Statistik" LINK zwei}

@{"Voreinstellungen" LINK prefs}

@{"Merkmale=Tooltypes" LINK prefs}      

@{"Beispiele für Bildschirmmodis" LINK modis}

@{"Danksagungen" LINK credits}

@{"der Programmierer" LINK adresse}

@{"Programmentwicklung" LINK history}

@ENDNODE
