























Besser lernen dank der zahlreichen Ressourcen auf Docsity
Heimse Punkte ein, indem du anderen Studierenden hilfst oder erwirb Punkte mit einem Premium-Abo
Prüfungen vorbereiten
Besser lernen dank der zahlreichen Ressourcen auf Docsity
Download-Punkte bekommen.
Heimse Punkte ein, indem du anderen Studierenden hilfst oder erwirb Punkte mit einem Premium-Abo
Flussdiagramme. → Graphische Darstellung, schnell unübersichtlich. • Mathematische Notationen (→ kein Algorithmus im engeren Sinn). → exakt und präzise. • ...
Art: Grafiken und Mindmaps
1 / 31
Diese Seite wird in der Vorschau nicht angezeigt
Lass dir nichts Wichtiges entgehen!
























Einführung Bernd Schürmann
Bernd Schürmann
Einführung Bernd Schürmann
Von Neumann-Architektur Vom Problem zum Programm „Hello World“ Werkzeuge zur Programmausführung
Einführung Bernd Schürmann
Informatik Wissenschaft von der systematischen Verarbeitung von Informationen. Algorithmus Vorschrift zur systematischen Vorgehensweise zur Lösung von Problemen. Im Großen: Systematische Softwareentwicklung / Software Engineering. Computer / Rechner Berechnet Probleme, die geeignet durch Algorithmen beschrieben sind.
Grundbegriffe
jetzt
VL-Ende
gleich
VL-Ende
Einführung Bernd Schürmann
Einführung, Motivation
Von Neumann-Architektur
Zum Verständnis von C-Programmen ist das Verständnis der von Neumann-Architektur Grundvoraussetzung.
Einführung Bernd Schürmann
1. und 2. Schritt:
Programmabarbeitung
Einführung Bernd Schürmann
1. und 2. Schritt: Daten und Programm laden
Rechnerkomponenten
Einführung Bernd Schürmann
3. Schritt: Programm ausführen:
A=b+c
Rechnerkomponenten
Einführung Bernd Schürmann
3. Schritt: Programm ausführen:
A=b+c b= c=
Rechnerkomponenten
Einführung Bernd Schürmann
3. Schritt: Programm ausführen:
A=b+c
A=
Rechnerkomponenten
Einführung Bernd Schürmann
Steuer- werk (Befehlsregister)
Rechen- werk (Registersatz)
Prozessor Arbeits- speicher
Ein-/Ausgabe (Peripherie)
Datenbus
von Neumann-Computer
Referenzmodell (seit 1945) Rechenwerk führt Rechenoperationen und logische Verknüpfungen durch Steuerwerk: interpretiert Befehle und steuert die Befehlsabfolge (Arbeits-/Haupt-) Speicher: speichert Programme und Daten Ein-/Ausgabe: steuert E/A von Daten
Einführung Bernd Schürmann
Weitere Eigenschaften:
Steuer- werk (Befehlsregister)
Rechen- werk (Registersatz)
Prozessor Arbeits- speicher
Ein-/Ausgabe (Peripherie)
Datenbus
von Neumann-Computer
Einführung Bernd Schürmann
Steuer- werk (Befehlsregister)
Rechen- werk (Registersatz)
Prozessor Arbeits- speicher
Datenbus
von Neumann-Computer
Einführung Bernd Schürmann
Beispielaufgabe: Berechnen Sie die Quersumme q einer natürlichen Zahl n.
q = 0 solange n > 0: Rest r = n modulo 10 Quersumme q = q + r n = n / 10
Algorithmen und Notationen
n / 10
Quotient Rest r
Einführung Bernd Schürmann
Definition: Algorithmus Ein Algorithmus ist eine präzise, endliche Beschreibung eines allgemeinen Verfahrens unter Verwendung ausführbarer, elementarer (Verarbeitungs-) Schritte. Algorithmus ist unabhängig von konkreter Programmiersprache. Dient nur der abstrakten Beschreibung eines funktionellen Lösungswegs. Wichtige Aspekte wie Korrektheit, Aufwand, Anforderungen an Eingabegrößen und Zusicherungen (Garantien) für berechnete Resultate können allgemein abgeleitet werden. Sie gelten damit für alle konkreten Realisierungen in einer Programmiersprache.
Algorithmen und Notationen
Einführung Bernd Schürmann
Zur Formulierung von Algorithmen gibt es verschiedene Möglichkeiten ( Notationen) Von abstrakten Beschreibungen bis zu konkreten Programmiersprachen, z.B.:
Algorithmen und Notationen
Einführung Bernd Schürmann
Geg.: natürliche Zahl n
Addiere den Rest der Division n durch 10 zur Quersumme und teile n durch 10. Führe diese Berechnung solange aus, bis n Null ist.
Umgangssprachliche Notation
n mod[ulo] 10
Einführung Bernd Schürmann
Geg.: a, b natürliche Zahlen; a>0; b≥ 0
**1. Kopiere a nach a′ und b nach b′.
Umgangssprachliche Notation
Einführung Bernd Schürmann
Beispiel: Quersumme
Flussdiagramme (engl. Flowchart)
a = 4711 q = 0 n=0? → falsch q = q + 1 = 1 n = n / 10 = 471 n=0? → falsch q = q + 1 = 2 n = n / 10 = 47 n=0? → falsch q = q + 7 = 9 n = n / 10 = 4 n=0? → falsch q = q + 4 = 13 n = n / 10 = 0 n=0? → wahr Ausgabe: 13 ENDE
START
Eingabe: n
n=0?
ENDE
q = 0
Ausgabe: q
q = q + (n mod 10) n = n / 10
true
false
die immer wieder verändert werden.
Einführung Bernd Schürmann
Spezielle graphische Symbole zur informellen Beschreibung von Aktionen. Flusslinien verbinden graphische Symbole und legen Kontrollfluss fest.
Veranschaulichung des Kontrollflusses eines Programms (d.h. Abfolge der Anweisungen, die bei einer Berechnung ausgeführt werden). Schleifenkonstrukte lassen sich deutlich hervorheben, insbesondere bei mehreren Schleifen.
Flussdiagramme (engl. Flowcharts)
q = 0
n=0?
Berechnungsschritt
Abfrage/Verzweigung
operationalisierte Problemlösung prozedurale, imperative Programmierung
Einführung Bernd Schürmann
Beispiel: Euklidischer Algorithmus
Flussdiagramme (engl. Flowchart)
a =8, b = a′=8, b′= 4=0? → false 4>8? → false r=0, a′=4, b′= 0=0? → true Ausgabe: 4 ENDE
START
Eingabe: a, b
b′=0?
ENDE
a′=a, b′=b
b′>a′?
Ausgabe: a′
c = a′ a′ = b′ b′ = c
r = a′ mod b′ a′ = b′ b′ = r
true
false
false
true
Einführung Bernd Schürmann
Abstrakte Programmiersprache („Pseudocode“) Verwendung allgemeiner Konzepte, die den üblichen Programmiersprachen gemeinsam sind (z.B. Verzweigungen, Iterationen). Basis für präzise Beschreibung von Algorithmen. Leichte Übertragbarkeit auf spezielle Programmiersprachen.
Beispiel: Quersumme Eingabe: natürliche Zahl n q = 0 while n > 0 do r n mod 10; q q + r; r r / 10; Ausgabe: q
Pseudocode
Einführung Bernd Schürmann
Abstrakte Programmiersprache („Pseudocode“) Verwendung allgemeiner Konzepte, die den üblichen Programmiersprachen gemeinsam sind (z.B. Verzweigungen, Iterationen). Basis für präzise Beschreibung von Algorithmen. Leichte Übertragbarkeit auf spezielle Programmiersprachen.
Beispiel: Euklidischer Algorithmus Geg.: a, b natürliche Zahlen; a>0; b≥ 0 ggT(a,b) ≡ if b=0 then a else if b>a then ggT(b,a) else ggT(b,mod(a,b)) endif endif
Pseudocode
Einführung Bernd Schürmann
Kompromiss zwischen Anforderungen der Maschine und des Menschen. Neben der mathem. Notation die präziseste Notation. Abstrakt genug, um (gut) vom Menschen verstanden werden zu können. Ermöglicht vollautomatische Ausführung durch Computer.
Programm Beschreibung eines Algorithmus in einer konkreten, vom Rechner ausführbaren Programmiersprache.
(Höhere) Programmiersprache
Einführung Bernd Schürmann
Das erste Programm
Hello, world!
/ File: hello_world.c / #include <stdio.h>
int main (void) { printf (”Hello, world!\n“); return 0; }
Einführung Bernd Schürmann
Hello, world!
Zentrales Strukturierungsmittel. (Haupt-) Funktion „main“ und beliebige Unterfunktionen
…
Datentypen Funktionstypen
Zentral für imperative Programmiersprachen (s.u.).
Wiederverwendung von Funktionen spart Arbeit. Kapselung von Systemsoftware.
Basiselemente eines Programms (Details später)
Einführung Bernd Schürmann
Editieren Übersetzen (Binden) Ausführen
Praxiseinschub:
Programmerzeugung und Ausführung
Einführung Bernd Schürmann
Arbeiten unter Unix
UNIX
Einführung Bernd Schürmann
Arbeiten unter Unix
Erstellung und Bearbeitung von digitalen Daten (Dateien). Funktionen und Komplexität abhängig vom Aufgabengebiet, z.B.