Bru ckenkurs Programmieren

Ähnliche Dokumente
Brückenkurs Programmieren

Vorkurs Informatik WiSe 16/17

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

Bru ckenkurs Programmieren

Einführung in die Programmierung

Übungsblatt 1. Java Vorkurs (WS 2017)

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Bru ckenkurs Programmieren

PROCESSING EINE EINFÜHRUNG IN DIE INFORMATIK. Created by Michael Kirsch & Beat Rossmy

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Unterlagen. CPP-Uebungen-08/

Grundlagen von C# - 1

Java I Vorlesung Imperatives Programmieren

Einführung in C. EDV1-04C-Einführung 1

JAVA-Datentypen und deren Wertebereich

System.out.println("TEXT");

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Welche Informatik-Kenntnisse bringen Sie mit?

Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 2. Blatt Für die Woche vom 3.5. bis zum 7.5.

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Grundlagen der Modellierung und Programmierung, Übung

Objektorientiertes Programmieren (Java)

Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

Übungen zur Vorlesung Wissenschaftliches Rechnen I

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

Programmiervorkurs Einführung in Java Tag 1

Datentypen: integer, char, string, boolean

Programmieren in Haskell Einführung

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

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

Ausdrücke der Programmiersprache Java

Java Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

Angewandte Mathematik und Programmierung

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

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Tag 2 Repetitorium Informatik (Java)

Kurze Einführung in die Programmiersprache C++ und in Root

Erste Java-Programme (Scopes und Rekursion)

Einstieg in die Informatik mit Java

Grundlagen der Programmierung

Prinzipien der Softwareentwicklung S. Strahringer

Einführung in die Programmierung mit VBA

Algorithmen und Datenstrukturen 01

Java - Programmierung - Prozedurale Programmierung 1

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

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Algorithmik und Programmieren

Informatik II. Woche 10, Giuseppe Accaputo

Einleitung Typsystem Typisierung Zusammenfassung Literatur. Typisierung. Effiziente Programmierung. Thomas Schnieders

Javakurs für Anfänger

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

- EINSTIEG IN JAVA - (1/5) Datum:

Die Programmiersprache C Eine Einführung

Algorithmen und ihre Programmierung

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

4. Zahlendarstellungen

Vorkurs Informatik WiSe 16/17

AuD-Tafelübung T-B5b

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

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

Ein erstes Java-Programm

Praktische Informatik 1

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen.

WS2018/ Oktober 2018

Algorithmen zur Datenanalyse in C++

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java

Informatik Vorkurs - Vorlesung 2

Grundelemente objektorientierter Sprachen (1)

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

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

Einführung in die Programmierung I. 8. Prozedurale Konzepte in Java, Teil1. Stefan Zimmer

Übungen zum Bioinformatik-Tutorium. Blatt 3

Einführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java

Die einfachsten Anweisungen

Computeranwendung und Programmierung (CuP)

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Repetitorium Programmieren I + II

Transkript:

Bru ckenkurs Programmieren Tag 1: Variablen und Verzweigungen Jakob Czekansky Technische Hochschule Mittelhessen 26. September 2016

Inhalt Organisatorisches Einleitung: Was ist Programmieren? Hello World Variablen und Datentypen Variablen Operatoren Verzweigungen If-Abfrage Logische Ausdrücke Logische Operatoren 2 / 32

Inhalt Organisatorisches Einleitung: Was ist Programmieren? Hello World Variablen und Datentypen Variablen Operatoren Verzweigungen If-Abfrage Logische Ausdrücke Logische Operatoren 3 / 32

Organisatorisches I Ziele des Kurses: Grundzüge des Programmierens lernen (unabhängig von der Sprache) Spaß haben Themen: Heute: Variablen, Operatoren, Verzweigungen Dienstag: Animationen, Schleifen Mittwoch: Events, Arrays Donnerstag: Funktionen, Objektorientierung 4 / 32

Organisatorisches II Tagesablauf: Beginn 9:00 Uhr in Gebäude B14, Raum 3.13 Kurzer Theorie-Teil mit gemeinsamen Übungen Rest der Zeit: Übungsblätter Erster Block: 9:00-12:00 Uhr Mittagspause: 12:00-13:00 Uhr Zweiter Block: 13:00-16:00 Uhr Unterlagen: https://homepages.thm.de/~jczk72/html/kurse/ WS1617/bkProgrammierung.html 5 / 32

Inhalt Organisatorisches Einleitung: Was ist Programmieren? Hello World Variablen und Datentypen Variablen Operatoren Verzweigungen If-Abfrage Logische Ausdrücke Logische Operatoren 6 / 32

