79
Brückenkurs Programmieren Tag 1: Bedienung eines Rechners und einfachste Programme mit Variablen Christopher Schölzel Technische Hochschule Mittelhessen 4. März 2019

Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Brückenkurs ProgrammierenTag 1: Bedienung eines Rechners und einfachste Programme mit

Variablen

Christopher SchölzelTechnische Hochschule Mittelhessen4. März 2019

Page 2: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

InhaltOrganisatorisches

Der Weg zum Power-UserEinleitung: Was ist ein Rechner?Von Hardware zu Software: Das BetriebssystemTipps für den (Windows-)Power-UserTipps für den Google-Power-UserTextdateien für Power-UserBeyond Klickibunti: Die Konsole

Hello WorldEinleitung: Was ist Programmieren?Installation von Java (mit Jupyter Notebook)Erste Herausforderung: Rechnen

Variablen und OperatorenVariablenOperatoren

2 / 55

Page 3: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

InhaltOrganisatorisches

Der Weg zum Power-UserEinleitung: Was ist ein Rechner?Von Hardware zu Software: Das BetriebssystemTipps für den (Windows-)Power-UserTipps für den Google-Power-UserTextdateien für Power-UserBeyond Klickibunti: Die Konsole

Hello WorldEinleitung: Was ist Programmieren?Installation von Java (mit Jupyter Notebook)Erste Herausforderung: Rechnen

Variablen und OperatorenVariablenOperatoren

3 / 55

Page 4: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Organisatorisches I

Ziele des Kurses:I vom DAU zum Power-User werden ;)I Grundzüge des Programmierens lernen (unabhängig von der Sprache)I Spaß haben

Themen:I Heute: Fortgeschrittene Rechnerbedienung, VariablenI Dienstag: Verzweigungen, SchleifenI Mittwoch: Funktionen, ArraysI Donnerstag: RekursionI Freitag: Objektorientierung

4 / 55

Page 5: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Organisatorisches II

Tagesablauf:I Beginn 9:00 in Gebäude A20I Kurzer Theorie-Teil mit gemeinsamen ÜbungenI Rest der Zeit: ÜbungsblätterI Mittagspause: 12:00 bis 13:00I Ende 16:00

Unterlagen: https://homepages.thm.de/~cslz90/kurse/bk19

5 / 55

Page 6: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

InhaltOrganisatorisches

Der Weg zum Power-UserEinleitung: Was ist ein Rechner?Von Hardware zu Software: Das BetriebssystemTipps für den (Windows-)Power-UserTipps für den Google-Power-UserTextdateien für Power-UserBeyond Klickibunti: Die Konsole

Hello WorldEinleitung: Was ist Programmieren?Installation von Java (mit Jupyter Notebook)Erste Herausforderung: Rechnen

Variablen und OperatorenVariablenOperatoren

6 / 55

Page 7: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Einleitung: Was ist ein Rechner?

7 / 55

Page 8: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Woraus besteht ein Rechner?

Bildquelle: „Valakas“, Christopher Schölzel, Public Domain 8 / 55

Page 9: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Von-Neumann-Architektur

Rechnerarchitektur nach John von NeumannI Central Processing Unit (CPU, Prozessor)

I Recheneinheit (ALU): Mathematische OperationenI Steuereinheit: steuert Programmablauf

I BussystemI Kommunikation zwischen Komponenten

I Arbeitsspeicher (RAM)I speichert Daten laufender ProgrammeI schnell, klein, flüchtig

I MassenspeicherI speichert Programm- und NutzerdatenI langsam, groß, persistent

I I/OI Schnittstelle zur AußenweltI Tastatur, Maus, Bildschirm, Grafikkarte, ...

Seit 1945 imWesentlichendie gleicheArchitektur

9 / 55

Page 10: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Eine Welt ohne Betriebssystem (I)

CPU

Firefox

WordMinecraft

10 / 55

Page 11: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Eine Welt ohne Betriebssystem (II)

RAM-Bereichvon Firefox

11 / 55

Page 12: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Eine Welt ohne Betriebssystem (III)

Hardware-Interrupt(Maus, Tastatur, ...)

CPU

12 / 55

Page 13: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Betriebssysteme

Aufgaben des BetriebssystemsI Vermittler zwischen Hard- und SoftwareI verteilt Systemressourcen an Prozesse

I CPU-ZeitI RAMI Zugriff auf DateisystemI Zugriff auf I/O

I vereinfacht Zugriff auf SystemressourcenI Treiber als Software zum Steuern externer GeräteI Dateisystem statt rohem Festplattenzugriff

I bietet eine BenutzeroberflächeI Verwaltung von Hard- und SoftwareI Benutzerrechte

Windows: Markenzeichen von Microsoft, macOs: Markenzeichen von Apple, Tux: © Larry Ewing 13 / 55

Page 14: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Schnelle Navigation und Auswahl

Befehl Effekt

⇒ Text eingeben findet Programme anhand des Namens

+ E öffnet einen Windows-Explorer

Strg + F öffnet die Suchfunktion1

