Programmiervorkurs für die Numerik Teil 1/4

Ähnliche Dokumente
Programmiervorkurs für die Numerik Teil 2/4

Mathematische Computer-Software

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

Brückenkurs Programmieren

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

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

m-files sind Folgen von MATLAB-Anweisungen oder Daten-Files.

WS2017/ Oktober 2017

Zyklen: break und continue

WS2018/ Oktober 2018

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Einführung in die Informatik I

Einfache Bedingte Ausführung

Fachhochschule Südwestfalen Wir geben Impulse. Kontrollstrukturen und Schleifen in Octave

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Unterlagen. CPP-Uebungen-08/

Programmieren 1 C Überblick

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Informatik I Übung, Woche 40

Programmieren I. Kapitel 5. Kontrollfluss

Grundlagen der Programmierung

Python Intro. Vorsemesterkurs Informatik Praktischer Teil WS2012/13. 2.Oktober Vorkurs Informatik - WS 2012/13

System.out.println("TEXT");

Kontrollstrukturen -- Schleifen und Wiederholungen

Programmierkurs Python I

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

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

Programmiertechnik Kontrollstrukturen

Einführung in die Programmierung II. 3. Kontrollstrukturen

Algorithmen und Datenstrukturen (für ET/IT)

Ein kleiner Matlab Primer Frank Schimmel

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

3 Kurzeinführung in Matlab

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Kompaktkurs Einführung in die Programmierung. 4. Kontrollstrukturen

Tag 2 Repetitorium Informatik (Java)

Angewandte Mathematik und Programmierung

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Kontrollstrukturen und Logik

Tag 3 Repetitorium Informatik (Java)

12 == 12 true 12 == 21 false 4 === 7 true 4 === "vier" false 4 === 4.0 false 12!= 13 true 12!== 12 false 12!== 12.0 true. 1 < 3 true 3 < 1 false

Zweiter Teil des Tutorials. Workspace M-files Matrizen Flow Control Weitere Datenstrukturen Gemeinsames Beispiel erarbeiten

Arithmetik in der tcsh

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Kontrollstrukturen

Python Intro I. Vorsemesterkurs Informatik Praktischer Teil WS 2013/14. 1.Oktober Vorkurs Informatik - WS 2013/14

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Steuerung von Programmabläufen. Lehrstuhl für Angewandte Mathematik Sommersemester Mai und 15. Mai 2008

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

Programmierkurs Python I

Computergestützte Mathematik zur Linearen Algebra

Übungszettel 2a - Python

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

Programmiertechnik 1 FOR-SCHLEIFEN

Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung

Programmiereinführung Python Vorlesung zu Modul 1B. Anwendungsnahes Programmieren, FS19 Dr. Lukas Fässler Departement Informatik, ETH Zürich

6. Kontrollanweisungen II

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Programmiervorkurs Einführung in Java Tag 1

Grundlagen der Programmierung

Programmiertechnik 1 FOR-SCHLEIFEN

JAVA-Datentypen und deren Wertebereich

Algorithmen und ihre Programmierung

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

Einstieg in die Informatik mit Java

Algorithmik und Programmieren

Ideen und Konzepte der Informatik

Javakurs für Anfänger

Grundlagen von C# - 2

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

Grundlagen der Informatik 2. Operatoren

Kontrollstrukturen und Logik

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

2. Programmierung in C

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

<? $ZeilenMax = 9; $SpaltenMax = 9; echo "<pre>";

Folienpaket 4 Themenschwerpunkte: Kontrollstrukturen: Schleifen /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Programmieren lernen mit Groovy Rekursion Rekursion und Iteration

5. Kontrollanweisungen II

EINI WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Modellierung und Programmierung 1

Lexikalische Struktur von Fortran 95. Normierte Zeichensätze

Vorkurs Informatik WiSe 17/18

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Java: Eine kurze Einführung an Beispielen

Grundlagen der Programmierung

WiMa-Praktikum 1. Woche 8

Variablen und Datentypen

Transkript:

line 1 1 0.8 0.6 0.4 0.2 0-0.2-0.4 Programmiervorkurs für die Numerik Teil 1/4 Christian Power Mathematisches Institut Universität Tübingen -8-6 -4-2 0 04.10.2016 2 4 6 8-8 -6-4 -2 0 2 4 6 8

Gliederung Grundlegendes Die Programmiersprachen MATLAB und Julia Grundlegende Syntax Einfache Operatoren I Kontrollstrukturen 2 / 21