Was ist Programmieren? Definition Programmieren ist das Schreiben von Computerprogrammen. Ein Computerprogramm ist eine in einer Programmiersprache verfasste Anweisungsabfolge, die ein bestimmtes Problem löst. 7 / 32

Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001 0000 0000 0000 0000 0011 0000 0000 0000 0000 0000 0000 0000 0100 Assembler pushc 3 pushc 4 add C int main(int argc, char *argv[]) { char *str = (char*) malloc(10); str[9] = 0; printf("%s", str); } Java public class Thing { public static void main(string[] args){ System.out.println(args.length); } } Processing int[] test = new int[10]; println(test.length); Ruby data = FileIO.read("test.csv") data = data.split("\n") data = data.map { x x.split(";")} 8 / 32

Klassifizierung von Programmiersprachen Paradigmen Eigenschaften funktional (Lisp, Haskell) objektorientiert (Java) prozedural (C, Fortran) multi-paradigm (Ruby) Andere Unterklassen memory safety strong/weak typing dynamic/static typing plattformunabhängig metaprogramming pattern matching scripting language (Ruby, Python, JavaScript) domain-specific (VHDL, SPSS, Matlab) 9 / 32

Wie bringt man einem Computer eine Sprache bei? Frage: Wie werden Programme in höheren Programmiersprachen ausführbar gemacht? 10 / 32

Wie bringt man einem Computer eine Sprache bei? Frage: Wie werden Programme in höheren Programmiersprachen ausführbar gemacht? Antwort: Mit einem Programm. 10 / 32

Inhalt Organisatorisches Einleitung: Was ist Programmieren? Hello World Variablen und Datentypen Variablen Operatoren Verzweigungen If-Abfrage Logische Ausdrücke Logische Operatoren 11 / 32

Hello World in Processing Processing herunterladen: https://processing.org/download oder https://homepages.thm.de/ ~jczk72/html/kurse/ws1617/ bkprogrammierung.html Zip-Archiv extrahieren in sinnvollen Ordner (z.b. C:\Programme\Processing) processing.exe starten Folgenden Code eingeben und Play-Button drücken: ellipse(50,50,25,25); 12 / 32

Erste Herausforderung: Ein Smiley Aufgabe: Zeichne ein Smiley-Gesicht mit Processing. Hilfreiche Processing-Funktionen size(w,h); ellipse(x,y,w,h); rect(x,y,w,h); background(c); line(x1,y1,x2,y2); fill(r,g,b); Mehr unter processing.org/reference 13 / 32

Inhalt Organisatorisches Einleitung: Was ist Programmieren? Hello World Variablen und Datentypen Variablen Operatoren Verzweigungen If-Abfrage Logische Ausdrücke Logische Operatoren 14 / 32

Variablen: Wozu? Was müsstest du tun, um das Gesicht nach rechts oder links zu verschieben? 15 / 32

Variablen: Wozu? Was müsstest du tun, um das Gesicht nach rechts oder links zu verschieben? Idee 1: Alle Werte von Hand anpassen ca. 7 Zahlen 15 / 32

Variablen: Wozu? Was müsstest du tun, um das Gesicht nach rechts oder links zu verschieben? Idee 1: Alle Werte von Hand anpassen ca. 7 Zahlen Idee 2: Gesichtsmittelpunkt (x,y) in Variablen speichern linkes Auge befindet sich jetzt z.b. immer an Position (x-40,y-20) nur noch x und y anpassen, statt allen Zahlen 15 / 32

Variablen: Wozu? Was müsstest du tun, um das Gesicht nach rechts oder links zu verschieben? Idee 1: Alle Werte von Hand anpassen ca. 7 Zahlen Idee 2: Gesichtsmittelpunkt (x,y) in Variablen speichern linkes Auge befindet sich jetzt z.b. immer an Position (x-40,y-20) nur noch x und y anpassen, statt allen Zahlen Processing float x = 50; float y = 50; 15 / 32

Aufgabe: Wandersmiley Vorgabe float x = 50; //Werte dürfen verändert werden float y = 50; Schreibe deinen Smiley-Code so um, dass du das Gesicht durch Verändern der Variablen x und y verschieben kannst. 16 / 32

Bildquelle: www.freeimageslive.com Variablen: Variablen als Beha lter Typ: Flu ssigkeit, Wert: 0.0 ml Typ: Stifte, Wert: 11 17 / 32

Variablen: Definition Definition Eine Variable gibt einer Speicherstelle einen Namen. Sie kann nur Werte entsprechend ihres Typs enthalten. Syntax: Variablendeklaration <Typ> <Name> = <Wert>; Beispiel float x = 3.5; 18 / 32