F10 springt in die Menüleiste1

Strg + Klick fügt das Element der Auswahl hinzu1

⇑ + Klick wählt Bereich bis zum Ziel aus1

Entf löscht die ausgewählten Elemente1

1in den meisten Programmen14 / 55

Page 15: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Navigation per TabulatorTastaturnavigation außerhalb von Textbereichen mit dem Tabulator ↹

↹ springt zum nächsten Bedienelement1

⇑ + ↹ springt zum vorherigen Bedienelement1

Enter aktiviert das aktuelle Bedienelement1

Esc verlässt den aktuellen Kontext1

I in Textbereichen klappt ↹ nicht

I mit Esc oder F10 kommt man meistens aus dem Bereich raus

I für Blinde hilfreicher als die Maus1in den meisten Programmen

15 / 55

Page 16: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Text markieren

⇑ + → markiert von aktueller Cursorposition aus1

⇑ + ←

⇑ + Klick markiert vom Cursor bis zum Ziel1

Doppelklick markiert ganzes Wort1

Strg + A markiert alles1

⇑ + Pos1 markiert bis zum Zeilenanfang1

⇑ + Ende markiert bis zum Zeilenende1

1in den meisten Programmen16 / 55

Page 17: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Power-User-Challenge 1: Hände von der Maus

Erledige die folgenden Schritte, ohne die Maus zu benutzen:I Finde/Öffne ein Textbearbeitungsprogramm auf deinem RechnerI Tippe den Text „Power-User“ in das DokumentI Speichere die Datei unter dem Namen „Hands-off“

Bonus: Markiere „Power“ fett.

17 / 55

Page 18: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Die Zwischenablage

Strg + C kopiert markierten Text in die Zwischenablage1

Strg + X genauso wie oben, aber Text wird auch gelöscht1

Strg + V fügt Inhalt der Zwischenablage ein1

Strg + ⇑ + V wie oben, aber ohne Formatierung (z.B. HTML)1

Druck kopiert Screenshot in Zwischenablage1

Alt + Druck wie oben, aber nur vom aktiven Fenster1

1in den meisten Programmen18 / 55

Page 19: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Power-User-Challenge 2: Ich darf nicht...

Schreibe den folgenden Satz 100 mal untereinander in eine Textdatei:

„Ich darf nichts doppelt tippen.“

Bonus: Schreibe den Satz 100.000 mal untereinander.

19 / 55

Page 20: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Lebensretter: Undo/Redo

Strg + Z macht die letzte Aktion rückgängig1

Strg + Y stellt die letzte rückgängigemachte Aktion wieder her1

I neue Aktionen verhindern weitere RedosI geht sogar im Windows-Explorer

1in den meisten Programmen20 / 55

Page 21: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Power-User-Challenge 3: Alles nicht so gemeint

I Öffne einen Windows-Explorer über die TastaturI ab hier ist die Maus erlaubtI Erstelle einen neuen Ordner C:\Power-User

I Erzeuge zehn neue Ordner in diesem OrdnerI Markiere die Ordner mit ungerader NummerI Lösche die markieren Ordner (alle auf einmal)I Mach mit Undo alles wieder rückgängig, bis C:\Power-User leer ist

Bonus: Mach das alles ganz ohne Maus

21 / 55

Page 22: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Systemdateien

Den Windows-Experten erkennt man an drei Einstellungen in denOrdneroptionen.

Erweiterungen bei bekannten Dateitypen ausblenden

Geschützte Systemdateien ausblenden (empfohlen)Versteckte Dateien und Ordner

Ausgeblendete Dateien, Ordner und Laufwerke nicht anzeigen

Ausgeblendete Dateien, Ordner und Laufwerke anzeigen

Interessante versteckte Ordner:I C:\Users\Benutzername\AppData : Benutzerdaten von Programmen

I angezeigt als C:\Benutzer statt C:\Users

I C:\$RECYCLE.BIN : Papierkorb

22 / 55

Page 23: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Systemdateien

Den Windows-Experten erkennt man an drei Einstellungen in denOrdneroptionen.

Erweiterungen bei bekannten Dateitypen ausblenden

Geschützte Systemdateien ausblenden (empfohlen)Versteckte Dateien und Ordner

Ausgeblendete Dateien, Ordner und Laufwerke nicht anzeigen

Ausgeblendete Dateien, Ordner und Laufwerke anzeigen

Interessante versteckte Ordner:I C:\Users\Benutzername\AppData : Benutzerdaten von Programmen

I angezeigt als C:\Benutzer statt C:\Users

I C:\$RECYCLE.BIN : Papierkorb

22 / 55

Page 24: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Power-User-Challenge 4: Wissen ist Macht

Aufgabe: Finde die Datei, in der dein Browser deine Cookies speichert.

Bonus: Finde ein Programm, das die entsprechende Datei lesen kann undschau dir den Inhalt an.

23 / 55

Page 25: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Sonstiges

Strg + S speichert aktuelles Dokument1

Alt + ↹ zwischen Programmen wechseln