Was bedeutet Programmieren? Übersetzung von Menschensprache in Computersprache. Analog zum Übersetzungen. Der Sinn der Anweisungen in Menschensprache muss dazu nicht notwendigerweise verstanden werden! Aber: Das Wissen darum schadet nicht. Hingegen: (Minimale) Programmierkenntnisse sind notwendig! Unterschiede beim Programmieren: Man muss sich vorher überlegen, was alles passieren kann (z.b. Division durch Null führt zum Abbruch des Programms) Man muss sich präzise ausdrücken. Ungenaue Umgangssprache reicht nicht. Grundlegendes 3 / 21

Ein Beispiel Berechnen Sie S = n i=0 ( 1) i (2i+1) für n = 5. 1 n = 5; % n +1 == Anzahl der Summanden 2 S = 0; % Summe 3 for i = 0 : n 4 S = S + ( -1) ^ i / (2 * i + 1) 5 end 6 % Ausgabe Summe 7 disp ( Ergebnis : S = ); disp (S); Grundlegendes 4 / 21

Erste Programmiertechniken Vernünftiger Einsatz von Kommentaren und Einrückung machen ein Programm wesentlich angenehmer zu lesen und zu verstehen. Ein Kommentar sollte sinnvoll sein, das Programm beschreiben und aktuell sein. Gute Kommentare sind kurz und knackig. Seid konsistent mit der Art eures Einrückens. Warnung: Die meisten Programme enthalten Kommentare, die zu lang, mehrdeutig oder schlicht falsch sind. Schlechte Kommentare sind schlimmer als keine Kommentare! Grundlegendes 5 / 21

Kurze Geschichte zu MATLAB MATLAB wurde ursprünglich von Cleve Moler (Univ. of New Mexico) entwickelt. Der erste Version war 1984 erhältlich. Ziel war es, dass Studenten LINPACK und EISPACK benutzen konnten ohne Fortran lernen zu müssen. MATLAB ist kommerziell sehr erfolgreich und wird stetig weiter entwickelt. Die Programmiersprachen MATLAB und Julia 6 / 21

Kurze Geschichte zu Julia Julia wurde ursprünglich von Jeff Bezanson, Stefan Karpinski, Viral B. Shah, Alan Edelman entwickelt (MIT und Julia Computing). Die erste Version war 2012 erhältlich. Folgende Ziele wurden versucht zu realisieren. 1. Julia ist eine schnelle dynamische Programmiersprache mit hohen Abstraktionsgrad. 2. Julia ist immun gegen das zwei Sprachen Problem. 3. Bei Julia sind Benutzer gleichzeitig Entwickler. Die Programmiersprachen MATLAB und Julia 7 / 21

Beide Programmiersprachen umfassen: Variablen und Daten (Skalare, Vektoren, Matrizen) Anweisungen Operatoren (arithmetische Op. z.b. +, und relationale Op. <, >) Funktionen (sin, Ausgaben von Variablen, eigen Funktionen) Kontrollanweisungen (Schleifen, Verzweigungen) Kommentare (zur besseren Lesbarkeit) Die Programmiersprachen MATLAB und Julia 8 / 21

Erste Hilfe Bei MATLAB Hilfe in der Menuleiste wählen Eingabe von help bzw. doc im Kommando-Fenster führt auf die Hilfeseiten von MATLAB. Bei Julia Im Kommando-Fenster?Befehlname eingeben. http://docs.julialang.org/en/release-0.5/ Allgemeiner Tipp: Bei Problemen im Internet suchen! (Stichwort matlab/ julia + gesuchter Begriff). Grundlegende Syntax 9 / 21

Auszüge der Syntax 1/2 Variablen sind Zeichenfolgen ohne + - * / %, die keine Syntax-Elemente sind, z.b. funktionswert = 1 + 3; andererwert = 2 * funktionswert ; Kommentar ist alles hinter einem Prozentzeichen bzw. einem Kreuz a = 1; % Das ist ein Matlab Kommentar b = 2; # Das ist ein Julia Kommentar Strings (Zeichenketten): string1 = Dies ist ein Matlab String ; string2 = " Dies ist ein Julia String "; Grundlegende Syntax 10 / 21

Auszüge der Syntax 2/2 Abschließen eines Ausdrucks und Unterdrücken von Ausgaben mittels Semikolon (;) a = 1 + 1; b = 2 * a; # Keine Ausgabe a = 1 + 2 # Ausgabe 3 Bei MATLAB werden Code-Zeilen auf mehrere Zeilen via dem 3-Punkt-Operator (...) aufgeteilt f = 1 + 2 + 3 + 4 +... 5 + 6 + 7 + 8; Bei Julia werden unvollständige Code-Zeilen automatisch aufgeteilt. Grundlegende Syntax 11 / 21

