Allgemeine Informatik Thema 2: Grundlagen der

Werbung
Conf. dr. Iulian Intorsureanu
A.S.E., Abteilung Wirtschaftsinformatik
Allgemeine Informatik
Thema 2: Grundlagen der
Problemlösung mit Hilfe der
Computer
Inhalt:
1. Programm und Programmierung
2. Algorithmen
3. Programmiersprachen
4. Flußdiagramme und Pseudocode
5. Die Effizienz der Algorithmen
1. Programm und Programmierung
Programm = vollständige Anweisung zur Lösung
einer Aufgabe mit dem Rechner.
INPUT
PROGRAMM
Eingabedaten
OUTPUT
Ausgabedaten
Black box - Ansicht
Programmierung = der Vorgang der Erstellung von
Programmen.
2/14
1
1. Programm und Programmierung (fortgesetzt)
Phasen der Programmierung (i.w.S.):
1.
2.
3.
4.
Analyse
Datenstrukturierung
Algorithmenentwurf und -darstellung
Übersetzung in eine Programmierssprache
(Programmieren i.e.S., Codierung)
5. Testen und Fehlerbeseitigung
3/14
2. Algorithmen
Algorithmus = eine endliche Menge eindeutiger
und ausführbarer Schritte zur Lösung eines
Problems.
Eigenschaften:
Allgemeinheit
Endlichkeit
Eindeutigkeit
Deterministik
Darstellung in verschiedenen Notationen:
Flußdiagramm, Pseudocode, Struktogramm u.s.w.
4/14
2
3. Programmiersprachen
Programmiersprache = künstliche Sprache mit
präziser Syntax zum Abfassen von
Programmen.
Typen:
Maschinenorientierte PS (assembly language)
Problemorientierte PS :
• Prozedurale (algorithmische) PS, inkl. objektorientierte PS: Basic, Pascal, C/C++, Java
• Nichtprozedurale (deskriptive) PS: SQL
PS für künstliche Intelligenz (Lisp, Prolog)
Merkmale:
Arbeitsgeschwindigkeit
Portabilität
5/14
4. Flußdiagramm (auch: Programmablaufplan): Symbole
Start, Stopp
START
a, b, c
x1, x2
S=a+b+c
Datenein- und ausgabe
Datenbearbeitung
b<0
Entscheidung
1
Verknüpfung
Pfeilen
6/14
3
Grundstrukturen
Sequenz
Π (S1, S2)
Entscheidung
Δ (B, S1 ,S2)
NEIN
S1
Wiederholung
Ω ( B, S)
JA
B
JA
B
S2
S2
S1
S
NEIN
Δ’(B, S1)
NEIN
B
Ω’( B, S)
S
JA
S1
B
NEIN
JA
7/14
Beispiel 1: Gleichung 2en Grades (Flussdiagramm)
ax2 + bx + c = 0;
2
START
Nein
a,b,c
Nein
Ja
a=0
Die Gleichung ist
nicht 2en Grades !
1
∆=
Eingabedaten: a,b,c
Ausgabedaten: x1, x2
Keine reelle
Wurzel !
∆ >= 0
Ja
Nein
X1= -b/(2*a)
X2 = X1
∆ > 0 Ja
X1= (-b+ √∆)/(2*a)
X2= (-b- √∆)/(2*a)
X1, X2
1
b2-4*a*c
STOP
2
8/14
4
Pseudocode-Notation
• Anfang / Ende:
program Programmname
...
end Programmname
• Entscheidung / Verzweigung
if Bedingung then S1
else S2
end if
• Wiederholung / Schleife:
Ω: while Bedingung do S
Ω‘: repeat S until Bedingung
9/14
Beispiel 1: Gleichung 2en Grades (Pseudocode)
Program Gleichung2
input a,b,c
if a=0 then
display “Die Gleichung ist nicht 2en Grades
!“
else
delta = b*b – 4*a*c
if delta >= 0 then
if delta > 0 then
X1=(-b - sqrt(delta))/(2*a)
X2=(-b + sqrt(delta))/(2*a)
else
X1= -b/(2*a); X2 = X1
end if
end if
display X1, X2
end if;
end program
10/14
5
Beispiel 2: Bearbeitung von Vektoren (Flussdiagramm)
Vektor mit n Elemente:
X=( X(1), X(2), … , X(n) )
START
n, X(i); i=1..n
Initialisierung
S=0
i=1
i<=n
Nein
Ja
S=S+X(i)
i=i+1
Summe: S
Bearbeitung
(Kernteil)
Ausgabe
STOP
11/14
Beispiel 2: Bearbeitung von Vektoren (Pseudocode)
Program SummeV
input n; X(i) i=1..n
S = 0
i = 1
while i<=n do
S = S + X(i)
i = i + 1;
display S
end program
12/14
6
Beispiel 2: Bearbeitung von Vektoren (Pseudocode)
Program SummeV-2
input n; X(i) i=1..n
S = 0
For i=1 to n do
S = S + X(i)
Next
display S
end program
13/14
5. Die Effizienz der Algorithmen
• Effizienz = Verwendung “weniger” RechenRessourcen (Zeit, Speicherplatz)
• Die Laufzeit der Algorithmen ist geschätzt,
abhängig von der Größe der Eingabedaten
• Beispiel: Potenzbildung xn
• Die Laufzeit ist von der Anzahl der Schritte
abhängig (Multiplikation, Addition, Vergleich ...)
• Die Funktion S(n) – Schrittzahl des Algorithmus
im schlechtesten Fall (obere Grenzen)
• S(n) gibt die Zeitkomplexität des Algorithmus
14/14
7
Herunterladen