+ L Bildschirm sperren

+ P Modus für Beamer/Zweitbildschirm wechseln

+ D Desktop zeigen (alle Programme minimieren)

Strg + ⇑ + Esc öffnet den Task-Manager

Generell: Einfach mal Strg , Alt oder ⇑ während einer Aktiongedrückt halten und schauen, was passiert. ;)

1in den meisten Programmen24 / 55

Page 26: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Wie funktionieren Suchmaschinen?

Ein kurzer Ausflug in die Suchmaschinen-IndexierungI Google speichert nicht das ganze InternetI stattdessen: Datenbank mit ArtikelnI genauer Text nicht so wichtigI wichtiger: Wie häufig kommen gesuchte Worte (prozentual) vor?I ⇒ IndexI dabei werden

I Füllwörter gelöscht (z.B. „in“, „für“, „er“)I Wörter auf ihren Stamm reduziert (z.B. „such“ statt „suchte“)

Beispiel: Wikipedia-ArtikelGießen lahn: 0.3%, universit: 0.8%, hess: 0.7%, kultur: 0.1%Marburg lahn: 0.4%, universit: 0.2%, hess: 0.8%, kultur: 0.2%THM lahn: 0.1%, universit: 0.4%, hess: 1.2%, informatik: 0.1%

25 / 55

Page 27: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Allgemeine Google-Tipps

I wenn möglich, auf englisch googelnI plattformunabhängig : 243.000 TrefferI platform-independent : 236.000.000 Treffer

I nicht zu allgemein, nicht zu spezifischI ideal sind oft etwa 3-5 Wörter

I Bsp.: latex vs latex mask vs latex mask fetish

I Google ist schlauI tausende Optimierungen auf durchschnittlichen User⇒ suche wie der durchschnittliche UserI Bsp.: C tutorial sollte nicht gehen, geht aber

I Nachbessern auf Basis des ErgebnissesI neue interessante Suchbegriffe im Ergebnis?I Gemeinsamkeiten ungewollter Ergebnisse?I Bsp.: rubber statt/mit latex

26 / 55

Page 28: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Fortgeschrittene Google-Tipps

" Anführungszeichen führen zu exakten TreffernI Bsp.: "harry potter und ein stein"

* Wildcards als Platzhalter (innerhalb von Anführungszeichen)I Bsp.: "i want to become a * programmer"

- Minuszeichen schließt Begriffe ausI Bsp.: "marvel thor -movie"

.. zwei Punkte erlauben Zahlbereiche anzugebenI Bsp.: laptop €100..€200 , revolution 1780..1810

I Googles eigene Tipps zum Googeln:https://support.google.com/websearch/answer/134479

27 / 55

Page 29: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Power-User-Challenge 5: Google-Wars

Aufgabe 1: Da gab es doch diesen Songtext. „The ... of the nation“ Waswar das nochmal?

Aufgabe 2: Suche nach java und entferne so lange Suchterme mit Minus,bis auf der ersten Seite kein Ergebnis mehr auf die Programmierspracheverweist.

28 / 55

Page 30: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Textdateien für Power-User

Professionelle Texteditoren für Entwickler

I Atom: open-source, langsam, electronI VS Code: open-source, relativ schnell, electronI Sublime: proprietär, sehr schnell, python

29 / 55

Page 31: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Achtung: Textdatei ist nicht gleich Textdatei

Gelesen als Original in UTF-8 Original in cp1252

ASCII Spa?? f??r 300??? Spa? f?r 300?latin-1 SpaÃ? für 300â?¬ Spaß für 300?cp1252 Spaß für 300€ Spaß für 300€UTF-8 Spaß für 300€ Spa ? f ? r 300 ?UTF-16 灓썡 ? 썦犼㌠〰苢 灓映狼㌠〰

S p a ß _ f ü r _ 3 0 0 €UTF-8 53 70 61 c39f 20 66 c3bc 72 20 33 30 30 e282accp1252 53 70 61 df 20 66 fc 72 20 33 30 30 80

Faustregel: Alles als UTF-8 speichern und lesen, dann ist alles gut.

30 / 55

Page 32: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Achtung: Textdatei ist nicht gleich Textdatei

Gelesen als Original in UTF-8 Original in cp1252

ASCII Spa?? f??r 300??? Spa? f?r 300?latin-1 SpaÃ? für 300â?¬ Spaß für 300?cp1252 Spaß für 300€ Spaß für 300€UTF-8 Spaß für 300€ Spa ? f ? r 300 ?UTF-16 灓썡 ? 썦犼㌠〰苢 灓映狼㌠〰

S p a ß _ f ü r _ 3 0 0 €UTF-8 53 70 61 c39f 20 66 c3bc 72 20 33 30 30 e282accp1252 53 70 61 df 20 66 fc 72 20 33 30 30 80

Faustregel: Alles als UTF-8 speichern und lesen, dann ist alles gut.

30 / 55

Page 33: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Achtung: Textdatei ist nicht gleich Textdatei

Gelesen als Original in UTF-8 Original in cp1252

