3 DATENVERARBEITUNG - ALGORITHMEN. Marcel Götze

Ähnliche Dokumente
Einführung in die Programmierung WS 2014/ Algorithmus, Berechenbarkeit und Programmiersprachen 2-1

1 Vom Problem zum Programm

Einstieg in die Informatik mit Java

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

16. Oktober Slow Food mittleres Ruhrgebiet: Griechische trifft westfälische Küche. Linsen-Bulgur-Puffer mit Joghurtsauce

L1 Programmiersprachen

Leichte Gerichte für einen bunten Sommer

Leckere Salate - knackig und gesund -

TIAI1004: Programmierung

DOWNLOAD. Apfelkompott, Erdbeerquark und Karibiktraum. Einfaches Kochen nach Fotos. Doris Thoma-Heizmann/Friedrich Strobel

Einführung in die Informatik I

Fixe kalte Mahlzeiten

Entwurf von Algorithmen - Kontrollstrukturen

Einfach Mama. Rezepte für eine gesunde Ernährung während der Schwangerschaft. Einfach ALDI.

Ja! Natürlich Kochkurs - Aromatische Zitrusfrüchte für die leichte Winterküche

REZEPTE (Fingerfood) (zum Mitnehmen) Zusammengestellt von Ernährungsexpertin Dr. habil Gülin Tunali

1. Grundlegende Konzepte der Informatik

Ein Rezept meiner Krankenkasse

VBA-Programmierung: Zusammenfassung

Männer Koch-Club 'Kochhafedeckellupfer'

Rezepte für Bohnen Linsen & Co: Zum Beispiel Kidney- Bohnen-Burger oder Erbsen-Minz-Aufstrich

Rezepte für die Stoffwechsel-Aktiv-Kur Phase 1

InterKulTreff Kochkurs: spanische Küche

Amarettini Himbeer Vanilletrifle für 4 Personen. Zutaten:

Zuschauer beim Berlin-Marathon

Die Küchenschlacht - Menü am 6. Mai 2014 Vorspeisen Alfons Schuhbeck

Einkaufsliste Kochquatsch 2014:

Zutatenliste für die SWR3-Grillparty am 1. Mai 2008 Zutaten für 4 Personen 2 Stück Avocado (mit glatter Schale) 180 ml Olivenöl 2 Stück Limetten

Cremesuppe von roten Linsen

Schafskäse im Zucchinimantel an roten Linsen und Minz-Joghurt. Gefüllte Gnocci mit Pesto Dorade in Serrano an Ratatouille und Kapern-Kartoffeln

Rezepte Zum Projekt Speise um die Der Welt

Ofenküchlein mit. Laktosefrei ERGIBT CA. 5 STÜCK

Feldsalat mit Datteln und Feta im Speckmantel mit Rotweinkonfit und Sesamwaffel

KAPITEL III DAS InFORMATIK- KOCHSTUDIO

Rezeptideen mit Allos Frucht Pur.

Die Küchenschlacht - Menü am 11. August 2014 Leibgerichte Nelson Müller

Programmieren Formulierung eines Algorithmus in einer Programmiersprache

Becel Cuisine: die herzgesunde Alternative fürs Braten, Kochen und Backen

Gesund Kochen im Alltag

Algorithmen & Programmierung. Aspekte von Algorithmen

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm

Schritt für Schritt zum kleinen Genießer

Coma I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise

2. Die Darstellung von Algorithmen

Vanillekipferl. Zutaten:

Netzwerk Gesunder Kindergarten Rezepte, Version August 2013 Seite 1

HÜTTEN KÄSE KÄSE. Leckere Rezepte zum Ausprobieren! 3,9% FIT & GESUND. nur. Fett

Pfiffige Beilagen für die Grillsaison

3. Inzwischen Mini-Knödel in kochendem Wasser bei mittlerer Hitze 7 Minuten garen, herausnehmen und zu den gefüllten Hackbällchen servieren.

Clubabend am

Laufzeit und Komplexität

Martinsgans mit Orangen

daweg Rezepte Kochrezepte für Essensreste die noch da sind und weg gehören

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

Projekt Gesunde Ernährung

Grundlagen der Informatik

Kochwerkstatt. 01. März mit Prof. Dr. Petra Kolip. Linsenlust

- Aubergine, Zucchini, Peperoni und Tomaten waschen und klein schneiden.

