Vorlesung: Rechnergestützte Physik (Comp. Physics)

Größe: px
Ab Seite anzeigen:

Download "Vorlesung: Rechnergestützte Physik (Comp. Physics)"

Transkript

1 Vorlesung: Rechnergestützte Physik (Comp. Physics) (PHY-IMAPH-033) Jun.-Prof. Dr. I. Eremin Termine: Mo 15:00-16:30, 16:45-18:15 (MS 3.2), Di 15:00-16:30 (MS 3.2) Vorbesprechung: (Mo, 14:00 MS 3.1) Ersatz-termin: Do: 14:00-15:30 (MS 3.1) Themen: - Schwingungsbewegung und Chaos - Das Sonnensystem: das drei Körperproblem - Zufällige Systeme: Perkolation - Erdbeben - Proteinfaltung - Phasen-Übergänge und das Ising-Modell Kontakt: Ilya Eremin ieremin@mpipks-dresden.mpg.de oder i.eremin@tu-bs.de Tel

2 Literatur: 1) J.M. Thijssen, Computational Physics, Cambridge niversity Press, ) A. MacKinnon, Computational physics, ) Tao Pang, An Introduction to Computational Physics, ) Franz J. Vesely, Computational Physics: an introduction, ) R.H. Landau and M.J. Páez, Computational Physics (problem solving with computers), Wiley & Sons, ). J. Giordano, Computational Physics, ) this script

3 1.1 Ein erstes numerisches Problem: radioaktiver Zerfall Viele Atomkerne sind nicht stabil: Ein typisches Beispiel ist das Kernisotop 235 (143 eutronen und 92 Protonen), das eine kleine, aber ziemlich bedeutende Wahrscheinlichkeit hat, um in zwei Kerne mit ungefähr der Hälfte seiner Größe zu zerfallen. Dieser Prozess des radioaktiven Zerfalls ist zufällig. Das Einzige, das Sie tun können, ist eine Wahrscheinlichkeit für den Zerfall anzugeben Stellen Sie sich vor, dass wir eine Probe haben, die eine große Zahl 235 Kerne enthält (t) ist die Zahl von ran-kernen, die zu der Zeit t existieren Differenzialgleichung d dt = τ τ ist die "Zeit-Konstante" für den Zerfall (Halbwertszeit eines Kerns) Die Lösung = (0) e t /τ (0) ist die Zahl von Kernen bei t = 0

4 1.2 Eine numerische äherung Während wir die genaue Lösung wissen, ist dieses Problem nützlich, um mehrere numerische Methoden einzuführen. Einfache Methode als eine Funktion von t zu erhalten ehmen Sie an, dass wir bei t = 0 wissen Wir wollen diesen Wert zu einer späteren Zeit schätzen Das ist ein so genanntes "Anfangswert-Problem" Taylor-Entwicklung für ( Δt) = (0) + d dt Δt d dt 2 ( Δt) Wenn wir annehmen, dass Δt klein ist, ist es eine gute äherung, die quadratischen und höheren Terme von Δt zu ignorieren (Euler-Methode) d ( Δt) (0) + Δt. dt

5 oder 1.2 Eine numerische äherung d ( t + Δt) ( t) + Δt. dt die Fehler sind von der Ordnung (Δt) 2 Wenn wir Δt klein machen, erwarten wir, dass die Fehler unwesentlich werden Es gibt Situationen, in denen die Fehler das Leben noch kompliziert machen können Wir wissen d dt = τ ( t + Δt) ( t) Δt. τ Diese äherung bildet die Basis für eine numerische Lösung!

6 Design und Konstruktion eines Computerprogramms: Code und Pseudocode Erster Schritt Programmiersprache wählen C++, FORTRA, Matlab Es ist möglich, die Struktur auf eine allgemeine Weise zu beschreiben Pseudocode! Das ist nicht eine genaue Computersprache, aber eher eine Beschreibung der wesentlichen Teile eines Algorithmus leicht, jedes Stück des Pseudocodes in die spezifischen Instruktionen Ihrer Lieblingssprache zu übersetzen ( t + Δt) ( t) Δt. (1) τ zu der Zeit 0, Δt, 2Δt,... 1) Die numerische äherung schließt ein 2) Wir werden an gerade diesen Werten von t wirklich berechnen 3) Wir werden ein Array (Feld) verwenden, um die Werte von zu speichern 4) nser allgemeiner Plan ist dann, (1) wiederholend zu benutzen, um die Werte von zu berechnen.

