ebook img

Informatik auf den Punkt gebracht: Informatik für Life Sciences Studierende und andere Nicht-Informatiker PDF

342 Pages·2019·6.95 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Informatik auf den Punkt gebracht: Informatik für Life Sciences Studierende und andere Nicht-Informatiker

Boris Tolg Informatik auf den Punkt gebracht Informatik für Life Sciences Studierende und andere Nicht-Informatiker Informatik auf den Punkt gebracht Boris Tolg Informatik auf den Punkt gebracht Informatik für Life Sciences Studierende und andere Nicht-Informatiker Boris Tolg Department Medizintechnik HAW Hamburg Fakultät Life Sciences Hamburg, Deutschland ISBN 978-3-658-24130-8 ISBN 978-3-658-24131-5 (eBook) https://doi.org/10.1007/978-3-658-24131-5 Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detail- lierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. Springer Vieweg © Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2019 Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung, die nicht ausdrücklich vom Urheberrechtsgesetz zugelassen ist, bedarf der vorherigen Zustimmung des Verlags. Das gilt insbesondere für Vervielfältigungen, Bearbeitungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Der Verlag, die Autoren und die Herausgeber gehen davon aus, dass die Angaben und Informationen in diesem Werk zum Zeitpunkt der Veröffentlichung vollständig und korrekt sind. Weder der Verlag, noch die Autoren oder die Herausgeber übernehmen, ausdrücklich oder implizit, Gewähr für den Inhalt des Werkes, etwaige Fehler oder Äußerungen. Der Verlag bleibt im Hinblick auf geografische Zuordnungen und Gebietsbezeichnungen in veröffentlichten Karten und Institutionsadressen neutral. Springer Vieweg ist ein Imprint der eingetragenen Gesellschaft Springer Fachmedien Wiesbaden GmbH und ist ein Teil von Springer Nature Die Anschrift der Gesellschaft ist: Abraham-Lincoln-Str. 46, 65189 Wiesbaden, Germany Für meine Frau Christine und meine Söhne Jean Luc und Mateo Nicolao Vorwort Die Idee zu der Buchreihe Life Sciences ist im Dezember 2015 entstanden, als ich gerade dabei war, neue Lehrkonzepte für meine Informatikvorlesung zu entwickeln. Auf der Suche nach geeigneter Literatur fiel mir auf, dass es zwar eine große Bandbreite an Büchern, Workshops und Online-Tutorials für die Programmiersprache C++ auf dem Markt gibt, jedoch keines der Angebote die Bedürfnisse meiner Studierenden erfüllt. Jedes der Angebote für sich genommen erfüllt natürlich seinen Zweck und ist mal mehr und mal weniger gelungen, jedoch gehen alle diese Angebote davon aus, dass die Leserinnen und Leser eine intrinsische Motivation besitzen, sich in die Informatik einzu- arbeiten. Diese Motivation kann aber bei Studierenden, die Informatik als Nebenfach in einem interdisziplinären Studiengang belegen, nicht zwingend vorausgesetzt werden. So viel- fältig, wie die Zusammenstellung der Fächer bei einem interdisziplinären Studiengang, so unterschiedlich sind auch die Karrieren der Studierenden, die diese Studiengänge absolviert haben. Nicht alle legen ihren Schwerpunkt auf die Softwareentwicklung und einige werden nach dem Studium vermutlich nie wieder ein Programm schreiben. In diesen Studiengängen ist es wichtig, den Studierenden eine andere Motivation zu vermitteln, weshalb sie sich mit der Informatik auseinandersetzen sollten. Dieses Problem betrifft aber nicht nur die Informatik, sondern alle Grundlagenfächer eines interdisziplinären Studiengangs. Folglich macht es Sinn, ein gemeinsames Lehr- konzept aufzubauen, welches sich über verschiedene Grundlagenfächer erstreckt. Die Idee ist, Aufgabenstellungen zu definieren, die den jeweiligen Studiengängen entsprin- gen um diese dann in Probleme der Grundlagenfächer herunterzubrechen. So können die einzelnen Bücher für sich genommen als Lehrbücher für ihr Anwendungsgebiet funktio- nieren, im Zusammenspiel mit den anderen Bänden aber eine abgeschlossene Lösungs- beschreibung für fachspezifische Probleme anbieten. Sie als Leser*in dieser Zeilen haben damit die Möglichkeit, sich nur auf die Werke zu konzentrieren, die für Sie wirk- lich interessant sind. Die fachspezifischen Problemstellungen liefern eine Motivation, sich mit dem jeweiligen Grundlagenfach auseinanderzusetzen. Ich bin sehr froh, dass ich eine Reihe von Kolleginnen und Kollegen dafür gewinnen konnte, bei der Realisierung meiner Idee zu helfen. So erscheinen neben dem Buch über VII VIII Vorwort Informatik noch weitere Bücher mit den Fachrichtungen Physik und Mathematik. Die Zukunft wird zeigen, ob die Liste noch länger wird. Sehr freuen würde es mich natürlich, wenn das Lehrkonzept der Bücher Ihnen den Einstieg in die Grundlagenfächer vereinfachen würde. Deshalb wünsche ich Ihnen viel Spaß und Erfolg beim Lesen des Buches und beim Erlernen der Grundlagen der Infor- matik. Ich habe versucht, das Buch nach bestem Wissen und Gewissen an die Bedürfnisse von Studierenden im Nebenfach anzupassen. Ganz herzlich bedanken möchte ich mich bei zwei meiner Studentinnen, Frau Lea Jungnickel und Frau Sandra Kerstin Spangen- berg, die das Buch aus studentischer Sicht gelesen und mich auf die unverständlichen Passagen hingewiesen haben. Prof. Dr. Holger Kohlhoff und Prof. Dr. Jürgen Lorenz haben mich inhaltlich bei der Fehlersuche unterstützt. Auch dafür möchte ich mich von ganzem Herzen bedanken. Ein Letztes noch: Aus Gründen der besseren Lesbarkeit verwende ich in diesem Buch überwiegend das generische Maskulinum. Es ist aber stets jede Geschlechtsidentität gemeint. Reinbek Boris Tolg August 2018 Inhaltsverzeichnis Teil I Einleitung 1 Wie arbeite ich mit diesem Buch ................................... 3 2 Dokumentation von Sprachen und Programmen ..................... 5 2.1 Syntaxdiagramme .......................................... 5 2.2 Unified Modelling Language (UML) ............................ 7 2.2.1 Das Anwendungsfalldiagramm ......................... 9 2.2.2 Das Aktivitätsdiagramm ............................... 13 2.2.3 Das Klassendiagramm ................................ 19 3 Taxonomiestufen ................................................ 27 Teil II Grundlagen 4 Die Sprache C++ ................................................ 33 4.1 Das erste Programm ......................................... 34 4.2 Noch ein paar Tipps ......................................... 37 5 Variablen ...................................................... 41 5.1 Variablentypen ............................................. 43 5.2 Typumwandlung ............................................ 44 5.3 Enumerationen ............................................. 46 5.4 Vertiefung: const, extern und static ............................. 48 5.4.1 const .............................................. 49 5.4.2 extern ............................................. 49 5.4.3 static .............................................. 50 5.5 Vertiefung: Eine Einführung in Zahlensysteme .................... 51 5.5.1 Addition und Multiplikation ........................... 54 5.5.2 Subtraktion ......................................... 54 5.5.3 Hexadezimalzahlen .................................. 56 Übungen ....................................................... 58 IX X Inhaltsverzeichnis 6 Verzweigungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 6.1 Operatoren für Vergleiche und logische Verknüpfungen ............. 63 6.2 if-Anweisungen ............................................ 65 6.3 switch-case-Anweisungen .................................... 68 Übungen ....................................................... 72 7 Schleifen ....................................................... 75 7.1 do-while-Schleifen .......................................... 77 7.2 while-Schleifen ............................................ 78 7.3 for-Schleifen .............................................. 80 7.4 continue und break .......................................... 84 Übungen ....................................................... 86 8 Felder ......................................................... 89 8.1 Zeichenketten .............................................. 92 8.2 Mehrdimensionale Felder .................................... 95 8.3 Mehrdimensionale Felder mit Zeichenketten ..................... 96 Übungen ....................................................... 98 9 Funktionen ..................................................... 103 9.1 Funktionen überladen ........................................ 107 9.2 Funktionsprototypen ........................................ 108 9.3 Referenzen und Felder als Funktionsparameter .................... 111 9.3.1 Felder als Parameter .................................. 113 9.4 Vertiefung: vorbelegte Funktionsparameter ....................... 114 9.5 Vertiefung: Variadische Funktionen ............................. 116 9.6 Vertiefung: Rekursive Aufrufe ................................. 118 9.7 Vertiefung: static ........................................... 121 Übungen ....................................................... 122 10 Klassen und Strukturen .......................................... 127 10.1 Konstruktoren und Destruktor ................................. 132 10.2 Memberfunktionen .......................................... 138 10.3 Operatoren ................................................ 143 10.4 Vererbung und Polymorphie .................................. 152 10.5 Vertiefung: Abstrakte Klassen ................................. 160 10.6 Vertiefung: Strukturen ....................................... 162 10.7 Vertiefung: const und static ................................... 163 10.7.1 const .............................................. 163 10.7.2 static .............................................. 165 Übungen ....................................................... 168 Inhaltsverzeichnis XI 11 Zeiger ......................................................... 173 11.1 Typumwandlung ............................................ 179 11.2 const ..................................................... 181 11.3 Felder .................................................... 183 11.4 Zeigerarithmetik ............................................ 185 11.5 Vertiefung: Mehrdimensionale Felder ........................... 188 11.5.1 Variante 1: Zeiger auf Felder ........................... 189 11.5.2 Variante 2: Zeiger auf Zeiger ........................... 191 11.5.3 Variante 3: virtuelle Dimensionen ....................... 194 11.6 Vertiefung: malloc, realloc, free und memcpy ..................... 197 11.7 Funktionen ................................................ 202 11.7.1 Call by Pointer ...................................... 202 11.7.2 Funktionszeiger ..................................... 203 11.8 Klassen ................................................... 206 11.8.1 Polymorphie ........................................ 208 11.8.2 Operatoren ......................................... 212 11.9 Vertiefung: Unions .......................................... 219 Übungen ....................................................... 222 Teil III Problemstellungen 12 Elektrokardiographie ............................................ 227 12.1 Planung der Softwarearchitektur ............................... 228 12.2 Laden der EKG-Daten ....................................... 235 12.2.1 Beschreibung des MIT-Formats ......................... 236 12.2.2 Erweiterung der Softwarearchitektur ..................... 239 12.2.3 Implementierung der Ladefunktion ...................... 243 12.3 Datenanalyse .............................................. 265 12.3.1 Erweiterung der Softwarearchitektur ..................... 268 12.3.2 Implementierung der Fast-Fourier-Transformation .......... 271 12.4 Exportieren der Ergebnisse ................................... 278 12.4.1 Erweiterung der Softwarearchitektur ..................... 279 12.4.2 Implementierung der Exportfunktion ..................... 279 12.4.3 Darstellung der Ergebnisse ............................ 284 Lösungen .......................................................... 287 Literatur ........................................................... 341

Description:
Dieses Lehrbuch richtet sich an Studierende von fachfremden Studiengängen mit Informatikanteilen. Ein besonderer Schwerpunkt liegt dabei auf den sogenannten Lebenswissenschaften, wie Medizintechnik, Rettungsingenieurwesen, Biotechnologie, Umwelttechnik oder Verfahrenstechnik. Das Lehrbuch eignet si
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.