D A T E N... 1 Daten Micheuz Peter

Minimalismen in der. Informatik

REZEPT VON BIRGIT Sendung vom

Vegetarisch genießen Rezepte

Technische Informatik - Eine Einführung

ABNEHMEN MIT GENUSS IM JOB Testen Sie das erfolgreiche Abnehmprinzip!

Weihnachtliches Plätzchenbacken

Bei Grad, Min. backen. In einer Blechdose aufbewahren.

Lamm auf Linsensalat

100 g Charentais-Melone 180 g Joghurt nature, mager etwas Pfefferminze, frisch 1 Scheibe ebalance-brot

Rezeptideen für leckere Heißgetränke

Informatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2008/09. Universität Freiburg, Germany

Algorithmen und Programmierung

Sortierverfahren für Felder (Listen)

Einführung in die Programmierung

Die RTL MIT-KOCH-SHOW VON KONSUM UND FRIDA mit Spitzenkoch Gerd Kastenmeier. Weihnachtsmenü 2. Vorspeise Serranoschinken-Ei mit Feldsalat

Approximationsalgorithmen

Wakeup-Eiweißbrot Verzehr-Empfehlungen zum WU-Eiweißbrot: Wichtig:

Schoppa da giuotta. Rezept für 10 Personen

Die Küchenschlacht Hauptgang & Dessert vom 4. April 2013

Modellierung und Programmierung 1

Gebackener Schafskäse an Hirtensalat

15. Internationales Käse- & Gourmetfest Lindenberg im Allgäu

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

Banana-Split-Porridge

Südafrika - Milchtörtchen

Kapitel 11: Wiederholung und Zusammenfassung

Ernährungsprotokoll vom bis

Zubereitung. Zubereitung. Zubereitung

Glühwein Schmankerl Tavernwirt Martin Wastl kocht Spezialitäten mit Glühwein

Grundlagen der Programmierung - Algorithmen

Urgesund - 9 Schlüssel für deine Gesundheit Rezepte. Warmer Frühstücks-Shake

Tolle Rezepte aus unseren Videos: Für Sie zusammengestellt

Hier wird mit Liebe gekocht!

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

Dauerhaft abnehmen und sich dabei jünger und aktiver fühlen - das ist möglich!

Happy Halloween Schaurig-schöne Rezeptideen von Diamant

Leckeres mit Ei Rezepte

2.7 Klassen 2.8 Methoden 2.9 Rekursion 2.10 Dateien 2.11 Objektorientierung 2.12 Dynamische Datenstrukturen 2.13 Vererbung

Handkäs mit Salsa rossa

Transkript:

GRUNDKURS INFORMATIK 3 DATENVERARBEITUNG - ALGORITHMEN Marcel Götze

Überblick 1. Bisher: Daten, Information, Wissen 2. Heute: Datenverarbeitung 1. Was ist ein Algorithmus 2. Vom Problem zur Lösung

Datenverarbeitung Bearbeitung von Daten durch Maschinen Datenverarbeitung beinhaltet: Umformen (Rechnen, Zählen, Übersetzen,...) Transportieren Speichern Ein-/Ausgabe Datenverarbeitung beinhaltet oft Problemlösung nach bestimmtem Schema Algorithmus

Algorithmus (erste Näherung) 2. 5 Das Wort Algorithmus ist eine Abwandlung oder Verballhornung des Namens von Muhammad ibn Musa al-chwarizmi (* ca. 783, ca. 850), dem Autor des Buchs Hisab al-dschabr wa-l-muqabala (825, Regeln zur Wiederherstellung und Reduktion), durch das die Algebra im Westen verbreitet wurde. Die lateinische i Fassung beginnt mit Dixit Algoritmi... (Algoritmus sprach...), womit der Autor gemeint war. Das Wort Algebra stammt ebenfalls (al-jabr Einrenkung ) aus dem Titel des Buches. Quelle: Wikipedia

6 Eindeutige und exakte Beschreibung eines Verarbeitungsvorganges. Ein Prozessor führt einen Prozeß (Arbeitsvorgang) auf Basis einer eindeutig interpretierbaren Beschreibung (des Algorithmus) aus. Typische algorithmisierbare Prozesse: Kochrezepte Bedienungsanleitungen Rechnerprogramm (Prozessor: Computer!)

