• Keine Ergebnisse gefunden

Programmiervorkurs für die Numerik Teil 1/4

N/A
N/A
Protected

Academic year: 2022

Aktie "Programmiervorkurs für die Numerik Teil 1/4"

Copied!
21
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

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

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

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

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

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

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

(7) Kurze Geschichte zu Julia. I. Julia wurde ursprünglich von Jeff Bezanson, Stefan Karpinski, Viral B. Shah, Alan Edelman entwickelt (MIT und Julia Computing).. I. Die erste Version war 2012 erhältlich. Folgende Ziele wurden versucht zu realisieren.. I. 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.

(8) Beide Programmiersprachen umfassen:. I I. Variablen und Daten (Skalare, Vektoren, Matrizen) Anweisungen I. I I. I. 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.

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

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

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

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

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

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

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

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

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

(18) Bemerkung 1/3. I. 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). I. In Terminal-Fenstern oder Command Windows muss nach der Texteingabe immer die Entertaste gedrückt werden, damit der Text bearbeitet (ausgeführt) wird.. I. Vor dem Ausführen des eigenen Programms in MATLAB das Speichern im Texteditor nicht vergessen.. I. 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.

(19) Bemerkung 2/3. I. 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.. I. Nicht vergessen, einer Variable einen Wert zuzuweisen, bevor sie verwendet wird.. I. 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.. I. Das Malzeichen zwischen zwei Faktoren darf nicht weggelassen werden.. Kontrollstrukturen. 19 / 21.

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

(21) Postskriptum. Wir haben gelernt: I. Variablen zu benennen und Werten zu zuweisen.. I. if-Bedingung zu benutzen.. I. 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.

(22)

Referenzen

ÄHNLICHE DOKUMENTE

5 Erklären Sie die Bedeutung der Zacken in der Krone einer Kronenmutter, und nennen Sie ein Beispiel, wo Kronenmuttern in Kfz eingesetzt

Bitte wählen Sie für jeden dieser Buchstaben genau eine zutreffende Antwortmöglichkeit.. Die Methoden müssen sich so verhalten, wie in den

Durch Multiplikation ihrer Transponierten mit der Matrix A erhalten wir die letzten zwei Paare der obigen

Zeitachrift der Deutschen Morgeniändischen Gesellschaft Band 141, Heft 1 (1991) 6 Deutsche Morgenländische Gesellschaft

Manuskripte für das AVR sollen einen Umfang von 90.000 Zeichen einschließlich Leerzeichen und Fußnoten nicht überschreiten.. Das entspricht ungefähr

Gemeint ist damit, dass wenn man die Performance optimiert, bevor das Programm überhaupt fertig ist, sich selbst ein Bein stellt.. I Performance wird in MATLAB mit tic, toc und in

Falls die zu plottende Funktion nicht schon als Punktmenge vorliegt, muss sie in eine überführt werden.. Dazu legt man die gewünschten Intervallgrenzen [a, b] fest und wertet

Erwartet die Funktion keine Argumente, bleibt die runde Klammer hinter dem Funktionsnamen leer ... Gibt die Funktion keine Arugment zurück bleibt die eckige Klammer hinter function