ASCII Spa?? f??r 300??? Spa? f?r 300?latin-1 SpaÃ? für 300â?¬ Spaß für 300?cp1252 Spaß für 300€ Spaß für 300€UTF-8 Spaß für 300€ Spa ? f ? r 300 ?UTF-16 灓썡 ? 썦犼㌠〰苢 灓映狼㌠〰

S p a ß _ f ü r _ 3 0 0 €UTF-8 53 70 61 c39f 20 66 c3bc 72 20 33 30 30 e282accp1252 53 70 61 df 20 66 fc 72 20 33 30 30 80

Faustregel: Alles als UTF-8 speichern und lesen, dann ist alles gut.

30 / 55

Page 34: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Beyond Klickibunti: Die KonsoleBunte Fenster und die Maus sind Hilfsmittel, aber es geht auch ohne:

Konsole/Terminal/Eingabeaufforderung:

I Arbeitsverzeichnis steht am Anfang der ZeileI Befehl Argument1 Argument2 ... + Enter

I typische Argumente: -? , /? (Windows), --helpI Befehl "Langes Argument mit Leerzeichen"

I dir listet Dateien im ArbeitsverzeichnisI cd Pfad wechselt das Arbeitsverzeichnis

I .. ist das Elternverzeichnis

I ↹ (mehrfach) für Autovervollständigung

31 / 55

Page 35: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Beyond Klickibunti: Die KonsoleBunte Fenster und die Maus sind Hilfsmittel, aber es geht auch ohne:

Konsole/Terminal/Eingabeaufforderung:I Arbeitsverzeichnis steht am Anfang der Zeile

I Befehl Argument1 Argument2 ... + Enter

I typische Argumente: -? , /? (Windows), --helpI Befehl "Langes Argument mit Leerzeichen"

I dir listet Dateien im ArbeitsverzeichnisI cd Pfad wechselt das Arbeitsverzeichnis

I .. ist das Elternverzeichnis

I ↹ (mehrfach) für Autovervollständigung

31 / 55

Page 36: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Beyond Klickibunti: Die KonsoleBunte Fenster und die Maus sind Hilfsmittel, aber es geht auch ohne:

Konsole/Terminal/Eingabeaufforderung:I Arbeitsverzeichnis steht am Anfang der ZeileI Befehl Argument1 Argument2 ... + Enter

I typische Argumente: -? , /? (Windows), --helpI Befehl "Langes Argument mit Leerzeichen"

I dir listet Dateien im ArbeitsverzeichnisI cd Pfad wechselt das Arbeitsverzeichnis

I .. ist das Elternverzeichnis

I ↹ (mehrfach) für Autovervollständigung

31 / 55

Page 37: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Beyond Klickibunti: Die KonsoleBunte Fenster und die Maus sind Hilfsmittel, aber es geht auch ohne:

Konsole/Terminal/Eingabeaufforderung:I Arbeitsverzeichnis steht am Anfang der ZeileI Befehl Argument1 Argument2 ... + Enter

I typische Argumente: -? , /? (Windows), --help

I Befehl "Langes Argument mit Leerzeichen"I dir listet Dateien im ArbeitsverzeichnisI cd Pfad wechselt das Arbeitsverzeichnis

I .. ist das Elternverzeichnis

I ↹ (mehrfach) für Autovervollständigung

31 / 55

Page 38: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Beyond Klickibunti: Die KonsoleBunte Fenster und die Maus sind Hilfsmittel, aber es geht auch ohne:

Konsole/Terminal/Eingabeaufforderung:I Arbeitsverzeichnis steht am Anfang der ZeileI Befehl Argument1 Argument2 ... + Enter

I typische Argumente: -? , /? (Windows), --helpI Befehl "Langes Argument mit Leerzeichen"

I dir listet Dateien im ArbeitsverzeichnisI cd Pfad wechselt das Arbeitsverzeichnis

I .. ist das Elternverzeichnis

I ↹ (mehrfach) für Autovervollständigung

31 / 55

Page 39: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Beyond Klickibunti: Die KonsoleBunte Fenster und die Maus sind Hilfsmittel, aber es geht auch ohne:

Konsole/Terminal/Eingabeaufforderung:I Arbeitsverzeichnis steht am Anfang der ZeileI Befehl Argument1 Argument2 ... + Enter

I typische Argumente: -? , /? (Windows), --helpI Befehl "Langes Argument mit Leerzeichen"

I dir listet Dateien im Arbeitsverzeichnis

I cd Pfad wechselt das ArbeitsverzeichnisI .. ist das Elternverzeichnis

I ↹ (mehrfach) für Autovervollständigung

31 / 55

Page 40: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Beyond Klickibunti: Die KonsoleBunte Fenster und die Maus sind Hilfsmittel, aber es geht auch ohne:

Konsole/Terminal/Eingabeaufforderung:I Arbeitsverzeichnis steht am Anfang der ZeileI Befehl Argument1 Argument2 ... + Enter

I typische Argumente: -? , /? (Windows), --helpI Befehl "Langes Argument mit Leerzeichen"