Operatoren in MATLAB und Julia Zuweisungsoperator: = a =3; b = a; Arithmetische Operatoren: + - * / ˆ 3 + 2; 5-1; x = 2^3 Relationale Operatoren: == = > >= < <= (Julia :!= anstatt =) x = 3!= 4; println ( x) # Ausgabe : true x = 3; x > 3 # Ausgabe : false Logische Operatoren: & (and, or, not); Julia :! für not x = 3; ~(x == 1) & (x < 5) % Ausgabe : 1 Einfache Operatoren I 12 / 21

if-abfrage if logischer Ausdruck Anweisung(en) elseif logischer Ausdruck Anweisung(en). else Anweisung(en) end 1 x = 1; 2 y = 2; 3 if x < y 4 disp ( x < y ) 5 elseif x > y 6 disp ( x > y ) 7 else % x == y 8 disp ( x == y ) 9 end Kontrollstrukturen 13 / 21

while-schleife while logischer Ausdruck Anweisung(en) end 1 i = 1; 2 while i <= 5 # 5 Itererationen 3 println (i) 4 i += 1 5 end Kontrollstrukturen 14 / 21

for-schleife for Variable = Startwert : Inkrement : Endwert Anweisung(en) end 1 for i = 1:5 2 println (i) 3 end Kontrollstrukturen 15 / 21

Ähnlichkeiten zwischen while- und for-schleife Eine while-schleife ist allgemeiner: Es gilt aber nicht immer Äquivalente Schleifen: for-schleife = while-schleife for-schleife = while-schleife 1 % for - Schleife : einfacher zu lesen 2 for n = 4 : 2 : 10 3 n 4 end 5 % while - Schleife : flexibler 6 m = 4; 7 while m < 11 8 m 9 m = m + 2; 10 end Kontrollstrukturen 16 / 21

break und continue in Schleifen Die beiden Schlusselwörter veranlassen die Bearbeitung des Schleifeninneren an der Stelle ihres Vorkommens abzubrechen. break: Setze die Programmabarbeitung unmittelbar hinter der Schleife fort. continue: Springe an den Schleifenanfang und setzt die Programmabarbeitung mit der Auswertung der Schleifenbedingung fortgesetzt. 1 for i = 1: 10 2 if i == 4 3 continue 4 end 5 if i == 8 6 break 7 end 8 i 9 end Kontrollstrukturen 17 / 21

Bemerkung 1/3 Wo Whitespaces, also Leerzeichen, Tabulatoren erlaubt oder erforderlich sind, können beliebig viele davon zusammenhängend verwendet werden. (Also ein Leerzeichen oder z.b. 10 für schöne Einrückung) In Terminal-Fenstern oder Command Windows muss nach der Texteingabe immer die Entertaste gedrückt werden, damit der Text bearbeitet (ausgeführt) wird. Vor dem Ausführen des eigenen Programms in MATLAB das Speichern im Texteditor nicht vergessen. Vorsicht bei der Benutzung von i und j: beide können in MATLAB für die komplexe Zahl i stehen. Bei Julia ist im die imaginäre Einheit. Kontrollstrukturen 18 / 21

Bemerkung 2/3 Der Sinn von Variablen besteht darin, Daten (eine Zahl, ein Vektor, etc.) für eine spätere Verarbeitung aufzubewahren, z.b. für den nächsten Schleifendurchgang. Nicht vergessen, einer Variable einen Wert zuzuweisen, bevor sie verwendet wird. Um innerhalb eines Programms den Wert einer (existierenden) Variable zu kontrollieren, fügt man an der interessierenden Stelle ein Zeile mit nur dem Namen der Variable ein. Das Malzeichen zwischen zwei Faktoren darf nicht weggelassen werden. Kontrollstrukturen 19 / 21

Bemerkung 3/3 Operatoren haben immer einen oder mehrere Operanden. Z.B. Der + - Operator erwartet links und rechts von ihm einen Operanden: a + b. Sind mehrere Additionen verkettet, etwa a + b + c + d klammert MATLAB implizit und berechnet folgenden Ausdruck: ((a + b) + c) + d. Die i-ten Partialsummen S i in den Übungen berechnen sich mit q i = q(t) als S i = S i 1 + q i = ((((q 1 + q 2 ) + q 3 ) + + q i 1 ) + q i ). Kontrollstrukturen 20 / 21

Postskriptum Wir haben gelernt: Variablen zu benennen und Werten zu zuweisen. if-bedingung zu benutzen. for-schleifen zu benutzen. Vom philosophischen Standpunkt aus kann man jetzt jedes Programm auf einen Computer schreiben der Rest sind Details! D.h. die Details sind sehr wichtig. Kontrollstrukturen 21 / 21