Grundlagen der Programmierung

Ähnliche Dokumente
Grundlagen der Programmierung

Grundlagen der Programmierung

Die Programmiersprache C Eine Einführung

Einführung in die Programmierung für NF. Übung

Tutorial zum Umgang mit Scratch

Programmieren mit xlogo

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2015/16

Propädeutikum Programmiersprache C und Mathematik 2014

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

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

Organisatorisches und Überblick

EINI WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

Praktische Informatik I

Verhalten. Def. und Nutzen von Verhalten. Pseudocode Schreibtischtest. Algorithmen

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2017/18

ECDL MODUL COMPUTING. Syllabus Version 1.0

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

Algorithmen und Datenstrukturen (für ET/IT)

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

1. Einführung. Was ist ein Algorithmus (eine Datenstruktur)? Welche Probleme kann man damit lösen? Warum betrachten wir (effiziente) Algorithmen?

Turtlegrafik in Logo

Programmieren lernen mit Perl

Ingenieurinformatik. Einführung in die Programmiersprache C

Einführung in die Programmierung II. 1 Einleitung/Übersicht

Probeklausur: Programmierung WS04/05

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

Lernziele Ablauf Übungsaufgaben Formalitäten. Programmierpraktika. Einführung in das Programmieren und Weiterführendes Programmieren

Einführung in die Informatik I

Programmierung. Rückblick. VWA - Programmierung Winter Algorithmus. Programmiersprache. Variable. Zuweisung. Bedingung.

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

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

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Programmieren C: Schwerere Weihnachtsbeispiele

SCRATCH. Beispiel 1. "Pong"

Programmiervorkurs. Wintersemester 2013/2014

1 Karol stellt sich vor

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

Inhalt. Einführung in die Strukturierte Programmierung 15

Inhalt. n Algorithmus. n Euklidscher Algorithmus. n Sortieren. n Programmiersprachen. n Entwicklungsschritte eines Programms.

FD Informatik Mauch SSDL (WHRS) Reutlingen. Algorithmen

Programmierkurs II. Prof. Dr. Wolfgang Effelsberg. Universität Mannheim. Sommersemester Wolfgang Effelsberg Programmiersprachen

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Einführung in die Programmierung

Greenfoot: Verzweigungen

Algorithmen und Programmierung. Zusatzaufgaben Java Tutorium 1

Martin Unold INFORMATIK. Geoinformatik und Vermessung

2. JAVA-Programmierung. Informatik II für Verkehrsingenieure

Programmieren 2 - Java

Einführung in die Programmierung

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Einführung in die Programmierung mit VBA

Datenstrukturen und Algorithmen

Algorithmen und Datenstrukturen

Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch

Learning Object-Oriented Programming. Algorithmen. Algorithmusbegriff. Klärung der Herkunft des Begriffs Formale Definition von Algorithmus

III.1 Prinzipien der funktionalen Programmierung - 1 -

Programmieren mit Python

Datenstrukturen. Sommersemester Kapitel 1: Motivation / Grundlagen. Steffen Lange

Liste MI / Liste I Programmieren in C++

Intensivübung zu Algorithmen und Datenstrukturen

Grundlagen der Programmierung

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren...

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Ideen und Konzepte der Informatik

5. Algorithmen. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2013/14

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Algorithmen und ihre Programmierung

2. Einführung. Informatik II für Verkehrsingenieure

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Software-Praktikum. Überblick und Zeitplan

Programmieren. Hexenwerk oder Zauberspuk? Kinderuniversität Mittwoch, 16. März 2016 Kinder-Akademie Fulda & Hochschule Fulda

3.4 Ablaufsteuerung (Kontrollstrukturen)

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

Grundlagen der Informatik I (Studiengang Medieninformatik)

Vorlesung Datenstrukturen

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

ALGOL 68 im Aspekt einer modernen Programmiersprache???

Informatik 1. Sommersemester Helmut Seidl. Institut für Informatik TU München

