Programmieren in C, Grafiken und Mindmaps von Programmieren

Flussdiagramme. → Graphische Darstellung, schnell unübersichtlich. • Mathematische Notationen (→ kein Algorithmus im engeren Sinn). → exakt und präzise. • ...

Art: Grafiken und Mindmaps

2021/2022

Hochgeladen am 09.08.2022

currywurstsausse
currywurstsausse 🇩🇪

4.6

(20)

51 dokumente

1 / 31

Toggle sidebar

Diese Seite wird in der Vorschau nicht angezeigt

Lass dir nichts Wichtiges entgehen!

bg1
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
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f

Unvollständige Textvorschau

Nur auf Docsity: Lade Programmieren in C und mehr Grafiken und Mindmaps als PDF für Programmieren herunter!

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

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.

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

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+c b= c=

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=

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

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

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 = 0 solange n > 0: Rest r = n modulo 10 Quersumme q = q + r n = n / 10

Algorithmen und Notationen

n / 10

Quotient Rest r

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

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“

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

  1. Falls b′=0: weiter bei Schritt (10).
  2. Falls b′>a: weiter bei Schritt (8).
  3. Berechne r = a′ mod b′.
  4. Kopiere b′ nach a′.
  5. Kopiere r nach b′.
  6. Gehe zu Schritt (2).
  7. Vertausche a′ und b′.
  8. Gehe zu Schritt (2).
  9. 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

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“

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

START

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

 Graphische Repräsentation eines Algorithmus.

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: Quersumme Eingabe: natürliche Zahl n q = 0 while n > 0 do rn mod 10; qq + r; rr / 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 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

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“

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

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