7 Pseudocode: Die gesamte Struktur des Programms Deklarieren Sie notwendige Variablen und Arrays Initialisierung der Variablen Durchführung der eigentlichen Berechnung Speichern Sie die Ergebnisse FORTRA-Sprache:! Simulation of radioactive decay program decay dim n_uranium(100), t(100)! declare the arrays we will need call initialize(n_uranium,t,tau,dt)! use subroutines to do the work call calculate(n_uranium,t,tau,dt) call display(n_uranium,t,tau,dt) end Der Rest der Arbeit wird in drei nterprogrammen getan: initialize, calculate, display Speicherplatz zuweisen (allocate):, Δt, τ Setze Anfangswert der Zeit, t(0) Setze Anzahl von Zeitschritten für die Berechnungen

8 Pseudocode: Die gesamte Struktur des Programms! initialize variables sub initialize(nuclei(),t(),time_constant,dt) input prompt "initial number of nuclei -> ": nuclei(1) t(1) = 0 input prompt "time constant -> ": time_constant input prompt "time step -> ": dt end sub calculate Für jeden Zeitschritt i (mit i=1 beginnend) berechnen Sie und t am Schritt i+1 t i+ ( ti ) ( ti+ 1) = ( ti ) Δt. τ 1 = ti + Δt. Wiederholen für -1-Schritte

9 sub calculate(n_uranium(),t(),tau,dt) for i = 1 to size(t)-1! now use the Euler method n_uranium(i+1) = n_uranium(i) - (n_uranium(i) / tau) * dt t(i+1) = t(i) + dt next i end sub Store oder Display sub display(n_uranium(),t(),tau,dt)! first set up title and label axes for graph call settitle("radioactive Decay umber of nuclei versus time") call sethlabel("time(s)") call setvlabel("umber of uclei") call datagraph(t,n_uranium,4,0,"black")! the graph is produced here set cursor 5,30! reposition cursor print "time constant = ";tau set cursor 6,30 print "time step = ";dt end sub Ein anderes Beispiel-Program mit MATLAB Die Fähigkeit, die Ergebnisse grafisch darzustellen, ist für die Computerphysik absolut notwendig.

10 Radioactive decay program in C /* decay.c * Simulation of radioactive decay */ #include <math.h> #include <stdio.h> #define MAX 100 double n_uranium[maxi ; /* number of uranium atoms */ double t [MAXI ; /* store time values here */ double dt; /* time step */ double tau; /* decay time constant */ double t-max; /* time to end simulation */ Main() { initialize(n_uranium,t,&tau,&dt); calculate(n_uranium,t,tau,dt); store(n_uranium,t); } /* initialize the variables */ initialize(nuclei,t,tc,dt) double *nuclei,*t,*tc,*dt; { printf ("initial number of nuclei -> ); scanf( %lf', &(nuclei[0])); /* begin using arrays at index 0 */ printf( time constant -> ); scanf ("%lf,tc) ; printf ("time step -> "); scanf ("%lf, dt); t[0] = 0.0; return; }

11 /* calculate the results and store them in the arrays t() and n_u() */ calculate(nuclei,t,tc,dt) double *nuclei,*t,tc,dt; { int i; for(i = 0; i < MAX-1; i++) { nuclei[i+1] = nuclei[i] - (nuclei[i] / tc) * dt; t[i+1] = t[i] + dt; } return; } /* save the results to a file */ store(nuclei,t) double *nuclei,*t { FILE *fp_out; int i; fp_out=fopen( decay.dat, w ); for(i=0;i<max; i++) { fprintf(fp_out, %g \ t%g \n, t[i], nuclei[i]); } fclose(fp_out); return; }

12 Prüfung Ihres Computerprogramms ehmen Sie an Ihr Programm kompiliert und läuft. Das ist noch nicht notwendigerweise das richtige Computerprogramm! Wir müssen überzeugt sein, dass die Ergebnisse richtig sind: Sehen die Ergebnisse angemessen aus? Wenn Sie die Ergebnisse jemand anderem zeigen, sollten Sie im Stande sein, ihn zu überzeugen, dass diese sinnvoll sind. Stimmt Ihr Programm mit irgendwelchen exakten Ergebnissen überein, die verfügbar sind? Genaue Ergebnisse sind für bestimmte Grenzfälle bekannt. Überprüfen Sie immer, ob Ihr Programm dieselbe Antwort für verschiedene Schritt-Größen gibt! Endantwort sollte nicht vom Δt Parameter abhängen Investieren Sie Zeit, um Ihre Ergebnisse zu überprüfen!