Jochen Ziegenbalg Oliver Ziegenbalg Bemd Ziegenbalg. Algorithmen. von Hammurapi bis Gödel. 2., verbesserte Auflage Verlag g;> Harri Deutsch

Themenübersicht Verwendung im Studium Voraussetzungen Ziele Website zum Buch Danksagungen... 21

Javakurs für Anfänger

Algorithmen. Von Hammurapi bis Gödel. von Jochen Ziegenbalg, Oliver Ziegenbalg, Bernd Ziegenbalg. überarbeitet

Algorithmen implementieren. Implementieren von Algorithmen

Transkript:

Grundlagen der Programmierung Dr. Tom Kamphans 1. Vorlesung 12.10.2016 1

Organisatorisches Vorlesung: Mittwochs 14:00 15:30, Raum F 201 Übung: Mittwochs 15:45 19:00, Raum F 225 Übung: alle zwei Wochen Folien: http://home.htw-berlin.de/~kamphans Email: tom.kamphans@htw-berlin.de 2

Organisatorisches Bestehen des Moduls: Erfolgreiche Teilnahme an den Übungen Anwesenheit Mitarbeit / Aufgaben erfolgreich absolviert KLAUSUR 1. Zeitraum: 30.01. bis 18.02.2017 Vorschlag: 15.02.2017 2. Zeitraum: 27.03. bis 08.04.2017 3

Literatur Jürgen Wolf: C von A bis Z (Galileo Computing) Openbook: http://openbook.galileocomputing.de/c_von_a_bis_z/ Brian W. Kernighan, Dennis Ritchie: The C Programming Language. (Prentice Hall) deutsch: Programmieren in C (Hanser Verlag) 4

Fragen Wer hat noch NIE...... Email benutzt?... einen Computer bedient?... im Web gesurft?... eine Textverarbeitung benutzt?... mit Windows 10 gearbeitet?... mit MacOS gearbeitet?... mit Linux gearbeitet? 5

Fragen Wer hat schon einmal programmiert?... in C?... in C++ oder Java? weiß, was ein Algorithmus ist? kennt das P/NP Problem? 6

Inhalte Programmieren C Handwerkszeug Algorithmen und Datenstrukturen: "Programmieren" auf höherer Ebene Vorüberlegungen beim Entwurf eines Programms 7

C Entwickelt 1972 von Dennis Ritchie Wird seitdem weiterentwickelt Sehr hohe Bedeutung Basis für C++, Java, C#, Perl, Ruby,... Systemnah (ermöglicht Programmierung von Betriebssystemen, Treibern, Embedded Devices,...) 8

C Imperativ Programme bestehen aus einer Folge von Anweisungen, die vorgeben, in welcher Reihenfolge was vom Computer getan werden soll (im Ggs: objektorientiert, deskriptiv) Strukturiert erlaubt "übersichtliche" Anordnung der Anweisungen in Blöcken mit Hilfe von Kontrollstrukturen und Prozeduren ermöglicht größere Softwareprojekte 9

Was heißt Programmieren? 10

Programmieren Problem Algorithmus Implementierung Programm 11

Algorithmus Ein Algorithmus ist eine aus endlich vielen Schritten bestehende eindeutige Handlungsvorschrift zur Lösung eines Problems oder einer Klasse von Problemen. (Wikipedia) Beispiel: nimm Bockwurst aus der Dose koche Wasser lasse Bockwurst 5 Minuten im Wasser ziehen 12

Vom Problem zum Algorithmus ein Problem Was heißt berechenbar? berechenbar? Was heißt effizient? JA effizient berechenbar? JA NEIN Was können wir tun? Wie gut ist unsere Lösung? Geht es besser? 13

Berechenbarkeit Computermodell Speicherzellen zum Speichern von Zahlen Zeiger auf "aktuelle Speicherzelle" Befehle: Verschiebe Zeiger nach rechts/links Erhöhe/Erniedrige Wert um 1 Wiederhole Anweisungsfolge, bis Zeiger auf Speicherzelle mit Wert 0 zeigt Eingabe/Ausgabe einer Speicherzelle 14

