Grundlagen der Programmierung 3. Vorlesung 18.04.2018 1
Elemente von Programmiersprachen Operatoren Kontrollstrukturen Bibliotheksfunktionen 2
Was sind Kontrollstrukturen? Kontrollstrukturen erlauben, den Programmablauf zu steuern Kontrollstrukturen Schleifen Verzweigungen nicht-bedingt bedingt 3
Variablen sind Platzhalter für Werte haben: Namen Wert (Datentyp) stehen für Werte Zuweisung 4
Parameter Parameter Befehle ohne weitere Angaben Befehle, die weitere Angaben brauchen 5
Unterschiede? Ausdrücke Liefern kein Ergebnis Liefern numerisches Ergebnis Liefern wahr oder falsch 6
Ausdrücke 1+ p sin(x + y) 2 2 {z } p 2 {z } {z} {z } 1 {z } 7
Bedingungen Ausdrücke, deren Ergebnis "wahr" oder "falsch" ist Bedingungen 8
Beispiel: Variablen und Operatoren Wichtig! 9
Neue Befehle mit Parameter Hinteres + klicken definiert 10
Falsch! Fehler: x unbekannt! Fehler: Seitenlänge unbekannt! Name Wert Name Wert Seitenlänge 100 x 42 So ist es in C So sollte es in Snap sein 11
Richtig Name Wert Name Wert x 42 Seitenlänge 100 12
Beispiel: Katze fangen 13
Beispiel: Katze und Maus 14
Widerstand berechnen R = U I 15
Beispiel: Hello World in C Beginn Hauptprogramm #include <stdio.h> Einbinden der Headerdatei(en) für Bibliotheksfunktionen Bibliotheksfunktion mit Parameter aufrufen int main() { printf("hello World\n"); Blockbeginn return 0; } Blockende 16
Beispiel: Hello World 17
MATLAB https://de.mathworks.com/ Kostenpflichtig (Campuslizenz) Installieren oder Online 18
Registrieren https://de.mathworks.com/login Anmelden mit HTW Emailadresse! 19
Registrieren Activation Key: http://serviceportal.f1.htw-berlin.de/matlabcampus-lizenz.html (dort Anmelden mit HTW-Account) Download im Browser starten 20
MATLAB Programm erstellen 1 2 3 Ausgabe 21
MATLAB Programm erstellen 1. New -> Script (Oder Ctrl.-N) 2. Programm in Editor eingeben dabei: Befehle mit Semikolon ; abschließen Kommentarzeilen beginnen mit % 3. Pfeil bei RUN drücken 22
Alternative Frei https://www.gnu.org/software/octave/ 23
Beispiel: R = U/I (C) #include <stdio.h> int main() { int u, i; Variablendeklaration int: ganze Zahlen printf( "Gib U ein: " ); scanf( "%d", &u ); printf( "Gib I ein: "); scanf( "%d", &i ); Integer Wert von Tastatur einlesen und in u speichern printf( "R = %f Ohm ", 1.0*u/i ); } getchar(); getchar(); return 0; Ergebnis berechnen und ausgeben (%f: Fließkommazahl) Fließkomma erzwingen 24
Beispiel: R = U/I (Matlab) Wert zuweisen Wert von Tastatur einlesen u = input('spannung: '); i = input('strom: '); fprintf('widerstand: %f Ohm\n', u/i ); Platzhalter Wert für Platzhalter Ergebnis berechnen und ausgeben 25
Nicht schön... In C: Absturz 26
Abhilfe Fehlerhafte Eingabe abfangen Korrekte Eingabe erzwingen 27
In C #include <stdio.h> int main() { int u,i; printf("spannung: "); scanf("%d", &u); do { printf("strom: "); scanf("%d", &i); } while ( i == 0 ); printf("widerstand: %f", u/i); return 0; } In Matlab nicht ganz so einfach :( 28
Schleifen in C: do...while do block while ( bedingung ); block: eine Anweisung oder Anweisungen in { } block bed JA NEIN 29
Schleifen in C: while... while ( bedingung ) block bed JA NEIN block 30
Kontrollstrukturen: Schleifen while Kopfgesteuert: Bedingung wird vor dem Schleifenblock überprüft Schleifenblock wird evtl. nie durchlaufen do... while Fußgesteuert: Bedingung wird nach dem Schleifenblock überprüft Schleifenblock wird mindestens einmal durchlaufen 31
Schleifen in Matlab Kopfgesteuert: while bedingung anweisungen end Fußgesteuert L 32