I dir listet Dateien im ArbeitsverzeichnisI cd Pfad wechselt das Arbeitsverzeichnis

I .. ist das Elternverzeichnis

I ↹ (mehrfach) für Autovervollständigung

31 / 55

Page 41: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Beyond Klickibunti: Die KonsoleBunte Fenster und die Maus sind Hilfsmittel, aber es geht auch ohne:

Konsole/Terminal/Eingabeaufforderung:I Arbeitsverzeichnis steht am Anfang der ZeileI Befehl Argument1 Argument2 ... + Enter

I typische Argumente: -? , /? (Windows), --helpI Befehl "Langes Argument mit Leerzeichen"

I dir listet Dateien im ArbeitsverzeichnisI cd Pfad wechselt das Arbeitsverzeichnis

I .. ist das Elternverzeichnis

I ↹ (mehrfach) für Autovervollständigung

31 / 55

Page 42: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Weiterführendes zur KonsoleWie bekomme ich Text in die Konsole hinein oder hinaus?I linke Maustaste (gedrückt halten)

I markiert Text im FensterI rechte Maustaste

I wenn Text markiert ist: KopierenI sonst: Einfügen (und evtl. Befehl ausführen)

I Windows 7: Rechtsklickmenü ⇒ Markieren/Einfügen

Woher weiß die Konsole, welche Befehle es gibt?I Befehl = ausführbare DateiI Umgebungsvariable PATH gibt an, welche Ordner durchsucht werdenI Beispiel:

I Befehl foo xyz eingegebenI Windows sucht eine Datei foo.exeI beginnt bei erstem Ordner in PATHI macht weiter bis gefunden, oder alles durchsucht

32 / 55

Page 43: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Weiterführendes zur KonsoleWie bekomme ich Text in die Konsole hinein oder hinaus?I linke Maustaste (gedrückt halten)

I markiert Text im FensterI rechte Maustaste

I wenn Text markiert ist: KopierenI sonst: Einfügen (und evtl. Befehl ausführen)

I Windows 7: Rechtsklickmenü ⇒ Markieren/Einfügen

Woher weiß die Konsole, welche Befehle es gibt?I Befehl = ausführbare DateiI Umgebungsvariable PATH gibt an, welche Ordner durchsucht werdenI Beispiel:

I Befehl foo xyz eingegebenI Windows sucht eine Datei foo.exeI beginnt bei erstem Ordner in PATHI macht weiter bis gefunden, oder alles durchsucht

32 / 55

Page 44: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Power-User-Challenge 6: El Consolero

I Öffne ein KonsolenfensterI Navigiere auf der Konsole nach C:\

I Lies dir die Hilfemeldung zu dem Befehl dir durchI Befehl zum Aufruf der Hilfe: dir /?

I Finde mit dir heraus, wem C:\Windows gehörtI Navigiere zu C:\Windows\System32

I verwende dir mit der Pausenfunktion

Bonus: Liste mit dir nur die Elemente in C:\Windows\System32 auf, diekeine Verzeichnisse sind und sortiere diese nach Dateiendung und dannnach Namen.

33 / 55

Page 45: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

InhaltOrganisatorisches

Der Weg zum Power-UserEinleitung: Was ist ein Rechner?Von Hardware zu Software: Das BetriebssystemTipps für den (Windows-)Power-UserTipps für den Google-Power-UserTextdateien für Power-UserBeyond Klickibunti: Die Konsole

Hello WorldEinleitung: Was ist Programmieren?Installation von Java (mit Jupyter Notebook)Erste Herausforderung: Rechnen

Variablen und OperatorenVariablenOperatoren

34 / 55

Page 46: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Was ist Programmieren?

DefinitionProgrammieren ist das Schreiben von Computerprogrammen.

Ein Computerprogramm ist eine in einer Programmiersprache verfassteAnweisungsabfolge, die ein bestimmtes Problem löst.

35 / 55

Page 47: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Programmiersprachen

Maschinensprache0100 1101 0101 1010 1001 00000000 0000 0000 0011 0000 00000000 0000 0000 0000 0000 0100

Assemblerpushc 3pushc 4add

Cint main(int argc, char *argv[]) {char *str = (char*) malloc(10);str[9] = 0;printf("%s", str);

}

Javapublic class Thing {public static void main(String[] args){System.out.println(args.length);

}}

Java (JShell)int[] test = new int[10];System.out.println(test.length);

Rubydata = FileIO.read("test.csv")data = data.split("\n")data = data.map {|x| x.split(";")}

36 / 55

Page 48: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Klassifizierung von Programmiersprachen

Paradigmen

I funktional (Lisp, Haskell)I objektorientiert (Java)I prozedural (C, Fortran)I multi-paradigm (Ruby)

Andere Unterklassen

I scripting language (Ruby,Python, JavaScript)

I domain-specific (VHDL,SPSS, Matlab)

Eigenschaften

I memory safetyI strong/weak typingI dynamic/static typingI plattformunabhängigI metaprogrammingI pattern matching