Bestandteile eines Algorithmus 2. 7 Objekte darauf soll eine Wirkung ausgeübt werden können abstrakter oder auch konkreter Natur sein. Handlungen Wirken in einer bestimmten Reihenfolge ausgeführt auf gewünschte Weise auf die Objekte ein. Zustandsänderungen an Objekten

Beispiel: Auswechseln eines Rades am Auto 8 1. Löse die Radmuttern. 2. Hebe den Wagen an. 3. Schraube die Radmuttern ab. 4. Tausche das Rad gegen ein anderes Rad aus. 5. Schraube die Radmuttern an. 6. Setze den Wagen ab. 7. Ziehe die Radmuttern fest.

Beobachtungen 21 2.1. 9 Anwender des Algorithmus muß jeden einzelnen Schritt verstehen und ausführen können Verfahren enthält Folge von Handlungen in fester Reihenfolge ODER über Reihenfolge wird erst während der Ausführung des Algorithmus entschieden (notwendig: entsprechende Sprachkonstrukte) Abarbeitungsreihenfolge mancher Einzelschritte nicht von Bedeutung Ausführungsorgan / Prozessor muß über gewisse elementare Fähigkeiten verfügen Elementaroperationen

Algorithmus Definition 3. 10 Ein Algorithmus ist eine präzise (d.h., in einer festgelegten Sprache abgefaßte) endliche Beschreibung eines allgemeinen Verfahrens unter Verwendung ausführbarer elementarer (Verarbeitungs-) Schritte. Algorithmus eine wohldefinierte * Methode, ein Problem zu lösen. beschrieben durch eine endliche Folge von Anweisungen Anweisungen werden nacheinander ausgeführt Anweisungsfolge kann (in festgelegter Weise) wiederholt werden. * genaue, eindeutige, endliche und ausführbare Beschreibung

11 Ein Algorithmus ist unabhängig von der Umsetzung im Rechner! Beispiele Eine Algorithmus zum Durchlaufen des Studiums Ein Algorithmus zum Erstellen eines Apfelkuchens heißt Backrezept Bedienungsanleitungen Gb Gebrauchsanleitungen li Bauanleitungen Partitur Spielanleitung Umwandlung von Dezimal- in Dualzahlen

12 Bekannte Algorithmen: Addition zweier positiver Dezimalzahlen (mit Überträgen) Test, ob einen gegebene natürliche Zahl eine Primzahl ist Sortieren einer unsortierten Kartei (etwa lexikographisch) Berechnung der Zahl e = 2.7182...

Beispiel für einen Algorithmus 4. 13 Suche des Namens Götze im Telefonbuch (Variante 1) 1. Schlage die erste Seite des Buches auf 2. Lese beginnend mit dem ersten Namen einen Namen nach dem anderen, bis a) Götze gelesen wird Ende (gefunden) b) das Ende des Buches erreicht ist Götze steht nicht im Telefonbuch

14 Suche des Namens Götze im Telefonbuch (Variante 2) 1. Telefonbuch in der Mitte des Buches aufschlagen. Ein Name x wird gelesen. 2. Wenn x alphabetisch vor Götze liegt, dann wird der hinter x liegende Teil des Telefonbuches in der Mitte aufgeschlagen. Wenn x aber hinter diesem Namen liegt, dann wird der vordere Teil des Telefonbuchs in der Mitte aufgeschlagen. 3. Schritt 2 wird solange wiederholt, bis a) Götze gelesen wird Ende (gefunden) b) zwei aufgeschlagene Namen hintereinander liegen Götze steht nicht im Telefonbuch

Eigenschaften von Algorithmen 5. 15 Abstraktion Ein Algorithmus löst im Allgemeinen eine Klasse von Problemen und nicht nur eine einzelnes ganz spezielles Problem. Finitheit / Endlichkeit Die Beschreibung wie auch die Anzahl an Zwischenergebnissen ist beschränkt bzw. endlich lang. Terminierung Algorithmen, die für jede(!) Eingabe nach endlich vielen Schritten ein Endekriterium erreichen, heißen terminierend. Determiniertheit (globale Eindeutigkeit) Liefern bei gleichen Daten bei wiederholter Ausführung stets gleiche Ergebnisse.