13 umerische Aspekte umerische Fehler: 1. Fehler werden durch die Annäherung (Euler Methode) eingeführt 2. Fehler werden durch die begrenzte numerische Präzision in jeder Computersprache (round-ff Präzision) eingeführt für C++ und Fortran doppelte Präzision verwenden Im radioaktiven Zerfall-Problem wurden wir dazu gebracht, Zeit als eine diskrete Variable zu behandeln Folgende Fragen: 1) Woher wissen wir, dass die durch diese Diskretisierung eingeführten Fehler klein sind? 2) Wie wählen wir den Wert der Schritt-Größe für eine Berechnung? Der globale Fehler ist das Produkt der Anzahl Zeitschritte (t/δt) und des Fehlers pro Schritt ([Δt] 2 ) und ist proportional zu Δt

14 Richtlinien und Philosophie Programm-Struktur 1) Benutzen Sie subroutines, um die Hauptaufgaben zu organisieren und das Programm besser lesbar und verständlich zu machen; 2) Schreiben Sie nterprogramme und Funktionen, um jeden Job durchzuführen, der länger ist als einige Zeilen Code oder der wiederholt erforderlich ist. Beschreibende amen 1) Wählen Sie die amen von Variablen und nterprogrammen gemäß dem Problem. 2) Das macht das Programm leichter zu verstehen, weil sie wie eingebaute Kommentare wirken. Kommentare 1) Schreiben Sie Kommentare, um die Programm-Logik zu erklären und Variablen zu beschreiben. Opfern Sie fast alles für die Klarheit 1) Computer-Leistungsfähigkeit schließt auch Kosten für das Lesen und Verstehen von Programmen mit ein. 2) Ein moderner Compiler optimiert häufig Ihren Code sehr stark. ehmen Sie sich Zeit, um grafische Darstellungen ebenfalls so klar wie möglich zu gestalten 1) Achsen sollten klar beschriftet sein und Parameter-Werte im Graphen angegeben werden

Kurzeinführung in C99

Kurzeinführung in C99 Kurzeinführung in C99 Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Compiler und Editoren - Was wird benötigt um ein Programm zu erstellen 2

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

Primzahlen und Programmieren

