C# für Ingenieure: Mit Beispielen zur Analyse elektrischer Schaltungen [Reprint 2015 ed.] 9783486813845, 9783486273571

"C# für Ingenieure" versetzt Ingenieure in die Lage, Anwendungen aus ihrem Fachgebiet mit der Programmiersprac

194 61 10MB

German Pages 243 [244] Year 2003

Report DMCA / Copyright

DOWNLOAD FILE

Polecaj historie

C# für Ingenieure: Mit Beispielen zur Analyse elektrischer Schaltungen [Reprint 2015 ed.]
 9783486813845, 9783486273571

Table of contents :
Vorwort
Inhalt
1. Einführung
2. Grundlagen der Programmierung
3. Variablen, Datentypen und Operatoren
4. Verzweigungen und Schleifen
5. Fehlerbehandlung
6. Prozeduren und Funktionen
7. Grundzüge der Objektorientierung
8. Objektorientierung in C#
9. Konstruktoren und Operatorenüberladung
10. Felder
11. Zeichenketten
12. Schnittstellen
13. Die grafische Benutzerschnittstelle - ein elementarer Einstieg
14. Weiteres über GUI-Konzepte - ein komplexer "Taschenrechner"
15. Analyse von Wechselstromschaltungen
16. Anhang

Citation preview

C# für Ingenieure Mit Beispielen zur Analyse elektrischer Schaltungen von Lothar Czarnecki

Oldenbourg Verlag München Wien

Die Informationen in diesem Buch werden ohne Rücksicht auf einen eventuellen Patentschutz veröffentlicht. Alle in diesem Buch enthaltenen Programme und Verfahren wurden nach bestem Wissen erstellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund ist das im vorliegenden Buch enthaltene oder zu ihm gehörende Programm-Material mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autor und Verlag übernehmen daher keine Verantwortung und werden keine Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieses ProgrammMaterials oder Teilen davon entsteht. Fast alle Hardware- und Softwarebezeichnungen, die in diesem Buch erwähnt werden, sind gleichzeitig eingetragene Warenzeichen oder sollten als solche betrachtet werden.

Bibliografische Information Der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über abrufbar.

© 2003 Oldenbourg Wissenschaftsverlag GmbH Rosenheimer Straße 145, D-81671 München Telefon: (089) 45051-0 www.oldenbourg-verlag.de Das Werk einschließlich aller Abbildungen ist urheberrechtlich geschützt. Jede Verwertung außerhalb der Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Bearbeitung in elektronischen Systemen. Lektorat: Sabine Krüger, Kathrin Veigel Herstellung: Rainer Hartl Umschlagkonzeption: Kraxenberger Kommunikationshaus, München Gedruckt auf säure- und chlorfreiem Papier Druck: R. Oldenbourg Graphische Betriebe Druckerei GmbH ISBN 3-486-27357-4

