Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Ähnliche Dokumente
Flussdiagramm / Programmablaufplan (PAP)

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Programmieren lernen mit Groovy Rekursion Rekursion und Iteration

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Syntax von LOOP-Programmen

Schritt 1. Schritt 1. Schritt 3. - Analysieren des Problems und Spezifizierung einer Lösung.

Theoretische Informatik SS 03 Übung 3

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

Grundlagen der Informatik I (Studiengang Medieninformatik)

1 Bedingungen und der Typ bool. Informatik I: Einführung in die Programmierung 5. Bedingungen, bedingte Ausführung und Schleifen. Vergleichsoperatoren

5. Elementare Befehle und Struktogramme

Schleifenanweisungen

Grundlagen der Programmierung

JAVA-Datentypen und deren Wertebereich

LOOP-Programme: Syntaktische Komponenten

4. Ablaufsteuerung (Kontrollstrukturen)

Entwurf von Algorithmen - Kontrollstrukturen

Algorithmen und ihre Programmierung

Informatik I Übung, Woche 40

Einführung in die Programmierung mit VBA

Programmierkurs II. C und Assembler

Einführung in die Programmierung Wintersemester 2011/12

Programmierkurs Java

Annehmende Schleife do while

TI-Basic. Programme und Funktionen

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

(Prüfungs-)Aufgaben zur Berechenbarkeits- und Komplexitätstheorie

Schleifen in C/C++/Java

2 ZAHLEN UND VARIABLE

Programmieren I. Kapitel 5. Kontrollfluss

Einführung in die Informatik Algorithms

Schleifen in Javascript

a) Wandeln Sie folgende Dualzahlen durch Gruppenbildung in das Oktal- und Hexdezimalsystem um

Programmieren in C/C++ und MATLAB

4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04

2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben

Beispiel 19. December 4, 2009

Dr. Monika Meiler. Inhalt

Algorithmen & Programmierung. Rekursive Funktionen (1)

Abstrakte Algorithmen und Sprachkonzepte

3.4 Ablaufsteuerung (Kontrollstrukturen)

Universität des Saarlandes

II. Grundlagen der Programmierung

4 Schleifen -= Entstanden unter Excel 2003 =-

Werkzeuge zur Programmentwicklung

Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte

Informatik I - Programmierung Globalübung Hoare-Kalkül. Thomas Weiler. Fachgruppe Informatik RWTH Aachen. T. Weiler, RWTH Aachen - 1 -

Einführung in die Theoretische Informatik

C- Kurs 04 Anweisungen

Überblick. 1 Vorbemerkungen. 2 Algorithmen. 3 Eigenschaften von Algorithmen. 4 Historischer Überblick. Einführung

Steuerung von Programmabläufen. Vorlesung Computergestützte Mathematik zur Linearen Algebra. Lehrstuhl für Angewandte Mathematik Sommersemester 2009

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

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

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.

Access 2010 Programmierung Schleifen

BKTM - Programmieren leicht gemacht.

GI Vektoren

Grundlagen der Programmierung

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Variablen und Datentypen

Programmierkurs Python I

Mächtigkeit von WHILE-Programmen

Einführung in die C++ Programmierung für Ingenieure

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 5 Zustand eines Objekts

2. Programmierung in C

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie

Musterlösung zur Übung 5

Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen.

Klausur zur Wirtschaftsinformatik II im Grundstudium

6. Iteration (Schleifenanweisungen)

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Programmierkonventionen - 1 -

Viel Spaÿ! Aufgabe 0.1. Laufzeit unter Verdoppelung (-)

SWE1 / Übung 2 ( )

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/

VBA mit Excel. Einführung VBA mit Excel. Einführung

P r o g r a m m a b l a u f s t e u e r u n g

Algorithmen und Datenstrukturen

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Grundlagen der Programmierung

VBA-Programmierung: Zusammenfassung

Logik: aussagenlogische Formeln und Wahrheitstafeln

Softwareentwicklung Allgemeines und prozedurale Konstrukte

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

Einführung in die Informatik I (autip)

Gruber I Neumann. Erfolg in VERA-8. Vergleichsarbeit Mathematik Klasse 8 Gymnasium

2.5 Programmstrukturen Entscheidung / Alternative