Primzahlen und Programmieren Primzahlen Wir wollen heute gemeinsam einen (sehr grundlegenden) Zusammenhang zwischen Programmieren und Mathematik herstellen. Die Zeiten in denen Mathematiker nur mit Zettel und Stift (oder Tafel und

Mehr

Informatik - Übungsstunde

Informatik - Übungsstunde Informatik - Übungsstunde Jonas Lauener (jlauener@student.ethz.ch) ETH Zürich Woche 08-25.04.2018 Lernziele const: Reference const: Pointer vector: iterator using Jonas Lauener (ETH Zürich) Informatik

Mehr

Programmieren in C Einführung

Programmieren in C Einführung Programmieren in C Einführung Aufbau eines Programms Einfache Programme Datentypen und Vereinbarungen Das Entwicklungswerkzeug Seite Einfache Programme Kugeltank-Berechnung #include void main

Mehr

Teil 5: Zeiger, Felder, Zeichenketten Gliederung

Teil 5: Zeiger, Felder, Zeichenketten Gliederung Teil 5: Zeiger, Felder, Zeichenketten Gliederung Zeiger und Adressen Felder (Arrays) Zeichenketten (Strings) Zeigerarithmetik Mehrdimensionale Felder Zeiger und Adressen Felder Zeichenketten Zeigerarithmetik

Mehr

Objektorientierte Programmierung - Was ist Programmieren?

Objektorientierte Programmierung - Was ist Programmieren? Objektorientierte Programmierung - Was ist Programmieren? Programmieren ist ein logischer, sequentieller Vorgang Programmieren Beim Programmieren nutzt man eine Sprache Diese Sprache ist ein Hilfsmittel

Mehr

Chaos im getriebenen nicht-linearen Pendel

Chaos im getriebenen nicht-linearen Pendel Chaos im getriebenen nicht-linearen Pendel Alle drei Ingredienzen: Nichtlinearität, Reibung, treibende Kraft 2 d θ g dθ = sinθ q + F sin 2 dt L dt ( t) D Ω D Das ist ein so genanntes physikalisches Pendel

Mehr

C Spickzettel: Was haben wir bisher von C verwendet?

C Spickzettel: Was haben wir bisher von C verwendet? C Spickzettel: Was haben wir bisher von C verwendet? Klaus Kusche, 2010 / 2011 Unser Programmgerüst Alle Programme werden bei uns in den nächsten Wochen Folgendes gemeinsam haben: #include #include

Mehr

Lösungshinweise/-vorschläge zum Übungsblatt 12: Software-Entwicklung 1 (WS 2017/18)

Lösungshinweise/-vorschläge zum Übungsblatt 12: Software-Entwicklung 1 (WS 2017/18) Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 12: Software-Entwicklung 1 (WS 2017/18)

Mehr

Einführung in die Programmierung mit VBA

Einführung in die Programmierung mit VBA Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen

Mehr

Mussten wir eine ganze Reihe solcher Zahlen speichern, haben wir das eindimensionale Array verwendet.

Mussten wir eine ganze Reihe solcher Zahlen speichern, haben wir das eindimensionale Array verwendet. C Zweidimensionale Arrays Fachspezifische Softwaretechnik 1 Scriptum 2017 HTL St.Pölten Elektronik und Technische Informatik EL Autor: Kuran Zweidimensionale Arrays: Bisher konnten wir in Variablen einfache

Mehr

C-Kurs 2010 Pointer. 16. September v2.7.3

C-Kurs 2010 Pointer. 16. September v2.7.3 C-Kurs 2010 Pointer Sebastian@Pipping.org 16. September 2010 v2.7.3 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. C-Kurs Mi Konzepte, Syntax,... printf, scanf Next

Mehr

Übungen zu Meteorologische Modellierung Teil 'Grundlagen der Numerik'

Übungen zu Meteorologische Modellierung Teil 'Grundlagen der Numerik' Übungen zu Meteorologische Modellierung Teil 'Grundlagen der Numerik' 1. Diskretisierung in der Zeit: Die Evolutionsgleichung Kurzzusammenfassung Zur Erprobung der Verfahren zur zeitlichen Diskretisierung

Mehr

Labor Software-Entwicklung 1

Labor Software-Entwicklung 1 Fakultät für Technik STUDIENGANG MEDIZINTECHNIK Labor Software-Entwicklung Vorbereitungsaufgaben zu Versuch 2 C-Programmierung Mathematische Berechnungen Wintersemester 205/206 Seite von 5 Vorbemerkungen

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 3 (27.4.2014) O-Notation, Asymptotische Analyse, Sortieren III Algorithmen und Komplexität Selection Sort Algorithmus SelectionSort (informell):

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 11. Vorlesung 14.06.2017 1 Schleifen 2 do...while do block while ( bedingung ); block: eine Anweisung oder Anweisungen in { block bed JA NEIN 3 while while ( bedingung ) block

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 3. Vorlesung 18.04.2018 1 Elemente von Programmiersprachen Operatoren Kontrollstrukturen Bibliotheksfunktionen 2 Was sind Kontrollstrukturen? Kontrollstrukturen erlauben,

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 2 (23.4.2018) Sortieren II, Asymptotische Analyse, O-Notation Algorithmen und Komplexität Laufzeit Zeitmessung SelectionSort n 2 Laufzeit/n

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Theoretische Biophysik - Statistische Physik

Theoretische Biophysik - Statistische Physik Theoretische Biophysik - Statistische Physik 10. Vorlesung Pawel Romanczuk Wintersemester 2018 http://lab.romanczuk.de/teaching/ 1 Brownsche Bewegung Zusammenfassung letzte VL Formulierung über Newtonsche

Mehr

Computergestütztes wissenschaftliches Rechnen SoSe 2004

Computergestütztes wissenschaftliches Rechnen SoSe 2004 Computergestütztes wissenschaftliches Rechnen SoSe 2004 Alexander K. Hartmann, Universität Göttingen April 19, 2004 1 Einführung 1.1 Warum Computerphysik? Vorteil analytische Theorie: große Systeme Nachteil:

Mehr

Grundlagen der Informatik 2. Typen

Grundlagen der Informatik 2. Typen Grundlagen der Informatik 2. Typen Speicher, Speicherbedarf Ein-/Ausgabe Grundlagen der Informatik (Alex Rempel) 1 Wiederholung // root calculation #include #include using namespace

Mehr

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz FH München, FB 03 FA WS 06/07 Ingenieurinformatik Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz Zulassung geprüft vom Aufgabensteller: Teil I Aufg. 2 Aufg. 3 Aufg. 4 Aufg. 5 Summe Note Aufgabensteller:

Mehr

Einleitung Grundlagen Erweiterte Grundlagen Zusammenfassung Literatur. C: Funktionen. Philip Gawehn

Einleitung Grundlagen Erweiterte Grundlagen Zusammenfassung Literatur. C: Funktionen. Philip Gawehn C: Funktionen Philip Gawehn Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg Do., 22.05.2014 1 / 23 Gliederung

Mehr

Advanced Programming in C

Advanced Programming in C Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer

Mehr

This image cannot currently be displayed. Java à Matlab. bereitgestellt von Dr. Lukas Faessler 12/4/17

This image cannot currently be displayed. Java à Matlab. bereitgestellt von Dr. Lukas Faessler 12/4/17 This image cannot currently be displayed. Java à Matlab bereitgestellt von Dr. Lukas Faessler 12/4/17 Allgemeine Programmierkonzepte kommen in verschiedenen Programmiersprachen vor sind langlebig Sprachen

Mehr

Informatik für Mathematiker und Physiker Woche 6. David Sommer

Informatik für Mathematiker und Physiker Woche 6. David Sommer Informatik für Mathematiker und Physiker Woche 6 David Sommer David Sommer October 31, 2017 1 Heute: 1. Rückblick Übungen Woche 5 2. Libraries 3. Referenzen 4. Step-Wise Refinement David Sommer October

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Strings (Zeichenketten)

Strings (Zeichenketten) Strings (Zeichenketten) INE1, Montag M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Interaktion mit Computer oft textbasiert Fragen wie wird Text dargestellt? wie wird

Mehr

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016 to to May 2016 to What is Programming? All computers are stupid. All computers are deterministic. You have to tell the computer what to do. You can tell the computer in any (programming) language) you

Mehr

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit

Mehr

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach  10. Zeiger C-Kurs 2012, 2. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 10. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Computergestütztes wissenschaftliches Rechnen SoSe 2004

Computergestütztes wissenschaftliches Rechnen SoSe 2004 Computergestütztes wissenschaftliches Rechnen SoSe 00 Alexander K. Hartmann, Universität Göttingen. Mai 00. Dynamisches Programmieren Fibonacci Zahlen: (n = ) fib(n) = (n = ) fib(n ) + fib(n ) (n > ) Z.B.

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 2 (22.4.2016) Sortieren II Algorithmen und Komplexität SelectionSort: Programm Schreiben wir doch das gleich mal als Java/C++ - Programm

Mehr

Programmieren in C (Übungsblatt 1)

Programmieren in C (Übungsblatt 1) 21.02.2017 Aufgabe 1: Programmausführung Programmieren in C (Übungsblatt 1) a) Bitte geben Sie den folgenden Programmcode ein: /* Beispiel fuer Textausgaben */ #include int main() { printf("c-programmierung