37 / 55

Page 49: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Wie bringt man einem Computer eine Sprache bei?

Frage: Wie werden Programme in höheren Programmiersprachen ausführbargemacht?

Antwort: Mit einem Programm.

38 / 55

Page 50: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Wie bringt man einem Computer eine Sprache bei?

Frage: Wie werden Programme in höheren Programmiersprachen ausführbargemacht?

Antwort: Mit einem Programm.

38 / 55

Page 51: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Installation der nötigen Softwarehttps://homepages.thm.de/~cslz90/kurse/bk19

I Windows 7/8/10 (64 bit)I Zip-Archiv mit Installationsscript downloadenI Rechtsklick ⇒ Alle extrahieren..I Doppelklick auf install.batI Anweisungen des Scripts folgen

I Linux und macOSI Anleitung auf der Homepage folgen

Test:

I ⇒ „Jupyter Notebook“ finden

I im Browserfenster auf „New“ ⇒ „Java“I System.out.println("Hello␣World!") eingeben ⇒ „Run“

39 / 55

Page 52: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Bedienung von Jupyter Notebooks

I Strg + Enter : Ausführen des aktuellen Codeblocks

I Alt + Enter : Neuen Block hinzufügen

I Strg + S : Speichern

I Strg + ⇑ + F : Command-Palette öffnenI dort findet man alle wichtigen Befehle

! schließen nur mit File ⇒ Close and HaltI jedes offene Notebook verbraucht Ressourcen!

40 / 55

Page 53: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Erste Herausforderung: Rechnen

Aufgabe: Löse ein paar Rechenaufgaben mit der JShell.

I Normalgewicht: Körpergrößecm − 100

I BMI: GewichtkgKörpergröße2m

I x2: x * x oder Math.pow(x, 2)I Punkt statt Komma: 1, 7 = 1.7

I Anhalteweg: Tachowert·310 + Tachowert2

100

I Wieviel Sekunden sind ein Jahr?I Bonus: Math. + ↹ + ↹

Tests:I Normalgewicht bei

180cm: 80kgI BMI bei 1,9m und

87kg: 24.1I Anhalteweg bei 51

km/h: 41,31mI Ein Jahr hat 525600

Minuten.

41 / 55

Page 54: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Erste Herausforderung: Rechnen

Aufgabe: Löse ein paar Rechenaufgaben mit der JShell.

I Normalgewicht: Körpergrößecm − 100

I BMI: GewichtkgKörpergröße2m

I x2: x * x oder Math.pow(x, 2)I Punkt statt Komma: 1, 7 = 1.7

I Anhalteweg: Tachowert·310 + Tachowert2

100

I Wieviel Sekunden sind ein Jahr?I Bonus: Math. + ↹ + ↹

Tests:I Normalgewicht bei

180cm: 80kgI BMI bei 1,9m und

87kg: 24.1I Anhalteweg bei 51

km/h: 41,31mI Ein Jahr hat 525600

Minuten.

41 / 55

Page 55: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

InhaltOrganisatorisches

Der Weg zum Power-UserEinleitung: Was ist ein Rechner?Von Hardware zu Software: Das BetriebssystemTipps für den (Windows-)Power-UserTipps für den Google-Power-UserTextdateien für Power-UserBeyond Klickibunti: Die Konsole

Hello WorldEinleitung: Was ist Programmieren?Installation von Java (mit Jupyter Notebook)Erste Herausforderung: Rechnen

Variablen und OperatorenVariablenOperatoren

42 / 55

Page 56: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Variablen: Wozu?

Frage: Wie kann man es verhindern, jedes Mal die ganze Rechnung neu zutippen, wenn man andere Zahlen ausprobieren möchte?

Antwort: Wie in der Mathematik – mit Variablen.

Code ohne Variablen

jshell> 51.0 * 3 / 10+ 51.0 * 51.0 / 100

Code mit Variablen

jshell> double tacho = 51.0;jshell> tacho * 3 / 10+ tacho * tacho / 100

43 / 55

Page 57: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Variablen: Wozu?

Frage: Wie kann man es verhindern, jedes Mal die ganze Rechnung neu zutippen, wenn man andere Zahlen ausprobieren möchte?

Antwort: Wie in der Mathematik – mit Variablen.

Code ohne Variablen

jshell> 51.0 * 3 / 10+ 51.0 * 51.0 / 100

Code mit Variablen

jshell> double tacho = 51.0;jshell> tacho * 3 / 10+ tacho * tacho / 100

43 / 55

Page 58: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Variablen: Wozu?

Frage: Wie kann man es verhindern, jedes Mal die ganze Rechnung neu zutippen, wenn man andere Zahlen ausprobieren möchte?

Antwort: Wie in der Mathematik – mit Variablen.

Code ohne Variablen

jshell> 51.0 * 3 / 10+ 51.0 * 51.0 / 100

Code mit Variablen

jshell> double tacho = 51.0;jshell> tacho * 3 / 10+ tacho * tacho / 100

43 / 55

Page 59: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Variablen: Wozu?