Vorwort Dieses Buch ist aus den Lehrveranstaltungen fur Ingenieure und Wirtschaftsingenieure entstanden, die vom Autor an der Fachhochschule Kempten gehalten werden. Es fuhrt in die Informatik und die Grundgebiete der neuen Programmiersprache C# ein und verwendet dazu Beispiele aus der Elektrotechnik. Warum ausgerechnet C#? Diese bei der Firma Microsoft entstandene Programmiersprache erfüllt alle Anforderungen, die an eine moderne Sprache gestellt werden müssen: Sie ermöglicht im Gegensatz zu älteren Programmiersprachen wie FORTRAN und С objektorientiertes Programmieren, was für größere Projekte und das Arbeiten im Team unerlässlich ist. Im Gegensatz zu C++ ist sie weitgehend frei von den Fallstricken und Ungereimtheiten, die gerade dem Informatiker im Nebenfach das Leben oft sehr schwer machen. Und schließlich wurde sie von Microsoft, dem größten Softwarehersteller der Welt, auf den Markt gebracht und von ihm selbst für die eigenen Softwareentwicklungen verwendet, was die Garantie gibt, dass sich die Beschäftigung mit ihr nicht irgendwann mangels Verbreitung als nutzlose Investition erweist. Obwohl von Microsoft entwickelt, ist sie überdies standardisiert und somit für andere Anbieter offen. Ingenieure haben ihre eigene Sicht der Welt. Kein Ingenieur programmiert gerne Beispiele, die mit seinem Fachgebiet nichts zu tun haben - nicht einmal zu Übungszwecken. Daher werden fast ausschließlich Beispiele aus den Ingenieurwissenschaften als Übungsbeispiele verwendet, vorwiegend aus der Elektrotechnik. Im Verlauf des Buchs entstehen Programme, die ausgesprochen nützlich sind - ein Rechner ähnlich demjenigen, der mit dem Betriebssystem Windows als Zubehör mitgeliefert wird, allerdings mit einem großen Unterschied: Dieser Rechner kann auch mit komplexen Zahlen umgehen, die in der Wechselstromtechnik und in der Schwingungslehre eine große Rolle spielen. Außerdem entsteht im letzten Kapitel ein Werkzeug zur Schaltungsanalyse, das ausgezeichnet zur Kontrolle der Lösung von Prüfungsaufgaben aus dem Gebiet der Grundlagen der Elektrotechnik verwendet werden kann. Das Buch setzt im zweiten Teil (ab Kapitel 9) elementare Grundkenntnisse der Elektrotechnik voraus, wie sie in den ersten beiden Semestern eines Hochschul- oder Fachhochschulstudiums vermittelt werden. Diese Grundlagen werden vor ihrer Verwendung hier nur kurz zusammengefasst und zitiert. Die Grundlagen der Informatik dagegen werden ausführlich eingeführt, ebenso wie die Notationsweisen der Informatik und die grundlegenden Gemeinsamkeiten der Programmiersprachen. Natürlich bin ich für Anregungen offen. Für Fragen oder Kommentare stehe ich unter

VI

Vorwort

[email protected] zur Verfugung. Die Beispielaufgaben sollen möglichst von jedem Lernenden selbst gelöst werden. Meine Lösungen stehen auf der Homepage des Verlags zur Verfugung. Ganz herzlich bedanken möchte ich mich bei meinen Fachkollegen von der Fachhochschule Kempten fur viele Anregungen und Diskussionen, besonders bei Prof. Dr. Bernhard Neudecker und Dipl.-Ing. Norbert Grotz für das Korrekturlesen des Manuskripts. Meiner Frau Marlis sei Dank für ihre Geduld und ihr Verständnis mir gegenüber beim Schreiben dieses Buchs. Haldenwang im Allgäu, Prof. Dr.-Ing. Lothar Czarnecki

Inhalt Vorwort

V

1

Einführung

1

1.1

Konzeption

2

1.2

Ein einfaches Beispielprogramm

6

1.3

Übungen

11

2

Grundlagen der Programmierung

13

2.1

Terminologie

13

2.2

Syntaxbeschreibung von Programmiersprachen

16

2.3

Programmentwicklung und Entwicklungsphasen

18

2.4

Computer

20

2.5

Übungen

22

3

Variablen, Datentypen und Operatoren

23

3.1

Grundlagen

23

3.2

Variablen

24

3.3

Gültigkeitsbereich (Kontext) von Variablen

27

3.4

Werttypen und Referenztypen

28

3.5

Literale

29

3.6

Operatoren

31

3.7

Übungen

37

4

Verzweigungen und Schleifen

41

4.1

Verzweigungen

41

4.2

Schleifen

45

4.3

Übungen

50

VIII

Inhalt

5

Fehlerbehandlung

53

5.1

Arten von Fehlern

53

5.2

Überlauf ohne Fehlerprüfung

54

5.3

Fehlerprüfung

55

5.4

Übungen

62

6

Prozeduren und Funktionen

63

6.1

Prozeduren

