1
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Bernd Schürmann
Programmieren in CEinführung in das Programmieren für Elektrotechniker
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Kapitel 1: Grundlagen
Von Neumann-Architektur
Vom Problem zum Programm
„Hello World“
Werkzeuge zur Programmausführung
2
Vorlesung „Programmieren in C“
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
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Einführung, Motivation mehr in der Vorlesung „Architektur digitaler Systeme I“
Von Neumann-Architektur
Zum Verständnis von C-Programmen ist das
Verständnis der von Neumann-Architektur
Grundvoraussetzung.
3
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Beispiel: Textverarbeitung
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Teile eines Computer:
• Festplatte (Peripherie)mit Daten und Programmen
• Prozessormit Rechenwerk inkl. Registern und Steuerwerk
• (Arbeits-) Speicher
• Bus (Übertragungsleitungen)
Rechnerkomponenten
4
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
1. und 2. Schritt:
Programmabarbeitung
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
1. und 2. Schritt:
Daten und Programm laden
Rechnerkomponenten
5
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
3. Schritt:
Programm ausführen:
• Anweisung/Befehl lesen
A=b+c
Rechnerkomponenten
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
3. Schritt:
Programm ausführen:
• Anweisung/Befehl lesen
• Daten in Register
A=b+cb=3c=4
Rechnerkomponenten
6
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
3. Schritt:
Programm ausführen:
• Anweisung/Befehl lesen
• Daten in Register
• Rechenwerk arbeitet
A=b+c
b=3c=4A=7
Rechnerkomponenten
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
3. Schritt:
Programm ausführen:
• Anweisung/Befehl lesen
• Daten in Register
• Rechenwerk arbeitet
• Ergebnis in Register oder Arbeitsspeicher
A=b+c
A=7
Rechnerkomponenten
7
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
3. Schritt:
Programm ausführen:
• Anweisung/Befehl lesen
• Daten in Register
• Rechenwerk arbeitet
• Ergebnis in Register oder Arbeitsspeicher
A=b+c
A=7
Rechnerkomponenten
Vorlesung „Programmieren in C“
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
8
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Weitere Eigenschaften:
• Daten/Programme binär kodiert
• Daten und Programme ununterscheidbar
• bedingte Sprünge
Steuer-werk
(Befehlsregister)
Rechen-werk
(Registersatz)
Prozessor
Arbeits-speicher
Ein-/Ausgabe(Peripherie)
Datenbus
von Neumann-Computer
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Steuer-werk
(Befehlsregister)
Rechen-werk
(Registersatz)
Prozessor
Arbeits-speicher
Datenbus
von Neumann-Computer
9
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
von Neumann-Computer …
11011110
10100101
01000110
11011011
00010010
00000000
11111111
01010101
…
…
00001111
01101001
11000011
01010101
11001111
01100110
00110100
10001010
…0
232-1
neu = alt + 5;
4711
124
neualt
add
• Daten/Programme binär kodiert
• Daten und Programme ununterscheidbar
add 4712, 4711, 5
Compiler (s.u.)
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Beispielaufgabe:Berechnen Sie die Quersumme q einer natürlichen Zahl n.( Lösung als C-Programm: später)
Algorithmen und Notationen
10
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Beispielaufgabe:Berechnen Sie die Quersumme q einer natürlichen Zahl n.( Lösung als C-Programm: später)
Gegeben: natürliche Zahl n. Beispiel: n = 4711 q = 13
q = 0solange n > 0: Rest r = n modulo 10
Quersumme q = q + rn = n / 10
Algorithmen und Notationen
n / 10
Rest rQuotient
Vorlesung „Programmieren in C“
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
11
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Zur Formulierung von Algorithmen gibt es verschiedene Möglichkeiten ( Notationen) Von abstrakten Beschreibungen bis zu konkreten
Programmiersprachen, z.B.:
• Umgangssprachliche Beschreibungen oft umfangreich und mehrdeutig.
• Flussdiagramme Graphische Darstellung, schnell unübersichtlich.
• Mathematische Notationen ( kein Algorithmus im engeren Sinn) exakt und präzise.
• Pseudonotationen informell und abstrakt.
• Programmiersprachen präzise Beschreibung.
Algorithmen und Notationen
Algorithmen und Notationen
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Verwendung natürlicher Sprache.
Geeignet für erste Annäherung.
Beispiel: Quersumme
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
Algorithmen und Notationen
n mod[ulo] 10
12
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Verwendung natürlicher Sprache.
Geeignet für erste Annäherung.
Beispiel: Euklidischer Algorithmus
Euklid:Wenn CD aber AB nicht misst, und man nimmt bei AB, CD abwechselnd immer das kleinere vom größeren weg, dann muss (schließlich) eine Zahl übrig bleiben, die die vorangehende misst.
Umgangssprachliche Notation
Algorithmen und Notationen
ggt (a, b)
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Verwendung natürlicher Sprache.
Geeignet für erste Annäherung.
Beispiel: Euklidischer Algorithmus
Man teilt die größere durch die kleinere Zahl. Geht die Division auf, ist der Divisor der ggT. Geht die Division nicht auf, bleibt ein Rest. Dieser Rest ist der neue Divisor. Der alte Divisor wird zum Dividenden. Nun setzt man das Verfahren fort.
Nach endlich vielen Schritten erhält man den ggT.
Umgangssprachliche Notation
Algorithmen und Notationen
ggt (a, b)
13
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Verwendung natürlicher Sprache.
Geeignet für erste Annäherung.
Beispiel: Euklidischer AlgorithmusGeg.: a, b natürliche Zahlen; a>0; b≥01. Kopiere a nach a′ und b nach b′.2. Falls b′=0: weiter bei Schritt (10).3. Falls b′>a: weiter bei Schritt (8).4. Berechne r = a′ mod b′.5. Kopiere b′ nach a′.6. Kopiere r nach b′.7. Gehe zu Schritt (2).8. Vertausche a′ und b′.9. Gehe zu Schritt (2).10. Ausgabe des Resultats a′.
Umgangssprachliche Notation
Algorithmen und Notationen
ggt (a, b)
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Beispiel: Quersumme
Flussdiagramme (engl. Flowchart)
Algorithmen und Notationen
STARTa = 4711q = 0n=0? → falschq = q + 1 = 1n = n / 10 = 471n=0? → falschq = q + 1 = 2n = n / 10 = 47n=0? → falschq = q + 7 = 9n = n / 10 = 4n=0? → falschq = q + 4 = 13n = n / 10 = 0n=0? → wahrAusgabe: 13ENDE
START
Eingabe: n
n=0?
ENDE
q = 0
Ausgabe: q
q = q + (n mod 10)n = n / 10
true
false
Graphische Repräsentation eines Algorithmus.
n und q sind Variablen ( Speicherzellen), die immer wieder verändert werden. später genauer
14
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Wird i.d.R. zum Detailentwurf eingesetzt.
Aufbau Spezielle graphische Symbole zur
informellen Beschreibung von Aktionen.
Flusslinien verbinden graphische Symbole und legen Kontrollfluss fest.
Vorteile 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)
Algorithmen und Notationen
q = 0
n=0?
Berechnungsschritt
Abfrage/Verzweigung
operationalisierte Problemlösung prozedurale, imperative Programmierung
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Beispiel: Euklidischer Algorithmus
Flussdiagramme (engl. Flowchart)
Algorithmen und Notationen
STARTa =8, b =4a′=8, b′=44=0? → false4>8? → falser=0, a′=4, b′=00=0? → trueAusgabe: 4ENDE
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
Graphische Repräsentation eines Algorithmus.
15
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Verwendung mathematischer Formeln.
Knappe und eindeutige Beschreibung.
Besonders geeignet für mathematische Probleme.
Beispiel: Quersumme
Mathematische Notation
Algorithmen und Notationen
0 n = 0
qs (n)=
n mod 10 + qs (n/10) sonst
Rekursion typisch für mathematische Beschreibung
deklarative Problemlösung Kein Algorithmus nach obiger Definition
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Verwendung mathematischer Formeln.
Knappe und eindeutige Beschreibung.
Besonders geeignet für mathematische Probleme.
Beispiel: Euklidischer Algorithmus
Mathematische Notation
Algorithmen und Notationen
a b = 0
ggT (a, b) = ggT (b, a) b > a
ggT (b, a mod b) sonst
16
Vorlesung „Programmieren in C“
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: QuersummeEingabe: natürliche Zahl nq = 0while n > 0 do
r n mod 10;q q + r;r r / 10;
Ausgabe: q
Pseudocode
Algorithmen und Notationen
Vorlesung „Programmieren in C“
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 AlgorithmusGeg.: a, b natürliche Zahlen; a>0; b≥0ggT(a,b) ≡ if b=0 then a
else if b>a then ggT(b,a)else ggT(b,mod(a,b))
endifendif
Pseudocode
Algorithmen und Notationen
17
Vorlesung „Programmieren in C“
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
Algorithmen und Notationen
Vorlesung „Programmieren in C“
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;
}
Standard-Beispiel seit Kernighan/Ritchie
Was macht das Programm? _____________________________
18
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Hello, world!
Erläuterungen (im Detail später)
Funktion main () in C wird diese Funktion beim Aufruf ausgeführt Hauptprogramm
Anweisungsblock{ Ein Anweisungsblock wird durch geschweifte Klammern eingerahmt.
: Anweisungen im Block werden sequentiell ausgeführt.} Anweisungen werden mit einem Semikolon abgeschlossen.
Funktion printf ()Ein-/Ausgabefunktion „print formatted“ Funktion in der Bibliothek „stdio.h“ (später mehr)
IncludeDirektive „include“ macht die Bibliothek(sfunktionen) bekannt.
KommentareKommentare werden durch /* … */ eingerahmt.
Datenstruktur ZeichenketteZeichenketten werden durch Anführungszeichen “Hello, world!” eingerahmt.
/* File: hello_world.c */#include <stdio.h>
int main (void){
printf (”Hello, world!\n“);return 0;
}
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Hello, world!
Erläuterungen (im Detail später)
Formatierung
Vorhandene Formatierung ist nicht erforderlich! Möglich wäre auch:
#include <stdio.h>int main(void){printf(”Hello, world!\n“);return 0;}
Übersichtlichkeit ginge verloren!
/* File: hello_world.c */#include <stdio.h>int main (void){
printf (”Hello, world!\n“);return 0;
}
Wichtig (in Prüfung notwendig):• ausreichend kommentieren• einrücken
19
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Hello, world!
Funktionen Zentrales Strukturierungsmittel. (Haupt-) Funktion „main“ und beliebige Unterfunktionen
Funktionsrümpfe und Blöcke…
Typen Datentypen Funktionstypen
Anweisungen Zentral für imperative Programmiersprachen (s.u.).
Bibliotheksfunktionen Wiederverwendung von Funktionen spart Arbeit. Kapselung von Systemsoftware.
Basiselemente eines Programms (Details später)
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Editieren
Übersetzen
(Binden)
Ausführen
Praxiseinschub:Programmerzeugung und Ausführung
20
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Arbeiten unter Unix
Terminal/Konsole starten
UNIX
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Arbeiten unter Unix
Editor Erstellung und Bearbeitung von digitalen Daten (Dateien). Funktionen und Komplexität abhängig vom Aufgabengebiet, z.B.
• Texteditoren (z.B. emacs, vim)• html-/xml-Editoren• sprachsensitive Editoren (unterstützen Syntax von Programmiersprachen)
• gedit• gvim
21
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Arbeiten unter Unix
Programm übersetzen und ausführen Übersetzen: gcc –o <Ausgabedatei> <C-Datei> Ausführen: Aufrufen der Ausgabedatei
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Arbeiten unter Unix
Syntaxfehler (Beispiel)
22
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Arbeiten unter Windows
Editor
• edit• notepad
Windows
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Arbeiten unter Windows
Programm übersetzen und ausführen Übersetzen: gcc –o <Ausgabedatei> <C-Datei> Ausführen: Aufrufen der Ausgabedatei
23
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Arbeiten unter Windows
Syntaxfehler (Beispiel)
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Arbeiten unter Windows
C(++) Umgebung
Windows
24
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Arbeiten unter Windows
C(++) Umgebung DEV C++
Windows
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Arbeiten unter Windows
Neues Projekt anlegen und speichern
Windows
25
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Arbeiten unter Windows
Programm übersetzen
Windows
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Arbeiten unter Windows
Programm ausführen
Windows
26
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Testen
Goldene Regeln für Programmierer Alles, was schiefgehen kann, wird auch schiefgehen.
Alles, was nicht schiefgehen kann, wird voraussichtlich doch schiefgehen.
Programme systematisch testen!In der Praxis:
Debugging-Werkzeuge Testumgebungen
Fehlerklassen Syntaxfehler: vom Compiler entdeckt
Laufzeitfehler: viel schwerer zu entdecken
Testen
in der Vorlesung nur ansatzweise
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Testen
Grundlegende Guidelines Übliche Fehler, die alle machen (s.u.)
• Zuweisung ’=‘ statt Vergleich ’==‘if (x = 3) . . . : x wird 3 zugewiesen; Bedingung ist wahr
Semikolon fehltP = p + x entspricht p = p + xq = q + y;q = q + y; Fehlermeldung „undeclared variable“
( ist nicht der Fehler). Laufzeitfehler,
falls Variable ‚xq‘ existiert.
Analog: fehlende { }, ” “, /* */
Nicht deklarierte Variablen
Testen
27
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Programmiersprache C
Historie
eng mit der Entwicklung von UNIX verbunden
• erstes UNIX auf DEC-Rechnern in Assembler (vgl. Vorlesung „Architektur digitaler Systeme I“)
• Ziel: portable/höhere Programmiersprache, die nahe genug an der Hardware ist
• Sprachmittel zur strukturierten Programmierung• Möglichkeit der hardwarenahen Programmierung (z.B. Registerzugriff)• Performance wie Assembler
Die Programmiersprache C
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Historie
Zunächst „B“ (Ableger von BCPL) noch ohne Datentypen
1971: Ritchie: Weiterentwicklung zu C 1975: UNIX: 90% C, 10% Assembler
1978: „Kernighan/Ritchie, The C Programming Language“ zunächst Quasi-Standard (K&R-C)
Entwicklung vieler C-Dialekte Portabilität gefährdet
Die Programmiersprache C
Programmiersprache C
28
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Historie
1989: Standardisierung durch ANSI-Komitee: ANSI-C (x3.159-1985)• (Teil) aller heutigen C-Compiler• Auch Normierung der Standard-Bibliotheken, z.B. stdio.h• 1990 durch ISO/IEC 9899 [C90] ersetzt• 1999: Erweiterung um C++-Sprachkonstrukte: ISO/IEC 9899 [C99]• 2011: Einführung des aktuellen Standards [C11]
Lehrbuch: C90• Wird von (fast) allen Systemen unterstützt• „Ausreichend“ für Einführungsvorlesung
Die Programmiersprache C
Programmiersprache C
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
C99-Standard
Erweiterung in der Sprache und Bibliotheken. Objektorientierte Erweiterung: C++.
Beispiele• Bei Funktionen ohne Rückgabewert wird nicht mehr int angenommen.•long long int für 64-Bit-Zahlen, boolesche und komplexe Zahlen.• Arrays variabler Länge.• Einzeilige Kommentare mit //.• Bessere Unterstützung der Codeoptimierung.
Die Programmiersprache C
Programmiersprache C
29
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
C11-Standard
Optionale Elemente aus C99 verpflichtend und umgekehrt. Multithreading und atomare Operationen.
Beispiele• Bessere Unterstützung von Unicode (utf-8, utf-16).• Ausrichten von Strukturen im Speicher.• Arrays variabler Länge nur noch optional.• Entfernung der Funktion gets().• Bessere Unterstützung der Codeoptimierung.
Die Programmiersprache C
Programmiersprache C
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Eigenschaften von C
HW-nah, d.h. gleiche „Objekte“ wie Prozessor/Assembler:• Zahlen und Adressen• Zeichen als Zahlen interpretiert
C-Datentypen (später vertieft):• verschiedene Integer-Datentypen• verschiedene Gleitkomma-Datentypen• zusammengesetzte Datentypen:
• Strukturen• Unions• Bitfelder
• Adressen ( Pointer)
direkter Zugriff auf Speicheradressen und Bitoperationen
oft Unterstützung des Zugriffs auf HW-Register über Bibliotheken (nicht ANSI-Std.)z.B. Visual C++-Compiler: _inp(), _outp(): Bibliotheksfunktionen, die x86-Befehlen
in und out entsprechen
Die Programmiersprache C
Programmiersprache C
30
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Eigenschaften von C
enthält Elemente der strukturierten Programmierung• Kontrollstrukturen• Typkonzept (nicht streng, d.h. einige automatische Typkonvertierungen;
nicht bei unverträglichen Datentypen ( Fehlermeldung))
Programmeinheiten getrennt übersetzbarVorteile: - ___________________________________
- ___________________________________
Die Programmiersprache C
Programmiersprache C
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Eigenschaften von C
Einordnung in die Familie der imperativen Programmiersprachen(basieren auf v. Neumann-Rechnermodell: Manipulation von Variablen im Speicher↔ deklarative Sprachen (LISP, PROLOG, OPS5, …))
prozedural objektorientiert
Die Programmiersprache C
FORTRAN
BASIC ALGOL60
BCPL
CSmalltalk
Modula ConcurrentPascal
AdaC++
JavaC#
COBOL
ALGOL68 SIMULA Pascal PL/I
prozedural
objektorientiert
Programmiersprache C
31
Vorlesung „Programmieren in C“
Einführung Bernd Schürmann
Eigenschaften von C
C++-Erweiterung ( Folgevorlesung, neben Java)• objektorientiertes Programmiermodell• strengeres Typkonzept
Die Programmiersprache C
Programmiersprache C