16 Determinismus i (lokale l Eindeutigkeit) it) Eindeutige Festlegung des nächsten Schrittes im Ablauf schließt Determiniertheit ein Effizienz üblicherweise wird hierunter der Ressourcenverbrauch (CPU, RAM, Storage) verstanden Wartbarkeit, Änderbarkeit Wie gut ist ein Algorithmus an geänderte Problemstellungen oder auf andere Anwendungsumgebungen anzupassen? Zuverlässigkeit, Robustheit Wie gutmütig g reagiert ein Algorithmus auf fehlerhafte Eingaben (s.a. Anwendungstests,...)? bei numerischen Algorithmen: Welche Auswirkungen haben Rundungsfehler?

Eigenschaften: Abstraktion 51 5.1. 17 Ein Algorithmus löst im Allgemeinen eine Klasse von Problemen man abstrahiert von konkreten Eingabedaten und sucht ein allgemeines Verfahren Beispiel: Algorithmen zum Sortieren kann man auf Zahlen, Buchstaben, Namen,... miteinander vergleichbare Dinge anwenden

Eigenschaften: Terminierung 52 5.2. 18 Ein Algorithmus heißt terminierend, wenn er (bei jeder erlaubten Eingabe von Parameterwerten) nach endlich vielen Schritten abbricht bzw. beendet ist. Oft schwer oder überhaupt nicht feststellbar, ob ein Algorithmus terminiert (eine der Fragestellungen, mit der sich die Theoretische Informatik beschäftigt)

19 Beispiel i (Ulam-Algorithmus): Beginne mit einer beliebigen Zahl n. Ist sie ungerade, multipliziere sie mit 3 und addiere 1, ansonsten halbiere sie. Fahre fort, bis 1 erreicht ist. Bis heute nicht geklärt, ob Ulam-Algorithmus für jedes n terminiert einige Folgen: 1 Ende 2, 1 Ende 3, 10, 5, 16, 8, 4, 2, 1 Ende... 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1 Ende... 63 geht in 108 Schritten fast bis 10000 und endet dann bei 1...

Eigenschaften: Determinismus 53 5.3. 20 deterministischer i ti Ablauf: eindeutige Vorgabe der Schrittfolge d.h. zu jedem Zeitpunkt der Ausführung gibt es maximal eine Möglichkeit der Fortsetzung Algorithmen, bei denen die die Fortsetzung über Wahrscheinlichkeiten bestimmt ist heißen stochastisch oder randomisiert und sind nicht deterministisch Beispiele für nicht-deterministischen Ablauf: Sortieren: Wähle zufällig eine Karte, bilde zwei Stapel (lexikographisch vor der Karte, lexikographisch nach der Karte), sortiere diese (kleineren) Stapel, füge die sortierten Stapel wieder zusammen. Variante 2 von Suchen des Namen Götze im Telefonbuch wegen der blibi beliebigen Auswahl des Namens X.

Eigenschaften: Determiniertheit 54 5.4. 21 Liefern bei gleichen Daten bei wiederholter Ausführung stets t gleiche Ergebnisse Beispiel für einen nicht determinierter Algorithmus 1. Wählen Sie eine beliebige Zahl zwischen 1 und 100 2. Multiplizieren Sie die Zahl mit der Anzahl der seit dem 1.1.2000 vergangenen Minuten 3. Schreiben Sie das Ergebnis auf Nicht determiniert wegen Beliebigkeit der Auswahl zum Ausführungszeitpunkt und der Abhängigkeit vom Ausführungszeitpunkt Jeder deterministische i ti Algorithmus ist auch determiniert. i t Nicht jeder determinierte Algorithmus ist jedoch deterministisch.

Aufbau von Algorithmen 6. 22 Größen beschreiben gegebenen Zustand von Objekten mit Variablen (Bezeichnern) Elementare Operationen werden auf betrachtete Größen angewendet; unterschiedliche Abstraktionsebenen denkbar (benutzernah maschinennah) Kontrollstrukturen/Ablaufbedingungen beschreiben Reihenfolge und Bedingungen für elementare Operationen

23 Algorithmen werden konstruiert, indem kleinere Bausteine zu größeren zusammengesetzt werden. Bausteine und Kompositionsprinzipien: Elementare Operation: nicht weiter erläutert schneide Fleisch in kleine Würfel Sequentielle Ausführung: bei kausaler Abhängigkeit oder wenn nur ein Prozessor zur Verfügung steht bringe das Wasser zum Kochen, dann gib Paket Nudeln hinein schneide das Fleisch, dann das Gemüse Parallele Ausführung: falls es keine Kausalitätsbeziehungen gibt und mehrere Prozessoren Prozessoren zur Verfügung stehen ich schneide das Fleisch, du das Gemüse

