Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners...
Transcript of Brückenkurs Programmieren - Tag 1: Bedienung eines Rechners...
![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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/1.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/2.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/3.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/4.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/5.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/6.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/7.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/8.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/9.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/10.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/11.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/12.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/13.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/14.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/15.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/16.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/17.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/18.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/19.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/20.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/21.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/22.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/23.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/24.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/25.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/26.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/27.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/28.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/29.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/30.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/31.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/32.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/33.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/34.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/35.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/36.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/37.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/38.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/39.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/40.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/41.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/42.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/43.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/44.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/45.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/46.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/47.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/48.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/49.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/50.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/51.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/52.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/53.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/54.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/55.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/56.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/57.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/58.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/59.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/60.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/61.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/62.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/63.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/64.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/65.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/66.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/67.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/68.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/69.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/70.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/71.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/72.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/73.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/74.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/75.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/76.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/77.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/78.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022060602/60571fb727a75603092faab7/html5/thumbnails/79.jpg)
Zusammenfassung
Variablen
double a = 3.5;int b = 10;boolean c = true;String blabla = "Blabla";
Arithmetische Operatoren
+ - * / %
55 / 55