Mehr

Differenzengleichungen. und Polynome

Differenzengleichungen. und Polynome Lineare Differenzengleichungen und Polynome Franz Pauer Institut für Mathematik, Universität Innsbruck Technikerstr. 13/7, A-600 Innsbruck, Österreich franz.pauer@uibk.ac.at 1 Einleitung Mit linearen Differenzengleichungen

Mehr

6. Kontrollanweisungen II

6. Kontrollanweisungen II Sichtbarkeit 6. Kontrollanweisungen II Sichtbarkeit, Lokale Variablen, While-Anweisung, Do-Anweisung, Sprunganweisungen main block Deklaration in einem Block ist ausserhalb des Blocks nicht sichtbar. int

Mehr

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h> Allgemeines Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C #include int main() { printf( hello world\n ); return 0; } Peter Sobe 1 Verschiedene Sprachkonzepte

Mehr

Programmieren in C (Übungsblatt 1)

Programmieren in C (Übungsblatt 1) 23.02.2016 Aufgabe 1: Programmausführung Programmieren in C (Übungsblatt 1) a) Bitte geben Sie den folgenden Programmcode ein: /* Beispiel fuer Textausgaben */ #include int main() { printf("c-programmierung

Mehr

5. Kontrollanweisungen II

5. Kontrollanweisungen II Sichtbarkeit 5. Kontrollanweisungen II Sichtbarkeit, Lokale Variablen, While-Anweisung, Do-Anweisung, Sprunganweisungen main block Deklaration in einem Block ist ausserhalb des Blocks nicht sichtbar. int

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2014, 16. Juli 2014 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:

Mehr

FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren

FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit Aufgabenblätter erreichbare Punktzahl zugelassene Hilfsmittel, 0800 1000 Uhr (120 min) 16 Seiten (einschl. Deckblatt)

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 4 (7.5.2014) Asymptotische Analyse, Sortieren IV Algorithmen und Komplexität Erfahrungen 1. Übung C++ / Java sind komplett ungewohnt Struktur

Mehr

Javadoc und Java ohne IDE