Nicht-Berechenbarkeit Conways Game of Life Gegeben zweidimensionales Spielfeld (Zellen) Jede Zelle kann einen von zwei Zuständen (lebend, tot) annehmen Folgegeneration entsteht nach folgenden Regeln: Zelle wird lebendig, wenn drei ihrer acht Nachbarn leben Zelle mit 4 lebenden Nachbarn stirbt (Übervölkerung). Zelle mit 1 lebenden Nachbar stirbt (Vereinsamung). Frage: Gegeben eine Anfangspopulation im Game of Life, wird diese ewig leben? Nicht berechenbar! 15

Effizienz Gegeben ein Graph (z.b.: Straßennetz mit Orten und Entfernungen) Finde kürzeste Rundtour, die alle Orte besucht 8 7 2 5 2 2 3 3 5 5 4 6 7 16

Effizienz Lösung: berechne alle möglichen Touren wähle die billigste aus kann sehr lange dauern nicht effizient! nicht effizient berechenbar? man weiß nicht, ob eine effiziente Lösung existiert! Vermutung: existiert nicht 17

Wie beschreibt man Algorithmen? Programmcode: max=0; for(i=0; i<n; i++) if ( a[i] > max ) max=a[i]; Pseudocode: durchlaufe Array a, bestimme das maximale Element auch möglich: Flußdiagramme Einzige Regel: es muss klar werden, was gemacht werden soll Technik für Algorithmenentwurf: Schrittweise Verfeinerung 18

Vom Algorithmus zum Programm Elemente von Programmiersprachen Operatoren Kontrollstrukturen Bibliotheksfunktionen 19

Beispiel: Turtlegraphik Turtlegraphik: bewegt Zeiger ("Turtle") über den Bildschirm, zeichnet Spur des Zeigers Befehle: Bewege Zeiger (MOVE schrittweite) Drehe Zeiger (TURN winkel) Problem: Zeichne Quadrat mit Kantenlänge 100 Erstmal kein C, sondern Scratch (http://scratch.mit.edu) 20

Quadrat mit Turtlegraphik MOVE 100 TURN 90 MOVE 100 TURN 90 MOVE 100 TURN 90 MOVE 100 TURN 90 Befehl Parameter 21

Geht's einfacher? Wiederhole 4 mal: MOVE 100 TURN 90 22

Kontrollstruktur! "Klammer" für Befehle auch selbst Befehl! 23

Neue Befehle definiert neuen Befehl Anwendung: 24

Neue Befehle Ziel: Befehl zum Zeichnen eines Quadrates definieren, unabhängig von der Seitenlänge Die Seitenlänge ist ein Parameter des neuen Befehls Quadrat Neuer Befehl kann genau wie geg. Befehl verwendet werden 25

Neue Befehle mit Parameter 26

Kontrollstrukturen Kontrollstrukturen erlauben, den Programmablauf zu steuern Kontrollstrukturen Schleifen Verzweigungen nichtbedingt bedingt 27

Beispiel: Verzweigungen Problem: Zeichne Quadrat in blau, falls Space-Taste gedrückt wurde, sonst rot Befehle: Setze Farbe für Spur Frage, ob bestimmte Taste gedrückt wurde 28

Beispiel: bedingte Schleifen Problem: laufe zufällig, bis Space-Taste gedrückt wird Befehle: Zufallszahl zwischen n und m 29

Beispiel: Variablen und Operatoren Problem: wie oben, aber zähle zurückgelegte Wegstrecke Speicher benötigt (Variable) Operatoren: Zuweisung: Variable = Wert Addition: Wert + Wert Befehle: Gib Wert von Variable aus Algorithmus? Wert: Zahl oder Variable 30

Beispiel: Variablen und Operatoren Algorithmus: Wichtig!! setze summe auf 0 Wiederhole, bis Space gedrückt: x = Zufallszahl summe = summe + x MOVE x TURN Zufallszahl Gib Wert von summe aus 31

Beispiel: Variablen und Operatoren 32