Variablen: float float Fließkommazahlen (engl.: floating point number) Punkt statt Komma 4 Byte in IEEE754-Codierung ca. 7 geltende Stellen 0.0001234567 1234567.0 1234567000.0 123456789.012 (wird gerundet) 1e127 (1 10 127 ) 2.3e-128 (2.3 10 128 ) 19 / 32

Variablen: int int Ganzzahlen (engl.: integer) 4 Byte in Zweierkomplementdarstellung 4-7 0 2147483647 (2 31 1) 3147483647-2147483648 ( 2 31 ) 20 / 32

Variablen: boolean boolean Wahrheitswerte (nach George Bool) exakt zwei mögliche Werte true false 21 / 32

Variablen: String String Zeichenketten (engl.: string) Zusammengesetzter Typ aus mehreren Zeichen (char) "Blabla" "123" Länge beliebig 22 / 32

Operatoren Wie erhöhe ich den Wert einer Zahlvariable x um 2? x = x + 2; Definition Die Rechenzeichen +, -, * und / nennt man arithmetischen Operatoren. Sie führen mathematische Rechenoperationen aus. Definition Das einfache Gleichzeichen = ist der Zuweisungsoperator. Er weist der Variable auf der linken Seite den Wert des Ausdrucks auf der rechten Seite zu. 23 / 32

Inhalt Organisatorisches Einleitung: Was ist Programmieren? Hello World Variablen und Datentypen Variablen Operatoren Verzweigungen If-Abfrage Logische Ausdrücke Logische Operatoren 24 / 32

Verzweigungen Immer nur das Gleiche tun ist langweilig. Bisher: Aneinanderreihung von einzelnen Befehlen Wie im Computerspiel: Unterschiedliche Pfade machen Code interessant Idee Je nach Wert einer boolean-variablen zwinkert das Smiley oder nicht. 25 / 32

Verzweigungen: If-Abfrage Syntax if (<Bedingung>) { <Anweisungsblock1> } else { <Anweisungsblock2> } Definition Eine If-Abfrage entspricht einer Weiche. Bedingung ist wahr (true): Führe If-Teil (Block 1) aus. Bedingung ist falsch (false): Führe Else-Teil (Block 2) aus. 26 / 32

Verzweigungen: Beispiele für If-Abfragen Beispiel 1 if (x == 0) { println("du erzeugst ein schwarzes Loch!"); } else { println("4 geteilt durch "+x+" ist "+(4/x)); } Beispiel 2 if (x < 0) { x = -x; } //Else-Teil darf auch wegfallen 27 / 32

Aufgabe: Zwinkernder Smiley Baue eine boolean-variable in deinen Smiley-Code ein, die bestimmt, ob der Smiley zwinkert oder nicht. Erinnerung: If-Syntax if (<Bedingung>) { <Anweisungsblock1> } else { <Anweisungsblock2> } 28 / 32

Verzweigungen: Bedingungen / Logische Ausdrücke Was kann man eigentlich alles als Bedingung in einem If verwenden? Definition Bedingungen sind logische Ausdrücke, das heißt Ausdrücke, die einen Wahrheitswert ergeben (true oder false). Beispiele: true 3 < 4 4 <= 4 1 == 1 2+1!= 4 true Beispiele: false 3 > 4 5 <= 4 1 == 2 2+1!= 4-1 false 29 / 32

Verzweigungen: Logische Operatoren Definition Logische Operatoren errechnen einen Wahrheitswert aus anderen Werten (und bilden damit logische Ausdrücke). == < <=!= > >= 30 / 32

Verzweigungen: Verknüpfungen von logischen Operatoren Logischer Ausdruck Der Wert von x liegt zwischen 0 und 10. 31 / 32

Verzweigungen: Verknüpfungen von logischen Operatoren Logischer Ausdruck Der Wert von x ist größer als 0 und kleiner als 10. 31 / 32

Verzweigungen: Verknüpfungen von logischen Operatoren Logischer Ausdruck Der Wert von x ist größer als 0 und kleiner als 10. Um kompliziertere Bedingungen auszudrücken gibt es auch Operatoren, die logische Ausdrücke negieren oder miteinander verknüpfen können: 31 / 32

Verzweigungen: Verknüpfungen von logischen Operatoren Logischer Ausdruck Der Wert von x ist größer als 0 und kleiner als 10. Um kompliziertere Bedingungen auszudrücken gibt es auch Operatoren, die logische Ausdrücke negieren oder miteinander verknüpfen können: a && b a und b a b a oder b!a nicht a 31 / 32

Zusammenfassung Variablen float a = 3.5; int b = 10; boolean c = true; String blabla = "Blabla"; Logische Operatoren > >= ==!= &&! If-Abfrage if (<Bedingung>) { <Anweisungsblock1> } else { <Anweisungsblock2> } Arithmetische Operatoren + - * / % 32 / 32