Kontrollstrukturen MySQL Funktionen. MySQL 4, 5. Kapitel 20a: PHP Teil 2. Marcel Noe

1.8 Kontrollstrukturen 73. default : ziffer = 0; if (ziffer > 0) { cout << "Ziffer = " << ziffer; else { cout << "keine römische Ziffer!

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

= * 281 = : 25 = oder 7x (also 7*x) oder (2x + 3) *9 oder 2a + 7b (also 2*a+ 7*b)

Greenfoot: Verzweigungen

VBA mit Microsoft Excel für Kids

Hier ist eine Zahlenmauer abgebildet, die aus drei Schichten aufgebaut ist. Überprüfe die oben beschriebene Bauvorschrift.

Java-Programmierung mit NetBeans

Transkript:

Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn 26. Oktober 2015

Programme und Algorithmen Programmiersprache = Kunstsprache mit genau definierter Syntax (was ist ein zulässiger Satz) und Semantik (was bedeutet ein Satz) zur Formulierung von Programmen. Programm = bis in alle Details spezifierte Rechenvorschrift zu Lösung eines Problems. Kann von einer Maschine ausgeführt werden. Algorithmus = Rechenvorschrift so aufgeschrieben, dass ein (entsprechend ausgebildeter) Mensch sie ausführen kann. Thema heute: Pseudocode zur Formulierung von Algorithmen. Unsere ersten beiden Algorithmen Addition von Dezimalzahlen Test ob ein gegebenes Wort in einem Text vorkommt Ideen der Informatik Kurt Mehlhorn 2/12

Variable, Ausdrücke, Zuweisungen Variable haben einen Namen, z.b. x, y, Gehalt, i,... und zu jedem Zeitpunkt einen Wert, z.b. x hat den Wert 5. Der Wert kann durch eine Wertzuweisung geändert werden, z.b. x 7 lies: x bekommt den Wert 7. Wertzuweisung: Variable Ausdruck Beispiele: x 5; y 7; x x + y; Vor der Zuweisung x x + y hat x und y die Werte 5 und 7. Zur Bestimmung des Werts des Ausdrucks x + y werden die Variablen durch ihre augenblicklichen Werte ersetzt und dann gerechnet x + y 5 + 7 12. Der so bestimmte Wert wird der neue Wert von x. Ideen der Informatik Kurt Mehlhorn 3/12

Ein erstes Programm n 3; s 0; while i n s s + i; i i + 1; drucke s; Die Ausführung n 3; s 0; i n ist wahr (da 1 3 wahr ist) s s + i = 0 + 1 = 1; i i + 1 = 1 + 1 = 2; i n ist wahr; Das obige nennt sich eine While-Schleife. Solange die Bedingung i n zutrifft, führe den Rumpf der Schleife aus drucke s gibt 6 aus. Die Ausgabe der Rechnung ist die Summe 1 + 2 + 3. Ideen der Informatik Kurt Mehlhorn 4/12

Übung Der Wert eine Variablen ist unveränderlich. falsch? wahr oder n 7; s 0; while i n s s + i; i i + 2; drucke s; Fragen: 1. Was ist der Entwert von s? Antwort 14 oder 16 oder 20? 2. Was ist der Endwert von i? Antwort 7 oder 9? Ideen der Informatik Kurt Mehlhorn 5/12

Ein erstes interessantes Programm n Eingabe; s 0; while i n s s + i; i i + 1; drucke s; Das Flussdiagramm zur Schleife Wir weisen n keinen festen Wert mehr zu, sondern lesen ihn ein. Bei Eingabe 3 berechnet das Programm die Summe 1 + 2 + 3 = 6. Bei Eingabe 100 berechnet das Programm die Summe 1 + 2 +... + 100 = 5050. und als For-Schleife Ideen der Informatik Kurt Mehlhorn 6/12

Bedingte Anweisungen if Bedingung dann-fall sonst-fall Werte die Bedingung aus; die Bedingung ist ein logischer Ausdruck, der sich zu wahr oder falsch auswertet. Falls wahr, dann führe den dann-fall aus. Falls falsch, dann führe den sonst-fall aus. if i ist ungerade i i + 1; i i + 2; Ausführung (i ist ungerade) ist wahr; daher wird der dann-fall ausgeführt; i i + 1 = 1 + 1 = 2; und nun mit Anfangswert 2 i 2; Ideen der Informatik Kurt Mehlhorn 7/12

Ein etwas kompliziertes Programm Ausführung s 0; while i 4 s s + i; i i + 1; if i is ungerade drucke s i i + 1 drucke s; Ideen der Informatik Kurt Mehlhorn 8/12

Ein etwas kompliziertes Programm s 0; while i 4 s s + i; i i + 1; if i is ungerade drucke s i i + 1 drucke s; Ausführung s 0; i 4 ist wahr s s + i = 0 + 1 = 1; i i + 1 = 1 + 1 = 2; i is ungerade ist falsch i i + 1 = 2 + 1 = 3; i 4 ist wahr; s s + i = 1 + 3 = 4; i i + 1 = 3 + 1 = 4; i is ungerade ist falsch i i + 1 = 4 + 1 = 5; i 4 ist falsch; drucke s gibt 4 aus. Ideen der Informatik Kurt Mehlhorn 8/12

Auch kurze Programme können knifflich sein (Lothar Collatz) n eine natürliche Zahl while n > 1 if n is gerade n n/2; n 3n + 1; Ausführungen 16 8 4 2 1 6 3 10 5 16... 17 52 26 13 40 20 10 7 Ideen der Informatik Kurt Mehlhorn 9/12

Auch kurze Programme können knifflich sein (Lothar Collatz) n eine natürliche Zahl while n > 1 if n is gerade n n/2; n 3n + 1; Ausführungen 16 8 4 2 1 6 3 10 5 16... 17 52 26 13 40 20 10 7 Es ist nicht bekannt, ob dieses Programm für jede Eingabe hält. Probieren sie den Startwert 27. Ideen der Informatik Kurt Mehlhorn 9/12

Auch kurze Programme können knifflich sein (Lothar Collatz) n eine natürliche Zahl while n > 1 if n is gerade n n/2; n 3n + 1; Ausführungen 16 8 4 2 1 6 3 10 5 16... 17 52 26 13 40 20 10 7 Es ist nicht bekannt, ob dieses Programm für jede Eingabe hält. Probieren sie den Startwert 27. 27, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167, 502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479, 1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911, 2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732, 866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1 Ideen der Informatik Kurt Mehlhorn 9/12

Ein erster Algorithmus: Addition von Dezimalzahlen Summand 4 7 2 3 Summand 5 4 4 8 Überträge 0 Summe Zahl 1 hat Ziffern a 3,..., a 0. Zahl 2 hat Ziffern b 3,..., b 0. Summe hat Ziffern s 4, s 3,..., s 0. Wir haben auch noch einen Übertrag c. Der Übertrag in die letzte Spalte ist 0. Wir addieren die drei Ziffern in einer Spalte. Nenne die Summe S. S 10: Übertrag ist 1, und Summenziffer ist S 10. S 10: Übertrag ist 0, und Summenziffer ist S. c 0; for i von 0 bis 3 S a i + b i + c; if S 9 s i S; c 0; s i S 10; c 1; s 4 c; Ideen der Informatik Kurt Mehlhorn 10/12

Man kann nicht nur mit Zahlen rechnen Ein Wort ist eine Folge von Buchstaben, z.b., Kurt. Wir wollen feststellen, ob ein Wort (das Muster) in einem anderen Wort (dem Text) vorkommt? Dazu legen wir das Muster an jeder Stelle des Textes an und vergleichen Buchstabe für Buchstabe. Muster = Kurt Text = MehlhornKurt probiere Text hat Buchstaben t 0,..., t n 1. Muster hat Buchstaben p 0,..., p k 1. for i von 0 bis n k passt wahr; for j von 0 bis k 1 if t i+j p j passt falsch; if passt = wahr drucke i; Ideen der Informatik Kurt Mehlhorn 11/12

Übung s 0; while i 8 s s + i; i i + 1; if i is gerade drucke s i i + 1 drucke s; Fragen: 1. Führen sie das Programm aus. 2. Wieviele Zahlen werden gedruckt? Hinweis: zwei. 3. Was ist der Entwert von s? 4. Was ist der Endwert von i? Ideen der Informatik Kurt Mehlhorn 12/12