Frage: Wie kann man es verhindern, jedes Mal die ganze Rechnung neu zutippen, wenn man andere Zahlen ausprobieren möchte?

Antwort: Wie in der Mathematik – mit Variablen.

Code ohne Variablen

jshell> 51.0 * 3 / 10+ 51.0 * 51.0 / 100

Code mit Variablen

jshell> double tacho = 51.0;jshell> tacho * 3 / 10+ tacho * tacho / 100

43 / 55

Page 60: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Aufgabe: Dreisatz

Bei der letzten Erstifeier wurden 22 Kästen Bier für 86 Studierendegebraucht. Wieviel Kästen Bier sollte man für 110 Studierende einplanen?

Löse die Aufgabe mit Variablen in mehreren Schritten:I drinkingRate : Kästen pro PersonI crates : Gesamtzahl der benötigten Kästen

Variable in Javadouble name = 1.1;

Bonus: Wie sehen die Formeln und Variablen aus, wenn es trinkfestereStudiengänge (TF) gibt, die doppelt so viel trinken wie ”normale”(N)?

Letztes Semester 48 TF + 38 N = 33 KästenDieses Semester 50 TF + 60 N = ?

44 / 55

Page 61: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Aufgabe: Dreisatz

Bei der letzten Erstifeier wurden 22 Kästen Bier für 86 Studierendegebraucht. Wieviel Kästen Bier sollte man für 110 Studierende einplanen?

Löse die Aufgabe mit Variablen in mehreren Schritten:I drinkingRate : Kästen pro PersonI crates : Gesamtzahl der benötigten Kästen

Variable in Javadouble name = 1.1;

Bonus: Wie sehen die Formeln und Variablen aus, wenn es trinkfestereStudiengänge (TF) gibt, die doppelt so viel trinken wie ”normale”(N)?

Letztes Semester 48 TF + 38 N = 33 KästenDieses Semester 50 TF + 60 N = ?

44 / 55

Page 62: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Variablen: Variablen als Behälter

Typ: Flüssigkeit, Wert: 0.0 ml

Bild

quel

le:w

ww.f

reei

mage

sliv

e.co

m

Typ: Stifte, Wert: 12

45 / 55

Page 63: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Variablen: Definition

DefinitionEine Variable gibt einer Speicherstelle einen Namen. Sie kann nur Werteentsprechend ihres Typs enthalten.

Syntax: Variablendeklaration

Typ Name = Wert;

Beispiel

double x = 3.5;

46 / 55

Page 64: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Variablen: float

floatI Fließkommazahlen (engl.: floating point number)I Punkt statt KommaI 4 Byte in IEEE754-Codierung ⇒ ca. 7 geltende Stellen

I f am Ende von Zahlen zur Unterscheidung von double

Beispiele:

3.5f 0.0001234567f 1e127f 1.23456789f0.0f 1234567.0f 2.3e-128f 123456789f2.0f 1234567000.0f 1.234567e10f 1e-200f1f

47 / 55

Page 65: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Variablen: float

floatI Fließkommazahlen (engl.: floating point number)I Punkt statt KommaI 4 Byte in IEEE754-Codierung ⇒ ca. 7 geltende Stellen

I f am Ende von Zahlen zur Unterscheidung von double

Beispiele:

3.5f 0.0001234567f 1e127f 1.23456789f0.0f 1234567.0f 2.3e-128f 123456789f2.0f 1234567000.0f 1.234567e10f 1e-200f1f

47 / 55

Page 66: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Variablen: int

intI Ganzzahlen (engl.: integer)I 4 Byte in Zweierkomplementdarstellung

Beispiele:

4 2147483647 0xff 3_000_000_000-7 -2147483648 077 0xffff_ffff0 100_000_000 0b1011 -3_000_000_0019

48 / 55

Page 67: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Variablen: int

intI Ganzzahlen (engl.: integer)I 4 Byte in Zweierkomplementdarstellung

Beispiele:

4 2147483647 0xff 3_000_000_000-7 -2147483648 077 0xffff_ffff0 100_000_000 0b1011 -3_000_000_0019

48 / 55

Page 68: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Variablen: boolean

booleanI Wahrheitswerte (nach George Bool)

I exakt zwei mögliche Werte

I true

I false

49 / 55

Page 69: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Variablen: String

StringI Zeichenketten (engl.: string)I Zusammengesetzter Typ aus mehreren Zeichen (char)

I Länge beliebig

Beispiele:

"foo" "127" "zeile1\nzeile2""bla" "3q.3f" "\"Zitat\""

"" "a␣b␣c"

50 / 55

Page 70: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Variablen: String

StringI Zeichenketten (engl.: string)I Zusammengesetzter Typ aus mehreren Zeichen (char)

I Länge beliebig

Beispiele:

"foo" "127" "zeile1\nzeile2""bla" "3q.3f" "\"Zitat\""

"" "a␣b␣c"

50 / 55

Page 71: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Variablen: Andere Datentypen

Name Größe Bedeutung Beispiel

byte 1 Byte Ganzzahl (wie int)