24 Bdi Bedingte Ausführung: fh nur wenn Bedingung Bdi erfüllt fll ist wenn Soße zu dünn, dann füge Mehl hinzu Schleife: Wiederholung, bis Bedingung erfüllt ist Rühre so lange, bis Soße braun Unterprogramm: die Tätigkeit wird anderswo beschrieben und ist mehrfach benutzbar Bereite Soße (siehe S. 42) Rekursion: Anwendung desselben Algorithmus auf (kleineres) Teilproblem Dies ist der Hund, der die Katze, die die Maus, die den Käse, der in dem Haus, das Maja gebaut hat, lag, fraß, tötete, ärgerte.

Sierpinski-Dreieck

Darstellung von Algorithmen 7. 26 natürlichsprachlich (detailliert und explizit) graphisch: Flußdiagramme, Struktogramme,... Pseudo-Code Formale Sprache Programmiersprache Church sche These: Alle vernünftigen Darstellungen eines Algorithmus sind äquivalent

Darstellung: natürlichsprachlich 71 7.1. 27 Einen Apfel Afl waschen, in Viertel tl schneiden, Kerngehäuse entfernen und in dünne Scheiben schneiden. Mit 1 EL Zitronensaft beträufeln. 250 g Geflügelleber waschen, trocken tupfen und in mundgerechte Stücke schneiden. In einer Pfanne 10 g Butter heiß werden lassen. Leber darin kurz braten und mit 1 TL MAGGI Würzmischung würzen. Leber auf Küchenpapier legen, damit das Fett abtropft, dann zum Apfel geben. Für die Marinade 1 Beutel MAGGI Salat mit Pfiff Joghurt-Kräuter mit einem Becher (150 g) Joghurt, 3,5% Fett und 1 EL Sonnenblumenöl verrühren. Salatzutaten damit mischen und kurz durchziehen lassen. 3 Salatblätter waschen, abtropfen lassen, auf drei Teller verteilen und den Apfelsalat darauf anrichten. für Kochrezepte noch ganz angebracht Beschreibung sehr umfangreich, enthält unwichtige Details unstrukturiert, unübersichtlich

Darstellung: Programmablaufplan 72 7.2. 28 auch: Flußdiagramm graphische Darstellung eines Algorithmus normiert nach DIN 66001 nutzt t Sinnbilder für elementare Operationen und Ablaufstrukturen Linien bzw. Pfeile verbinden

29 Anfang / Ende: Start Ende Eingabe / Ausgabe von Daten: Eingabe: Zeit t Ausgabe: Ergebnis (elementare) Operation Erwärme Wasser t := t + 1

30 Verzweigung / Bedingung ja nein ja Wasser warm? t > 128 Unterablauf (in einem anderen PAP spezifiziert) nein Nudeln kochen

31 Ablauf wird durch Pfeile gekennzeichnet, die die Symbole verbinden zusätzlich: Übergangsstelle (wenn Platz nicht reicht) Kommentare (an andere Symbole anfügen und Erläuterungen hinter Klammer schreiben) Das hier ist ein nicht iht sehr sinnvoller Kommentar!

Start 1 Herdplatte einschalten Eier in Topf geben Topf mit Wasser füllen Topf auf Herdplatte stellen 5 Min warten Herdplatte ausschalten Wichtig, nicht vergessen! Eier abschrecken 32 nein Kocht Wasser? ja 1 Ende

Beispiel Bei Technikproblemen anzuwendendes Flußdiagramm

Zusammenfassung 8. 52 Algorithmus als exakte Beschreibung eines Verarbeitungsvorganges kann analysiert, auf Korrektheit und andere Eigenschaften getestet werden wichtiger Schritt auf dem Weg vom Problem zu einem Programm verschiedene Notationen natürlichsprachlich Pseudocode Struktogramm Programmablaufplan...

53 Quellen: Gumm/Sommer: Einführung in die Informatik Stucky: Vorlesung Informatik A, Uni Karlsruhe Fellner: Vorlesung Alg & DS 1, TU Braunschweig