Javadoc und Java ohne IDE Javadoc und Java ohne IDE Thomas Schwotzer 1 Einführung Programmcode einer Hochsprache ist in ersten Linie ein Text. Dieser Text soll sehr klar verständlich sein. Daher gibt es schon immer (d.h. seit der

Mehr

Kontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht

Kontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht Kontrollanweisungen Kontrollfluss o bisher linear (von oben nach unten) o Für interessante Programme braucht man Verzweigungen und Sprünge Kontrollfluss o bisher linear (von oben nach unten) o Für interessante

Mehr

Numerische Methoden der Physik. 3 Gewöhnliche Differentialgleichungen, Anfangswertprobleme

Numerische Methoden der Physik. 3 Gewöhnliche Differentialgleichungen, Anfangswertprobleme Numerische Methoden der Physik 3 Gewöhnliche Differentialgleichungen, Anfangswertprobleme Marc Wagner Institut für theoretische Physik Johann Wolfgang Goethe-Universität Frankfurt am Main SS 2014 3.3 Runge-Kutta-Methode

Mehr

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C Übersicht Funktionen Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion Sinn von Funktionen Wiederverwendung häufig verwendeter nicht banaler Programmteile Wiederverwendung

Mehr

Informatik 1 für Nebenfachstudierende Beispiele für Klausuraufgaben

Informatik 1 für Nebenfachstudierende Beispiele für Klausuraufgaben Informatik 1 für Nebenfachstudierende Beispiele für Klausuraufgaben Aufgabe 1: Zahlensysteme a) Stellen sie die Zahl Z als allgemeine Formel mittels eines polyadischen Zahlensystems zur Basis B dar. b)

Mehr

Computational Physics. Peter Uwer AG Phänomenologie der Elementarteilchenphysik (PEP)

Computational Physics. Peter Uwer AG Phänomenologie der Elementarteilchenphysik (PEP) Computational Physics Peter Uwer AG Phänomenologie der Elementarteilchenphysik (PEP) Vorbemerkung Studienpunkte Merkblatt Form der abgebenen Lösungen Gedruckt unter Verwendung der Latex-Vorlage Kurz und

Mehr

Einführung Pointer. C-Kurs 2013, 2. Vorlesung. Nico Andy

Einführung Pointer. C-Kurs 2013, 2. Vorlesung. Nico Andy Einführung Pointer C-Kurs 2013, 2. Vorlesung Nico nico@freitagsrunde.org Andy andrew@freitagsrunde.org http://wiki.freitagsrunde.org 10. September 2013 This work is licensed under the Creative Commons

Mehr

Praxis der Programmierung

Praxis der Programmierung Arrays, Pointerarithmetik, Konstanten, Makros Institut für Informatik und Computational Science Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Arrays (Felder/Vektoren) 2 Arrays: Motivation

Mehr

Computerphysik. Übungsblatt 6

Computerphysik. Übungsblatt 6 Institut für Theoretische Physik der Universität zu Köln Computerphysik Übungsblatt 6 SS 2013 Prof. Dr. Simon Trebst Michael Becker, Peter Bröcker Website: http://www.thp.uni-koeln.de/trebst/lectures/2013-compphys.html

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include

Mehr

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A 2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,

Mehr

Visuelle Kryptographie. Anwendung von Zufallszahlen

Visuelle Kryptographie. Anwendung von Zufallszahlen Visuelle Kryptographie Anwendung von Zufallszahlen Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken, so dass Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken,

Mehr

Pascal Schärli

Pascal Schärli Informatik I - Übung 8 Pascal Schärli pascscha@student.ethz.ch 12.04.2019 1 Was gibts heute? Best-Of Vorlesung: Prefix / Infix EBNF Vorbesprechung Problem of the Week 2 Vorlesung 3. 1 Prefix Notation Infix

Mehr

Prüfung Informatik D-MATH/D-PHYS :00 17:00

Prüfung Informatik D-MATH/D-PHYS :00 17:00 Prüfung Informatik D-MATH/D-PHYS 9. 8. 0 5:00 7:00 Prof. Bernd Gartner Kandidat/in: Name:. Vorname:. Stud.-Nr.:. Ich bezeuge mit meiner Unterschrift, dass ich die Prufung unter regularen Bedingungen ablegen

Mehr

C-Pointer (Zeiger, Adressen) vs. C++ Referenzen

C-Pointer (Zeiger, Adressen) vs. C++ Referenzen C-Pointer (Zeiger, Adressen) vs. C++ Referenzen Der Pointer (C/C++): In C/C++ ist der Pointer ein eigener Datentyp, der auf Variablen/Objekte zeigen kann. Indem man den Pointer dereferenziert, gewinnt