short 2 Byte Ganzzahl (wie int)

long 8 Byte Ganzzahl (wie int) 31l

double 8 Byte Fließkommazahl (wie float) 1.0

char 2 Byte Einzelzeichen 'a'

51 / 55

Page 72: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Operatoren

Wie erhöhe ich den Wert einer Zahlvariable x um 2?x = x + 2;

DefinitionDie Rechenzeichen + , - , * , / und % nennt man arithmetischenOperatoren. Sie führen mathematische Rechenoperationen aus.

DefinitionDas einfache Gleichzeichen = ist der Zuweisungsoperator. Er weist derVariable auf der linken Seite den Wert des Ausdrucks auf der rechtenSeite zu.

52 / 55

Page 73: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Operatoren: BesonderheitenDie meisten Operatoren verhalten sich wie erwartet.

Besonderheiten:

I a / b kann zwei Bedeutungen habenI normale Division falls a oder b eine Fließkommazahl istI Ganzzahldivision (ohne Rest) falls a und b beide Ganzzahlen sind

I % ist der Modulo-Operator (Rest der Ganzzahldivision)I a + b kann zwei Bedeutungen haben

I normale Addition wenn a und b Zahlen sindI Stringverknüpfung wenn a oder b vom Typ String sind

Beispiele:I 11 / 3 ergibt 3

I 11 % 3 ergibt 2

I "123" + 4 ergibt "1234"

53 / 55

Page 74: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Operatoren: BesonderheitenDie meisten Operatoren verhalten sich wie erwartet.

Besonderheiten:I a / b kann zwei Bedeutungen haben

I normale Division falls a oder b eine Fließkommazahl istI Ganzzahldivision (ohne Rest) falls a und b beide Ganzzahlen sind

I % ist der Modulo-Operator (Rest der Ganzzahldivision)I a + b kann zwei Bedeutungen haben

I normale Addition wenn a und b Zahlen sindI Stringverknüpfung wenn a oder b vom Typ String sind

Beispiele:I 11 / 3 ergibt 3

I 11 % 3 ergibt 2

I "123" + 4 ergibt "1234"

53 / 55

Page 75: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Operatoren: BesonderheitenDie meisten Operatoren verhalten sich wie erwartet.

Besonderheiten:I a / b kann zwei Bedeutungen haben

I normale Division falls a oder b eine Fließkommazahl istI Ganzzahldivision (ohne Rest) falls a und b beide Ganzzahlen sind

I % ist der Modulo-Operator (Rest der Ganzzahldivision)

I a + b kann zwei Bedeutungen habenI normale Addition wenn a und b Zahlen sindI Stringverknüpfung wenn a oder b vom Typ String sind

Beispiele:I 11 / 3 ergibt 3

I 11 % 3 ergibt 2

I "123" + 4 ergibt "1234"

53 / 55

Page 76: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Operatoren: BesonderheitenDie meisten Operatoren verhalten sich wie erwartet.

Besonderheiten:I a / b kann zwei Bedeutungen haben

I normale Division falls a oder b eine Fließkommazahl istI Ganzzahldivision (ohne Rest) falls a und b beide Ganzzahlen sind

I % ist der Modulo-Operator (Rest der Ganzzahldivision)I a + b kann zwei Bedeutungen haben

I normale Addition wenn a und b Zahlen sindI Stringverknüpfung wenn a oder b vom Typ String sind

Beispiele:I 11 / 3 ergibt 3

I 11 % 3 ergibt 2

I "123" + 4 ergibt "1234"

53 / 55

Page 77: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Operatoren: BesonderheitenDie meisten Operatoren verhalten sich wie erwartet.

Besonderheiten:I a / b kann zwei Bedeutungen haben

I normale Division falls a oder b eine Fließkommazahl istI Ganzzahldivision (ohne Rest) falls a und b beide Ganzzahlen sind

I % ist der Modulo-Operator (Rest der Ganzzahldivision)I a + b kann zwei Bedeutungen haben

I normale Addition wenn a und b Zahlen sindI Stringverknüpfung wenn a oder b vom Typ String sind

Beispiele:I 11 / 3 ergibt 3

I 11 % 3 ergibt 2

I "123" + 4 ergibt "1234"

53 / 55

Page 78: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

TypcastsManchmal muss man einen Datentyp manuell in einen anderen Typumwandeln.

Beispiele:I double zu int , um Nachkommastellen zu entfernenI char zu int , um Zeichencode auszulesenI int zu char , um systematisch Zeichen zu erzeugen

Typcast: Syntax

(NeuerTyp) wert

Typcast: Beispiele

(int) 3.4(int) 'a'(char) intVariable

54 / 55

Page 79: Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners …cslz90/kurse/bk19/folien/bk00... · 2019. 3. 4. · Programmiersprachen Maschinensprache 0100 1101 0101 1010 1001

Zusammenfassung

Variablen

double a = 3.5;int b = 10;boolean c = true;String blabla = "Blabla";

Arithmetische Operatoren

+ - * / %

55 / 55