63

6.2

Funktionen

66

6.3

Parameter

68

6.4

Überladen von Funktionen

76

6.5

Übungen

77

7

Grundzüge der Objektorientierung

81

7.1

Objekte und Klassen

82

7.2

Attribute, Operationen und Zusicherungen

83

7.3

Vererbung

85

7.4

Assoziationen und Aggregationen

88

7.5

Nachrichtenaustausch

89

7.6

Statische und dynamische Polymorphie

90

7.7

Übungen

91

8

Objektorientierung in C#

93

8.1

Die Klasse CPunkt

95

8.2

Die Klasse CZweipol

96

8.3

Die Klasse CWiderstand

99

8.4

Ein kleines Testprogramm für CWiderstand

105

8.5

Übungen

108

8.6

Anhang zu Abschnitt 8: Programmlisting

108

9

Konstruktoren und Operatorenüberladung

113

9.1

Komplexe Zahlen

113

9.2

Konstruktoren der Klasse CKomplexeZahl

115

9.3

Zugriff auf die Attribute der Klasse

117

Inhalt

IX

9.4

Operatorenüberladung

119

9.5

Übungen

123

10

Felder

125

10.1

Felder und Feldvariablen (Feldreferenzen)

125

10.2

Der Gauß-Algorithmus

129

10.3

Übungen

140

11

Zeichenketten

143

11.1

Die Klasse string

143

11.2

Methoden der Klasse string

149

11.3

Übungen

151

12

Schnittstellen

153

12.1

Nachrichtenquellen und Nachrichtenempfänger

153

12.2

Zuordnung von Quellen zu Empfängern

156

12.3

Übungen

159

13

Die grafische Benutzerschnittstelle - ein elementarer Einstieg

161

13.1

Erzeugung des Programmgerüsts

161

13.2

Einfügen von Steuerelementen

167

13.3

Ereignisbehandlung

169

13.4

Ein einfacher Taschenrechner

170

13.5

Übungen

177

13.6

Anhang: Gesamter Quellcode für das erste Beispiel dieses Abschnitts

177

14

Weiteres über GUI-Konzepte - ein komplexer "Taschenrechner"

181

14.1

Verbessertes Design des Taschenrechners

181

14.2

1. Variante: reeller Taschenrechner

184

14.3

2. Variante: Rechner für komplexe Zahlen

191

14.4

Übungen

197

15

Analyse von Wechselstromschaltungen

199

15.1

Anforderungen

199

15.2

Knotenpotentialverfahren

202

15.3

Softwarekonzept und Klassenaufteilung

205

X

Inhalt

15.4 15.4.1 15.4.2 15.4.3 15.4.4

Verwendete Steuerelemente Registerklassen-Steuerelement (TabControl) Panel ListBox DataGrid und DataSet

208 208 209 210 210

15.5

Einige Klassen des Projekts im Einzelnen

213

16

Anhang

215

16.1

Verwendete Literatur

215

16.2

Schlüsselwörter der Programmiersprache C#

216

16.3

Verzeichnis der Abbildungen

220

16.4 16.4.1 16.4.2 16.4.3 16.4.4 16.4.5

Lösungen zu den Übungen Kapitel 3 Kapitel 4 Kapitel 5 Kapitel 6 Kapitel 7

222 222 223 227 228 231

16.5

Index

232

1

Einführung