Mehr

Differentialgleichungen

Differentialgleichungen Differentialgleichungen Viele physikalische Probleme können mathematisch als gewöhnliche Differentialgleichungen formuliert werden nur eine unabhängige Variable (meist t), z.b. Bewegungsgleichungen: gleichmäßig

Mehr

Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1

Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1 Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1 Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Das C++ Typsystem simple structured integral enum

Mehr

C++ Teil 7. Sven Groß. 30. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 13

C++ Teil 7. Sven Groß. 30. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 13 C++ Teil 7 Sven Groß 30. Nov 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 30. Nov 2015 1 / 13 Themen der letzten Vorlesung Zeiger, Felder (Wdh.) dynamische Speicherverwaltung Sven Groß (IGPM, RWTH Aachen)

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen? Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen

Mehr

Programmierung und Angewandte Mathematik

Programmierung und Angewandte Mathematik Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Inhalt Compiler/Editor Klassendeklaration

Mehr

Numerische Methoden der Physik. 5 Gewöhnliche Differentialgleichungen, Randwertprobleme

Numerische Methoden der Physik. 5 Gewöhnliche Differentialgleichungen, Randwertprobleme Numerische Methoden der Physik 5 Gewöhnliche Differentialgleichungen, Randwertprobleme Marc Wagner Institut für theoretische Physik Johann Wolfgang Goethe-Universität Frankfurt am Main SS 2014 5.2.1 Beispiel:

Mehr

Übungspaket 14 Eindimensionale Arrays

Übungspaket 14 Eindimensionale Arrays Übungspaket 14 Eindimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung eindimensionaler Arrays Kapitel: 33 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Praktikum Ingenieurinformatik. Termin 6. Mehrdimensionale Felder, Kurvendarstellung mit Excel

Praktikum Ingenieurinformatik. Termin 6. Mehrdimensionale Felder, Kurvendarstellung mit Excel Praktikum Ingenieurinformatik Termin 6 Mehrdimensionale Felder, Kurvendarstellung mit Excel 1 Praktikum Ingenieurinformatik Termin 6 1. Mehrdimensionale Felder 2. Kurvendarstellung mit Excel 3. Zusatzaufgaben

Mehr

Praktikum Ingenieurinformatik. Termin 4. Funktionen, numerische Integration

Praktikum Ingenieurinformatik. Termin 4. Funktionen, numerische Integration Praktikum Ingenieurinformatik Termin 4 Funktionen, numerische Integration 1 Praktikum Ingenieurinformatik Termin 4 1. Funktionen. Numerische Integration, Trapezverfahren 1.1. Funktionen Eine Funktion ist

Mehr

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. 2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum

Mehr

Dynamische Datentypen

Dynamische Datentypen Dynamische Datentypen Tupel und Folgen o Wertebereich eines Structs / einer Klasse: T1 T2... Tk Werte sind k-tupel Tupel und Folgen o Wertebereich eines Structs / einer Klasse: T1 T2... Tk Werte sind k-tupel

Mehr

Programmieren in C (Übungsblatt 1)

Programmieren in C (Übungsblatt 1) 27.02.2018 Aufgabe 1: Programmausführung Programmieren in C (Übungsblatt 1) a) Bitte geben Sie den folgenden Programmcode ein: /* Beispiel fuer Textausgaben */ #include int main(void) { printf("c-programmierung

Mehr

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben Datenfelder (Array) Seite 1 von 7 Bei den bisherigen Programmen wurde für jede verwendete Variable (oder für jedes Objekt) ein eigener Typ und Name vergeben. Die Initialisierung, d.h. die Belegung mit

Mehr

Übungsstunde 11. Einführung in die Programmierung

Übungsstunde 11. Einführung in die Programmierung Übungsstunde 11 Einführung in die Programmierung Probleme bei Übung 10 [TODO Assistent] Nachbesprechung Übung 11 Aufgabe 1: Linked List (Bonus!) Ergebnisse nach der Korrektur direkt per SVN Aufgabe 2:

Mehr

Zusammenfassung des Handzettels für Programmieren in C

Zusammenfassung des Handzettels für Programmieren in C Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.

Mehr

Numerische Integration

Numerische Integration A1 Numerische Integration Einführendes Beispiel In einem Raum mit der Umgebungstemperatur T u = 21.7 C befindet sich eine Tasse heissen Kaffees mit der anfänglichen Temperatur T 0 80 C. Wie kühlt sich

Mehr

Dynamische Speicherverwaltung

