Einführung in das Programmieren (f. Ing.) IPP:TUC, Christian Vetter 1 Einführung in das Programmieren (für Ingenieure) Programmieren in C Chr. Vetter Worum geht es beim Programmieren? Es geht darum, technische Systeme, die eine universelle Leistung bieten, so zu konfigurieren und in ihrer Arbeitsweise zu bestimmen, dass sie dem Menschen dienen bzw. deren Handeln und Denken unterstützen. Der Mensch überlegt sich, wie etwas geht (z.B. mathematische Vorgehensweise) und setzt diese Handlungsvorschrift in eine geeignete Form (z.B.) für einen Rechner um, damit dieser fortan die langweilige, mühsame Arbeit in quantitativen Varianten durchführt.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Einführung in das Programmieren (f. Ing.)
IPP:TUC, Christian Vetter 1
Einführung in das Programmieren (für Ingenieure)
Programmieren in C
Chr. Vetter
Worum geht es beim Programmieren?
Es geht darum, technische Systeme, die eine universelle Leistung bieten, so zu konfigurieren und in ihrer Arbeitsweise zu bestimmen, dass sie dem Menschen dienen bzw. deren Handeln und Denken unterstützen.
Der Mensch überlegt sich, wie etwas geht (z.B. mathematische Vorgehensweise) und setzt diese Handlungsvorschrift in eine geeignete Form (z.B.) für einen Rechner um, damit dieser fortan die langweilige, mühsame Arbeit in quantitativen Varianten durchführt.
Einführung in das Programmieren (f. Ing.)
IPP:TUC, Christian Vetter 2
Beispiele
• Programmieren einer Waschmaschine
• Programmieren einer Werkzeugmaschine
• Programmieren eines Roboters
• Programmieren eines Rechners– Informationsbeschaffung
– Berechnung
– Analyse
– Visualisierung
– Simulation
– Optimierung
– Systemsteuerung/-regelung
RätselzurVerdeut-lichung
Einführung in das Programmieren (f. Ing.)
IPP:TUC, Christian Vetter 3
Analyse der Aufgabenstellung …… ist das Wichtigste!!!
1. Es gibt eine Anzahl von Großwürfeln mit der Kantenlänge drei. Dem letzten Würfel dieser Art fehlt ein Baustein. Anz_BS := m*27 – 1
2. Beim zweiten Versuch gab es eine Anzahl von Großwürfeln mit der Kantenlänge vier. Auch hier fehlte einem Großwürfel ein Baustein zur Vollständigkeit. Anz_BS := n*64 – 1
3. Der verzweifelte Versuch, wenigstens Rechtecke mit der Kantenlänge von mindestens zwei auszulegen, gelang auch nicht: Keine Faktorenzerlegung möglich Anz_BS ist eine Primzahl
4. Um die Lösungsmenge weiter zu begrenzen, wird noch die Vierstelligkeit der Bausteinanzahl gegeben.
Wie geht man nun nach der Analyse vor?
1. Die spontane mathematische Durchdringung?In technischen Fragestellungen eher die Ausnahme
2. Die Bestimmung der Großwürfelanzahlen für einen Bausteinzahlenraum von 1000 bis 9999 erscheint recht mühsam, wäre aber mit Fleiß erreichbar.
3. Idee: man könnte ein fertiges Programm benutzen, um die mühsame Arbeit zu erleichtern Versuch: Tabellenkalkulation (leichte Programmier-kenntnisse)Problem: bei der Umsetzung der Primzahlbedingung wird es schwierig
4. Gleich alles mit einer Universalsprache programmieren (erfordert Programmierkenntnisse, bietet aber volle Flexibilität)
Einführung in das Programmieren (f. Ing.)
IPP:TUC, Christian Vetter 4
Übersicht
• Planung und Entwurf mit Struktogrammen• Grundlagen• Bedingte Programmierung• Schleifen• Felder • Funktionen• Dateien• Datenstrukturen• Zeigertechnik• Blick in Fensterprogrammierung
(event-orientiert)
Darstellung von Algorithmen mit Struktogrammen(Nassi-Shneidermann-Diagramm)
Algorithmus: allgemeine Bearbeitungs-/Berechnungsvorschrift, unabhängig von der Realisierung in einer Programmiersprache
Kontrollstrukturen: - Basis-/Elementarstrukturblock (Rechteck mit Anweisung)- Sequenz von Strukturblöcken- Bedingte Anweisung, Verzweigung oder Auswahl, Selektion- Schleife oder Wiederholung, Iteration- Aufruf anderer Algorithmen- Aussprung aus direkt übergeordneter Strukturdienen zur Darstellung von Algorithmen.
Struktogramm: Darstellung eines Algorithmus mit Hilfe von Sinnbildern nach DIN 66261, die den Kontrollstrukturen entsprechen.
Struktogramme erlauben das Entwickeln von Algorithmen unabhängig von Programmiersprachen.
Einführung in das Programmieren (f. Ing.)
IPP:TUC, Christian Vetter 5
Der Elementarstrukturblock wird als Rechteck dargestellt. Die Beschriftung soll ausdrücken, was an dieser Stelle im Algorithmus passieren soll. Ein Entwickler hat bei der Beschriftung keine Formal-vorschriften, sondern kann seinem momentanen Erkenntnisstand entsprechend formulieren (z.B. "Summe mit 0.0 initialisieren" oder "sum=0.0;").
Strukturblöcke können in vertikaler Richtung aneinander gereiht (Sequenz) oder in andere geeignete Blöcke eingebaut werden (Verschachtelung). Dabei entsteht der Algorithmus als ein Struktogramm.
Basis-/Elementarstrukturblock
Anweisung
Sequenz: Aneinanderreihung von Strukturblöcken
Im einfachsten Fall können Elementarblöcke aneinander
gereiht werden, die genau in dieser Reihenfolge von oben
nach unten abgearbeitet werden sollen.
Es können aber alle Strukturblocktypen als beliebige
Sequenz angeordnet werden, je nach erforderlicher
Vorgehensweise im Algorithmus.
Anweisung 1
Anweisung 2
Anweisung 3
Sequenz von Strukturblöcken
Einführung in das Programmieren (f. Ing.)
IPP:TUC, Christian Vetter 6
Wenn eine Anweisung oder sogar ein ganzer Strukturblock
nur unter einer bestimmten Bedingung ausgeführt werden
soll, wird folgendes Sinnbild verwendet:
Soll für den Fall der nicht erfüllten
Bedingung eine Alternative angeboten
werden, so ist auch der rechte
innere Block des Sinnbildes
auszufüllen.
Bedingte Anweisung, Verzweigung (Selektion)
Manchmal sind an einem Entscheidungspunkt in der
algorithmischen Struktur Mehrfachverzweigungen (1 aus n
Zweigen) erwünscht. Wenn sich die Entscheidung an
ganzen Zahlen (oder Zeichen) festmachen lässt, ist
folgendes Sinnbild im Struktogramm zu verwenden.
Nicht explizit vorgesehene Fälle können optional im
rechten Block (default) eine Ausnahmebehandlung erfahren.
Mehrfachauswahl (Selektion) – speziell ganzzahlig
Einführung in das Programmieren (f. Ing.)
IPP:TUC, Christian Vetter 7
Ist eine höhere Flexibilität erforderlich, so lässt sich die
Mehrfachauswahl durch beliebige Verschachtelung von
einfachen Verzweigungen erreichen.
Beispiele:
Mehrfachauswahl (Selektion) – allgemein
Schleife: eine Anweisung oder ein Block von Anweisungen
wird in Abhängigkeit von einer Bedingung wiederholt
durchlaufen.
Um das Kreieren von Strukturen zu erleichtern, gibt es
Damit lassen sich alle denkbaren Algorithmen darstellen.
Struktogramme sind frei beschriftbar und erlauben somit
unabhängig von Programmiersprachen zu formulieren.
Die Benutzung von Struktogrammen trainiert das algorith-
mische Denken, was für jegliche Ingenieurarbeit erforderlich
ist. Beim Programmieren dienen sie der stufenweisen
Bewältigung der Entwicklungsarbeit bei komplexen Auf-
gabenstellungen.
Zusammenfassung zu Struktogrammen
Einführung in das Programmieren (f. Ing.)
IPP:TUC, Christian Vetter 13
Struktogramm-Editor-Programm
• Zu finden unter SuchstichwortenNassi-Shneiderman-Diagramm, Struktogramm, strukted, strukted32,
• Eine konfigurierte und 32-bit-fähige Variante wirdals Zip-Paket im Stud.IP-System zur Verfügunggestellt. Diese Version wird in den Vorlesungen verwendet.