Die Programmiersprache „C#" wurde von Anders Heijlsberg bei der Firma Microsoft' entwickelt. Sie ist Teil eines Rahmenwerks, des ,,.net-Frameworks", das darauf ausgerichtet ist, Anwendungen fur das Internet zu entwickeln und stellt die Antwort von Microsoft auf die Sprache „Java" der Firma Sun 2 dar. Beide Sprachen unterstützen im Gegensatz zur Sprache „C++" die vollständig objektorientierte Programmierweise 3 und ermöglichen eine saubere Trennung der Datentypen 4 . C# vermeidet darüber hinaus im Gegensatz zu C++ und Java typische Fehler, die entstehen, wenn Operatoren verwechselt werden. Die Namensgebung soll darauf hinweisen, dass C# (englisch c-sharp oder deutsch cis ausgesprochen, wie der Halbton über с in der Musik) der Nachfolger von С bzw. C++ ist. Tatsächlich erinnert die Syntax der Sprache jedoch eher an Java. Die gesamte Struktur des Rahmenwerks zeigt Abbildung 1. C# ist eine von mehreren Programmiersprachen, die auf einer gemeinsamen Sprachspezifikation („Common Language Specification", CLS) aufsetzen. Alle diese Sprachen haben einen gemeinsamen Vorrat an Datentypen und Klassen 5 . Dadurch wird der Übergang zwischen den Sprachen sehr einfach. Aus diesem Grund kann man auch Klassen, die in einer dieser Sprache erstellt wurden, in einer anderen Sprache weiterverwenden. Die CLS baut wiederum auf einer Anzahl Klassen auf, die fur die Anwendung zur Verfugung stehen. Die gemeinsame Laufzeitumgebung („Common Language Runtime", CLR) schließlich ist für die Programmausfuhrung zuständig. Dabei wird der Programmcode zunächst in einen Zwischencode („Intermediate Language", IL) umgewandelt, der erst unmittelbar vor der Programmausfuhrung in den Maschinencode umgewandelt wird, den der im Rechner vorhandenene Mikroprozessor verstehen und ausführen kann.

' 1975 von Bill Gates und Paul Allen gegründeter amerikanischer Softwarehersteller mit Sitz in Redmond, Washington. 2

3

Sun Microsystems, gegründet 1982. Beim objektorientierten Programmieren besteht ein Programm aus einer Reihe von Objekten, die Nachrichten untereinander austauschen. Eine genaue Besprechung dieses Programmierkonzeptes erfolgt in Kapitel 7.

4

Datentypen werden in Kapitel 3 behandelt. 5

Eine Klasse ist eine Art Schablone, aus der die Objekte erzeugt werden. Näheres hierzu siehe Kapitel 7.

2

1 Einfuhrung

Abbildung 1: Struktur des

1.1

net-Frameworks

Konzeption

Dieses Buch soll den Leser in die Grundkonzepte des modernen objektorientierten Programmierens mit Hilfe dieser neuen Programmiersprache einfuhren. Dazu werden im nächsten Abschnitt6 die benötigten Grundlagen aus der praktischen Informatik7 zusammengestellt. Darauf aufbauend werden in Abschnitt 3 die elementaren Anweisungen, Variablen, Datentypen und Operatoren behandelt. Die Abschnitte 4 und 5 zeigen Kontrollstrukturen im Allge-

6

Die Begriffe Abschnitt und Kapitel werden in diesem Buch synonym verwendet.

7

Unter Informatik (engl, computer science) versteht man die Wissenschaft von der systematischen Darstellung, Speicherung, Verarbeitung und Übertragung von Informationen mit Hilfe von Computern. Sie ist unterteilt in die Teilbereiche der theoretischen, praktischen, angewandten und technischen Informatik. Die praktische Informatik beschäftigt sich mit dem Erstellen von Computerprogrammen.

3

1.1 Konzeption

meinen und eine besondere Kontrollstruktur bei der Fehlerbehandlung. Abschnitt 6 beschäftigt sich mit den Prozeduren. Die Abschnitte 7-9 fuhren die objektorientierte Programmierung zunächst allgemein und dann C#-spezifisch ein. Die Abschnitte 10 und 11 behandeln dann zwei spezielle Klassen von C#, nämlich Felder und Zeichenketten. In den übrigen Abschnitten geht es dann um den Entwurf grafischer Oberflächen.

JSJiSi

Bitte die Zahlen durch Klicken auf die entsprechenden Bereiche eingeben: x-y

Oper at or en +

r-phi

[_