Dynamische Speicherverwaltung Dynamische Speicherverwaltung 1/ 23 Dynamische Speicherverwaltung Tim Dobert 17.05.2013 Dynamische Speicherverwaltung 2/ 23 Gliederung 1 Allgemeines zur Speichernutzung 2 Ziele und Nutzen 3 Anwendung in

Mehr

Übungsstunde: Informatik 1 D-MAVT

Übungsstunde: Informatik 1 D-MAVT Übungsstunde: Informatik 1 D-MAVT Daniel Bogado Duffner Übungsslides unter: n.ethz.ch/~bodaniel Bei Fragen: bodaniel@student.ethz.ch Daniel Bogado Duffner 25.04.2018 1 Ablauf Self-Assessment Pointer Iterators

Mehr

Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung

Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung Felder (Arrays) Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder

Mehr

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

Übungen zu Softwareentwicklung 1, WS 2009/10 Übung 6

Übungen zu Softwareentwicklung 1, WS 2009/10 Übung 6 Übungen zu Softwareentwicklung 1, WS 2009/10 Übung 6 Name: Abzugeben bis: Mi, 2.12.2009 12:00 Matrikelnummer: Bearbeitungsdauer in Stunden: Nummer der Übungsgruppe: Name des Tutors: Name des Übungsleiters:

Mehr

Programming 101. Carl Herrmann IPMB & DKFZ

Programming 101. Carl Herrmann IPMB & DKFZ Programming 101 Carl Herrmann IPMB & DKFZ Programmieren Kommandozeile Einfache Befehle Shell Skript aneinanderketten von Befehlen Schleifen Programmiersprache Komplexere Aufgaben Gemeinsamkeiten Alle Programmiersprachen

Mehr

1.6 Programmstrukturen/Abweisende Schleife

1.6 Programmstrukturen/Abweisende Schleife 1.6 Programmstrukturen/Abweisende Schleife 1.6.1 Schleife Die meisten Programmiersprachen haben Konstruktionen, die eine beliebige Wiederholung von Programmteilen ermöglichen. Diese Konstruktionen heißen

Mehr

Fibonacci Zahlen Empirische Untersuchung der Aufrufe

Fibonacci Zahlen Empirische Untersuchung der Aufrufe Fibonacci Zahlen Empirische Untersuchung der Aufrufe Idee Um einen Überblick über die Rekursive Fibonacci Funktion zu erhalten könnte eine Untersuchung der Knotenpunkte Aufschluss über die Anzahl der Knoten

Mehr

1. Anfangswertprobleme 1. Ordnung

1. Anfangswertprobleme 1. Ordnung 1. Anfangswertprobleme 1. Ordnung 1.1 Grundlagen 1.2 Euler-Vorwärts-Verfahren 1.3 Runge-Kutta-Verfahren 1.4 Stabilität 1.5 Euler-Rückwärts-Verfahren 1.6 Differenzialgleichungssysteme 5.1-1 1.1 Grundlagen

Mehr

Lesen Sie alle Aufgabenstellungen sorgfältig durch, bevor Sie mit der Bearbeitung der ersten Aufgabe beginnen.

Lesen Sie alle Aufgabenstellungen sorgfältig durch, bevor Sie mit der Bearbeitung der ersten Aufgabe beginnen. INE1 Musteraufgaben für die Semesterendprüfung Hilfsmittel Vier Seiten selbst verfasste Zusammenfassung keine weiteren Hilfsmittel keine elektronischen Hilfsmittel Abgabe Füllen Sie das erste Aufgabenblatt

Mehr

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine

Mehr

Grundlagen der Informatik III Wintersemester 2010/2011

Grundlagen der Informatik III Wintersemester 2010/2011 Grundlagen der Informatik III Wintersemester 2010/2011 Michael Koch, Wolfgang Heenes, Patrik Schmittat 5. Praktikum Ausgabe: 19.01.2011; Abgabe: 13.02.2011, 23:59 Uhr Abgabe der Programme: Die Abgabe der

Mehr

Informatik II. Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017

Informatik II. Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017 1 Informatik II Übung 6 Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017 Heutiges Programm 2 1 Klassen - Technisch 2 Prediscussion

Mehr

Computerphysik. Übungsblatt 13

Computerphysik. Übungsblatt 13 Institut für Theoretische Physik der Universität zu Köln Computerphysik Übungsblatt 13 SS 2013 Prof. Dr. Simon Trebst Michael Becker, Peter Bröcker Website: http://www.thp.uni-koeln.de/trebst/lectures/2013-compphys.html

Mehr