Kap. 1 Allgemeine Begriffe

Werbung
Kap. 1 Allgemeine Begriffe
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
1
1.1 Informatik
Was ist Informatik ?
Kunstwort, gebildet aus Information und Automatik
Informatik (engl. Computer Science) ist die
Wissenschaft von der systematischen
Darstellung,
Verarbeitung,
Speicherung und
Übertragung
von Informationen.
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
2
Teilgebiete der Informatik
Theoretische Informatik
Praktische Informatik
Technische Informatik
Angewandte Informatik
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
3
Theoretische Informatik
Formale Methoden
Formale Sprachen
Automatentheorie
Machbarkeit (Berechenbarkeit, Komplexität)
Analyse von Algorithmen
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
4
Praktische Informatik
Betriebssysteme
Programmiersprachen und Compilerbau
Datenbanken, Rechnernetze
Grafik/Multimedia
Softwaretechnik
Künstliche Intelligenz
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
5
Technische Informatik
Hardwareentwicklung
Rechnerarchitektur
Schaltkreise
VLSI-Entwurfswerkkzeuge
Mikroprozessoren- und programmierung
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
6
Angewandte Informatik
Verwendung der Methoden in anderen Wissensgebieten
Ergonomie und Akzeptanz,...
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
7
1.2 Programmierung
Ein Programm ist ein in einer Programmiersprache
formulierter Algorithmus.
-> Was ist eine Programmiersprache ?
-> Was ist ein Algorithmus ?
-> Was ist ein „gutes“ Programm ?
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
8
Programmiersprachen
Beispiele :
C++
Assembler
Fortran
SQL
HTML
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
9
Programmiersprachen: C++
if ( durchmesser <= 0 )
// unzulässig
{
cout << " Durchmesser muss > 0 sein ";
return 1;
}
else
// Eingabedaten in Ordnung
{
flaeche=pow(durchmesser,2)*pi/4;
widerstand= rho*laenge/flaeche;
//
Ausgabe
cout << " Laenge \t" << laenge << " m" << endl;
cout << " Durchmesser \t" << durchmesser <<" mm" << endl;
cout << " Widerstand \t" <<widerstand <<" Ohm"<<endl;
return 0;
}
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
10
Programmiersprachen: Assembler
; 14 :
0007e
00083
00088
; 15 :
0008d
$L1646:
; 17 :
0008f
00094
00096
00099
0009a
0009d
0009e
000a3
000a6
000a9
000af
; 18 :
000b2
000b5
000b8
000bb
cout << " Durchmesser muss > 0 sein ";
OFFSET FLAT:??_C@_0BM@IBC@?5Durchmesser?5muss?5?$DO?50?5sein?5?
68 00 00 00 00
push
b9 00 00 00 00
mov
ecx, OFFSET FLAT:?cout@@3Vostream_withassign@@A
e8 00 00 00 00 call
??6ostream@@QAEAAV0@PBD@Z ; ostream::operator<<
else
eb 65
jmp
SHORT $L1648
flaeche=pow(durchmesser,2)*pi/4;
68 00 00 00 40
push
1073741824
; 40000000H
6a 00
push
0
8b 55 e4
mov
edx, DWORD PTR _durchmesser$[ebp+4]
52
push
edx
8b 45 e0
mov
eax, DWORD PTR _durchmesser$[ebp]
50
push
eax
e8 00 00 00 00 call
_pow
83 c4 10
add
esp, 16
; 00000010H
dc 4d f8
fmul
QWORD PTR _pi$[ebp]
dc 35 00 00 00
00
fdiv
QWORD PTR __real@8@40018000000000000000
dd 5d d8
fstp
QWORD PTR _flaeche$[ebp]
widerstand= rho*laenge/flaeche;
dd 45 f0
fld
QWORD PTR _rho$[ebp]
dc 4d e8
fmul
QWORD PTR _laenge$[ebp]
dc 75 d8
fdiv
QWORD PTR _flaeche$[ebp]
dd 5d d0
fstp
QWORD PTR _widerstand$[ebp]
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
11
Programmiersprachen: Fortran
*
If ( durchmesser .LT. 0 ) Then
unzulässig
print *, ’ Durchmesser muss > 0 sein’
STOP 1
Else
*
Eingabedaten in Ordnung
flaeche=durchmesser**2*pi/4;
widerstand= rho*laenge/flaeche;
Ausgabe
print *, ’ Laenge =’,laenge,’ m’
print *, ’ Durchmesser= ’,durchmesser,’ mm’
print *, ’ Widerstand= ’,widerstand,’ Ohm’
STOP 0
*
Endif
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
12
Weitere Programmiersprachen
SQL:
Datenbank
HTML: Web
ABAP: Sap
Java:
obhektorientiert ähnlich C++
….
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
13
Algorithmus
Ein Algorithmus ist eine Verarbeitungsvorschrift, die endlich
und eindeutig beschrieben werden kann und bei der jede
Anweisung in endlicher Zeit ausgeführt werden kann, um
eine Klasse von Problemen zu lösen.
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
14
Kriterien für ein Programm
Ein Programm ist ein in einer Programmiersprache formulierter Algorithmus.
Beurteilungskriterien für ein Programm
Was ist ein gutes Programm ?
Sicht des Programmierers <-> Sicht des Benutzers
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
15
Programmierersicht
Flexibilität
Anpassung an neue Anforderungen durch
Änderung bestehender Bausteine
Versionsführung
Adaptibilität
Anpassung an neue Anforderungen durch
Hinzunahme neuer Bausteine
Portabilität
Plattformunabhängig
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
16
Benutzersicht
Benutzerfreundlichkeit
Qualität
Wirtschaftlichkeit
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
17
Benutzerfreundlichkeit
verständliche Hilfefunktion
kontextbezogene Hilfe
verständliche Fehlermeldungen
gut dokumentiert
Übersichtlichkeit der graphischen Oberfläche
standardisierte Oberfläche
leicht erlernbar
gut erinnerbar
intuitiv
zutreffende Namen/Bezeichnungen
Brauchbarkeit
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
18
Wirtschaftliche Überlegungen
Abwärts-Aufwärts-Kompatibilität
Geschwindigkeit
preiswert
termingerecht
Langlebigkeit
ressourcensparend
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
19
Qualitätsmerkmale
Keine Fehler/zuverlässig
Korrekt : Ergebnis stimmt
Robust : ungültige Eingaben abweisen
Ausfallsicher : Erkennen von Störungen, unzulässigen Nutzern,
unerwünschte Ausgaben
Sicherheit (Datenschutz, Programmsicherheit)
Stabilität
Erweiterbarkeit
Konfigurierbarkeit
Skalierbarkeit
Wartbarkeit
Flexibler Einsatz
Effektiv (->Ergebnis): die Anforderungen des Benutzers effektiv erfüllen
Effizient(->Methode): keine Verschwendung von Ressourcen (Zeit/Speicher)
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
20
1.3 Ziele der Vorlesung
Es ist nicht das Ziel dieser Vorlesung,
Studenten zu Programmierexperten in C++ auszubilden.
->
->
->
->
->
->
Grundlagen der Technik und
Einschätzung der Möglichkeiten eines C++ Programms
Gefühl für den Aufwand
Kommunikation mit Spezialisten
Strukturierung von Problemen
Methodisches Vorgehen
(u.a. Analyse/Entwurf/Entwicklung/Test/Dokumentation)
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
21
Identifizierung und Strukturierung
Daten
Funktionen
Identifizierung
Strukturierung
Datenanalyse
Datenmodell
Funktionsanalyse Funktionsmodell
Dr. Norbert Spangler / Grundlagen der Informatik
}
09.10.2006
Objekt
modell
22
Programmentwicklung
Methodisches Vorgehen
Vorgehensmodell für Programm-/Systementwicklung : Phasenmodell
Modularisierung Daten und Funktionen (Objektorientierung)
Programmaufbau (EVA)
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
23
1.4 Beispielprogramm
Beispiel : Widerstand eines Kupferdrahts
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
24
Programmaufbau
Das Programm besteht aus einer Folge von
Anweisungen
Deklarationen
Kommentaren
Der prinzipielle Aufbau ist :
-
Einleitender Kommentar
Präprozessor-Direktiven
Deklarationen (Speicherreservierung)
Eingabe mit Plausibilitätskontrolle
(E)
Verarbeitung
(V)
Ausgabe
(A)
Dr. Norbert Spangler / Grundlagen der Informatik
-> EVA-Prinzip
09.10.2006
25
1.5 Bestandteile von C++
Kommentare
Elementare Typen (Klassen)
Zahlen (ganze Zahlen/“Brüche“) – Zeichen – wahr/falsch
Verknüpfung (Rechnen) mit den elementaren Typen
+ - * / ....... < <=
( >> << )
Elementare Befehle/Kontrollstrukturen
= return if else
Funktionen
pow
Ein-/Ausgabe
cin cout
.....
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
26
Methoden der Strukturierung
Programmaufbau
E-V-A
Verwendung von Funktionen
Modellierung von Daten und Funktionen
(Objektorientierung)
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
27
1.6 Prinzipieller Ablauf der Programmerstellung
Analyse des Problems
Programmentwurf (Methoden/Techniken)
Programmeingabe (Editor) - programm.cpp
Aufruf des Compilers (Präprozessor + Compiler) -> programm.obj
Aufruf des Linker -> programm.exe
Programmausführung/Test/Debug
Dokumentation
Programmeinführung
Betrieb inkl. Wartung und Pflege
Dr. Norbert Spangler / Grundlagen der Informatik
09.10.2006
28
Herunterladen