Viele Jungforscher insbesondere in der Physik sind damit beschäftigt, Messaufbauten zu konzipieren, um spezielle experimentelle Untersuchungen durchzuführen. Häufig haben sie den Vorteil, dass sie bereits bestehende Aufbauten und Messprogramme in ihren Arbeitsgruppen vorfinden. Wenn nicht, kann wertvolle Zeit verlorengehen, ein Konzept zur Aufnahme der gewünschten Daten zu erstellen und apparativ umzusetzen. Die apparative Ausstattung ist meistens schnell zusammengekauft. Was von Grund auf neu erstellt werden muss und in der Regel die meiste Zeit benötigt, ist die Koordination aller Komponenten.
Die Erstellung des Messprogrammes stellte sich als Aspekt mit dem höchsten Zeitaufwand heraus. Das lag und liegt bis heute daran, dass selbst in einem relativ einfachen Programm unendlich viele Fehler aller Art, angefangen von einfachen Programmierfehlern bis hin zu gravierenden logischen Fehlern, auftauchen, die dann nach und nach ausgemerzt werden müssen. Viele kommen erst nach Jahren zum Vorschein. Die nachfolgend gezeigten „Struktogramme“ sind unabhängig von jeder Computersprache, auch wenn ich einige Basic-Anweisungen verwendet habe, und können für jede „Plattform“ übernommen werden, egal ob die Sprache C++, Java, oder sogar Python lautet und auch egal, welches Betriebssystem verwendet wird. Für alle Anweisungen gibt es in allen Sprachen eine Entsprechung. Egal, ob Basic, PHP C++ oder Python: Eine Schleife bleibt eine Schleife und eine logische Abfrage eine eben solche.
Hinweise: Überwiegend habe ich keine „LOOPs“, also Schleifenanweisungen, direkt gekennzeichnet, es sei denn, ich meinte, ohne explizite Erwähnung könnte ich missverstanden werden. Immer dann, wenn z.B. ein „I = 1 to NP“ auftaucht, ist das Durchlaufen des Parameters „I“ von 1, 2, 3 … bis zur Zahl „NP“ gefordert, der Befehl also „NP-mal“ zu wiederholen mit verändertem „I“.
Direkte „Befehle“, z.B. PRINT, GET usw….“, habe ich versucht, durchgängig in Großschrift hervorzuheben. Reine Kommentare sind dagegen kursiv dargestellt
Die Funktion FN(I) sowie Verweise auf SUBROUTINES sollten GROß und fett gedruckt sein. Gewünschte Funktionen der Routinen sind selbsterläuternd.
Wer meint, der Autor eines solchen Skriptes hätte einen „Hau“ sollte unbedingt das Buch: „Querzeit“ des Autoren Uwe R. Frank lesen, erschienen im GRIN-Verlag und in jedem Buchhandel erhältlich.
Inhaltsverzeichnis
Prolog
DEF LOOP
MENU
SUBROUTINE1: ONE-FILE
SUBROUTINE ADD
SUBROUTINE MULT
SUBROUTINE EXP
SUBROUTINE LOG
SUBROUTINE LN
SUBROUTINE INT
SUBROUTINE DIFF
SUBROUTINE SMOOTH
SUBROUTINE LOW-LEV
SUBROUTINE HIGH-LEV
SUBROUTINE X-VALUE
SUBROUTINE 1/Y
SUBROUTINE RAMAN
SUBROUTINE TRANSPOSE
SUBROUTINE2: TWO-FILE
SUBROUTINE ADD1.+2.
SUBROUTINE DIV1./2.
SUBROUTINE AND1./2.
SUBROUTINE SUB1.-2.
SUBROUTINE TRUNCATE
SUBROUTINE ADDTWOFILE
SUBROUTINE COPY1.-2.
SUBROUTINE EXCH
SUBROUTINE CREATE
SUBROUTINE3: READ/WRITE
SUBROUTINE READ1.
SUBROUTINE READ2.
SUBROUTINE ITER
SUBROUTINE PREAD
SUBROUTINE WRITE1.
SUBROUTINE4: MATH-FKTN
SUBROUTINE SUM
SUBROUTINE INTP
SUBROUTINE COM
SUBROUTINE5: GRAPHICS
SUBROUTINE G-FIT
SUBROUTINE6: OTHERS
SUBROUTINE STATUS
SUBROUTINE PRINT
SUBROUTINE DUDA
SUBROUTINE DUMP
SUBROUTINE PARA
SUBROUTINE SHOW
Nachwort und kurze Anleitung zum Gebrauch
Zielsetzung & Themen
Das Hauptziel dieser Arbeit ist es, Forschern durch die Bereitstellung von strukturierten Logikabläufen (Struktogrammen) eine Orientierungshilfe für die Entwicklung eigener wissenschaftlicher Mess- und Auswerteprogramme zu geben, insbesondere wenn keine geeigneten Bibliotheken zur Verfügung stehen.
- Entwicklung von messplatzspezifischer Steuerungs- und Auswertelogik
- Implementierung grundlegender mathematischer Operationen für Spektraldaten
- Methoden zur Datenverarbeitung, wie Integration, Differenzierung und Kurvenanpassung (Fits)
- Strukturierung von Ein- und Ausgabeprozessen für experimentelle Messreihen
- Unabhängigkeit von spezifischen Programmiersprachen durch logische Abstraktion
Auszug aus dem Buch
SUBROUTINE G-FIT (Gauss-fit)
GOSUB SHOW
Show data; get needed values.
LOOP: ‘=
PRINT”Last variables: “; F0, F1, F2, F3
Get new variables: “ BG = Background --->F0
FAC = Factor --->F1
WAV = Wavelength --->F2
FWHM = --->F3
GOSUB CWE (convert wavelength to energy)
F4 = 1/F2: F5 = F2+F3: F5 = ABS(1/F2-1/F5)
‘PENUP
LOOP: I = 1 to NP
‘LINE[X(I), FN F(I)]
PRINT “Okay?”: GET ME$
ME$=”N?”
No YES
‘< (go back to ‘=)
FN F(I) = F0 +F1*EXP(-(((1/X(I)-F4)/F5*2)^2))
Zusammenfassung der Kapitel
SUBROUTINE1: ONE-FILE: Dieses Kapitel behandelt mathematische Transformationen von Datensätzen, wie Addition, Multiplikation oder logarithmische Operationen, die auf die Messdaten angewendet werden.
SUBROUTINE2: TWO-FILE: Hier wird die Logik beschrieben, um zwei verschiedene Dateien miteinander zu verrechnen, beispielsweise durch Differenzbildung oder logische Verknüpfungen.
SUBROUTINE3: READ/WRITE: Dieses Kapitel widmet sich den Input- und Output-Prozessen, um Messdaten zu laden, temporär zu speichern oder als Textdatei dauerhaft zu sichern.
SUBROUTINE4: MATH-FKTN: Hier werden weiterführende mathematische Analysen wie die Integration über einen Bereich oder die Berechnung des Massenschwerpunkts von Datenreihen erläutert.
SUBROUTINE5: GRAPHICS: Dieses Kapitel konzentriert sich auf die visuelle Aufbereitung der Daten und implementiert ein Verfahren zur Anpassung theoretischer Linien an reale Spektren (Gauss-Fit).
SUBROUTINE6: OTHERS: Dieses Kapitel fasst administrative Hilfsfunktionen zusammen, wie Statusabfragen, Ausdrucke von Parametern und Datensicherung (Dumps).
Schlüsselwörter
Struktogramme, Messprogramme, wissenschaftliche Datenauswertung, Physik, BASIC, Algorithmen, Datenverarbeitung, Spektroskopie, Gauss-Fit, Programmierung, Messaufbau, mathematische Funktionen, Datenmanipulation, Prozeduren, Software-Entwicklung
Häufig gestellte Fragen
Worum geht es in diesem Dokument grundsätzlich?
Die Arbeit stellt Struktogramme und logische Abläufe zur Erstellung eigener wissenschaftlicher Mess- und Auswerteprogramme für physikalische Versuchsaufbauten zur Verfügung.
Was sind die zentralen Themenfelder?
Die Schwerpunkte liegen auf der datentechnischen Verarbeitung von Spektraldaten, der mathematischen Bearbeitung von Messreihen, der Datenvisualisierung und der gerätespezifischen Ansteuerung.
Was ist das primäre Ziel der Arbeit?
Das Ziel ist es, Forschern eine methodische Anleitung zu bieten, wie komplexe Programmabläufe strukturell geplant werden können, um Messdaten effizient und individuell zu bearbeiten.
Welche wissenschaftliche Methode wird verwendet?
Es wird eine algorithmische, sprachenunabhängige Modellierung durch Struktogramme genutzt, die auf die logische Koordination von Mess-Hardware und mathematischer Datenauswertung ausgerichtet ist.
Was wird im Hauptteil behandelt?
Der Hauptteil gliedert sich in verschiedene Unterroutinen, die Funktionen wie Datenberechnung (ein- und zweidimensional), Dateiverwaltung (Lesen/Schreiben), numerische Integration und die grafische Anpassung von Kurven (Gauss-Fit) abdecken.
Welche Schlüsselwörter charakterisieren die Arbeit?
Die Arbeit lässt sich am besten durch Begriffe wie Struktogramme, wissenschaftliche Datenauswertung, Messprogramme, Spektroskopie und algorithmische Programmplanung beschreiben.
Warum sind die Struktogramme sprachenunabhängig?
Die Autorin betont, dass grundlegende logische Abläufe wie Schleifen (LOOPS) oder Abfragen in jeder imperativen Programmiersprache existieren und somit problemlos von der beschriebenen Logik in Sprachen wie C++, Java oder Python übertragen werden können.
Inwiefern hilft diese Arbeit bei der Fehlervermeidung?
Durch die Bereitstellung vorab durchdachter logischer Strukturen minimiert der Autor das Risiko gravierender logischer Programmierfehler, die bei der eigenständigen Entwicklung komplexer Auswertesysteme oft erst spät entdeckt werden.
- Arbeit zitieren
- Dr. Uwe Sliwczuk (Autor:in), 2016, File Utilities zur Erstellung eigener wissenschaftlicher Auswerteprogramme, München, GRIN Verlag, https://www.grin.com/document/337790