• Keine Ergebnisse gefunden

Programmieren in CEinführung in das Programmieren für Elektrotechniker

N/A
N/A
Protected

Academic year: 2022

Aktie "Programmieren in CEinführung in das Programmieren für Elektrotechniker"

Copied!
27
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Vorlesung „Programmieren in C“

Einführung Bernd Schürmann

Bernd Schürmann

Programmieren in C

Einfü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, 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

Teile eines Computer:

• Festplatte (Peripherie) mit Daten und Programmen

• Prozessor

mit Rechenwerk inkl. Registern und Steuerwerk

• (Arbeits-) Speicher

• Bus (Übertragungsleitungen)

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

(4)

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)

 Rechenwerkfü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

Vorlesung „Programmieren in C“

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

(5)

Vorlesung „Programmieren in C“

Einführung Bernd Schürmann

Steuer- werk

(Befehlsregister)

Rechen- werk

(Registersatz)

Prozessor

Arbeits- speicher

Datenbus

von Neumann-Computer

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

neu alt

add

• Daten/Programme binär kodiert

• Daten und Programme ununterscheidbar

add 4712, 4711, 5

Compiler (s.u.)

(6)

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

Vorlesung „Programmieren in C“

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 = 0

solange n > 0: Rest r = n modulo 10 Quersumme q = q + r n = n / 10

Algorithmen und Notationen

n / 10

Rest r Quotient

(7)

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

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

(8)

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

Vorlesung „Programmieren in C“

 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)

(9)

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)

Vorlesung „Programmieren in C“

Einführung Bernd Schürmann

 Verwendung natürlicher Sprache.

 Geeignet für erste Annäherung.

Beispiel: Euklidischer Algorithmus

Geg.: a, b natürliche Zahlen; a>0; b≥0 1. 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)

(10)

Vorlesung „Programmieren in C“

Einführung Bernd Schürmann

Beispiel: Quersumme

Flussdiagramme (engl. Flowchart)

Algorithmen und Notationen

START 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

 Graphische Repräsentation eines Algorithmus.

n und q sind Variablen (

Speicherzellen), die immer wieder verändert werden.

später genauer

Vorlesung „Programmieren in C“

 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. Flowchart)

Algorithmen und Notationen

q = 0

n=0?

Berechnungsschritt

Abfrage/Verzweigung

operationalisierte Problemlösung

prozedurale, imperative Programmierung

(11)

Vorlesung „Programmieren in C“

Einführung Bernd Schürmann

Beispiel: Euklidischer Algorithmus

Flussdiagramme (engl. Flowchart)

Algorithmen und Notationen

START a =8, b =4 a′=8, b′=4 4=0? → false 4>8? → false r=0, a′=4, b′=0 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

 Graphische Repräsentation eines Algorithmus.

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

(12)

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

Vorlesung „Programmieren in C“

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

Algorithmen und Notationen

(13)

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 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

Algorithmen und Notationen

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

(14)

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? _____________________________

Vorlesung „Programmieren in C“ 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)

 Include

Direktive „include“ macht die Bibliothek(sfunktionen) bekannt.

 Kommentare

Kommentare werden durch /* … */ eingerahmt.

 Datenstruktur Zeichenkette

Zeichenketten werden durch Anführungszeichen “Hello, world!” eingerahmt.

/* File: hello_world.c */

#include <stdio.h>

int main (void) {

printf (”Hello, world!\n“);

return 0;

}

(15)

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

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)

(16)

Vorlesung „Programmieren in C“

Einführung Bernd Schürmann

Editieren

Übersetzen

(Binden)

Ausführen

Praxiseinschub:

Programmerzeugung und Ausführung

Vorlesung „Programmieren in C“ Arbeiten unter Unix

Terminal/Konsole starten

UNIX

(17)

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

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

(18)

Vorlesung „Programmieren in C“

Einführung Bernd Schürmann

Arbeiten unter Unix

Syntaxfehler (Beispiel)

Vorlesung „Programmieren in C“ Arbeiten unter Windows

Editor

• edit

• notepad

Windows

(19)

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

Vorlesung „Programmieren in C“

Einführung Bernd Schürmann

Arbeiten unter Windows

Syntaxfehler (Beispiel)

(20)

Vorlesung „Programmieren in C“

Einführung Bernd Schürmann

Arbeiten unter Windows

C(++) Umgebung

Windows

Vorlesung „Programmieren in C“ Arbeiten unter Windows

C(++) Umgebung DEV C++

Windows

(21)

Vorlesung „Programmieren in C“

Einführung Bernd Schürmann

Arbeiten unter Windows

Neues Projekt anlegen und speichern

Windows

Vorlesung „Programmieren in C“

Einführung Bernd Schürmann

Arbeiten unter Windows

Programm übersetzen

Windows

(22)

Vorlesung „Programmieren in C“

Einführung Bernd Schürmann

Arbeiten unter Windows

Programm ausführen

Windows

Vorlesung „Programmieren in C“ 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

nicht in der Vorlesung

(23)

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) . . .: xwird 3 zugewiesen; Bedingung ist wahr

Semikolon fehlt

P = 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

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

(24)

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

Vorlesung „Programmieren in C“

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

(25)

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 intangenommen.

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

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

(26)

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

inund outentsprechen

Die Programmiersprache C

Programmiersprache C

Vorlesung „Programmieren in C“

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 übersetzbar

Vorteile: - ___________________________________

- ___________________________________

Die Programmiersprache C

Programmiersprache C

(27)

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 C

Smalltalk

Modula Concurrent Pascal C++ Ada

Java C#

COBOL ALGOL68 SIMULA Pascal PL/I

prozedural

objektorientiert

Programmiersprache C

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

Referenzen

ÄHNLICHE DOKUMENTE

Damit sind Hashfunktionen im Zufallsorakelmodell auch kollisionsresistent, wenn gleich der Aufwand zum Finden einer Kollision wesentlich geringer ist als der, Urbilder zu berechnen..

Damit sind Hashfunktionen im Zufallsorakelmodell auch kollisionsresistent, wenn gleich der Aufwand zum Finden einer Kollision wesentlich geringer ist als der, Urbilder zu berechnen..

Montags, 13:45 – 15:15 Uhr Dienstags, 08:15 – 09:45 Uhr Gebäude 11, Hörsaal 207 Gebäude 46, Raum 260.. (außer bei Schneefall ( E-Mail)) Anzahl der SWS: 2

Vorlesung „Programmieren in C“ Arbeiten unter Unix.

• Mittwoch, 24.10.18, 17:00 – 18:30, 32-410. • Donnerstag, 25.10.18, 17:00 –

Induktionsvoraussetzung beide Folgen werden durch Programm in der behaupteten Weise mit höchstens n+m Schleifendurchläufen gemischt. Da jede Operation nur Elemente hinten an

Auch über die Pädagogische Hochschule Thurgau PHTG, die Partnerhochschule der Universität Konstanz mit gemeinsamen Studiengängen, kommt Konstanzer Studierenden die persönliche

[r]