Sie sind auf Seite 1von 220

Grundlagen der Software- entwicklung

Grundlagen der Software- entwicklung Official Academic Course

Official Academic Course

This page intentionally left blank

Microsoft ® Official Academic Course

Grundlagen der Softwareentwicklung, Prüfung 98-361

Microsoft ® Official Academic Course Grundlagen der Softwareentwicklung, Prüfung 98-361

Impressum

REDAKTION

Bryan Gambrel

DIRECTOR OF SALES

Mitchell Beaton

EXECUTIVE MARKETING MANAGER

Chris Ruel

MICROSOFT SENIOR PRODUCT MANAGER

Merrick Van Dongen, Microsoft Learning

EDITORIAL PROGRAM ASSISTANT

Jennifer

Lartz

CONTENT MANAGER PRODUCTION EDITOR CREATIVE DIRECTOR COVER DESIGNER TECHNOLOGY AND MEDIA

Micheline Frederick Amy Weintraub Harry Nolan Jim O’Shea Tom Kulesa/Wendy Ashenberg

Titelfoto: Mit freundlicher Genehmigung von: © Pgiam/iStockphoto

Satz: Aptara, Inc., Garamond. Druck und Bindung: Bind Rite Robbinsville. Titeldruck: Bind Rite Robbinsville.

Copyright © 2012 John Wiley & Sons, Inc. Alle Rechte vorbehalten.

Ohne vorherige schriftliche Genehmigung des Verlags bzw. Zahlung einer angemessenen Gebühr je Exemplar an Copyright Clearance Center, Inc. 222 Rosewood Drive, Danvers, MA 01923 (Internet: www.copyright.com) darf kein Teil dieser Veröffentlichung vervielfältigt, in einem Datenabrufsystem gespeichert oder übertragen werden, unabhängig davon, auf welche Art und Weise oder mit welchen Mitteln (elektronisch, mechanisch, durch Fotokopieren, Aufzeichnen, Einscannen usw.) dies geschieht, es sei denn, dies erfolgt in Übereinstimmung mit Paragraf 107 oder 108 des Urheberrechtsgesetzes der Vereinigten Staaten von 1976. Genehmigungsanfragen an den Verlag sind an Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030-5774, (201)748-6011, Fax (201)748-6008 (Internet: http://www.wiley.com/go/permissions) zu richten.

Microsoft, ActiveX, Excel, InfoPath, Microsoft Press, MSDN, OneNote, Outlook, PivotChart, PivotTable, PowerPoint, SharePoint, SQL Server, Visio, Visual Basic, Visual c#, Visual Studio, Windows, Windows 7, Windows Mobile, Windows Server und Windows Vista sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den Vereinigten Staaten und/oder anderen Ländern. Andere in diesem Dokument aufgeführte Produkt- und Firmennamen sind möglicherweise Marken der jeweiligen Eigentümer.

Die Firmen, Organisationen, Produkte, Domänennamen, E-Mail-Adressen, Logos, Personen, Orte und Ereignisse in diesen Beispielen sind erfunden. Ähnlichkeiten mit echten Firmen, Organisationen, Produkten, Domänennamen, E-Mail-Adressen, Logos, Personen, Orten oder Ereignissen sind rein zufällig und nicht beabsichtigt.

Das Buch gibt die Ansichten und Meinungen des Autors wieder. Die in diesem Buch enthaltenen Informationen werden ohne ausdrückliche, gesetzliche oder konkludente Gewährleistungen zur Verfügung gestellt. Weder die Autoren, John Wiley & Sons, Inc., Microsoft Corporation noch deren Wiederverkäufer oder Händler haften für Schäden, die tatsächlich oder angeblich durch dieses Buch entweder direkt oder indirekt verursacht wurden.

John Wiley & Sons, Inc. wurde im Jahr 1807 gegründet und vermittelt seit über 200 Jahren qualitätsvolles Wissen, um Menschen auf der ganzen Welt bei der bedarfsgerechten Verwirklichung ihrer beruflichen Ambitionen zu unterstützen. Unser Unternehmen baut auf dem Prinzip von Verantwortung für eine Gesellschaft auf, der wir unsere Dienste anbieten und in der wir leben und arbeiten. Im Jahr 2008 starteten wir eine Initiative im Bereich Corporate Citizenship, eine globale Bemühung zur Bewältigung ökologischer, sozialer, wirtschaftlicher und ethischer Herausforderungen, auf die wir im Rahmen unserer Geschäftstätigkeit stoßen. Themenkomplexe waren unter anderem die CO2-Belastung der Umwelt, Papierspezifikationen und Beschaffung, ethisches Verhalten im Unternehmen und auf Lieferantenseite sowie die Unterstützung der Gemeinschaft und die Förderung von karitativen Projekten. Weitere Informationen erhalten Sie auf unserer Website: www.wiley.com/go/citizenship.

ISBN 978-0-470-88911-4

Gedruckt in den Vereinigten Staaten von Amerika

10

9

8

7

6

5

4

3

2

1

www.wiley.com/college/microsoft oder gebührenfreie MOAC-Rufnummer: 1+(888) 764-7001 (nur USA und Kanada).

Introduction | iii

WILEY-ENDBENUTZER-LIZENZVERTRAG FÜR MOAC-E-BOOK UND INHALTE FÜR KURSLEITER

Dies ist der auf John Wiley and Sons, Inc. („Wiley“) beschränkte Endbenutzer-Lizenzvertrag, der Ihre Verwendung des geschützten Microsoft Official Academic Course E-Book („MOAC-E-Book“) von Wiley und der zugehörigen Inhalte („Inhalte für Kursleiter“) regelt. INDEM SIE AUF DAS MOAC-E-BOOK ODER DIE INHALTE FÜR KURSLEITER ZUGREIFEN BZW. DIESE DATEN HERUNTERLADEN ODER VERWENDEN, ERKENNEN SIE DIE BESTIMMUNGEN DIESES VERTRAGS AN. FALLS SIE DIE BESTIMMUNGEN NICHT ANERKENNEN, SIND SIE NICHT BERECHTIGT, AUF DAS MOAC-E-BOOK ODER DIE INHALTE FÜR KURSLEITER ZUZUGREIFEN, SIE HERUNTERZULADEN ODER ZU VERWENDEN.

Lizenz:

Hiermit gewährt Wiley dem Mitglied des Microsoft IT Academy-Programms, dem Kursleiter oder Kursteilnehmer, das bzw. der Rechte unter diesem Vertrag ausübt, („Ihnen“, „Sie“) eine nicht ausschließliche und nicht übertragbare Lizenz zur Verwendung des MOAC-E-Books und der Inhalte für Kursleiter ausschließlich zu den folgenden Bestimmungen, und Sie erkennen diese Lizenz an:

a. Sie erkennen an, dass die MOAC-E-Books und Inhalte für Kursleiter für einen begrenzten Zeitraum an Sie lizenziert werden und dass Ihre Verwendung den Bestimmungen dieses Vertrags unterliegt.

b. Nachfolgend finden Sie zwei separate Teile mit Nutzungsrechten. Für Sie gilt nur einer dieser Teile.

i. Wenn Sie ein aktives Mitglied des Microsoft IT Academy-Programms sind:

1. Sie erkennen an, dass die MOAC-E-Books ausschließlich zur Verwendung durch Ihre Kursleiter und Ihre Kursteilnehmer vorgesehen sind.

2. Sie sind berechtigt, nur so viele Kopien des jeweiligen MOAC-E-Book-Titels herunterzuladen, wie für Ihre Kursleiter zur Durchführung Ihres Kurses, in dem der entsprechende MOAC- E-Book-Titel gelehrt wird, bzw. für die Kursteilnehmer zur Teilnahme an diesem Kurs erforderlich sind.

3. Sie dürfen MOAC-E-Book-Titel ausschließlich an die Leiter und Teilnehmer von Kursen zum betreffenden MOAC-E-Book-Titel weitergeben. Zulässig sind nur die folgenden Weitergabemethoden:

o

E-Mail

o

Sicheres USB-Gerät, das direkt in die persönlichen Geräte der Kursteilnehmer eingesteckt wird

o

Kennwortgeschützte Website, auf die nur Ihre Kursleiter und Kursteilnehmer zugreifen können

4. Sie dürfen Inhalte für Kursleiter nur an Ihre Kursleiter verteilen, damit sich diese auf einen Ihrer Kurse, in dem der zugehörige MOAC-E-Book-Titel gelehrt wird, vorbereiten und diesen durchführen können.

5. Vor der Bereitstellung des Zugriffs auf ein MOAC-E-Book teilen Sie jeder Person mit, dass sie nur dann auf ein MOAC-E-Book zugreifen oder dieses verwenden kann, wenn sie sich damit einverstanden erklärt, bei der Verwendung des MOAC-E-Books folgende Bestimmungen einzuhalten:

o

Die Person verwendet das MOAC-E-Book ausschließlich für ihre persönlichen Schulungszwecke.

o

Die Person installiert das MOAC-E-Book nur auf einem Gerät, das ihr gehört oder unter ihrer Kontrolle steht.

o

Die Person darf das MOAC-E-Book weder vollständig noch in Teilen kopieren, ändern, drucken, übermitteln, übertragen, veröffentlichen, posten, anzeigen, verlinken, weiterleiten oder verteilen.

o

Die Person verwendet den MOAC-E-Book-Titel nur für die Dauer des Kurses, an dem sie teilnimmt und in dem der MOAC-E-Book-Titel gelehrt wird, oder für einen Zeitraum von einhundertundachtzig (180) Tagen, wobei der längere Zeitraum maßgeblich ist; danach muss die Person sämtliche Kopien des MOAC-E-Book-Titels, die sich in ihrem Besitz oder unter ihrer Kontrolle befinden, auf sichere Weise löschen.

o

Bei der Verwendung der MOAC-E-Book-Titel durch die Person sind außerdem alle zusätzlichen Bestimmungen oder Lizenzen einzuhalten, die für den MOAC-E-Book-Titel gelten, diesem beiliegen oder darin enthalten sind.

iv

| Wiley-endbenutzer-lizenzvertrag für moac-e-book und inhalte für kursleiter

6. Vor der Bereitstellung des Zugriffs auf Inhalte für Kursleiter teilen Sie jedem Kursleiter mit, dass er nur dann auf die Inhalte für Kursleiter zugreifen oder diese verwenden kann, wenn er sich damit einverstanden erklärt, bei der Verwendung der Inhalte für Kursleiter folgende Bestimmungen einzuhalten:

o

Der Kursleiter verwendet die Inhalte für Kursleiter ausschließlich zur Vorbereitung und Durchführung Ihrer Schulungssitzung.

o

Der Kursleiter installiert die Inhalte für Kursleiter nur auf einem Gerät, das ihm gehört oder unter seiner Kontrolle steht.

o

Der Kursleiter darf die Inhalte für Kursleiter weder vollständig noch in Teilen kopieren, ändern, drucken, übermitteln, übertragen, veröffentlichen, posten, anzeigen, verlinken, weiterleiten oder verteilen.

o

Der Kursleiter verwendet die Inhalte für Kursleiter nur für die Dauer des Kurses, in dem der zugehörige MOAC-E-Book-Titel gelehrt wird, oder für einen Zeitraum von einhundertundachtzig (180) Tagen, wobei der längere Zeitraum maßgeblich ist; danach muss der Kursleiter sämtliche Kopien der Inhalte für Kursleiter, die sich in seinem Besitz oder unter seiner Kontrolle befinden, auf sichere Weise löschen.

o

Bei der Verwendung der Inhalte für Kursleiter durch den Kursleiter sind außerdem alle zusätzlichen Bestimmungen oder Lizenzen einzuhalten, die für die Inhalte für Kursleiter gelten, diesen beiliegen oder darin enthalten sind.

ii. Wenn Sie ein Student sind, erkennen Sie Folgendes an und erklären sich damit einverstanden:

1. Sie nehmen derzeit an einem Kurs eines Mitglieds des IT Academy-Programms teil, in dem das MOAC-E-Book gelehrt wird.

2. Sie verpflichten sich, die MOAC-E-Books ausschließlich für Ihre persönlichen Schulungszwecke zu verwenden.

3. Sie installieren das MOAC-E-Book nur auf einem Gerät, das Ihnen gehört oder unter Ihrer Kontrolle steht.

4. Sie dürfen das MOAC-E-Book weder vollständig noch in Teilen kopieren, ändern, drucken, übermitteln, übertragen, veröffentlichen, posten, anzeigen, verlinken, weiterleiten oder verteilen.

5. Bei der Verwendung der MOAC-E-Book-Titel durch Sie sind außerdem alle zusätzlichen

Bestimmungen oder Lizenzen einzuhalten, die für den MOAC-E-Book-Titel gelten, diesem beiliegen oder darin enthalten sind.

c. Sofern in Abschnitt b oben nicht ausdrücklich autorisiert, sind Sie nicht berechtigt, MOAC-E-Books oder Inhalte für Kursleiter vollständig oder in Teilen hochzuladen, zu kopieren, zu ändern, zu übermitteln, zu übertragen, Bearbeitungen davon zu erstellen, diese weiterzuleiten oder zu verteilen, den Quellcode von MOAC-E-Books oder Inhalten für Kursleiter durch Dekompilierung oder anderweitig zu erstellen. Sie sind nicht berechtigt, Kopien von vollständigen MOAC-E-Books oder Inhalten für Kursleiter zu drucken; Sie sind jedoch berechtigt, einzelne Seiten oder Abschnitte der MOAC-E-Book-Kapitel ausdrücklich zur Verwendung im Kurs zu drucken. Sie sind nicht berechtigt, das MOAC-E-Book oder Inhalte für Kursleiter insgesamt oder in Teilen für den Erhalt einer geldwerten Gegenleistung mittels Verkauf, Weiterverkauf, Verleih, Übertragung, Vermietung oder andere Arten der Verwertung des MOAC-E-Books oder der Inhalte für Kursleiter zu verwenden. Wenn Sie ein MOAC-E-Book oder Inhalte für Kursleiter Dritten übertragen, endet Ihre Lizenz automatisch. Diese Kündigung besteht zusätzlich zu oder anstelle von billigkeitsrechtlichen, zivilrechtlichen oder sonstigen Abhilfeansprüchen, die Wiley zur Verfügung stehen.

d. Sie verwenden den entsprechenden MOAC-E-Book-Titel und Inhalte für Kursleiter nur für die Dauer des Kurses, in dem der jeweilige MOAC-E-Book-Titel gelehrt wird, oder für einen Zeitraum von einhundertundachtzig (180) Tagen, wobei der längere Zeitraum maßgeblich ist; danach müssen Sie sämtliche Kopien des MOAC-E-Book-Titels und der Inhalte für Kursleiter, die sich in Ihrem Besitz oder unter Ihrer Kontrolle befinden, auf sichere Weise löschen.

e. DIE MOAC-E-BOOKS UND INHALTE FÜR KURSLEITER WERDEN „WIE BESEHEN“ UND „WIE VERFÜGBAR“ OHNE GARANTIEN JEGLICHER ART LIZENZIERT.

f. Sie erkennen an, dass sämtliche Rechte (einschließlich ohne Einschränkung Urheberrechte, Patente und Geschäftsgeheimnisse) an den MOAC-E-Books und den Inhalten für Kursleiter das alleinige und ausschließliche Eigentum von Wiley und seinen Lizenzgebern sind. Durch die Annahme dieses Vertrags werden Sie nicht Eigentümer der MOAC-E-Books und der Inhalte für Kursleiter, doch Sie verfügen über eine eingeschränkte Lizenz zur Verwendung des MOAC-E-Books und der Inhalte für Kursleiter nach den Bestimmungen dieses Vertrags. Sie verpflichten sich, das MOAC-E-Book und die Inhalte für Kursleiter vor der unerlaubten Verwendung, dem Hochladen, Herunterladen, der Vervielfältigung oder Verteilung zu schützen. Darüber hinaus verpflichten Sie sich, kein MOAC-E-Book und keine Inhalte für Kursleiter zu übersetzen, zu dekompilieren, zu disassemblieren oder anderweitig zurückzuentwickeln (Reverse Engineering). Wiley behält sich alle Ihnen in diesem Vertrag nicht ausdrücklich gewährten Rechte vor.

Vorwort des Herausgebers

Mit seiner Microsoft Official Academic Course-Reihe verfolgt Wiley als Bildungsverlag die Vision, Teilnehmer und Kursleiter mit den Fähigkeiten und Kenntnissen auszustatten, die sie benötigen, um die Technologien von Microsoft effektiv in allen Aspekten ihres Privat- und Berufslebens zu nutzen. Nur mit qualitativ hochwertigen Inhalten können Kursleiter und Teilnehmer die Microsoft-Softwaretools optimal nutzen und produktiver arbeiten. Wir sehen es als unseren Auftrag an, mit unseren Lehrprogrammen zuverlässige Bildungsbegleiter fürs Leben zu entwickeln.

Um diese Mission zu erfüllen, hat sich Wiley mit Microsoft zusammengetan, um Weiterbildungsprogramme für Information Worker, IT-Experten und Entwickler zu erschaffen, die höchsten Qualitätsanforderungen genügen. Die im Rahmen dieser Partnerschaft entstandenen Kursunterlagen tragen den Markennamen „Microsoft Official Academic Course“. So ist für Kursleiter und Kursteilnehmer gleichermaßen gewährleistet, dass die Inhalte der Lehrbücher vollständig von Microsoft unterstützt werden und qualitativ hochwertige Informationen und Anleitungen zu den Microsoft-Produkten bieten. Die Lehrbücher der Microsoft Official Academic Course-Reihe sind noch auf eine weitere Art „offiziell“: Es handelt sich hierbei nämlich um offiziell genehmigtes Schulungsmaterial für Mitglieder der Microsoft IT Academy.

Die Microsoft Official Academic Course-Reihe ist auf die Mitarbeiterfortbildung ausgerichtet. Diese Programme richten sich an Kursteilnehmer, die ins Berufsleben eintreten, ihren Arbeitsplatz wechseln oder sich als Information Worker, IT-Experte oder Entwickler beruflich umorientieren möchten. Die Microsoft Official Academic Course-Programme beinhalten authentische, am Arbeitsleben orientierte Szenarien mit vielen Projekten, Übungen, Fallbeispielen und Bewertungen und sind damit speziell auf den Bedarf der genannten Zielgruppe abgestimmt.

Die Microsoft Official Academic Course-Reihe ist eng verbunden mit der umfangreichen Erforschung und Analyse der Aufgabengebiete, anhand derer die Microsoft Technology Associate (MTA)- und Microsoft Certified Information Technology Professional (MCITP)-Prüfungen entwickelt werden. Die Lehrbücher orientieren sich an realen Kompetenzen für reale Arbeitsplätze. Indem die Kursteilnehmer die Projekte und Übungen bearbeiten, verbessern sie ihren Wissensstand und lernen, wie sie die neuesten Microsoft-Technologien für alltägliche Aufgaben anwenden können. Die so erlangten Referenzen wirken sich positiv auf ihren Lebenslauf aus, sodass sie leichter einen neuen Arbeitsplatz finden, ihren aktuellen Arbeitsplatz behalten oder in ihrer Ausbildung vorankommen.

Das Konzept des lebenslangen Lernens hat heutzutage oberste Priorität. Aufgabengebiete und auch gesamte Arbeitsplatzkategorien verändern sich mittlerweile so schnell, dass auf lange Sicht nur wettbewerbsfähig und produktiv bleiben kann, wer seine Fähigkeiten und Kompetenzen ständig erweitert. Das Microsoft Official Academic Course-Lehrangebot ist auf die Vorbereitung zu den Microsoft-Zertifizierungsprüfungen ausgerichtet und bietet den Teilnehmern die Möglichkeit, Fähigkeiten und Wissen zu erwerben und effektiv aufzufrischen. Wiley als offizieller akademischer Verlag von Microsoft unterstützt die Kursteilnehmer durch die Entwicklung und den Vertrieb dieser Kurse.

Bildungsverlage müssen heutzutage qualitativ hochwertige Druckerzeugnisse und stabile elektronische Inhalte liefern. Durch den Zusammenschluss von Microsoft Official Academic Course-Produkten, WileyPLUS und Microsoft-Zertifizierungen sehen wir uns besser in der Lage, Kursteilnehmern wie Kursleitern effiziente Schulungslösungen anzubieten.

Bonnie Lieberman

General Manager und Senior Vice President

www.wiley.com/college/microsoft oder gebührenfreie MOAC-Rufnummer: 1+(888) 764-7001 (nur USA und Kanada).

|

v

Vorwort

Willkommen beim Microsoft Official Academic Course (MOAC)-Programm für Grundlagen der Softwareentwicklung. MOAC ist ein Zusammenschluss von Microsoft Learning und dem Verlag John Wiley & Sons, Inc. Microsoft stellt in Partnerschaft mit Wiley eine Reihe von Lehrbüchern bereit, die den Kursleitern überzeugende und innovative Unterrichtslösungen und den Kursteilnehmern hochwertige Lernerfahrungen bieten. Unsere Lehrbücher tragen die professionelle Handschrift der Microsoft-Entwickler und werden von einem Verlag herausgegeben, der weltweit für die didaktische Qualität seiner Produkte bekannt ist. Mit ihnen lässt sich in kurzer Zeit ein maximaler Wissenstransfer erzielen. Sie bieten den Kursteilnehmern viele Anregungen, damit sie ihr Potenzial mit ihren neu erworbenen technischen Fähigkeiten voll ausschöpfen und dieses produktiv in ihr Unternehmen einbringen können.

Da diese Wissensbasis aus dem Hause Microsoft stammt, den Entwicklern der Microsoft Certified Technology Specialist (MCTS)-, Microsoft Certified Professional (MCP)- und Microsoft Technology Associate (MTA)-Prüfungen (www.microsoft.com/learning/certification), können Sie sicher sein, dass immer die aktuellen Themen behandelt werden, die für Ihren persönlichen und beruflichen Erfolg maßgeblich sind. Durch die direkte Beteiligung von Microsoft entsprechen die Inhalte der MOAC-Lehrbücher immer dem aktuellen Stand. Sie werden damit bestmöglich auf die erfolgreiche Teilnahme an den Zertifizierungsprüfungen und auf Ihren beruflichen Erfolg vorbereitet.

Das Microsoft Official Academic Course-Programm

Die Microsoft Official Academic Course-Reihe bildet ein umfassendes Programm für Kursleiter und Institutionen, mit dem sich die Softwaretechnologien von Microsoft fundiert vermitteln lassen. Mit der MOAC-Reihe erkennen wir an, dass es aufgrund des technologischen Wandels und der raschen Folge, mit der Microsoft neue Studienplänen entwickelt, jenseits von Schulungsanleitungen noch einen weiteren Bedarf an Instrumenten gibt, die für das erfolgreiche Unterrichten eines Kurses von Belang sind. Das MOAC-Programm ist bestrebt, systematisch Lösungen für diese Bedürfnisse anzubieten. So kann sichergestellt werden, dass die Kurse für die Leiter und die Teilnehmer erfolgreich und lohnend sind. Dazu gehört die Vorbereitung der Kursleiter auf die technischen Aspekte und die Lehrpläne im Falle neuer Softwareversionen; die Software muss den Kursteilnehmern zur Erlangung praktischer Fertigkeiten sowie für Bewertungs- und Validierungszwecke zu Hause zur Verfügung gestellt werden; die Schulungsräume sind mit den für Unterricht und praktische Übungseinheiten erforderlichen Tools auszustatten. Das alles bietet das MOAC-Programm, weil es wichtig für den reibungslosen Ablauf von interessanten Microsoft-Softwareschulungen ist. Mit dem unten dargestellten Modell setzen wir einen Maßstab, mit dem wir sicherstellen, dass wir Sie als Kursleiter bei Ihrem Ziel – nämlich anschaulichen Unterricht zu bieten – nachhaltig unterstützen können. Bei Ihrer Suche nach geeigneten Unterrichtsmaterialien können Sie dieses Modell vielleicht zu Vergleichszwecken mit verfügbaren Schulungsprodukten verwenden:

vi

|

mit verfügbaren Schulungsprodukten verwenden: vi | www.wiley.com/college/microsoft oder gebührenfreie

www.wiley.com/college/microsoft oder gebührenfreie MOAC-Rufnummer: 1+(888) 764-7001 (nur USA und Kanada).

Illustrierte Führung durch das Lehrbuch

Didaktische Besonderheiten

Führung durch das Lehrbuch ■ Didaktische Besonderheiten Das MOAC-Lehrbuch für Grundlagen der Softwareentwicklung
Führung durch das Lehrbuch ■ Didaktische Besonderheiten Das MOAC-Lehrbuch für Grundlagen der Softwareentwicklung

Das MOAC-Lehrbuch für Grundlagen der Softwareentwicklung deckt alle Lernziele für die MTA-Prüfung 98-361 ab, diese werden als „Themen und Lernziele dieser Lektion“ bezeichnet. Die Microsoft Technology Associate (MTA)-Prüfungsziele werden im gesamten Lehrbuch hervorgehoben. Speziell für das Microsoft Official Academic Course-Programm wurden viele didaktische Besonderheiten entwickelt.

Die umfangreichen Verfahrensanweisungen und die technischen Konzepte, die sich durch das gesamte Lehrbuch erstrecken, geben sowohl den Kursteilnehmern als auch den Kursleitern wichtige Impulse. Die folgende illustrierte Führung durch das Lehrbuch macht den Leser mit der enormen Funktionsvielfalt vertraut, durch die sich Lehrpläne des Microsoft Official Academic Course-Programms auszeichnen. Im Folgenden finden Sie eine Liste der wichtigsten Funktionen der einzelnen Lektionen. Diese soll die Kursteilnehmer auf gelungene IT-Weiterbildungen und Zertifizierungsprüfungen sowie auf berufliche Erfolge vorbereiten:

• Jede Lektion beginnt mit einer Aufstellung der Themen und Lernziele der Lektion. Dies ist weitaus mehr als eine Standardliste. In den Themen und Lernzielen der jeweiligen Lektion werden die in der Lektion vermittelten Softwarekenntnisse den relevanten Prüfungszielen gegenübergestellt.

• Durch viele prägnante Schritt-für-Schritt-Anweisungen lernen die Kursteilnehmer neue Funktionen kennen, und sie erhalten die Gelegenheit zur Durchführung praktischer Übungen. Die nummerierten Schritte vermitteln ausführliche Informationen und helfen den Kursteilnehmern, die Software zu erlernen.

Illustrationen, darunter insbesondere Bildschirmabbildungen, bieten den Kursteilnehmer beim Bearbeiten der Übungen ein visuelles Feedback. Diese Abbildungen akzentuieren die Schlüsselkonzepte, bieten optische Hinweise zu den einzelnen Schritten und ermöglichen den Kursteilnehmern, ihre Fortschritte zu überprüfen.

• Listen der wichtigsten Begriffe bringen den Kursteilnehmern zu Beginn jeder Lektion den wichtigen technischen Wortschatz nahe. Später in der Lektion werden diese Begriffe in Fett- und Kursivschrift dargestellt und gleichzeitig definiert.

• Durch Hilfen für den Leser werden in allen Lektionen einschlägige Stellen gekennzeichnet. Sie informieren die Kursteilnehmer, warum ein Thema für sie relevant ist (Fazit) oder bieten hilfreiche Tipps (Hinweis). Hilfen für den Leser bieten auch zusätzliche relevante oder Hintergrundinformationen, die den Nutzen der Lektion erhöhen.

• Mit dem Zusatz Bereit für die Zertifizierung werden Textstellen gekennzeichnet, die ein bestimmtes Zertifizierungsziel behandeln. Er bietet den Kursteilnehmern die Möglichkeit, ihr Verständnis dieses bestimmten MTA-Ziels zu überprüfen und den betreffenden Abschnitt der Lektion gegebenenfalls noch einmal zu wiederholen. MOAC bereitet umfassend auf die MTA-Zertifizierung vor.

Fragen am Ende der Lektion: Der Wissenstest enthält eine Vielzahl von unterschiedlichen Fragetypen (Multiple-Choice- und Richtig/Falsch-Fragen, Zuordnungen und Lückentexte).

Übungen am Ende der Lektion: Durch Fallszenarien mit Wissens- und Kenntnistests sowie praxisorientierte und arbeitsbezogene Übungen können die Kursteilnehmer anhand von Projekten unter Beweis stellen, ob sie das Gelernte anwenden können.

www.wiley.com/college/microsoft oder gebührenfreie MOAC-Rufnummer: 1+(888) 764-7001 (nur USA und Kanada).

|

vii

viii

| Illustrierte Führung durch das Lehrbuch

Besonderheiten in den Lektionen

2 LEKTION Einführung in die objektorientierte Programmierung THEMEN UND LERNZIELE DIESER LEKTION
2
LEKTION
Einführung in die
objektorientierte
Programmierung
THEMEN
UND
LERNZIELE
DIESER
LEKTION
Fertigkeiten/Konzepte
MTA-Prüfungsziel
Nummer des
MTA-Prüfungsziels
Erläuterungen zu Objekten
Die Grundlagen von
Klassen verstehen
2.1
Erläuterungen zu Werten
und Verweisen
Computerspeicherung
und Datentypen verstehen
1.1
Erläuterungen zur Kapselung
Kapselung verstehen
2.4
Erläuterungen zur Vererbung
Vererbung verstehen
2.2
Erläuterungen zur Polymorphie
Polymorphie verstehen
2.3
Erläuterungen zu Schnittstellen
Kapselung verstehen
2.4
SCHLÜSSELBEGRIFFE
Zugriffsmodifizierer
Kapselung
Polymorphie
Accessoren
Ereignisse
Eigenschaften
Abstrakte Klassen
Vererbung
Verweistyp
Automatisch implementierte
Schnittstellen
Versiegelte Klassen
Eigenschaften
Methode
Signatur
Klasse
Namespace
Statische Zahlen
Konstruktoren
Objekte
Werttyp
Delegaten
Sie sind Softwareentwickler bei der Northwind Corporation. Sie arbeiten als Teil
eines Teams, das Computerprogramme entwickelt, die komplexe Geschäftsprobleme
lösen. Alle von Ihnen geschriebenen Programme müssen leicht zu verstehen und
über einen längeren Zeitraum zu verwalten sein. Daher müssen Sie Programme mit
Techniken entwickeln, die die Wiederverwendung von Code, die Erweiterbarkeit
und Zusammenarbeit fördern. Darüber hinaus sollten Sie Ihre Programme auf realen
Unternehmenskonzepten modellieren, wie z. B. Kunden, Produkten, Lieferanten und
Interaktionen zwischen ihnen, anstatt die Programme überwiegend als Listen von
Methoden zu betrachten.
32

Hilfe für den Leser vom Typ „Querverweis“

Einführung in das Programmieren | 9 X REF C# stellt mehrere integrierte Datentypen bereit, die
Einführung in das Programmieren | 9
X REF
C# stellt mehrere integrierte Datentypen bereit, die Sie in Ihren Programmen verwenden
können. Sie können auch neue Typen definieren, indem Sie eine Datenstruktur wie „class“
oder „struct“ definieren. Dieses Kapitel konzentriert sich auf einige der am häufigsten
verwendeten integrierten Datentypen.
Weitere Informationen
zum Erstellen eigener
Datentypen erhalten
Sie in Lektion 2.
Tabelle 1-3 listet mehrere häufig verwendete integrierte Datentypen auf, die in C#
verfügbar sind. Die in der Tabelle aufgeführten Größen gelten für einen Computer
mit einem 32-Bit-Betriebssystem wie Windows 7 (32-Bit-Version). Für ein
64-Bit-Betriebssystem wie Windows 7 (64-Bit-Version) gelten andere Größen.
Tabelle 1-3
Herkömmliche in C#
verwendete integrierte
Datentypen
Datentyp
Grösse
Wertebereich
byte
1 Byte
0 bis 255
char
2 Byte
U+0000 bis U+ffff (Unicode-Zeichen)
short
2 Byte
-32.768 bis 32.767
int
4 Byte
-2.147.483.648 bis 2.147.483.647
long
8 Byte
-9.223.372.036.854.775.808 bis
9.223.372.036.854.775.807
HINWEIS *
float
4 Byte
±1,5 × 10-45 bis ±3,4 × 1038
Die vorzeichenlosen
Versionen von short,
int und long sind
ushort, uint und ulong.
Die vorzeichenlosen
Typen haben die
gleiche Größe wie
die Versionen mit
Vorzeichen, speichern
aber mehr Bereiche an
nur positiven Werten.
double
8 Byte
±5,0e-324 bis ±1,7e308
bool
2 Byte
Wahr oder falsch
Zeichenkette
-
Null oder mehr Unicode-Zeichen
Alle Datentypen, die in Tabelle 1-3 aufgeführt sind, sind Werttypen mit Ausnahme
von „string“. String ist ein Verweistyp. Die Variablen, die direkt auf den Werttypen
basieren, enthalten den Wert. Bei einem Verweistyp enthält die Variable die Adresse
des Speicherbereichs, an dem die tatsächlichen Daten gespeichert werden. In Lektion 2
erfahren Sie mehr über die Unterschiede zwischen Wert- und Verweistypen.
ERLÄUTERUNGEN ZU ARRAYS
Ein Array ist eine Auflistung von Elementen, auf die mithilfe eines eindeutigen
Indexes zugegriffen werden kann.
Ein Array in C# wird häufig verwendet, um eine Auflistung von Elementen eines
ähnlichen Typs darzustellen. Der folgende Code zeigt ein Beispiel einer Array-Deklaration:
int[] numbers = { 1, 2, 3, 4, 5 };
Diese Deklaration erstellt ein Array, dass über die Namenszahlen identifiziert wird. Dieses
Array kann eine Auflistung von fünf Ganzzahlen speichern. Diese Deklaration initialisiert
auch die einzelnen Arrayelemente entsprechend durch die Zahlen 1 bis 5.
Auf jedes Arrayelement kann mithilfe eines Indexes direkt zugegriffen werden. In .NET
Framework sind Arrayindizes nullbasiert. Das bedeutet, dass Sie für den Zugriff auf das erste
Element Index 1 verwenden, für den Zugriff auf das zweite Element Index 2 und so weiter.
Für den Zugriff auf ein einzelnes Arrayelement verwenden Sie den Namen des Arrays,
auf den der in eckige Klammen eingeschlossene Index folgt. So gibt beispielsweise
numbers[0] einen Wert 1 aus dem oben deklarierten Array zurück und numbers[4]
den Wert 5. Außerhalb seiner definierten Grenzen darf nicht auf ein Array zugegriffen

Themen und Lernziele dieser Lektion

Schlüssel-

begriffe

Informative

Diagramme

Einführung in das Programmieren | 3 Einführung in das Programmieren | 3 Abbildung 1-1 zeigt
Einführung in das Programmieren | 3
Einführung in das Programmieren | 3
Abbildung 1-1 zeigt beispielsweise ein Flussdiagramm, bei dem zwei Zahlen eingegeben
und miteinander verglichen werden. Anschließend wird die größere Zahl ausgegeben.
Abbildung 1-1
START
Ein einfaches Flussdiagramm,
das zwei Zahlen vergleicht
und die größere der beiden
ausgibt
Eingabe x
Eingabe y
Nein
x > y ?
Ausgabe y
Ja
Ausgabe x
STOPP
Wie Sie sehen führt dieses Flussdiagramm alle erforderlichen Schritte zum Ausführen der
Operation in korrekter Reihenfolge auf. Die Ablaufsteuerung beginnt mit dem Startsymbol
und endet mit dem Stoppsymbol. Die Symbole für die Ein- und Ausgabe sowie für die
Verarbeitung verfügen immer über einen einzelnen Einstiegs- und Ausstiegspunkt. Im
Gegensatz dazu findet sich beim Entscheidungssymbol ein Einstiegspunkt aber mehrere
Ausstiegspunkte. Sie können ein Flussdiagramm testen, indem Sie einen Probelauf
durchführen. Bei einem solchen Probelauf durchlaufen Sie manuell die Schritte des
Flussdiagrams mit Testdaten, um festzustellen, ob die richtigen Pfade eingehalten werden.
EINFÜHRUNG IN ENTSCHEIDUNGSTABELLEN
Enthält ein Algorithmus viele Bedingungen, lässt sich der Algorithmus besser durch
Entscheidungstabellen darstellen, da dieses Format kompakter und besser lesbar ist.
Tabelle 1-2 zeigt eine Entscheidungstabelle zur Berechnung eines Rabatts. Diese Tabelle
generiert einen Rabatt in Prozent in Abhängigkeit der Menge der gekauften Produkte.
Die dicken Linien in der Entscheidungstabelle unterteilten die Tabelle in vier Quadranten.
Der erste Quadrant (oben links) gibt die Bedingungen („Menge < 10,“ usw.) an. Der
zweite Quadrant (oben rechts) legt die Regeln fest. Die Regeln stellen die möglichen
Kombinationen der Ergebnisse der einzelnen Bedingungen dar. Der dritte Quadrant (unten
links) gibt die Aktion (in diesem Fall „Rabatt“) an, und der letzte Quadrant (unten rechts)
gibt die Aktionen an, die den einzelnen Regeln entsprechen.

www.wiley.com/college/microsoft oder gebührenfreie MOAC-Rufnummer: 1+(888) 764-7001 (nur USA und Kanada).

Illustrierte Führung durch das Lehrbuch | ix

44 | Lektion 2 2. Ändern Sie den Code der Program-Klasse wie folgt: class Program
44
|
Lektion 2
2.
Ändern Sie den Code der Program-Klasse wie folgt:
class Program
{
static void Main(string[] args)
{
Rectangle rect = new Rectangle
{ Length = 10.0, Width = 20.0 };
Console.WriteLine(“Shape Name: {0}, Area: {1}”,
Rectangle.ShapeName,
rect.GetArea());
}
}
3. Wählen Sie Debuggen > Starten ohne Debuggen aus. Ein Konsolenfenster wird
geöffnet, und der Name und die Fläche des Shapes werden angezeigt.
4. SPEICHERN Sie das Projekt.
PAUSE. Lassen Sie das Projekt zur Verwendung in der nächsten Übung geöffnet.
Wenn die Instanz einer Klasse erstellt wird, wird für jedes Instanzenfeld eine separate
Kopie erstellt. Es wird doch nur eine Kopie eines statischen Felds von allen Instanzen
freigegeben.
BEREIT FÜR DIE
ZERTIFIZIERUNG
Verstehen Sie die
Grundlagen von
Auf einen statischen Member kann von einem Instanzenobjekt nicht verwiesen
werden. Stattdessen wird über den Klassennamen (wie „Rectangle.ShapeName“
in der obigen Übung) auf einen statischen Member verwiesen. Es ist nicht möglich, den
this-Schlüsselwortverweis mit einer statischen Methode oder Eigenschaft zu verwenden, da
Klassen?
2.1
das this-Schlüsselwort nur für den Zugriff auf Instanzenobjekte verwendet werden kann.
Erläuterungen zu Werten und Verweisen
Ein Werttyp speichert einen Wert direkt, während ein Verweistyp nur einen Verweis auf
einen tatsächlichen Wert speichert.
FAZIT
Ein Werttyp speichert Daten direkt in dem Arbeitsspeicher. Verweistypen speichern
dagegen nur einen Verweis auf einen Speicherbereich. Hier sind die tatsächlichen
Daten im Speicherbereich gespeichert, auf den verwiesen wird. Die meisten integrierten
grundlegenden Datentypen (wie „bool“, „int“, „char“, „double“ usw.) sind Werttypen.
Benutzerdefinierte Datentypen, die mit dem Schlüsselwort „struct“ erstellt werden, sind
auch Werttypen. Verweistypen umfassen die Typen, die mithilfe der Schlüsselwörter
„object“, „string“, „interface“, „delegate“ und „class“ erstellt werden.
Grundlegendes zu Strukturen
Das Schlüsselwort struct wird verwendet, um benutzerdefinierte Typen zu erstellen,
die aus kleinen Gruppen von verwandten Feldern bestehen. Strukturen sind
Werttypen – im Gegensatz zu Klassen, die Verweistypen sind.
Strukturen werden mit dem Schlüsselwort „struct“ folgendermaßen definiert:
public struct Point
{
public double X, Y;
}
Strukturen können die meisten Elemente enthalten, die Klassen enthalten können. Dazu
gehören Konstruktoren, Methoden, Eigenschaften usw. Wie Sie im nächsten Abschnitt
Allgemeine Grundlagen der Softwareentwicklung | 77 Bei BubbleSort werden zwei Elemente verglichen, um zu prüfen,
Allgemeine Grundlagen der Softwareentwicklung | 77
Bei BubbleSort werden zwei Elemente verglichen, um zu prüfen, ob sie sich in der
richtigen Reihenfolge befinden. Wenn dies nicht der Fall ist, werden sie getauscht. Der
Algorithmus fährt damit so lange fort, bis die gesamte Liste die gewünschte Reihenfolge
aufweist. Der Name „BubbleSort“ leitet sich von der Funktionsweise des Algorithmus ab:
Während der Algorithmus ausgeführt wird, steigen die kleineren Elemente wie Blasen im
Wasser immer weiter nach oben, das heißt, an den Anfang der Liste.
Visualisieren wir BubbleSort nun mithilfe eines Beispiels. Angenommen, Sie möchten alle
Elemente in der folgenden Liste in aufsteigender Reihenfolge anordnen: (20, 30, 10, 40). Diese
Elemente sollten vom kleinsten zum größten sortiert werden. Der BubbleSort-Algorithmus
versucht, diese Aufgabe in einem oder mehreren Durchläufen zu lösen, wobei die Liste der
Elemente in jedem Durchlauf vollständig überprüft wird. Wenn der Algorithmus Elemente
erkennt, die sich nicht in der richtigen Reihenfolge befinden, werden sie getauscht. Der
Algorithmus wird beendet, wenn die gesamte Liste überprüft wurde, ohne dass Elemente
getauscht wurden. Wenn keine Elemente getauscht wurden, bedeutet dies, dass sie sich in
der richtigen Reihenfolge befinden und die Liste vollständig sortiert wurde.
Tabelle 3-1
Erster Durchlauf mit
BubbleSort
Schritt Vorher
Nachher
Kommentare
1 20, 30, 10, 40
20, 30, 10, 40
Der Algorithmus vergleicht die ersten
zwei Elemente (20 und 30). Da sie sich
in der richtigen Reihenfolge befinden,
müssen sie nicht getauscht werden.
2 20, 10, 30, 40
20, 30, 10, 40
Der Algorithmus vergleicht die nächsten
zwei Elemente (30 und 10). Da sie
sich nicht in der richtigen Reihenfolge
befinden, werden sie getauscht.
3 20, 10, 30, 40
20, 10, 30, 40
Der Algorithmus vergleicht die nächsten
zwei Elemente (30 und 40). Da sie sich
in der richtigen Reihenfolge befinden,
müssen sie nicht getauscht werden.
Wie in Tabelle 3-1 ersichtlich ist, wurde vom BubbleSort-Algorithmus am Ende des ersten
Durchlaufs ein Tausch vorgenommen, und es ist möglich, dass die Elemente nicht noch
richtig sortiert sind. Daher führt BubbleSort einen weiteren Durchlauf für die Liste durch
(siehe Tabelle 3-2).
Tabelle 3-2
Zweiter Durchlauf mit
BubbleSort
Schritt Vorher
Nachher
Kommentare
1 10, 20, 30, 40
20, 10, 30, 40
Der Algorithmus vergleicht die ersten
zwei Elemente (20 und 10). Da sie
sich nicht in der richtigen Reihenfolge
befinden, werden sie getauscht.
2 10, 20, 30, 40
10, 20, 30, 40
Der Algorithmus vergleicht die nächsten
zwei Elemente (20 und 30). Da sie sich
in der richtigen Reihenfolge befinden,
müssen sie nicht getauscht werden.
3 10, 20, 30, 40
10, 20, 30, 40
Der Algorithmus vergleicht die nächsten
zwei Elemente (30 und 40). Da sie sich
in der richtigen Reihenfolge befinden,
müssen sie nicht getauscht werden.
Hilfe für den Leser vom Typ „Fazit“ 4 | Lektion 1 Tabelle 1-2 Menge <
Hilfe für den Leser vom Typ „Fazit“
4
| Lektion 1
Tabelle 1-2
Menge < 10
J
N
N
N
Eine Entscheidungstabelle
zur Berechnung von
Rabatten
Menge < 50
J
J
N
N
Menge < 100
J
J
J
N
Rabatt
 5 %
 10 %
 15 %
 20 %
Um herauszufinden, welche Aktion angewendet werden soll, müssen Sie die einzelnen
Bedingungen evaluieren, um die passende Regel zu finden und anschließend die Aktion
wählen, die in der Spalte mit der passenden Regel angegeben ist. Ist der Wert für „Menge“
in den Testdaten beispielsweise 75, ist das Ergebnis der ersten Regel „Nein“, das Ergebnis
der zweiten Regel ebenfalls und das Ergebnis der dritten Regel „Ja“. Deshalb wählen Sie
die Aktion aus der Spalte (N, N und J), wodurch der Rabatt auf 15 % festgelegt wird.
Einführung in C#
C# ist eine beliebte höhere Programmiersprache, mit der Sie
Computerprogramme in einem lesbaren Format schreiben können. C# ist ein
Teil von .NET Framework und profitiert von der Laufzeitunterstützung und den
Klassenbibliotheken, die von .Framework bereitgestellt werden.
Wie im vorherigen Abschnitt beschrieben, benötigen Computer genaue und vollständige
Anweisungen, um eine Aufgabe auszuführen. Diese Ansammlungen von Anweisungen
werden Computerprogramme oder einfach nur Programme genannt.
Ganz vereinfacht ausgedrückt nutzen Computer das Binärsystem zur Darstellung von
Informationen und Code. In diesem System wird jeder Wert lediglich durch die beiden
Symbole 0 und 1 dargestellt. Ein Computerprogramm, das unter Verwendung des
Binärsystems geschrieben wurde, wird als Binärcode bezeichnet.
Das Programmieren eines Computers mithilfe von Binärcode ist für nicht triviale
Aufgaben sehr schwierig. Deshalb haben Wissenschaftler und Computertechniker mehrere
Abstraktionsebenen zwischen Mensch und Computer errichtet. Diese Abstraktionen
enthalten Software (z. B. Betriebssysteme, Compiler und verschiedenen Laufzeitsysteme),
die dafür verantwortlich ist, ein (visuell) lesbares Programm in ein maschinenlesbares
Programm zu übersetzen.
Die meisten modernen Programme werden in einer höheren Programmiersprache
wie C#, Visual Basic oder Java geschrieben. Mit diesen Sprachen können Sie
präzise Anweisungen in visuell lesbarer Form schreiben. Anschließend übersetzt ein
Sprachcompiler die höhere Programmiersprache in eine niedrige Programmiersprache,
die vom Laufzeitausführungssystem verarbeitet werden kann.
Jede Programmiersprache stellt einen eigenen Satz an Vokabeln und Grammatik
(auch bekannt als Syntax) bereit. In diesem Kurs erfahren Sie, wie Sie mit der
C#-Programmiersprache in .NET Framework
programmieren.
.NET Framework stellt eine
Ausführungsumgebung für die Laufzeit für das C#-Programm bereit. Das Framework enthält
darüber hinaus Klassenbibliotheken, die eine Menge an wiederverwendbaren Kernfunktionen
zur Verfügung stellen, die Sie direkt in Ihrem C#-Programm verwenden können.
✚ WEITERE
INFORMATIONEN
.NET Framework stellt drei Hauptkomponenten zur Verfügung: eine Umgebung für die Laufzeitausführung,
einen Satz von Klassenbibliotheken, der viele wiederverwendbare Funktionen bereitstellt und einen
Sprachcompiler für C#, Visual Basic und verwaltetem
C++.
.NET Framework unterstützt mehrere
Übersichtliche
Programmiersprachen sowie das Hinzufügen zusätzlicher Sprachen zum System. Obwohl die Syntax
und das Vokabular der einzelnen Sprachen unterschiedlich sein können, kann jede Sprache die vom
Framework bereitgestellten Basisklassenbibliotheken verwenden.
Tabellen

Hilfe für den Leser vom Typ „Weitere Informationen“

www.wiley.com/college/microsoft www.wiley.com/college/microsoft oder oder

gebührenfreie gebührenfreie MOAC-Rufnummer: MOAC-Rufnummer: 1+(888) 1+(888) 764-7001 764-7001 (nur (nur USA USA und und Kanada) Kanada)

xx

|| LessonIllustrierte1

Führung durch das Lehrbuch

68 | Lektion 3 Grundlegendes zu Softwaretests Bei Softwaretests wird überprüft, ob die Implementierung den
68
| Lektion 3
Grundlegendes zu Softwaretests
Bei Softwaretests wird überprüft, ob die Implementierung den Anforderungen des
Systems entspricht.
In der Softwaretestphase wird die Qualität des Endprodukts sichergestellt. Es werden
mögliche Diskrepanzen zwischen den im Anforderungsdokument beschriebenen
Erwartungen und dem tatsächlichen Verhalten identifiziert.
Die Tester zählen zu den wichtigsten Mitarbeitern in der Softwaretestphase. Sie
überprüfen die funktionierende Anwendung, um sicherzustellen, dass sie die festgelegten
Anforderungen erfüllt. Wenn diese Tester Fehler in der Anwendung erkennen, weisen
sie den jeweiligen Fehler dem Mitarbeiter zu, der ihn am besten beheben kann.
Beispielsweise wird ein Codefehler wieder einem Entwickler zugewiesen, damit er den
Fehler beheben kann.
Grundlegendes zur Releaseverwaltung
Die Releaseverwaltung dient dazu, die Installation, Bereitstellung und Unterstützung
der Softwareversionen zu verwalten.
Die Releaseverwaltung umfasst Aktivitäten wie Verpacken und Bereitstellen der Software,
Verwalten von Softwarefehlern und Verwalten von Softwareänderungsanforderungen.
In der Phase der Releaseverwaltung spielen die folgenden Personen die wichtigste Rolle:
• Releasemanager: Der Releasemanager koordiniert verschiedene Teams und
Geschäftseinheiten, um die zeitgerechte Veröffentlichung eines Softwareprodukts
zu gewährleisten.
• Bedienungspersonal: Diese Mitarbeiter stellen sicher, dass das System wie zugesagt
geliefert wird. Diese Aktivität könnte zum Beispiel folgende Aufgaben umfassen:
BEREIT FÜR DIE
ZERTIFIZIERUNG
Verstehen Sie die
Brennen von DVDs und ihr Versand bei Bestellungseingang oder die fortlaufende
Unterhaltung eines SaaS (Software as a Service)-Systems. Das Bedienungspersonal
ist auch für die Veröffentlichung von Systemupdates (z. B. Fehlerkorrekturen oder
neue Funktionen) verantwortlich.
Anwendungslebenszyklus-
Verwaltung und ihre
Aktivitäten?
Mitarbeiter des technischen Supports: Diese Mitarbeiter interagieren mit den
Kunden und geben ihnen Hilfestellung bei der Behebung von Problemen mit ihrem
3.1
System. Der technische Support kann nützliche Metriken dazu erstellen, welche
Bereiche des Systems für Benutzer am schwierigsten sind und möglicherweise
in der nächsten Version der Anwendung aktualisiert werden müssen.
■ Grundlegendes zu Softwaretests
FAZIT
Bei Softwaretests wird die Software im Hinblick auf die festgelegten Anforderungen
geprüft. Die Tests werden nach Abschluss der meisten Entwicklungsarbeiten
durchgeführt.
Wie bereits erwähnt, wird bei Softwaretests überprüft, ob eine Softwareanwendung
erwartungsgemäß funktioniert und alle geschäftlichen und technischen Anforderungen
erfüllt. Wenn das erwartete Verhalten vom tatsächlichen Verhalten des Systems abweicht,
wird ein Softwarefehler protokolliert und schließlich an eine Person weitergeleitet, die für
dessen Behebung verantwortlich ist.
Softwaretests können funktionale und nicht funktionale Tests umfassen. Funktionale
Tests beziehen sich auf die Funktionsanforderungen des Systems. Hierbei werden die

Hinweis „Bereit für die Zertifizierung“

Hilfe für den Leser vom Typ „Hinweis“

Einführung in das Programmieren | 7 Abbildung 1-3 Programmauflistung mit Zeilennummern Ein C#-Programm besteht aus
Einführung in das Programmieren | 7
Abbildung 1-3
Programmauflistung mit
Zeilennummern
Ein C#-Programm besteht aus mindestens einer Klasse. Eine Klasse ist eine Sammlung
von Daten und Methoden. So definiert beispielsweise der Code aus Abbildung 1-3
eine einzelne Klasse namens „Program“ bestehend aus den Zeilen fünf bis elf. Eine
Klasse wird mittels des Schlüsselworts „class“, gefolgt vom Klassennamen, definiert.
Der Inhalt einer Klasse wird zwischen einer öffnenden geschweiften Klammer ({) und
X REF
einer schließenden geschweiften Klammer (}) definiert.
Weitere Informationen
zu Klassen erhalten Sie
in Lektion 2.
Zeile 3 des Codes aus Abbildung 1-3 definiert einen Namespace namens Lesson01.
Namespaces werden verwendet, um Klassen zu organisieren und eindeutig zu identifizieren.
Der Namespace und die Klassennamen bilden zusammen einen vollqualifizierten
Klassennamen. Der vollqualifizierte Klassenname der Program-Klasse lautet beispielsweise
„Lesson01.Program“. C# erfordert, dass der vollqualifizierte Name einer Klasse eindeutig
ist. Infolgedessen ist eine weitere Klasse mit Namen „Program“ im Namespace „Lesson01“
nicht möglich, dafür eine Klasse namens „Program“ in einem anderen Namespace,
beispielsweise „Lesson02“, schon. Hier ist die im Namespace „Lesson02“ definierte
Klasse „Program“ eindeutig über den vollqualifizierten Klassennamen „Lesson02.
Program“ identifizierbar.
Von .NET Framework wird eine Vielzahl an nützlichen Klassen bereitgestellt, die
in viele Namespaces eingeordnet sind. Der System-Namespace enthält einige der am
X REF
Weitere Informationen
zu Methoden erhalten
Sie in Lektion 2.
häufigsten verwendeten Basisklassen. Eine solche Klasse im System-Namespace ist die
Console-Klasse. Die Console-Klasse bietet Funktionen für die Ein-und Ausgabe von
Daten in die Konsolenanwendung. Zeile 9 des Codes aus Abbildung 1-3 bezieht sich auf
die Console-Klasse und ruft dessen WriteLine-Methode auf. Für einen eindeutigen Zugriff
auf die WriteLine-Methode müssen Sie den Code in etwa wie folgt schreiben:
System.Console.WriteLine ("Hallo Welt!");
HINWEIS *
Jeder C#-Anweisung
muss mit einem
Semikolon (;)
abgeschlossen werden.
Klassennamen tauchen des Öfteren im Code auf. Dann jedes Mal den vollqualifizierten
Klassennamen schreiben zu müssen, ist mühsam und macht das Programm
unübersichtlich. Zu Lösung des Problems können Sie die C#-Direktive using einsetzen
(siehe Code in Zeile 1, Abbildung 1-3). Mit der using-Direktive können Sie Klassen auch
ohne vollqualifizierten Namen in einem Namespace verwenden.
Die Program-Klasse definiert eine einzelne Methode über den Namen „Main“ (siehe Zeile
7 bis 10 des Code in Abbildung 1-3). „Main“ ist eine besondere Methode, da sie auch
als Einstiegspunkt in ein Programm dient. Wenn die Laufzeit ein Programm ausführt,

Bildschirm-

abbildungen

Schrittweise Übungen

46 | Lektion 2 wird von der Laufzeit festgestellt, dass die Inhalte nicht in der
46
| Lektion 2
wird von der Laufzeit festgestellt, dass die Inhalte nicht in der Variablen, sondern im
Speicherbereich gespeichert werden, auf den die Variable verweist.
KOPIEREN VON WERT- UND VERWEISTYPEN
VERWENDEN Sie das Projekt, das Sie in der vorherigen Übung gespeichert haben, um die
folgenden Schritte auszuführen:
1. Fügen Sie den folgenden Code nach der Rectangle-Klassendefinition hinzu, um eine
Point-Struktur zu erstellen:
struct Point
{
HINWEIS *
public double X, Y;
Es ist möglich, eine
Struktur zu erstellen,
ohne den new-Operator
zu verwenden. Sie
können einfach mit
Point p1; eine Variable
des struct-Typs
erstellen.
}
2. Ändern Sie den Code der Main-Methode folgendermaßen:
static void Main(string[] args)
{
HINWEIS *
Wenn Sie die Variable
eines Verweistyps in
eine andere Variable
des gleichen Typs
kopieren, werden nur
die Verweise kopiert.
Als Folge verweisen
beide Variablen nach
dem Kopiervorgang auf
das gleiche Objekt.
Point p1 = new Point();
p1.X = 10;
p1.Y = 20;
Point p2 = p1;
p2.X = 100;
Console.WriteLine(“p1.X = {0}”, p1.X);
Rectangle rect1 = new Rectangle
{ Length = 10.0, Width = 20.0 };
Rectangle rect2 = rect1;
rect2.Length = 100.0;
Console.WriteLine(“rect1.Length = {0}”,
rect1.Length);
}
3. Wählen Sie Debuggen > Starten ohne Debuggen aus. Ein Konsolenfenster wird
geöffnet und zeigt die Werte für „p1.X“ und „rect1.Length“ an.
4. SPEICHERN Sie das Projekt.
PAUSE. Lassen Sie das Projekt zur Verwendung in der nächsten Übung geöffnet.
Hier erstellt der erste Teil des Programms eine Kopie des Werttyps „Point“, und der
zweite Teil erstellt eine Kopie des Verweistyps „Rectangle“.
Analysieren wir zunächst, wie die Kopie eines Werttyps erstellt wird. Wenn die folgende
Anweisung ausgeführt wird, wird eine neue Variable „p2“ im Arbeitsspeicher erstellt, und
der Inhalt wird aus der Variablen „p1“ kopiert:
Point p2 = p1;
Nachdem diese Anweisung ausgeführt wurde, wird die Variable „p2“ erstellt, und der
Inhalt von Variable „p1“ wird in Variable „p2“ kopiert. „p1“ und „p2“ besitzen eigene
Wertesätze in den jeweiligen Speicherbereichen. Wenn folglich die folgende Anweisung
ausgeführt wird:
p2.X = 100;
wirkt sich dies nur auf den Wert „X“ aus, der dem Speicherbereich der Variablen „p2“
entspricht. Der Wert „X“ für die Variable „p1“ bleibt unberührt.

www.wiley.com/college/microsoft oder gebührenfreie MOAC-Rufnummer: 1+(888) 764-7001 (nur USA und Kanada)

Illustrierte Führung durch das Lehrbuch | xi

Allgemeine Grundlagen der Softwareentwicklung | 69

Funktionen getestet, die die Basisfunktionalität des Systems ausmachen. Beispielsweise werden Tests durchgeführt, ob Benutzer Waren zu einem Warenkorb hinzufügen können. Diese Tests sind wichtige Funktionstests für eine E-Commerce-Website. Im Vergleich dazu beinhalten nicht funktionale Tests das Testen von Softwareattributen, die nicht zur Basisfunktionalität gehören, sondern vielmehr zu den nicht funktionalen Anforderungen der Software, wie Skalierbarkeit, Benutzerfreundlichkeit und Sicherheit.

Es gilt zu beachten, dass in der Softwaretestphase nur Fehler gefunden werden können,

aber es kann nicht garantiert werden, dass keine Fehler vorliegen. Komplexe Software

HINWEIS *

dass keine Fehler vorliegen. Komplexe Software HINWEIS * verfügt über eine sehr große Anzahl von möglichen
verfügt über eine sehr große Anzahl von möglichen Ausführungspfaden und viele Parameter, die das Verhalten

verfügt über eine sehr große Anzahl von möglichen Ausführungspfaden und viele Parameter, die das Verhalten beeinflussen können. Es ist nicht realisierbar und häufig auch nicht möglich, alle verschiedenen Situationen, auf die eine solche Software trifft, in einer Produktionsumgebung zu testen.

Grundlegendes zu Testmethoden

Softwaretestmethoden werden im Allgemeinen in zwei Kategorien unterteilt:

White-Box- und Black-Box-Tests.

Traditionell gibt es zwei umfassende Methoden für Softwaretests:

Black-Box-Test

White-Box-Test

Bei Black-Box-Tests wird die Software als „Black Box“ behandelt und der Schwerpunkt auf Eingaben und Ausgaben gelegt. Bei dieser Testmethode werden keine Kenntnisse über die innere Funktionsweise des zu testenden Systems angewendet. Im Gegensatz dazu nutzen die Tester bei White-Box-Tests ihre Kenntnisse über die innere Funktionsweise des zu testenden Systems. Beispielsweise haben die Tester bei White-Box-Tests Zugriff auf den Quellcode.

Diese zwei Testmethoden ergänzen sich. Mit Black-Box-Tests wird in der Regel sichergestellt, dass eine Softwareanwendung alle festgelegten Anforderungen erfüllt. Mit White-Box-Tests wird dagegen sichergestellt, dass für jede Methode oder Funktion entsprechende Testfälle verfügbar sind.

Grundlegendes zu Teststufen

Die Tests werden in verschiedenen Lebenszyklusphasen der Anwendungsentwicklung durchgeführt. Verschiedene Teststufen geben an, welche Tests in welcher Phase im Lebenszyklus durchgeführt werden.

Teststufen werden dadurch definiert, in welcher Phase im Softwareentwicklungslebenszyklus die Tests durchgeführt werden. Es gibt fünf verschiedene Teststufen:

Komponententest: Bei Komponententests wird die Funktionalität einer Codeeinheit

überprüft. Beispielsweise kann bei einem Komponententest bewertet werden, ob eine Methode den richtigen Wert zurückgibt. Ein Komponententest ist ein White-Box-Test und wird häufig von dem Entwickler durchgeführt, der den Code schreibt. Bei Komponententests wird häufig ein automatisiertes Tool verwendet, das die Entwicklung von Fällen vereinfachen und auch nachverfolgen kann, ob eine Codeänderung zu einem Fehlschlagen von vorhandenen Komponententests führt. Visual Studio verfügt über integrierte Unterstützung für Komponententests. Sie können Open Source-Tools wie NUnit auch zum Automatisieren von Komponententests für den .NET Framework-Code verwenden.

Integrationstest: Bei Integrationstests wird die Schnittstelle zwischen den

Softwarekomponenten geprüft. Integrationstests können während der Entwicklung

wird die Schnittstelle zwischen den Softwarekomponenten geprüft. Integrationstests können während der Entwicklung
64 | Lektion 2 ■ Kompetenztest Szenario 2-1: Erstellen von Eigenschaften Sie müssen eine Klasse
64
| Lektion 2
■ Kompetenztest
Szenario 2-1: Erstellen von Eigenschaften
Sie müssen eine Klasse namens „Product“ erstellen, die ein Produkt darstellt. Die Klasse
hat eine einzige Eigenschaft namens „Name“. Benutzer der Product-Klasse sollen den Wert
der Name-Eigenschaft abrufen und festlegen können. Allerdings soll jeder Versuch, den
Wert von „Name“ auf eine leere Zeichenfolge oder auf einen Nullwert festzulegen, eine
Ausnahme auslösen. Außerdem sollen die Benutzer der Product-Klasse auf keine anderen
Datenmember der Product-Klasse zugreifen können. Wie erstellen Sie so eine Klasse?
Szenario 2-2: Erstellen einer Struktur
Sie entwickeln ein Spiel, in dem der Standort eines Ziels im dreidimensionalen Raum
dargestellt werden muss. Der Standort wird mithilfe von drei ganzzahligen Werten
identifiziert, die als x, y und z bezeichnet werden. Sie erstellen tausende dieser Strukturen
im Programm, und Sie benötigen eine leichte, effiziente Möglichkeit zur Speicherung dieser
Daten im Arbeitsspeicher. Außerdem ist es unwahrscheinlich, dass Sie andere Typen aus
diesem Standorttyp vererben müssen. Wie müssen Sie den Standort im Programm darstellen?
■ Kenntnistest
Szenario 2-1: Überschreiben der ToString-Methode
Angenommen, Sie schreiben Code für eine Product-Klasse. Die Product-Klasse enthält
den Namen und den Preis eines Produkts. Sie müssen die Methode „ToString“ der
Basisklasse („System.Object“) überschreiben, um dem aufrufenden Code Informationen
über die Objekte der Product-Klasse bereitstellen zu können. Welchen Code müssen Sie
für die Product-Klasse schreiben, damit diese Anforderung erfüllt wird?
Szenario 2-2: Erstellen und Behandeln von Ereignissen
Stellen Sie sich vor, Sie schreiben Code zur Erstellung und Behandlung von Ausnahmen
in Ihrem Programm. Die Klasse „SampleClass“ muss die folgende Schnittstelle
implementieren:
public delegate void SampleDelegate();
public interface ISampleEvents
{
event SampleDelegate SampleEvent;
void Invoke();
}
Sie müssen Code für „SampleClass“ und für eine Testmethode schreiben, die eine Instanz
von „SampleClass“ erstellt und das Ereignis aufruft. Welchen Code müssen Sie schreiben?

Hilfe für den Leser vom Typ „Hinweis“

Zusammenfassung der vermittelten Kenntnisse

Grundlegendes zu Datenbanken | 173 ZUSAMMENFASSUNG DER VERMITTELTEN KENNTNISSE In dieser Lektion haben Sie Folgendes
Grundlegendes zu Datenbanken | 173
ZUSAMMENFASSUNG DER VERMITTELTEN KENNTNISSE
In dieser Lektion haben Sie Folgendes gelernt:
In einer relationalen Datenbank werden Informationen in Tabellen organisiert. Eine
Tabelle ist eine Liste mit Zeilen und Spalten.
• Das Entwerfen relationaler Datenbanken ist der Prozess zur Bestimmung der
passenden relationalen Datenbankstruktur, mit der die Geschäftsanforderungen
erfüllt werden können.
• Entitätsbeziehungsdiagramme werden zur Modellierung von Entitäten, deren
Attributen und den Beziehungen zwischen Entitäten verwendet. Mithilfe der
Entitätsbeziehungsdiagramme können Sie bestimmen, welche Daten in einer
Datenbank gespeichert werden müssen.
• Der Datennormalisierungsprozess stellt sicher, dass ein Datenbankentwurf keine
Fehler enthält, die zum Verlust der Datenintegrität führen können. Die meisten
Entwurfsprobleme können gelöst werden, indem sichergestellt wird, dass die
Tabellen die Anforderungen der dritten Normalform erfüllen.
• Structured Query Language (SQL) enthält Anweisungen wie z. B. SELECT, INSERT,
UPDATE und DELETE, um mit relationalen Daten zu arbeiten.
• Eine gespeicherte Prozedur besteht aus einer Anzahl von SQL-Anweisungen,
die in einer Datenbank gespeichert sind. Gespeicherte Prozeduren können
von mehreren Anwendungen verwendet werden.
• Die XmlReader-Klasse und die XmlWriter-Klasse bieten eine schnelle, Vorwärtsmethode
zum Lesen oder Schreiben von XML-Daten ohne Zwischenspeicherung. Die
XmlDocument-Klasse ist eine In-Memory-Darstellung von XML-Daten und ermöglicht
die Navigation im XML-Dokument und dessen Bearbeitung.
• Die DataSet-Klasse stellt eine In-Memory-Darstellung von relationalen Daten dar.
Die DataAdapter-Klasse fungiert als Brücke zwischen Datenquelle und DataSet.
Der DataAdapter speichert die Datenverbindung und die Datenbefehle zum
Herstellen einer Verbindung mit der Datenquelle.
Wissenstest
■ Wissenstest
Lückentext
Ergänzen Sie die Lücken der folgenden Sätze mit dem richtigen Wort oder den richtigen Wörtern.
1. Eine Tabelle in der
derselben Datenreihe enthalten.
darf in keiner Spalte mehrere Werte in
2. In der
müssen alle Nichtschlüsselspalten funktional vom
gesamten Primärschlüssel abhängig sein.
3. In der
darf keine funktionale Abhängigkeit zwischen
Nichtschlüsselattributen bestehen.
4. Die grundlegenden Entwurfsblöcke in einem Entitätsbeziehungsdiagramm sind
,
und
5. Die
-Klausel
in einer SELECT-Anweisung überprüft jede Zeile
auf eine Bedingung und entscheidet über die Aufnahme in das Resultset.
6. Das mit der using-Anweisung verwendete Objekt muss die Schnittstelle
implementieren.
7. Die
-Anweisung
aus T-SQL kann zur Erstellung einer
gespeicherten Prozedur verwendet werden.
Fallszenarien

www.wiley.com/college/microsoft oder gebührenfreie MOAC-Rufnummer: 1+(888) 764-7001 (nur USA und Kanada)

In diesem Buch verwendete Hervorhebungen und Konventionen

In diesem Buch werden wichtige Informationen und spezielle Schritte durch bestimmte Schriftarten, Symbole und Überschriftskonventionen hervorgehoben. Weitere Informationen zu den Hervorhebungen in den Lektionen finden Sie im Abschnitt „Illustrierte Führung durch das Lehrbuch“.

xii

|

FAZIT BEREIT FÜR DIE ZERTIFIZIERUNG HINWEIS* * X REF Alt + Tab Beispiel
FAZIT
BEREIT FÜR DIE ZERTIFIZIERUNG
HINWEIS* *
X REF
Alt
+
Tab
Beispiel
Bedeutung Kurze Zusammenfassung der Inhalte des folgenden Abschnitts. Weist auf eine Textstelle hin, die ein
Bedeutung
Kurze Zusammenfassung der Inhalte des folgenden
Abschnitts.
Weist auf eine Textstelle hin, die ein spezielles
Zertifizierungsziel behandelt. Damit erhalten Sie die
Möglichkeit, Ihr Verständnis eines bestimmten
MTA-Ziels zu überprüfen und den entsprechenden Abschnitt
gegebenenfalls noch einmal zu wiederholen.
Hilfen für den Leser werden in einem schattierten Feld am
Textrand angezeigt. Die Hilfe für den Leser vom Typ Hinweis
bietet hilfreiche Tipps im Zusammenhang mit bestimmten
Aufgaben oder Themen.
Diese Querverweise verweisen auf Informationen, die an
anderer Stelle im Lehrbuch erörtert wurden, oder besch-
reiben interessante Besonderheiten, die im aktuellen
Thema oder in der Übung nicht direkt behandelt werden.
Ein Pluszeichen (+) zwischen zwei Tastennamen bedeutet,
dass beide Tasten gleichzeitig gedrückt werden müssen.
Tasten, die Sie während einer Übung drücken müssen,
werden in der hier angezeigten Schriftart dargestellt.
Wichtige Begriffe sind fett und kursiv formatiert, wenn sie
definiert werden.

Konvention

www.wiley.com/college/microsoft oder gebührenfreie MOAC-Rufnummer: 1+(888) 764-7001 (nur USA und Kanada)

Programm zur Unterstützung der Kursleiter

Die Microsoft Official Academic Course-Programme werden durch eine große Auswahl an Ressourcen, wie unter anderem illustrierte Lehrbücher, begleitet und bilden so ein schlüssiges didaktisches Paket. Diese Ressourcen bieten alle Materialien, die ein Kursleiter für den Unterricht benötigt. Zu den online erhältlichen Ressourcen gehören:

benötigt. Zu den online erhältlichen Ressourcen gehören: • Die MSDN Academic Alliance stellt einfache und

• Die MSDN Academic Alliance stellt einfache und preiswerte Entwicklertools, Produkte und Technologien für Kursleiter und Teilnehmer zur Verfügung, die für Übungen, im Schulungsraum und auf den PCs der Kursteilnehmer verwendet werden können. Qualifizierte MOAC-Anwender erhalten eine Drei-Jahres-Mitgliedschaft. Hinweis: Microsoft Windows Server 2008, Microsoft Windows 7 und Microsoft Visual Studio können zur Verwendung in diesem Kurs von den Kursteilnehmern von MSDN AA heruntergeladen werden.

• Das Kursleiterhandbuch enthält Lösungen für alle Übungen im Lehrbuch sowie Lehrpläne für verschiedene Kurszeiträume. Es enthält zudem Zusammenfassungen der Kapitel und Lektionshinweise. Das Kursleiterhandbuch ist auf der Website mit Begleitmaterialien (http://www.wiley.com/college/microsoft) erhältlich.

• Die Testdatenbank enthält hunderte Fragen unterschiedlicher Art (Multiple-Choice- und Richtig/Falsch-Fragen, Fragen mit Kurzantwort und ausführlicher Antwort) und steht zum Download auf der Website mit Begleitmaterialien für Kursleiter (www. wiley.com/college/microsoft) zur Verfügung. Hier wird auch ein vollständiger Lösungsschlüssel angeboten.

• Für gute Präsentationen im Schulungsraum steht ein vollständiger Satz von PowerPoint-Präsentationen und Bildern auf der Website mit Begleitmaterialien für Kursleiter (http://www.wiley.com/college/microsoft) zur Verfügung. Für jede Lektion werden rund 50 PowerPoint-Folien bereitgestellt. Diese Präsentationen sind zugeschnitten auf die textlichen Inhalte und die Themen und Lernziele und sollen die wichtigsten Konzepte vermitteln. Alle im Text verwendeten Bilder stehen auf der Website mit Begleitmaterialien für Kursleiter zur Verfügung (http://www. wiley.com/college/microsoft). Sie können die Bilder entweder in Ihre PowerPoint- Präsentationen integrieren oder eigene Overheadfolien und Handzettel erstellen. Indem Sie diese Bilder als Diskussionsgrundlage verwenden, richten Sie die Aufmerksamkeit der Kursteilnehmer auf die wichtigsten im Kurs behandelten Technologien und auf deren effektiven Einsatz am Arbeitsplatz.

• Wenn Sie eine möglichst hohe Schulungsqualität erzielen möchten, gibt es keine bessere Ideen- und Inspirationsquelle als Kollegen. Das Wiley Faculty Network bringt Kursleiter und Technologien zusammen, erleichtert den Austausch von bewährten Verfahren und erhöht die didaktische Effizienz. Zu den Aktivitäten des Faculty Network gehören Schulungen und Lernprogramme zu bestimmten Technologien, virtuelle Seminare, der Austausch von Erfahrungen und Ideen unter Gleichgesinnten, persönliche Beratung und gemeinsame Nutzung von Ressourcen. Weitere Informationen erhalten Sie unter „www.WhereFacultyConnect.com“.

www.wiley.com/college/microsoft oder gebührenfreie MOAC-Rufnummer: 1+(888) 764-7001 (nur USA und Kanada)

|

xiii

xiv

| Programm zur Unterstützung der Kursleiter

MSDN ACADEMIC ALLIANCE – KOSTENLOSE DREI-JAHRES-MITGLIEDSCHAFT FÜR QUALIFIZIERTE ANWENDER!

Die Microsoft Developer Network Academic Alliance (MSDN AA) ist die einfachste und preiswerteste Möglichkeit für Universitäten, um die neuesten Entwicklertools, Produkte und Technologien von Microsoft in Übungen, Schulungsräumen und auf den PCs der Kursteilnehmer verfügbar zu machen. Das MSDN AA-Programm mit jährlicher Mitgliedschaft richtet sich an Institute, die Mathematik, Informatik, Naturwissenschaften und Technik (MINT-Fächer) lehren. Die Mitgliedschaft bietet eine Komplettlösung, damit die akademischen Labore, Fakultäten, Dozenten und Studenten auf dem neuesten Stand der Technik bleiben.

Die im Rahmen des MSDN AA-Programms vorhandene Software wird den in Frage kommenden Fakultäten von der Wiley/Microsoft-Verlagspartnerschaft kostenfrei zur Verfügung gestellt.

Zusätzlich zu diesem kostenfreien Angebot erhält die Fakultät Zugang zum Faculty Connection and Academic Resource Center von Microsoft. Es braucht Zeit und Vorbereitung, um das Interesse der Studenten zu halten und ihnen ein grundlegendes Verständnis der Theorie zu vermitteln. Die Microsoft Faculty Connection ist darauf ausgerichtet, Dozenten und Professoren der MINT-Fächer durch die Bereitstellung von Artikeln, Lehrstoffen und Tools bei dieser Aufgabe zu unterstützen, um die heutigen Studenten technischer Fächer zu motivieren und zu inspirieren.

* Details dazu erhalten Sie von Ihrem Wiley-Vertreter.

Weitere Informationen über das MSDN Academic Alliance-Programm finden Sie unter:

http://msdn.microsoft.com/academic/

Hinweis: Microsoft Windows Server 2008, Microsoft Windows 7 und Microsoft Visual Studio können zur Verwendung in diesem Kurs von den Kursteilnehmern von MSDN AA heruntergeladen werden.

Wichtige Webadressen und Telefonnummern

Den Wiley-Vertreter für Hochschulbildung in Ihrer Nähe finden Sie unter „http://www.wiley.com/college“. Klicken Sie auf den Link „Who’s My Rep?“ im oberen Seitenbereich, oder wählen Sie die gebührenfreie MOAC-Nummer:

1+(888) 764-7001 (nur USA und Kanada).

Weitere Informationen über die Microsoft Certified Technology Specialist-Zertifizierung und die Prüfung finden Sie unter „www.microsoft.com/learning/mcp/mcp“.

www.wiley.com/college/microsoft oder gebührenfreie MOAC-Rufnummer: 1+(888) 764-7001 (nur USA und Kanada)

Programm zur Unterstützung der Kursteilnehmer

Zusätzliche Ressourcen

Website mit Begleitmaterialien (www.wiley.com/college/microsoft)

Die Website mit Begleitmaterialien zur MOAC-Reihe für Kursteilnehmer enthält alle Ressourcen, Trainingsdateien und Weblinks, die in Verbindung mit diesem Kurs verwendet werden.

Wiley Desktop Editions

Bei den Wiley Desktop Editions zur MOAC-Reihe handelt es sich um aktuelle elektronische Versionen der gedruckten Lehrbücher. Die Kursteilnehmer sparen bei Erwerb der Desktop Edition bis zu 50 % (des in den USA geltenden Verkaufspreises) im Vergleich zur gedruckten Ausgabe. Dafür erhalten sie ein langlebiges Lehrbuch, das sich überall hin mitnehmen lässt. Die Wiley Desktop Editions bieten den Kursteilnehmern zahlreiche Zusatzleistungen, auf die sie bei anderen elektronischen Lehrbuchlösungen verzichten müssen.

Die Wiley Desktop Editions werden nicht auf Abonnementbasis vertrieben. Vielmehr können die Kursteilnehmer die Lehrbücher direkt auf ihren Computer herunterladen. Damit erwerben sie Besitz an den Büchern und können die Inhalte beliebig lange nutzen. Mit dem Download einer Wiley Desktop Edition auf den Computer erhalten die Kursteilnehmer unmittelbaren Zugriff auf alle Inhalte, ohne online sein zu müssen. Wenn sie Teile des Buchs bevorzugt in Papierform lesen, können sie sich diese auch ausdrucken. Die Kursteilnehmer haben zudem Zugriff auf die in die Wiley Desktop Editions integrierten Unterrichtsmaterialien. Durch Markierungen im Text und Einfügen und Austauschen von Notizen können sie ihre elektronische Ausgabe beim Lesen oder im Kurs mühelos personalisieren.

Info über die Microsoft Technology Associate (MTA)-Zertifizierung

Vorbereiten von Mitarbeitern auf Technologien von morgen

Nahezu alle Unternehmen weltweit sind von der aktuellen Technologie geprägt. Es wird immer wichtiger, sich Grundkenntnisse über die Funktionsweise der Informationstechnologie anzueignen und ihre Auswirkungen auf ein modernes Arbeitsumfeld in Wissenschaft und Wirtschaft zu verstehen, insbesondere für Menschen, die sich für informationstechnisch ausgerichtete Berufe interessieren. Darum hat Microsoft die Microsoft Technology Associate (MTA)-Zertifizierung ins Leben gerufen. Das ist ein neues Einsteigerzertifikat, das grundlegendes IT-Wissen bescheinigt. Es eignet sich für Teilnehmer, die sich in einem Beruf mit informationstechnischer Ausprägung etablieren möchten.

Die Microsoft Technology Associate (MTA)-Zertifizierung ebnet den Weg zu weiteren weltweit anerkannten Zertifizierungsprogrammen wie Microsoft Certified Technology Specialist (MCTS) und Microsoft Certified IT Professional (MCITP). Die MTA-Zertifizierung ist das führende Zertifikat für Menschen, die sich in einem IT-Beruf oder einem ähnlichen Bereich mit starker informationstechnischer Ausprägung etablieren möchten.

www.wiley.com/college/microsoft oder gebührenfreie MOAC-Rufnummer: 1+(888) 764-7001 (nur USA und Kanada)

|

xv

xvi

| Programm zur Unterstützung der Kursteilnehmer

MTA-Kandidatenprofil

Das MTA-Zertifizierungsprogramm ist speziell für Interessenten mit mittlerem oder höherem Bildungsabschluss geeignet, die in einem wissenschaftlichen oder wirtschaftlichen Umfeld im IT-Bereich arbeiten möchten. Es bietet den Teilnehmern eine Zertifizierung für IT-Grundlagen und Grundlagen der Softwareentwicklung. Als neuer empfohlener Einstiegspunkt in die Zertifizierungen für Microsoft-Technologien richtet sich die MTA-Zertifizierung speziell an Personen ohne Vorkenntnisse. Sie kann ausschließlich in Bildungseinrichtungen erworben werden und lässt sich leicht in bestehende Lehrpläne integrieren.

MTA zur Unterstützung der Kursleiter und Motivation der Teilnehmer

MTA setzt einen neuen Standard zur Messung und Überprüfung grundlegender IT-Kenntnisse direkt im Schulungsraum, ohne Budget und Lehrkräfte zu belasten. Institutionen, die die anspruchsvollen MTA-Zertifizierungsprüfungen anbieten, heben sich durch Innovation von anderen Anbietern in der Branche ab. Die erschwingliche Prüfungsreihe führt auf einfache und praktische Weise zu verschiedenen IT-Einsteigerzertifikaten. Der MTA-Abschluss bietet den Kursteilnehmern die Möglichkeit, ohne größere zeitliche Investitionen berufliche Perspektiven im IT-Sektor auszuloten und schafft die Grundlage und das Vertrauen für das erfolgreiche Bestehen von Aufbaukursen sowie für künftige berufliche Vorhaben.

Den Kursteilnehmern wird mit dem MTA-Abschluss neben ihrer ersten Microsoft- Zertifizierung ein Sprungbrett für weitere, fortgeschrittene IT-Leistungsnachweise geboten, so z. B. die Microsoft Certified Technology Specialist (MCTS)-Zertifizierung.

Anbieten von MTA-Prüfungen: Die MTA-Campuslizenz

Die Einführung eines neuen Zertifizierungsprogramms war für Schulungsanbieter noch nie so einfach wie mit der MTA-Campuslizenz. Durch eine Jahreslizenz für den MTA- Campus entfällt die Notwendigkeit von Budgetanträgen und des wiederholten Erwerbs von Prüfungsgutscheinen. Ab jetzt können Sie für eine geringe Jahrespauschale nach Belieben MTA-Prüfungen für die Kursteilnehmer und Dozenten Ihrer Bildungseinrichtung anbieten.

Mit der MTA-Campuslizenz können Sie bequem und kostengünstig IT-Einsteigerzertifikate verleihen, die die Dozenten unterstützen und die Kursteilnehmer motivieren, da sie das Fundament für ihre berufliche Zukunft bilden.

Die MTA-Campuslizenz ist erhältlich bei Certiport, dem exklusiven Anbieter für Microsoft MTA-Prüfungen.

Weitere Informationen zur Microsoft Technology Associate-Zertifizierung und zu den Prüfungen finden Sie unter „www.microsoft.com/learning/mta“.

www.wiley.com/college/microsoft oder gebührenfreie MOAC-Rufnummer: 1+(888) 764-7001 (nur USA und Kanada)

Programm zur Unterstützung der Kursteilnehmer | xvii

Aktivieren Sie den kostenlosen MTA-Übungstest!

Durch den Kauf dieses Buchs sind Sie zur Teilnahme an einem kostenlosen MTA-Übungstest (im Wert von 30 USD) von GMetrix berechtigt. Rufen Sie die Website „www.gmetrix.com/ mtatests“ auf, und geben Sie den folgenden Validierungscode ein, um Ihren kostenlosen Test einzulösen: MTA98-361-A19875B7D810

Mit GMetrix Skills Management System erhalten Sie alles, was Sie zum Üben für die Microsoft Technology Associate (MTA)-Zertifizierung benötigen.

Testmerkmale im Überblick:

• Auf die Microsoft Technology Associate (MTA)-Prüfungsziele ausgerichtete Übungstests

• GMetrix MTA-Übungstests simulieren die tatsächliche MTA-Testumgebung

• Über 50 Fragen decken alle Lernziele ab

• Fortschritt im eigenen Tempo, Test zum späteren Fortfahren sichern, zu übersprungenen Fragen zurückkehren

• Detaillierter, druckbarer Ergebnisbericht mit markierten Bereichen zur weiteren Überprüfung

Um eine optimale MTA-Vorbereitung zu erhalten, können Sie noch heute den kostenlosen MTA-Übungstest von GMetrix machen!

Wenn Sie Support bei technischen Problemen bei der Installation oder Codeaktivierung benötigen, senden Sie eine E-Mail an support@gmetrix.com.

www.wiley.com/college/microsoft oder gebührenfreie MOAC-Rufnummer: 1+(888) 764-7001 (nur USA und Kanada)

Danksagung

MOAC MTA – IT-Grundlagen – Bearbeiter

Wir möchten den vielen Bearbeitern danken, die das Manuskript eingehend geprüft und uns im Dienste qualitativ hochwertiger Unterrichtsmaterialien ihr wertvolles Feedback übermittelt haben:

Yuke Wang, University of Texas in Dallas Palaniappan Vairavan, Bellevue College Harold „Buz“ Lamson, ITT Technical Institute Colin Archibald, Valencia Community College Catherine Bradfield, DeVry University Online Robert Nelson, Blinn College Kalpana Viswanathan, Bellevue College Bob Becker, Vatterott College Carol Torkko, Bellevue College Bharat Kandel, Missouri Tech Linda Cohen, Forsyth Technical Community College Candice Lambert, Metro Technologiezentren Susan Mahon, Collin College Mark Aruda, Hillsborough Community College Claude Russo, Brevard Community College

David Koppy, Baker College Sharon Moran, Hillsborough Community College Keith Hoell, Briarcliffe College and Queens College – CUNY Mark Hufnagel, Lee County School District Rachelle Hall, Glendale Community College Scott Elliott, Christie Digital Systems, Inc. Gralan Gilliam, Kaplan Steve Strom, Butler Community College John Crowley, Bucks County Community College Margaret Leary, Northern Virginia Community College Sue Miner, Lehigh Carbon Community College Gary Rollinson, Cabrillo College Al Kelly, University of Advancing Technology Katherine James, Seneca College

xviii

|

www.wiley.com/college/microsoft oder gebührenfreie MOAC-Rufnummer: 1+(888) 764-7001 (nur USA und Kanada)

Inhalte im Überblick

1 Einführung in das Programmieren

1

2 Einführung in die objektorientierte Programmierung

3 Allgemeine Grundlagen der Softwareentwicklung

4 Grundlegendes zu Webanwendungen

85

5 Grundlegendes zu Desktopanwendungen

6 Grundlegendes zu Datenbanken

Anhang A

Index

179

177

142

120

65

32

www.wiley.com/college/microsoft oder gebührenfreie MOAC-Rufnummer: 1+(888) 764-7001 (nur USA und Kanada)

|

xix

Inhalt

Lektion 1: Einführung in das Programmieren

1

Lernzieltabelle 1 Schlüsselbegriffe 1 Grundlegendes zur Computerprogrammierung

Einführung in die Algorithmen

Einführung in C#

4

2

2

Grundlegendes zu Entscheidungsstrukturen

Die if-Anweisung

11

Die if-else-Anweisung

13

Die switch-Anweisung

15

Grundlegendes zu Wiederholungsstrukturen

Erläuterungen zur while-Schleife

17

11

17

Erläuterungen zur do-while-Schleife

19

Grundlegendes zur for-Schleife

20

Grundlegendes zur foreach-Schleife

21

Erläuterungen zur Vererbung

48

Grundlagen zu abstrakten und versiegelten Klassen

50

Erben von der Object-Klasse

51

Umwandlung zwischen Typen

52

Erläuterungen zur Polymorphie

53

Grundlagen zu den Schlüsselwörtern „override“

und „new“

55

Erläuterungen zu Schnittstellen

Zusammenfassung der vermittelten Kenntnisse Wissenstest 59

Kompetenztest 64 Kenntnistest 64

56

58

Lektion 3: Allgemeine Grundlagen der

Softwareentwicklung

65

Erläuterungen zur Rekursion

22

Lernzieltabelle

65

Erläuterungen zur Ausnahmebehandlung

23

Schlüsselbegriffe

65

Behandeln von Ausnahmen

Verwenden von try-catch-finally

24

25

Zusammenfassung der vermittelten Kenntnisse Wissenstest 27 Kompetenztest 30 Kenntnistest 31

Lektion 2: Einführung in die objektorientierte Programmierung

32

Grundlegendes zur Anwendungslebenszyklus-Verwaltung

66

26

Grundlegendes zur Anforderungsanalyse

66

Grundlegendes zum Entwurfsprozess

67

Grundlegendes zur Softwareentwicklung

67

Grundlegendes zu Softwaretests

Grundlegendes zur Releaseverwaltung

68

Grundlegendes zu Softwaretests

Grundlegendes zu Testmethoden

Grundlegendes zu Teststufen

69

68

69

Grundlegendes zu Datenstrukturen

68

70

Lernzieltabelle 32 Schlüsselbegriffe 32 Erläuterungen zu Objekten

Der objektorientierte Ansatz

Erläuterungen zu Klassen

33

33

33

Erläuterungen zu Werten und Verweisen

Grundlegendes zu Strukturen

Grundlegendes zur Speicherbelegung

44

Erläuterungen zur Kapselung

47

Erläuterung zu Zugriffsmodifizierern

45

48

44

Erläuterungen zu Arrays

Verstehen von Warteschlangen

Verstehen von Stapeln

Verknüpfte Listen

70

73

74

72

Grundlegendes zu Sortieralgorithmen

Verstehen von BubbleSort Verstehen von QuickSort

76

79

76

Zusammenfassung der vermittelten Kenntnisse Wissenstest 81 Kompetenztest 83 Kenntnistest 84

www.wiley.com/college/microsoft oder gebührenfreie MOAC-Rufnummer: 1+(888) 764-7001 (nur USA und Kanada)

81

|

xxi

xxii

| Inhalt

Lektion 4: Grundlegendes zu Webanwendungen

85

Lernzieltabelle 85 Schlüsselbegriffe 85 Grundlegendes zur Webseitenentwicklung

85

Grundlegendes zu HTML Grundlegendes zu CSS

Grundlegendes zu JavaScript

Grundlegendes zur clientseitigen und serverseitigen Programmierung 94

88

86

92

Grundlegendes zur ASP.NET- Webanwendungsentwicklung

95

Grundlegendes zum Lebenszyklus und Ereignismodell der ASP.NET-Seite

Grundlegendes zur Zustandsverwaltung

96

99

Grundlegendes zum IIS-Webhosting

104

Grundlegendes zu IIS

Erstellen von virtuellen Verzeichnissen und

105

Websites

105

Bereitstellen von Webanwendungen

106

Grundlegendes zur Webdienstentwicklung

Einführung in SOAP

107

Einführung in WSDL

108

Erstellen von Webdiensten

Konsumieren von Webdiensten

108

112

107

Zusammenfassung der vermittelten

115

Wissenstest 115 Kompetenztest 118 Kenntnistest 119

Kenntnisse

Lektion 5: Grundlegendes zu Desktopanwendungen

120

Lernzieltabelle 120 Schlüsselbegriffe 120

Grundlegendes zu Windows

Forms-Anwendungen

120

Erstellen eines Windows-Formulars Grundlegendes zum Windows

121

Forms-Ereignismodell

123

Verwenden der visuellen Vererbung

123

Grundlegendes zu Multiple Document Interface (MDI)

Anwendungen

126

Grundlegendes zu konsolenbasierten

Anwendungen

129

Arbeiten mit Befehlszeilenparametern

Grundlegendes zu Windows-Diensten

Erstellen eines Windows-Diensts

132

Zusammenfassung der vermittelten

137

Wissenstest 138 Kompetenztest 140 Kenntnistest 141

Kenntnisse

130

131

Lektion 6: Grundlegendes zu

Datenbanken

142

Lernzieltabelle 142 Schlüsselbegriffe 142

Grundlegendes zu relationalen

Datenbankkonzepten

142

Grundlegendes zu Datenbanken

Grundlegendes zu relationalen

Datenbankkonzepten

143

143

Grundlegendes zum relationalen

Datenbankentwurf

144

Grundlegendes zu Entitätsbeziehungsdiagrammen

Grundlegendes zur Datennormalisierung

146

Grundlegendes zu Abfragemethoden für

149

Datenbanken

Verwenden von SQL-Abfragen

Verwenden von gespeicherten Prozeduren

150

159

144

Grundlegendes zu den Methoden für

Datenbankverbindungen

Verwenden von Flatfiles

Verwenden von XML

Verwenden von DataSet

164

167

170

164

Zusammenfassung der vermittelten Kenntnisse Wissenstest 173 Kompetenztest 176 Kenntnistest 176

Anhang A

Index

179

177

173

www.wiley.com/college/microsoft oder gebührenfreie MOAC-Rufnummer: 1+(888) 764-7001 (nur USA und Kanada)

Einführung in das Programmieren

LEKTION

1
1
THEMEN UND LERNZIELE DIESER LEKTION Fertigkeiten/Konzepte MTA-Prüfungsziel Nummer des MTA-Prüfungsziels
THEMEN
UND
LERNZIELE
DIESER
LEKTION
Fertigkeiten/Konzepte
MTA-Prüfungsziel
Nummer des MTA-Prüfungsziels
Grundlegendes zur Computer-
programmierung
Computerspeicherung und
Datentypen verstehen
1.1
Grundlegendes zu
Entscheidungs strukturen
Entscheidungsstrukturen von
Computern verstehen
1.2
Grundlegendes zu
Wiederholungs strukturen
Die richtige Methode zur
Behandlung von Wiederholungen
identifizieren
1.3
Erläuterungen zur
Ausnahmebe handlung
Fehlerbehandlung verstehen
1.4
SCHLÜSSELBEGRIFFE

SCHLÜSSELBEGRIFFE

   

Algorithmus

do-while-Schleife

Konstante

Array

Entscheidungsstrukturen

Methoden

Ausnahme

Entscheidungstabelle

Operator

Binärcode

finally-Block

Höhere

Binärsystem

Flussdiagramm

Programmiersprache

case

foreach-Schleife

Rekursion

Computerprogramme

for-Schleife

switch-Anweisung

(Programme)

if-Anweisung

switch-Block

Datentypen

if-else-Anweisung

try-catch-finally-Block

default-Anweisung

Klasse

Variable

 

while-Schleife

Angenommen, Sie sind Softwareentwickler bei der Northwind Corporation. Ein Teil Ihrer Arbeit besteht darin, Computerprogramme zur Lösung von Geschäftsproblemen zu entwickeln. Zu Ihrer Arbeit gehört das Analysieren von Kundenaufträgen zum Festlegen von Rabatten, das Aktualisieren von Bestandsinformationen für tausende von Artikeln des Firmeninventars und das Schreiben von interaktiven Berichten, mit denen Benutzer Daten sortieren und filtern können.

Für Sie ist es von entscheidender Bedeutung, dass Ihre Programme exakt den Spezifikationen entsprechen. Zudem müssen Sie sicherstellen, dass alle Berechnungen richtig und vollständig sind. Die Programme, die Sie schreiben, müssen stabil laufen und sollten in der Lage sein, Fehlermeldungen anzuzeigen, ohne die Datenverarbeitung zu unterbrechen.

2

|

Lektion 1

Die Programmiersprache, die Sie verwenden, bietet Ihnen verschiedene Tools und Techniken zum Erledigen Ihrer Aufgaben. Je nach Aufgabe wählen Sie die Datentypen und Steuerelementstrukturen, die sich am besten zur Lösung des Problems eignen.

Grundlegendes zur Computerprogrammierung

FAZIT Ein Computerprogramm besteht aus einer Reihe von präzisen Anweisungen zum Erfüllen einer Aufgabe. In
FAZIT
Ein Computerprogramm besteht aus einer Reihe von präzisen Anweisungen zum
Erfüllen einer Aufgabe. In diesem Abschnitt erfahren Sie, wie Sie Algorithmen und
Computerprogramme zur Lösung eines bestimmten Problems schreiben. Neben dem
Schreiben Ihres ersten Computerprogramms mit der Programmiersprache C# erfahren
Sie auch etwas über die grundlegende Struktur von Computerprogrammen und dem
Kompilieren und Ausführen eines Programms. Darüber hinaus erhalten Sie Informationen
zur Datenein- und ausgabe.

Einführung in die Algorithmen

Ein Algorithmus ist eine Sammlung geordneter und begrenzter Schritte zur Lösung eines bestimmten Problems.

Der Begriff Algorithmus bezieht sich auf eine Methode zur Problemlösung. Algorithmen können in Deutsch beschrieben werden, aber solche Beschreibungen werden aufgrund der Komplexität und Mehrdeutigkeit einer natürlichen Sprache oft fehlinterpretiert. Deshalb werden für Algorithmen häufig einfache und präzisere Formate wie Flussdiagramme, Entscheidungsbäume und Entscheidungstabellen eingesetzt, die einen Algorithmus als Diagramm, Tabelle oder Graph darstellen. Diese Techniken werden häufig vor dem Schreiben von Programmen eingesetzt, um die Lösung verständlicher zu machen. Diese Tools zur Algorithmenentwicklung können Ihnen dabei helfen, auf einfache Weise eine Lösung zu generieren. Allerdings werden die Tools nicht direkt von einem Computer unterstützt. Damit ein Computer einen Algorithmus verarbeiten kann, müssen Sie ein formelleres Computerprogramm in einer Programmiersprache wie C# schreiben. Mehr dazu erfahren Sie im nächsten Abschnitt. In der Zwischenzeit befasst sich dieser Abschnitt der Lektion mit zwei Verfahren zur Darstellung des Algorithmus, den Flussdiagrammen und den Entscheidungstabellen. Diese sind präziser als eine natürliche Sprache, aber weniger formell und einfacher anzuwenden als eine Computersprache.

EINFÜHRUNG IN FLUSSDIAGRAMME

Ein Flussdiagramm ist eine grafische Darstellung eines Algorithmus. Ein Flussdiagramm wird in der Regel mit Standardsymbolen erstellt. Tabelle1-1 zeigt einige herkömmliche Flussdiagrammsymbole.

Tabelle 1-1

Allgemeine

Flussdiagrammsymbole

Flussdiagrammsymbol

Beschreibung

Beginn oder Ende eines Algorithmus

Beginn oder Ende eines Algorithmus

Prozess oder rechnerische Opera on

Prozess oder rechnerische Opera on

Eingabe- oder Ausgabeopera on

Eingabe- oder Ausgabeopera on

Entscheidungsbildende Opera on

Entscheidungsbildende Opera on

Angabe des Kontrollflusses

Angabe des Kontrollflusses

Einführung in das Programmieren | 3

Einführung in das Programmieren | 3

Abbildung 1-1 zeigt beispielsweise ein Flussdiagramm, bei dem zwei Zahlen eingegeben und miteinander verglichen werden. Anschließend wird die größere Zahl ausgegeben.

Abbildung 1-1

Ein einfaches Flussdiagramm, das zwei Zahlen vergleicht und die größere der beiden ausgibt

START Eingabe x
START
Eingabe x
Eingabe y Nein x > y ? Ausgabe y Ja Ausgabe x
Eingabe y
Nein
x > y ?
Ausgabe y
Ja
Ausgabe x

STOPP

Wie Sie sehen führt dieses Flussdiagramm alle erforderlichen Schritte zum Ausführen der Operation in korrekter Reihenfolge auf. Die Ablaufsteuerung beginnt mit dem Startsymbol und endet mit dem Stoppsymbol. Die Symbole für die Ein- und Ausgabe sowie für die Verarbeitung verfügen immer über einen einzelnen Einstiegs- und Ausstiegspunkt. Im Gegensatz dazu findet sich beim Entscheidungssymbol ein Einstiegspunkt aber mehrere Ausstiegspunkte. Sie können ein Flussdiagramm testen, indem Sie einen Probelauf durchführen. Bei einem solchen Probelauf durchlaufen Sie manuell die Schritte des Flussdiagrams mit Testdaten, um festzustellen, ob die richtigen Pfade eingehalten werden.

EINFÜHRUNG IN ENTSCHEIDUNGSTABELLEN

Enthält ein Algorithmus viele Bedingungen, lässt sich der Algorithmus besser durch Entscheidungstabellen darstellen, da dieses Format kompakter und besser lesbar ist. Tabelle 1-2 zeigt eine Entscheidungstabelle zur Berechnung eines Rabatts. Diese Tabelle generiert einen Rabatt in Prozent in Abhängigkeit der Menge der gekauften Produkte. Die dicken Linien in der Entscheidungstabelle unterteilten die Tabelle in vier Quadranten. Der erste Quadrant (oben links) gibt die Bedingungen („Menge < 10,“ usw.) an. Der zweite Quadrant (oben rechts) legt die Regeln fest. Die Regeln stellen die möglichen Kombinationen der Ergebnisse der einzelnen Bedingungen dar. Der dritte Quadrant (unten links) gibt die Aktion (in diesem Fall „Rabatt“) an, und der letzte Quadrant (unten rechts) gibt die Aktionen an, die den einzelnen Regeln entsprechen.

4

|

Lektion 1

Tabelle 1-2

Eine Entscheidungstabelle zur Berechnung von Rabatten

Menge < 10 J N N N Menge < 50 J J N N Menge
Menge < 10
J
N
N
N
Menge < 50
J
J
N
N
Menge < 100
J
J
J
N
Rabatt
 5 %
 10 %
 15 %
 20 %

Um herauszufinden, welche Aktion angewendet werden soll, müssen Sie die einzelnen Bedingungen evaluieren, um die passende Regel zu finden und anschließend die Aktion wählen, die in der Spalte mit der passenden Regel angegeben ist. Ist der Wert für „Menge“ in den Testdaten beispielsweise 75, ist das Ergebnis der ersten Regel „Nein“, das Ergebnis der zweiten Regel ebenfalls und das Ergebnis der dritten Regel „Ja“. Deshalb wählen Sie die Aktion aus der Spalte (N, N und J), wodurch der Rabatt auf 15 % festgelegt wird.

Einführung in C#

C# ist eine beliebte höhere Programmiersprache, mit der Sie Computerprogramme in einem lesbaren Format schreiben können. C# ist ein Teil von .NET Framework und profitiert von der Laufzeitunterstützung und den Klassenbibliotheken, die von .Framework bereitgestellt werden.

Wie im vorherigen Abschnitt beschrieben, benötigen Computer genaue und vollständige Anweisungen, um eine Aufgabe auszuführen. Diese Ansammlungen von Anweisungen werden Computerprogramme oder einfach nur Programme genannt. Ganz vereinfacht ausgedrückt nutzen Computer das Binärsystem zur Darstellung von Informationen und Code. In diesem System wird jeder Wert lediglich durch die beiden Symbole 0 und 1 dargestellt. Ein Computerprogramm, das unter Verwendung des Binärsystems geschrieben wurde, wird als Binärcode bezeichnet.

Das Programmieren eines Computers mithilfe von Binärcode ist für nicht triviale Aufgaben sehr schwierig. Deshalb haben Wissenschaftler und Computertechniker mehrere Abstraktionsebenen zwischen Mensch und Computer errichtet. Diese Abstraktionen enthalten Software (z. B. Betriebssysteme, Compiler und verschiedenen Laufzeitsysteme), die dafür verantwortlich ist, ein (visuell) lesbares Programm in ein maschinenlesbares Programm zu übersetzen. Die meisten modernen Programme werden in einer höheren Programmiersprache wie C#, Visual Basic oder Java geschrieben. Mit diesen Sprachen können Sie präzise Anweisungen in visuell lesbarer Form schreiben. Anschließend übersetzt ein Sprachcompiler die höhere Programmiersprache in eine niedrige Programmiersprache, die vom Laufzeitausführungssystem verarbeitet werden kann. Jede Programmiersprache stellt einen eigenen Satz an Vokabeln und Grammatik (auch bekannt als Syntax) bereit. In diesem Kurs erfahren Sie, wie Sie mit der

C#-Programmiersprache in .NET Framework

Ausführungsumgebung für die Laufzeit für das C#-Programm bereit. Das Framework enthält darüber hinaus Klassenbibliotheken, die eine Menge an wiederverwendbaren Kernfunktionen

programmieren.

.NET Framework stellt eine

zur Verfügung stellen, die Sie direkt in Ihrem C#-Programm verwenden können. ✚ WEITERE INFORMATIONEN .NET
zur Verfügung stellen, die Sie direkt in Ihrem C#-Programm verwenden können.
✚ WEITERE
INFORMATIONEN
.NET Framework stellt drei Hauptkomponenten zur Verfügung: eine Umgebung für die Laufzeitausführung,
einen Satz von Klassenbibliotheken, der viele wiederverwendbare Funktionen bereitstellt und einen
Sprachcompiler für C#, Visual Basic und verwaltetem
C++.
.NET Framework unterstützt mehrere
Programmiersprachen sowie das Hinzufügen zusätzlicher Sprachen zum System. Obwohl die Syntax
und das Vokabular der einzelnen Sprachen unterschiedlich sein können, kann jede Sprache die vom
Framework bereitgestellten Basisklassenbibliotheken verwenden.

Einführung in das Programmieren | 5

In diesem Kurs entwickeln Sie Code mittels einer integrierten Entwicklungsumgebung (IDE). Zum Schreiben des Codes können Sie sowohl Visual Studio als auch die kostenlose Visual Studio Express-Version verwenden. Beide Tools bieten Ihnen eine höchst produktive Umgebung zum Entwickeln und Testen Ihrer Programme.

Umgebung zum Entwickeln und Testen Ihrer Programme. SCHREIBEN EINES C#-PROGRAMMS VORBEREITUNG. Führen Sie die

SCHREIBEN EINES C#-PROGRAMMS

VORBEREITUNG. Führen Sie die folgenden Schritte durch, um ein C#-Programm zu schreiben.

1. Starten Sie Visual Studio. Wählen Sie Datei > Neues Projekt. Wählen Sie die Vorlagen der Visual C#-Konsolenanwendung.

2. Geben Sie IntroducingCS in das Feld „Name“ ein. Stellen Sie sicher, dass das Kontrollkästchen „Projektmappenverzeichnis erstellen“ aktiviert ist, und geben Sie in das Feld „Projektmappenname“ Lektion01 ein. Klicken Sie auf OK, um das Projekt zu erstellen.

3. Wenn das Projekt erstellt wurde, werden Sie feststellen, dass Visual Studio bereits eine Datei mit dem Namen „Program.cs“ erstellt und eine Vorlage für Sie geschrieben hat.

4. Ändern Sie die Vorlage, damit sie dem folgenden Code entspricht:

HINWEIS *

C# ist eine Sprache, bei der die Groß-/ Kleinschreibung beachtet wird. Infolgedessen kommt es beispielsweise zu einem Syntaxfehler, wenn Sie „Class“ statt „class“ eingeben.

Abbildung 1-2

Programmausgabe in einem Befehlsfenster

using System;

Namespace Lesson01

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine(“Hallo Welt!”);

}

}

}

5. Wählen Sie Debuggen > Starten ohne Debuggen, oder drücken Sie STRG+F5.

6. Wie in Abbildung 1-2 zu sehen, wird die Ausgabe des Programms in einem Befehlsfenster angezeigt.

die Ausgabe des Programms in einem Befehlsfenster angezeigt.   Sie können das Programm auch ausführen, indem
 

Sie können das Programm auch ausführen, indem Sie ein Befehlsfenster (cmd.exe) öffnen und dann zum Ausgabeordner des Projekts navigieren. Dies ist standardmäßig der Unterordner „bin\debug“ unterhalb des Projektspeicherorts. Starten Sie das Programm, indem Sie den Namen des Programms in das Befehlsfenster eingeben und die EINGABETASTE drücken.

EINE WEITERE

EINE WEITERE

MÖGLICHKEIT

 

7. Drücken Sie eine beliebige Taste, um das Befehlsfenster zu schließen.

PAUSE. Lassen Sie das Projekt zur Verwendung in der nächsten Übung geöffnet.

6

|

Lektion 1

Das soeben erstellte Programm ist recht schlicht in seiner Ausführung, hilft aber dabei, die Struktur, Erstellung und Ausführung eines Programms zu verstehen. Reden wir zunächst einmal über die Erstellung und Ausführung. Hier sehen Sie, was passiert, wenn Sie die Option „Debuggen > Starten ohne Debuggen“ aus dem oben aufgeführten Schritt 5 wählen:

1. Visual Studio ruft den C#-Compiler auf, um den C#-Code in eine niedrige Programmiersprache, den Common Intermediate Language (CIL)-Code, zu über- setzen. Dieser Code auf niedriger Ebene wird in einer ausführbaren Datei namens (Lesson01.exe) gespeichert. Der Name der Ausgabedatei kann geändert werden, indem die Projekteigenschaften geändert werden.

2. Anschließend übernimmt Visual Studio die Projektausgabe und fordert eine Ausführung durch das Betriebssystem an. An dieser Stelle wird Ihnen im Befehlsfenster die Ausgabe angezeigt.

3. Wenn das Programm beendet ist, zeigt Visual Studio die folgende Meldung an:

„Drücken Sie eine beliebige Taste, um den Vorgang

Sie, dass die Meldung nur angezeigt wird, wenn Sie das Programm über die Option „Starten ohne Debuggen“ ausführen.

.“ Beachten

 

Wenn Sie die Menüoption „Debug > Starten ohne Debuggen“ wählen, zeigt Visual Studio automatisch die Aufforderung „Drücken Sie eine beliebige Taste, um fortzufahren“ an. Das Befehlsfenster bleibt dann offen, sodass Sie die Ausgabe überprüfen können. Wenn Sie allerdings die Option „Debug > Debuggen starten“wählen, wird das Befehlsfenster geschlossen, sobald die Ausführung des Programms abgeschlossen ist. Es ist wichtig zu wissen, dass die Option „Debuggen starten“ Debugfunktionen bereitstellt. Dazu zählen die Möglichkeit, die Ausführung eines Programms an einem bestimmten Punkt anzuhalten und den Wert verschiedener Variablen im Speicher zu überprüfen.

HINWEIS *

 

Wenn Sie keine integrierte Entwicklungsumgebung (IDE) wie Visual Studio verwenden, können Sie das Programm manuell über die Befehlszeilentools kompilieren. Mit Visual Studio geht das Testen von Programmen jedoch schneller und einfacher.

Bevor der Common Intermediate Language (CIL)-Code ausgeführt werden kann, muss er zunächst für die Architektur des Computers, auf dem er ausgeführt wird, übersetzt werden. Das Laufzeitausführungssystem von .NET Framework verarbeitet die Übersetzung im Hintergrund mithilfe eines Prozesses, der als Just-In-Time- Kompilierung bezeichnet wird.

HINWEIS *

 

GRUNDLEGENDES ZUR STRUKTUR EINES C#-PROGRAMMS

In diesem Abschnitt der Lektion erfahren Sie etwas über die strukturellen Elemente des einfachen C#-Programms, das Sie im vorherigen Abschnitt erstellt haben.

Abbildung 1-3 zeigt das Programm, das Sie im vorherigen Abschnitt erstellt haben, mit Zeilennummern an. Diese Nummern werden im gesamten Abschnitt verwendet, um auf verschiedene Strukturen im Programm zu verweisen.

Damit Zeilennummern in Visual Studio angezeigt werden können, wählen Sie das Menü „Extras > Optionen“. Erweitern Sie dann den Knoten „Text-Editor“, und wählen Sie „C#“. Klicken Sie abschließend im Anzeigeabschnitt auf die Option „Zeilennummern“.

HINWEIS *

 

Einführung in das Programmieren | 7

Abbildung 1-3

Programmauflistung mit Zeilennummern

X REF
X
REF

Weitere Informationen zu Klassen erhalten Sie in Lektion 2.

X REF
X
REF

Weitere Informationen zu Methoden erhalten Sie in Lektion 2.

HINWEIS *

Jeder C#-Anweisung muss mit einem Semikolon (;) abgeschlossen werden.

muss mit einem Semikolon (;) abgeschlossen werden. Ein C#-Programm besteht aus mindestens einer Klasse. Eine

Ein C#-Programm besteht aus mindestens einer Klasse. Eine Klasse ist eine Sammlung von Daten und Methoden. So definiert beispielsweise der Code aus Abbildung 1-3 eine einzelne Klasse namens „Program“ bestehend aus den Zeilen fünf bis elf. Eine Klasse wird mittels des Schlüsselworts „class“, gefolgt vom Klassennamen, definiert. Der Inhalt einer Klasse wird zwischen einer öffnenden geschweiften Klammer ({) und einer schließenden geschweiften Klammer (}) definiert.

Zeile 3 des Codes aus Abbildung 1-3 definiert einen Namespace namens Lesson01. Namespaces werden verwendet, um Klassen zu organisieren und eindeutig zu identifizieren. Der Namespace und die Klassennamen bilden zusammen einen vollqualifizierten Klassennamen. Der vollqualifizierte Klassenname der Program-Klasse lautet beispielsweise „Lesson01.Program“. C# erfordert, dass der vollqualifizierte Name einer Klasse eindeutig ist. Infolgedessen ist eine weitere Klasse mit Namen „Program“ im Namespace „Lesson01“ nicht möglich, dafür eine Klasse namens „Program“ in einem anderen Namespace, beispielsweise „Lesson02“, schon. Hier ist die im Namespace „Lesson02“ definierte Klasse „Program“ eindeutig über den vollqualifizierten Klassennamen „Lesson02. Program“ identifizierbar.

Von .NET Framework wird eine Vielzahl an nützlichen Klassen bereitgestellt, die in viele Namespaces eingeordnet sind. Der System-Namespace enthält einige der am häufigsten verwendeten Basisklassen. Eine solche Klasse im System-Namespace ist die Console-Klasse. Die Console-Klasse bietet Funktionen für die Ein-und Ausgabe von Daten in die Konsolenanwendung. Zeile 9 des Codes aus Abbildung 1-3 bezieht sich auf die Console-Klasse und ruft dessen WriteLine-Methode auf. Für einen eindeutigen Zugriff auf die WriteLine-Methode müssen Sie den Code in etwa wie folgt schreiben:

System.Console.WriteLine ("Hallo Welt!");

Klassennamen tauchen des Öfteren im Code auf. Dann jedes Mal den vollqualifizierten Klassennamen schreiben zu müssen, ist mühsam und macht das Programm unübersichtlich. Zu Lösung des Problems können Sie die C#-Direktive using einsetzen (siehe Code in Zeile 1, Abbildung 1-3). Mit der using-Direktive können Sie Klassen auch ohne vollqualifizierten Namen in einem Namespace verwenden.

Die Program-Klasse definiert eine einzelne Methode über den Namen „Main“ (siehe Zeile 7 bis 10 des Code in Abbildung 1-3). „Main“ ist eine besondere Methode, da sie auch als Einstiegspunkt in ein Programm dient. Wenn die Laufzeit ein Programm ausführt,

8

|

Lektion 1

startet dieses immer bei der Main-Methode. Ein Programm kann viele Klassen enthalten, und jede Klasse kann viele Methoden haben, allerdings sollte es nur eine Main-Methode geben. Eine Methode kann wiederum andere Methoden aufrufen. In Zeile 9 ruft die Main-Methode die WriteLine-Methode der System.Console-Klasse auf, um eine Zeichenfolge im Befehlsfenster anzuzeigen. So wird die Meldung angezeigt.

 

Die Main-Methode muss als statisch deklariert werden. Eine statische Methode kann auch dann für eine Klasse aufgerufen werden, wenn keine Instanz der Klasse erstellt wurde. Mehr darüber erfahren Sie in der folgenden Lektion.

HINWEIS *

 

GRUNDLEGENDES ZU VARIABLEN

Variablen ermöglichen eine Zwischenspeicherung während der Programmausführung.

Die Variablen in C# sind Platzhalter, die zum Speichern von Werten eingesetzt werden. Eine Variable hat einen Namen und einen Datentyp. Der Datentyp einer Variablen bestimmt, welche Werte diese enthalten kann und welche Art von Operationen auf dieser ausgeführt werden können. Die folgende Deklaration erstellt beispielsweise eine Variable mit der Bezeichnung „Anzahl des Datentyps int“ und weist der Variablen den Wert 10 zu.

int number = 10;

Wenn eine Variable deklariert ist, wird im Computerspeicher ein Speicherort angelegt, der groß genug ist, den Wert für den zugehörigen Datentyp zu speichern. So benötigt beispielsweise eine Variable vom Datentyp „int“ auf einem 32-Bit-Computer zwei Bytes an Arbeitsspeicher. Der Wert einer Variablen kann durch einen weitere Zuweisung wie:

number = 20; geändert werden.

Der obige Code ändert den Inhalt des Speicherorts, der über die Namensnummer identifiziert wird.

Ein Variablennamen muss mit einem Buchstaben oder einem Unterstrich beginnen und darf nur Buchstaben, Zahlen oder Unterstriche enthalten. Ein Variablenname darf 255 Zeichen nicht überschreiten. Eine Variable muss auch innerhalb des Bereichs, in dem sie definiert ist, eindeutig sein.

HINWEIS *

 

GRUNDLEGENDES ZU KONSTANTEN

Konstanten sind Datenfelder oder lokale Variablen, deren Wert nicht geändert werden kann.

Konstanten werden mit dem const-Schlüsselwort deklariert. Eine Konstante kann beispielsweise wie folgt deklariert werden:

const int i = 10;

Dadurch wird eine Konstante „i“ vom Datentyp „int“ deklariert und ein Wert von 10 gespeichert. Nach der Deklaration kann der Wert der Konstante nicht geändert werden.

ERLÄUTERUNGEN ZU DATENTYPEN

Datentypen geben den Typ der Daten an, mit denen Sie in einem Programm arbeiten. Der Datentyp definiert die Größe des Arbeitsspeichers, der zum Speichern der Daten benötigt wird sowie die Operationen, die mit den Daten durchgeführt werden können.

Einführung in das Programmieren | 9

C# stellt mehrere integrierte Datentypen bereit, die Sie in Ihren Programmen verwenden können. Sie können auch neue Typen definieren, indem Sie eine Datenstruktur wie „class“ oder „struct“ definieren. Dieses Kapitel konzentriert sich auf einige der am häufigsten verwendeten integrierten Datentypen.Einführung in das Programmieren | 9 Weitere Informationen zum Erstellen eigener Datentypen erhalten Sie in Lektion

Weitere Informationen zum Erstellen eigener Datentypen erhalten Sie in Lektion 2.

Tabelle 1-3 listet mehrere häufig verwendete integrierte Datentypen auf, die in C# verfügbar sind. Die in der Tabelle aufgeführten Größen gelten für einen Computer mit einem 32-Bit-Betriebssystem wie Windows 7 (32-Bit-Version). Für ein 64-Bit-Betriebssystem wie Windows 7 (64-Bit-Version) gelten andere Größen.

Tabelle 1-3

Herkömmliche in C# verwendete integrierte Datentypen

HINWEIS *

Die vorzeichenlosen Versionen von short, int und long sind ushort, uint und ulong. Die vorzeichenlosen Typen haben die gleiche Größe wie die Versionen mit Vorzeichen, speichern aber mehr Bereiche an nur positiven Werten.

Datentyp Grösse Wertebereich byte 1 Byte 0 bis 255 char 2 Byte U+0000 bis U+ffff
Datentyp
Grösse
Wertebereich
byte
1 Byte
0 bis 255
char
2 Byte
U+0000 bis U+ffff (Unicode-Zeichen)
short
2 Byte
-32.768 bis 32.767
int
4 Byte
-2.147.483.648 bis 2.147.483.647
long
8 Byte
-9.223.372.036.854.775.808 bis
9.223.372.036.854.775.807
float
4 Byte
±1,5 × 10-45 bis ±3,4 × 1038
double
8 Byte
±5,0e-324 bis ±1,7e308
bool
2 Byte
Wahr oder falsch
Zeichenkette
-
Null oder mehr Unicode-Zeichen

Alle Datentypen, die in Tabelle 1-3 aufgeführt sind, sind Werttypen mit Ausnahme von „string“. String ist ein Verweistyp. Die Variablen, die direkt auf den Werttypen basieren, enthalten den Wert. Bei einem Verweistyp enthält die Variable die Adresse des Speicherbereichs, an dem die tatsächlichen Daten gespeichert werden. In Lektion 2 erfahren Sie mehr über die Unterschiede zwischen Wert- und Verweistypen.

ERLÄUTERUNGEN ZU ARRAYS

Ein Array ist eine Auflistung von Elementen, auf die mithilfe eines eindeutigen Indexes zugegriffen werden kann.

Ein Array in C# wird häufig verwendet, um eine Auflistung von Elementen eines ähnlichen Typs darzustellen. Der folgende Code zeigt ein Beispiel einer Array-Deklaration:

int[] numbers = { 1, 2, 3, 4, 5 };

Diese Deklaration erstellt ein Array, dass über die Namenszahlen identifiziert wird. Dieses Array kann eine Auflistung von fünf Ganzzahlen speichern. Diese Deklaration initialisiert auch die einzelnen Arrayelemente entsprechend durch die Zahlen 1 bis 5.

Auf jedes Arrayelement kann mithilfe eines Indexes direkt zugegriffen werden. In .NET Framework sind Arrayindizes nullbasiert. Das bedeutet, dass Sie für den Zugriff auf das erste Element Index 1 verwenden, für den Zugriff auf das zweite Element Index 2 und so weiter.

Für den Zugriff auf ein einzelnes Arrayelement verwenden Sie den Namen des Arrays, auf den der in eckige Klammen eingeschlossene Index folgt. So gibt beispielsweise numbers[0] einen Wert 1 aus dem oben deklarierten Array zurück und numbers[4] den Wert 5. Außerhalb seiner definierten Grenzen darf nicht auf ein Array zugegriffen

10 | Lektion 1

X REF
X REF

Arrays werden ausführlicher in Lektion 3 „Allgemeine Grundlagen der Softwareentwicklung“ behandelt.

werden. Sie erhalten beispielsweise eine Fehlermeldung, wenn Sie versuchen, auf das Arrayelement numbers[5] zuzugreifen.

ERLÄUTERUNGEN ZU OPERATOREN

Operatoren sind Symbole, die angeben, welche Operation auf den Operanden durchzuführen ist, ehe ein Ergebnis zurückgegeben wird.

Zu den Beispielen für Operatoren zählen +, -, *, / und so weiter. Operanden können Variablen, Konstanten, Literale usw. sein. Je nachdem, wie viele Operanden involviert sind, gibt es drei Arten von Operatoren:

Unäre Operatoren: Unäre Operatoren arbeiten nur mit einem Operanden. Zu den Beispielen zählen ++x, x++ oder isEven, wobei x ein Integer-Datentyp und isEven ein boolescher Datentyp ist.

Binäre Operatoren: Die binären Operatoren arbeiten mit zwei Operanden. Zu den Beispielen zählen x + y oder x> y.

Ternäre Operatoren: Ternäre Operatoren arbeiten mit drei Operanden. In C# gibt es nur den ternären Operator „?“.

Oftmals erfordern Ausdrücke mehr als einen Operator. In diesem Fall muss der Compiler bestimmen, welcher Operator Vorrang vor den anderen hat. Tabelle 1-4 listet die C#-Operatoren in ihrer Rangfolge auf. Je höher sich ein Operator in der Tabelle befindet, desto höher ist auch sein Rang. Operatoren mit einem höheren Rang werden vor Operatoren mit einem niedrigen Rang evaluiert. Operatoren, die in der gleichen Zeile erscheinen, haben dieselbe Rangfolge.

Tabelle 1-4

Operatorrangfolge in C#

Kategorie Operatoren Primär x.y f(x) a[x] x++ x -- new typeof checked unchecked Unär +-
Kategorie
Operatoren
Primär
x.y f(x) a[x] x++ x -- new
typeof checked unchecked
Unär
+- ! ~ ++x --x (T)x
Multiplikativ
* / %
Additiv
+-
Umschalt
<< >>
Relationale und Typenprüfung
< > <= >= is as
Gleichheit
== !=
Logisches UND
&
Logisches XOR
^
Logisches ODER
|
Bedingtes UND
&&
Bedingtes ODER
||
Bedingtes ternär
?:
Zuweisung
= *= /= %= +=-= <<= >>= &= ^= |=

Der unäre Inkrementoperator (++) fügt 1 zum Wert eines Bezeichners hinzu. Dagegen subtrahiert der Dekrementoperator (--) 1 vom Wert eines Bezeichners. Das unäre Inkrement und Dekrement kann als Präfix oder Suffix verwendet werden. Zum Beispiel:

Einführung in das Programmieren | 11

int x = 10; x++; //Wert von x ist jetzt 11 ++x; //Wert von x ist jetzt 12

Die Art, wie unäre Inkrement- und Dekrementoperatoren arbeiten, wenn sie als Teil einer Zuweisung verwendet werden, kann sich auf die Ergebnisse auswirken. Insbesondere wenn unäre Inkrement- und Dekrementoperatoren als Präfixe verwendet werden, wird der aktuelle Wert des Bezeichners vor der Erhöhung bzw. Verringerung zurückgegeben. Wenn sie andererseits als Suffix verwendet werden, wird der Wert des Bezeichners zurückgegeben, nachdem die Erhöhung bzw. Verringerung abgeschlossen ist. Das folgende Codebeispiel zeigt auf, was das bedeutet:

int y = x++; // der Wert von y ist 12 int z = ++x; // der Wert von z ist 14

In der ersten Anweisung wird der Wert von x vor dem Inkrementvorgang zurückgegeben. Infolgedessen ist, nachdem die Anweisung ausgeführt wurde, der Wert von y 12 und der Wert von x 13. Im Gegensatz dazu wird in der zweiten Anweisung der Wert von x erhöht, ehe dessen Wert für die Zuordnung zurückgegeben wird. Somit ist nach Ausführung der Anweisung der Wert für x und z 14.

ERLÄUTERUNGEN ZU METHODEN

Methoden sind Codeblöcke, die eine Reihe von Anweisungen enthalten. Methoden können über Argumente Eingaben erhalten und einen Wert an den Aufrufer zurückgeben.

BEREIT FÜR DIE ZERTIFIZIERUNG Verstehen Sie die Bedeutung der wesentlichen Elemente der Programmierung wie Variablen, Datentypen, Operatoren und Methoden?

1.1

Im vorherigen Codebeispiel haben Sie etwas über die Main-Methode erfahren. Methoden finden Sie im Programm dort, wo Aktionen stattfinden. Genauer gesagt besteht eine Methode aus einer Reihe von Anweisungen, die ausgeführt werden, wenn die Methode aufgerufen wird.

Die Main-Methode gibt keinen Wert an den aufrufenden Code zurück. Dies wird durch die Verwendung des void-Schlüsselworts deutlich gemacht. Müsste die Methode einen Wert zurückgeben, würde der passende Datentyp für den Rückgabewert anstelle von void verwendet werden.

Klassenmember können über Modifizierer wie statisch, öffentlich oder privat verfügen.

Diese Modifizierer geben an, wie und wo auf Klassenmember zugegriffen werden kann. Mehr über diese Modifizierer erfahren Sie in Lektion 2.

Grundlegendes zu Entscheidungsstrukturen

FAZIT Entscheidungsstrukturen führen die Möglichkeit einer Entscheidungsfindung in ein Programm ein. Sie ermöglichen
FAZIT
Entscheidungsstrukturen führen die Möglichkeit einer Entscheidungsfindung in
ein Programm ein. Sie ermöglichen Ihnen eine Verzweigung zu verschiedenen
Codeabschnitten in Abhängigkeit vom Wert „wahr“ eines booleschen Ausdrucks.

Bei den Steuerelementstrukturen für die Entscheidungsfindung in C# handelt es sich um if-, if-else- und switch-Anweisungen. In den folgenden Abschnitten werden diese Anweisungen genauer beschrieben.

Die if-Anweisung

Die if-Anweisung führt nur dann eine bestimmte Anweisungssequenz aus, wenn der entsprechende boolesche Ausdruck „wahr“ ergibt.

12

|

Lektion 1

Gelegentlich kommt es vor, dass eine Reihe von Anweisungen nur ausgeführt werden sollen, wenn eine bestimmte Bedingung wahr ist. In C# erreichen Sie dies über die if-Anweisung. Führen Sie die folgenden Schritte durch, um ein Programm zu erstellen, das eine if-Anweisung enthält.

ein Programm zu erstellen, das eine if-Anweisung enthält. VERWENDEN DER IF-ANWEISUNG VORBEREITUNG. Führen Sie die

VERWENDEN DER IF-ANWEISUNG

VORBEREITUNG. Führen Sie die folgenden Anweisungen durch, um die If-Anweisung zu verwenden:

1. Fügen Sie ein neues Konsolenanwendungsprojekt namens „If_Statement“ zur Projektmappe „Lektion01“ hinzu.

2. Fügen Sie den folgenden Code zur Main-Methode der Program.cs-Klasse hinzu:

int number1 = 10; int number2 = 20; if (number2 > number1)

{

Console.WriteLine ("Zahl2 ist größer als Zahl1");

}

3. Wählen Sie Debuggen > Starten ohne Debuggen, oder drücken Sie STRG+F5.

4. Sie sehen die Ausgabe des Programms in einem Befehlsfenster.

5. Drücken Sie eine beliebige Taste, um das Befehlsfenster zu schließen.

PAUSE. Lassen Sie das Projekt zur Verwendung in der nächsten Übung geöffnet.

Die Funktionen dieses Codes gleichen denen des Flussdiagramms aus Abbildung 1-4.

Abbildung 1-4

Flussdiagramm-Äquivalent der if-Anweisung des Beispiels

START1-4 Flussdiagramm-Äquivalent der if-Anweisung des Beispiels n1 = 10 n2 = 20 Nein n2 > n1?

n1 = 10 n2 = 20 Nein n2 > n1? Ja Ausgabe "n2 ist >
n1 = 10
n2 = 20
Nein
n2 > n1?
Ja
Ausgabe
"n2 ist > n1"

STOPP

Hier wird die Ausgabeanweisung nur ausgeführt, wenn der boolesche Ausdruck in Klammern „wahr“ ergibt. Ergibt der Ausdruck „falsch“, wird das Steuerelement an die Anweisung übergeben, die der if-Anweisung folgt.

Einführung in das Programmieren | 13

Im C#-Code sind die Klammern um die Bedingung erforderlich. Die geschweiften Klammern sind jedoch optional, wenn nur eine Anweisung im Codeblock vorhanden ist. Somit entspricht die if-Anweisung dem Folgenden:

if (number2 > number1) Console.WriteLine ("Zahl2 ist größer als Zahl1");

Betrachten Sie im Gegensatz dazu dieses Beispiel:

if (number2 > number1) Console.WriteLine ("Zahl2 ist größer als Zahl1");

Console.WriteLine(Zahl2);

Hier ist nur die erste Console.WriteLine-Anweisung Teil der if-Anweisung. Die zweite Console.WriteLine-Anweisung wird unabhängig vom Wert des booleschen Ausdrucks immer ausgeführt.

Aus Gründen der Übersichtlichkeit ist es immer eine gute Idee, die Anweisung zu umschließen, die bedingt in geschweiften Klammern ausgeführt werden muss.

Wie das folgende Beispiel zeigt, können if-Anweisungen auch innerhalb anderer if-Anweisungen geschachtelt werden:

int number1 = 10; if (number1 > 5)

{

Console.WriteLine("Zahl1 ist größer als 5"); if (number1 < 20)

{

Console.WriteLine ("Zahl1 ist kleiner als 20");

}

}

Da beide Bedingungen „wahr“ ergeben, würde dieser Code die folgende Ausgabe generieren:

Zahl1 ist größer als 5 Zahl1 ist kleiner als 20

Aber was würde passieren, wenn der Wert von number1 vor der Ausführung der äußeren if-Anweisung 25 statt 10 ergibt? In diesem Fall ergibt der erste boolesche Ausdruck „wahr“, aber der zweite boolesche Ausdruck „falsch“, sodass folgende Ausgabe generiert wird:

Zahl1 ist größer als 5

Die if-else-Anweisung

Die if-else-Anweisung ermöglicht Ihnen mit dem Programm eine Aktion auszuführen, wenn der boolesche Ausdruck als „wahr“ ausgewertet wird und eine andere Aktion, wenn der boolesche Ausdruck als „falsch“ ausgewertet wird.

Führen Sie die folgenden Schritte durch, um ein Beispielprogramm zu erstellen, das die if-else-Anweisung verwendet.

zu erstellen, das die if-else-Anweisung verwendet. VERWENDEN DER IF-ELSE-ANWEISUNG VORBEREITUNG. Um die

VERWENDEN DER IF-ELSE-ANWEISUNG

VORBEREITUNG. Um die if-else-Anweisung zu verwenden, gehen Sie wie folgt vor:

14

|

Lektion 1

2. Fügen Sie den folgenden Code zur Main-Methode der Program.cs-Klasse hinzu:

TestIfElse(10);

3. Fügen Sie dann die folgende Methode zur Program.cs-Klasse hinzu:

public static void TestIfElse (Int n)

{

 

if (n < 10)

{

Console.WriteLine ("n ist kleiner als 10");

}

else if (n < 20)

{

Console.WriteLine ("n ist kleiner als 20");

}

else if (n < 30)

{

Console.WriteLine ("n ist kleiner als 30");

}

else

{

Console.WriteLine ("n ist größer oder gleich 30");

}

}

4. Wählen Sie Debuggen > Starten ohne Debuggen, oder drücken Sie STRG+F5.

5. Sie sehen die Ausgabe des Programms in einem Befehlsfenster.

6. Drücken Sie eine beliebige Taste, um das Befehlsfenster zu schließen.

7. Ändern Sie den Code der Main-Methode, um die TestIfElse-Methode mit verschie- denen Werten aufzurufen. Beachten Sie, wie ein anderen Zweig der If-else-Anweisung aufgrund der Änderungen ausgeführt wird.

PAUSE. Lassen Sie das Projekt zur Verwendung in der nächsten Übung geöffnet.

Hier kombiniert der Code der TestIfElse-Methode mehrere If-else-Anweisungen, um mehrere Bedingungen zu testen. Ist der Wert von n beispielsweise 25, dann ergeben die ersten beiden Bedingungen (n < 10 und n < 20) „falsch“, die dritte Bedingung aber „wahr“. Infolgedessen druckt die Methode die folgende Ausgabe:

n ist kleiner als 30

Dieses C#-Programm entspricht dem Flussdiagramm in Abbildung 1-5.

Einführung in das Programmieren | 15

Abbildung 1-5

Flussdiagramm-Äquivalent der if-else-Anweisung des Beispiels

STARTder if-else-Anweisung des Beispiels Ja Ausgabe n < 10? "n < 10" Nein Ja

Ja Ausgabe n < 10? "n < 10" Nein Ja Ausgabe n < 20? "n
Ja
Ausgabe
n
< 10?
"n < 10"
Nein
Ja
Ausgabe
n
< 20?
"n < 20"
Nein
Ja
Ausgabe
n
< 30?
"n = > 30"
Nein
Ausgabe
"n = > 30"

STOPP

Die switch-Anweisung

Die switch-Anweisung ermöglicht Mehrfachverzweigungen. In vielen Fällen kann die Verwendung einer switch-Anweisung eine komplexe Kombination von if-else- Anweisungen vereinfachen.

HINWEIS *

Der Ausdruck nach der case-Anweisung muss ein konstanter Ausdruck sein und muss ein Datentyp sein, der mit der switch-Anweisung übereinstimmt.

Die switch-Anweisung besteht aus dem switch-Schlüsselwort, gefolgt von einem Ausdruck in Klammern und gefolgt von einem switch-Block. Der switch-Block kann eine oder mehrere case-Anweisungen oder eine default-Anweisung enthalten. Wenn die switch-Anweisung ausgeführt wird, wird das Steuerelement abhängig vom Wert des switch-Ausdrucks an eine passende case-Anweisung übergeben. Wenn der Ausdruck mit keiner der case-Anweisungen übereinstimmt, wird das Steuerelement an die default-Anweisung übergeben. Der switch-Ausdruck muss in Klammern eingeschlossen sein.

Führen Sie die folgenden Schritte durch, um ein Programm zu erstellen, das einfache Ausdrücke mit der switch-Anweisung auswertet.

das einfache Ausdrücke mit der switch-Anweisung auswertet. VERWENDEN DER SWITCH-ANWEISUNG VORBEREITUNG. Gehen Sie wie

VERWENDEN DER SWITCH-ANWEISUNG

VORBEREITUNG. Gehen Sie wie folgt vor, um die switch-Anweisung zu verwenden:

1. Fügen Sie ein neues Konsolenanwendungsprojekt namens „switch_Statement“ zur Projektmappe „Lektion01“ hinzu.

2. Fügen Sie den folgenden Code zur Main-Methode der Program.cs-Klasse hinzu:

TestSwitch(10, 20, ’+’);

16

|

Lektion 1

3. Fügen Sie die folgende Methode zur Program.cs-Klasse hinzu:

public static void TestSwitch(int op1, int op2, char opr)

HINWEIS *

Die Console.Write- und die Console.WriteLine- Methode können Formatzeichenfolgen wie „Ergebnisse: {0}“ zur Formatierung der Ausgabe verwenden. Hier steht die Zeichenfolge {0} für das erste Argument, das nach der Formatzeichenfolge angegeben ist. In der TestSwitch- Methode wird die Formatzeichenfolge „{0}“ durch den Wert des folgenden Arguments ersetzt.

{

 

int result;

switch (opr)

{

case ’+’:

result = op1 + op2; break; case ’-’:

result = op1 - op2; break; case ’*’:

result = op1 * op2; break; case ’/ ’:

result = op1 / op2; break; default:

Console.WriteLine(“Unbekannter Operator”); return;

}

Console.WriteLine(“Result: {0}”, result); return;

}

4. Wählen Sie Debuggen > Starten ohne Debuggen, oder drücken Sie STRG+F5.

5. Sie sehen die Ausgabe des Programms in einem Befehlsfenster.

6. Drücken Sie eine beliebige Taste, um das Befehlsfenster zu schließen.

7. Ändern Sie den Code der Main-Methode, um die TestSwitch-Methode mit verschiedenen Werten aufzurufen. Beachten Sie, wie ein anderen Zweig der switch-Anweisung aufgrund der Änderungen ausgeführt wird.

PAUSE. Lassen Sie das Projekt zur Verwendung in der nächsten Übung geöffnet.

Hier akzeptiert die TestSwitch-Methode zwei Operanden (op1 und op2) und einen Operator (opr) und wertet den resultierenden Ausdruck aus. Der Wert des switch- Ausdrucks wird mit den case-Anweisungen im switch-Block verglichen. Wenn eine Übereinstimmung vorliegt, werden die Anweisungen, die auf die Übereinstimmung folgen, ausgeführt. Gibt es bei keiner case-Anweisung eine Übereinstimmung, wird das Steuerelement an den optionalen Standardzweig übergeben.

Beachten Sie, dass nach jedem Fall (case) eine break-Anweisung folgt. Mit der break-Anweisung wird die switch-Anweisung beendet, und das Steuerelement wird an die nächste Anweisung außerhalb des switch-Blocks übergeben. Durch die break-Anweisung wird sichergestellt, dass nur ein Zweig ausgeführt wird. Darüber hinaus werden Programmierfehler vermieden. Wenn Sie Code nach der case-Anweisung angeben, müssen Sie diesen mit einer break-Anweisung abschließen (oder mit einer anderen Kontrollanweisung, beispielsweise return), um zu verhindern, dass die Programmsteuerung mit der folgenden case-Anweisung fortgesetzt wird.

Einführung in das Programmieren | 17

Wenn jedoch kein Code nach der case-Anweisung angegeben wird, kann das Steuerelement ruhig für alle nachfolgenden case-Anweisungen fortgesetzt werden. Der folgende Code veranschaulicht mögliche Vorteile:

public static void TestSwitchFallThrough()

BEREIT FÜR DIE ZERTIFIZIERUNG Verstehen Sie die Bedeutung der Computer- Entscheidungsstrukturen wie Verzweigung und Wiederholung?

1.2

{

 

DateTime dt = DateTime.Today; switch (dt.DayOfWeek)

{

case DayOfWeek.Monday:

case DayOfWeek.Tuesday:

case DayOfWeek.Wednesday:

case DayOfWeek.Thursday:

case DayOfWeek.Friday:

Console.WriteLine(“Today is a weekday”); break; default:

Console.WriteLine(“Today is a weekend day”); break;

}

}

Wenn hier der Wert des Ausdrucks „dt.DayofWeek“ „DayOfWeek.Monday“ ist, kommt es zu einer Übereinstimmung mit der ersten case-Anweisung. Da aber kein Code oder keine control-transfer-Anweisung angegeben ist, wird die Ausführung in der nächsten

Anweisung fortgesetzt. Infolgedessen wird im Befehlsfenster die Meldung„Heute ist ein Wochentag“ angezeigt.

HINWEIS * Sie können sich für if-else-Anweisungen oder für eine switch-Anweisung entscheiden. Dabei hängt die

HINWEIS *

HINWEIS * Sie können sich für if-else-Anweisungen oder für eine switch-Anweisung entscheiden. Dabei hängt die
HINWEIS * Sie können sich für if-else-Anweisungen oder für eine switch-Anweisung entscheiden. Dabei hängt die
HINWEIS * Sie können sich für if-else-Anweisungen oder für eine switch-Anweisung entscheiden. Dabei hängt die
HINWEIS * Sie können sich für if-else-Anweisungen oder für eine switch-Anweisung entscheiden. Dabei hängt die

Sie können sich für if-else-Anweisungen oder für eine switch-Anweisung entscheiden. Dabei hängt die Entscheidung von der Grundlage des Vergleichs und der Lesbarkeit des Codes ab. So trifft beispielsweise der Code der TestIfElse-Methode Entscheidungen basierend auf Bedingungen, die sich besser für die Verwendung mit if-else-Anweisungen eignen. Bei der TestSwitch-Methode basieren die Entscheidungen auf konstanten Werten, sodass der Code besser lesbar ist, wenn er als switch-Anweisung geschrieben wird.

Entscheidungen auf konstanten Werten, sodass der Code besser lesbar ist, wenn er als switch-Anweisung geschrieben wird.
Entscheidungen auf konstanten Werten, sodass der Code besser lesbar ist, wenn er als switch-Anweisung geschrieben wird.

Grundlegendes zu Wiederholungsstrukturen

FAZIT C# unterstützt vier verschiedene Steuerelementstrukturen, durch die Programme sich wiederholende Aufgaben
FAZIT
C# unterstützt vier verschiedene Steuerelementstrukturen, durch die Programme sich
wiederholende Aufgaben ausführen können: die while-Schleife, die do-while-Schleife,
die for-Schleife und die foreach-Schleife

Diese sich wiederholende control-Anweisungen können eingesetzt werden, um die Anweisungen im Schleifenkörper abhängig von dem Kriterium zum Beenden der Schleife wiederholt auszuführen. Eine Schleife kann auch durch eine der vielen control-transfer-Anweisungen, die das Steuerelement außerhalb der Schleife übertragen, beendet werden. Bei diesen Anweisungen handelt es sich um die break-, goto-, return- und throw-Anweisungen. Abschließend kann die continue-Anweisung eingesetzt werden, um das Steuerelement an die nächste Iteration der Schleife weiterzugeben, ohne die Schleife zu verlassen.

Erläuterungen zur while-Schleife

Die while-Schleife wiederholt die Ausführung einer Anweisung, bis ein bestimmter boolescher Ausdruck als „falsch“ ausgewertet wird.

18

|

Lektion 1

HINWEIS *

Bei der while-Schleife muss der boolesche Test in Klammern gesetzt werden. Wenn mehr als eine Anweisung als Teil der while- Schleife ausgeführt werden muss, müssen diese Anweisungen zusammen in geschweiften Klammern eingeschlossen werden.

zusammen in geschweiften Klammern eingeschlossen werden. Die allgemeine Form der while-Schleife sieht wie folgt aus:

Die allgemeine Form der while-Schleife sieht wie folgt aus:

while (boolean test) statement

Hier wird ein boolescher Test zu Beginn der Schleife ausgeführt. Wenn der Test „wahr“ ergibt, wird der Schleifenkörper ausgeführt und der Test wiederholt. Wenn der Test „falsch“ ergibt, wird die Schleife beendet, und das Steuerelement wird zu nächsten Anweisung übertragen, die der Schleife folgt.

Da der boolesche Test vor Ausführung der Schleife ausgeführt wird, ist es möglich, dass der Körper einer while-Schleife nie ausgeführt wird. Dies geschieht, wenn der Test zum ersten Mal „falsch“ ergibt.

Führen Sie die folgenden Schritte durch, um ein Programm zu erstellen, in dem die while-Schleife verwendet wird.

VERWENDEN DER WHILE-SCHLEIFE

VORBEREITUNG. Führen Sie folgende Aufgaben durch, um die while-Schleife zu verwenden:

1. Fügen Sie ein neues Konsolenanwendungsprojekt namens „while_Statement“ zur Projektmappe „Lektion01“ hinzu.

2. Fügen Sie den folgenden Code zur Main-Methode der Program.cs-Klasse hinzu:

WhileTest();

3. Fügen Sie die folgende Methode zur Program.cs-Klasse hinzu:

private static void WhileTest()

{

int i = 1;

while (i <= 5)

{

Console.WriteLine(“Der Wert von i = {0}”, i); i++;

}

}

4. Wählen Sie Debuggen > Starten ohne Debuggen, oder drücken Sie STRG+F5.

5. Sie sehen die Ausgabe des Programms in einem Befehlsfenster.

6. Drücken Sie eine beliebige Taste, um das Befehlsfenster zu schließen.

PAUSE. Lassen Sie das Projekt zur Verwendung in der nächsten Übung geöffnet.

In dieser Übung wird der Wert 1 zur Variablen i zugewiesen. Anschließend wird die Bedingung in der while-Schleife ausgewertet. Da die Bedingung wahr ist (1 < = 5), wird der Code innerhalb der while-Anweisung ausgeführt. Der Wert von i wird im Befehlsfenster ausgegeben und dann um 1 auf 2 erhöht. Über das Steuerelement erfolgt dann eine Rückgabe an die while-Anweisung, und die Bedingung wird erneut ausgewertet. Da die Bedingung noch erfüllt ist (2 < = 5), wird der Anweisungsblock noch einmal ausgeführt. Die Schleife wird fortgesetzt, bis der Wert von i 6 beträgt und die Bedingung in der while-Schleife „falsch“ ergibt (6 < = 5). Die obige Methode generiert die folgende Ausgabe, wenn sie ausgeführt wird:

Der Wert von i = 1 Der Wert von i = 2 Der Wert von i = 3 Der Wert von i = 4 Der Wert von i = 5

Das Flussdiagramm-Äquivalent zu dieser while-Schleife ist in Abbildung 1-6 dargestellt.

Einführung in das Programmieren | 19

Abbildung 1-6

Das Flussdiagramm- Äquivalent des Beispiels der while-Schleife

STARTFlussdiagramm- Äquivalent des Beispiels der while-Schleife i = 1 Nein i < = 5? Ja Ausgabe

i = 1 Nein i < = 5? Ja Ausgabe i i = i +
i = 1
Nein
i < = 5?
Ja
Ausgabe i
i = i + 1

STOPP

Die Anweisung in der Schleife, die den Wert von i erhöht, spielt eine wichtige Rolle. Wenn Sie diese Anweisung auslassen, wird die Bedingung nie erfüllt, und Sie erhalten eine unendliche Schleife.

In den meisten Fällen benötigen Sie für eine gut durchdachte Schleife die folgenden drei Komponenten:

HINWEIS *

Um eine Endlosschleife zu vermeiden, müssen Sie die Schleife so gestalten, dass diese beendet wird.

1. Initialisierer: Der Initialisierer setzt den Schleifenzähler auf den korrekten Anfangswert. Im obigen Beispiel wird die Variable i auf 1 gesetzt, ehe die Schleife beginnt.

2. Schleifentest: Der Schleifentest gibt die Beendigungsbedingung für die Schleife an. Im obigen Beispiel ist der Ausdruck (i < = 5) der Bedingungsausdruck.

3. Beendigungsausdruck: Der Beendigungsausdruck ändert den Wert für den Schleifenzähler so, dass die Beendigungsbedingung erfüllt wird. Im obigen Beispiel ist der Ausdruck i++ der Beendigungsausdruck.

Erläuterungen zur do-while-Schleife

HINWEIS *

Bei der do-while- Schleife muss der boolesche Test in Klammern gesetzt werden. Wenn mehr als eine Anweisung als Teil der do-while- Schleife ausgeführt werden muss, müssen diese Anweisungen zusammen in geschweiften Klammern eingeschlossen werden.

Die do-while-Schleife wiederholt die Ausführung eines Anweisungsblocks, bis ein bestimmter boolescher Ausdruck als „falsch“ ausgewertet wird. Bei der do-while- Schleife wird die Bedingung am Ende der Schleife getestet.

Die do-while Schleife ähnelt der while-Schleife. Im Gegensatz zur while-Schleife muss der Textkörper der do-while-Schleife allerdings mindestens einmal ausgeführt werden.

Die allgemeine Form der do-while Schleife sieht wie folgt aus:

do

statement while (boolean test);

Führen Sie die folgenden Schritte durch, um ein Programm zu erstellen, in dem die do-while-Schleife verwendet wird.

20 | Lektion 1

20 | Lektion 1 VERWENDEN DER DO-WHILE SCHLEIFE VORBEREITUNG. Führen Sie folgende Aufgaben durch, um die

VERWENDEN DER DO-WHILE SCHLEIFE

VORBEREITUNG. Führen Sie folgende Aufgaben durch, um die do-while-Schleife zu verwenden:

1. Fügen Sie ein neues Konsolenanwendungsprojekt namens „dowhile_Statement“ zur Projektmappe „Lektion01“ hinzu.

2. Fügen Sie den folgenden Code zur Main-Methode der Program.cs-Klasse hinzu:

DoWhileTest();

3. Fügen Sie die folgende Methode zur Program.cs-Klasse hinzu:

private static void DoWhileTest()

{

int i = 1; do

{

Console.WriteLine(“Der Wert von i = {0}”, i); i++;

}

while (i <= 5);

}

4. Wählen Sie Debuggen > Starten ohne Debuggen, oder drücken Sie STRG+F5.

5. Sie sehen die Ausgabe des Programms in einem Befehlsfenster.

6. Drücken Sie eine beliebige Taste, um das Befehlsfenster zu schließen.

PAUSE. Lassen Sie das Projekt zur Verwendung in der nächsten Übung geöffnet.

HINWEIS *

Bei der for-Schleife müssen die drei Steuerelementausdrücke in Klammern eingeschlossen werden. Wenn mehr als eine Anweisung als Teil der Schleife ausgeführt werden muss, müssen diese Anweisungen zusammen in geschweiften Klammern eingeschlossen werden.

In dieser Übung gelangt das Steuerelement direkt in die Schleife, nachdem der Variablen i der Wert 1 zugewiesen wurde. An dieser Stelle wird der Code innerhalb des do-while- Anweisungsblocks ausgeführt. Insbesondere wird der Wert von i in das Befehlsfenster geschrieben und um 1 auf 2 erhöht. Anschließend wird die Bedingung für die do-while- Schleife ausgewertet. Da die Bedingung immer noch erfüllt ist (2 < = 5), erfolgt über das Steuerelement eine Rückgabe an die do-while-Anweisung, und der Anweisungsblock wird erneut ausgeführt. Die Schleife wird fortgesetzt, bis der Wert von i 6 beträgt und die Bedingung in der do-while-Schleife „falsch“ ergibt (6 < = 5). Die obige Methode generiert, wenn sie ausgeführt wird, dieselbe Ausgabe wie die WhileTest-Methode.

Ob eine while-Schleife oder eine do-while-Schleife gewählt wird, hängt davon ab, ob die Schleife mindestens einmal ausgeführt werden soll. Wenn Sie die Schleife null mal oder mehrere Male ausführen möchten, wählen Sie die while-Schleife. Wenn Sie im Gegensatz dazu die Schleife einmal oder mehrmals ausführen, wählen Sie die do-while-Schleife.

Grundlegendes zur for-Schleife

Die for-Schleife kombiniert die drei Elemente einer Iteration (Initialisierungsausdruck, Ausdruck der Beendigungsbedingung und Zählausdruck) zu einem lesbareren Code.

Die for-Schleife ähnelt der while-Schleife. Sie ermöglicht einer Anweisung oder einem Anweisungsblock so lange ausgeführt zu werden, bis ein Ausdruck „falsch“ ergibt. Die allgemeine Form der for-Schleife sieht wie folgt aus:

for (init-expr; cond-expr; count-expr)

statement

Einführung in das Programmieren | 21

Wie Sie sehen, kombiniert die for-Schleife die drei wesentlichen Steuerelementausdrücke einer Iteration. Dies führt zu einem besser lesbaren Code. Die for-Schleife eignet sich besonders zum Erstellen von Iterationen, die eine bestimmte Anzahl von Malen ausgeführt werden müssen.

Führen Sie die folgenden Schritte durch, um ein Programm zu erstellen, in dem die for-Schleife verwendet wird.

zu erstellen, in dem die for-Schleife verwendet wird. VERWENDEN DER FOR-SCHLEIFE VORBEREITUNG. Führen Sie

VERWENDEN DER FOR-SCHLEIFE

VORBEREITUNG. Führen Sie folgende Aufgaben durch, um die for-Schleife zu verwenden:

1. Fügen Sie ein neues Konsolenanwendungsprojekt namens „for_Statement“ zur Projektmappe „Lektion01“ hinzu.

2. Fügen Sie den folgenden Code zur Main-Methode der Program.cs-Klasse hinzu:

ForTest();

3. Fügen Sie die folgende Methode zur Program.cs-Klasse hinzu:

private static void ForTest()

{

for(int i = 1; i<= 5; i++)

{

Console.WriteLine(“Der Wert von i = {0}”, i);

}

}

4. Wählen Sie Debuggen > Starten ohne Debuggen, oder drücken Sie STRG+F5.

5. Sie sehen die Ausgabe des Programms in einem Befehlsfenster.

6. Drücken Sie eine beliebige Taste, um das Befehlsfenster zu schließen.

PAUSE. Lassen Sie das Projekt zur Verwendung in der nächsten Übung geöffnet.

Die ForTest-Methode generiert, wenn sie ausgeführt wird, dieselbe Ausgabe wie die WhileTest-Methode. Hier wird die Variable i innerhalb des Bereichs der for- Schleife ausgeführt, und ihrem Wert wird 1 zugewiesen. Die Schleife wird solange wiederholt, solange der Wert von i kleiner oder gleich 5 ist. Nach dem Schleifenkörper wird der Zählausdruck (count-expr) ausgewertet, und das Steuerelement wird an den Bedingungsausdruck (cond-expr.) zurückgegeben.

Alle Steuerelementausdrücke einer for-Schleife sind optional. Sie können beispielsweise alle Ausdrücke weglassen, um eine Endlosschleife wie die folgende zu erstellen:

for (; ;)

{

//do nothing

}

Grundlegendes zur foreach-Schleife

Die foreach-Schleife eignet sich für die Iteration durch die Elemente einer Sammlung.

Die foreach-Schleife kann als erweiterte Version der for-Schleife für eine Iteration durch Sammlungen wie Arrays oder Listen betrachtet werden. Die allgemeine Form der foreach- Anweisung sieht wie folgt aus:

foreach (ElementType-Element in einer Sammlung) statement

22

|

Lektion 1

Die Steuerelementausdrücke für die foreach-Schleife müssen in Klammern eingeschlossen werden. Wenn mehr als eine Anweisung als Teil der Schleife ausgeführt werden muss, müssen diese Anweisungen zusammen in geschweiften Klammern eingeschlossen werden.

Führen Sie die folgenden Schritte aus, um ein Programm zu erstellen, das veranschaulicht, wie die foreach-Schleife eine einfache Möglichkeit für eine Iteration durch eine Sammlung bereitstellt.

für eine Iteration durch eine Sammlung bereitstellt. VERWENDEN DER FOREACH-SCHLEIFE VORBEREITUNG. Gehen Sie wie

VERWENDEN DER FOREACH-SCHLEIFE

VORBEREITUNG. Gehen Sie wie folgt vor, um die foreach-Schleife zu verwenden:

1. Fügen Sie ein neues Konsolenanwendungsprojekt namens „foreach_Statement“ zur Projektmappe „Lektion01“ hinzu.

2. Fügen Sie den folgenden Code zur Main-Methode der Program.cs-Klasse hinzu:

ForEachTest();

3. Fügen Sie die folgende Methode zur Program.cs-Klasse hinzu:

private static void ForEachTest()

{

int[] numbers = { 1, 2, 3, 4, 5 }; foreach (int i in numbers)

{

Console.WriteLine(“Der Wert von i = {0}”, i);

}

}

4. Wählen Sie Debuggen > Starten ohne Debuggen, oder drücken Sie STRG+F5.

5. Sie sehen die Ausgabe des Programms in einem Befehlsfenster.

6. Drücken Sie eine beliebige Taste, um das Befehlsfenster zu schließen.

PAUSE. Lassen Sie das Projekt zur Verwendung in der nächsten Übung geöffnet.

In dieser Übung durchläuft die Schleife nacheinander alle Elemente der Sammlung, nummeriert diese und zeigt sie im Befehlsfenster an. Diese Methode erzeugt die gleiche Ausgabe wir die ForTest-Methode.

Erläuterungen zur Rekursion

Rekursion ist eine Programmiertechnik, mit der eine Methode sich selbst aufruft, um ein Ergebnis zu berechnen.

Rekursion und Iteration sind miteinander verknüpft. Sie können eine Methode schreiben, die die gleichen Ergebnisse mit Rekursion oder Iteration generiert. Welche Methode Sie wählen, hängt in der Regel von der Art des Problems ab. Beispielsweise ist eine rekursive Lösung eleganter, wenn Sie die Lösung eines Problems in Form einer kleineren Version desselben Problems definieren können.

Das Beispiel der faktoriellen Operation aus der Mathematik macht das Konzept deutlicher. Die allgemeine rekursive Definition für Fakultät (n geschrieben!) lautet wie folgt:

n! = 

1

(n - 1)! × n

if n = 0, if n > 0.

Gemäß dieser Definition betrögt die Fakultät 1, wenn die Zahl 0 ist. Ist die Zahl größer als

null, ist die Fakultät die Zahl multipliziert mit der Fakultät der nächst kleineren Zahl. So

Einführung in das Programmieren | 23

können Sie beispielsweise 3! wie folgt herunterbrechen: 3! = 3 * 2! —> 3 * 2 * 1! —> 3 * 2 * 1 * 0! —> 3 * 2 * 1 * 1 —> 6.

Führen Sie die folgenden Schritte durch, um ein Programm zu erstellen, das eine rekursive Lösung für ein faktorielles Problem darstellt.

rekursive Lösung für ein faktorielles Problem darstellt. VERWENDEN DER REKURSIVEN METHODE VORBEREITUNG. Führen Sie

VERWENDEN DER REKURSIVEN METHODE

VORBEREITUNG. Führen Sie die folgenden Aktionen aus, um eine rekursive Methode zu verwenden:

1. Fügen Sie ein neues Konsolenanwendungsprojekt namens „RecursiveFactorial“ zur Projektmappe „Lektion01“ hinzu.

2. Fügen Sie den folgenden Code zur Main-Methode der Program.cs-Klasse hinzu:

Factorial(5);

3. Fügen Sie die folgende Methode zur Program.cs-Klasse hinzu:

public static int Factorial(int n)

{

 

if (n == 0)

{

return 1; //base case

}

else

{

return n * Factorial(n - 1); //recursive case

}

}

4. Wählen Sie Debuggen > Starten ohne Debuggen, oder drücken Sie STRG+F5.

5. Sie sehen die Ausgabe des Programms in einem Befehlsfenster.

6. Drücken Sie eine beliebige Taste, um das Befehlsfenster zu schließen.

7. Ändern Sie die Main-Methode, um einen anderen Wert an die faktoriellen Methode zu übergeben, und beachten Sie die Ergebnisse.

PAUSE. Lassen Sie das Projekt zur Verwendung in der nächsten Übung geöffnet.

Wie bereits in der obigen Übung gezeigt, besteht die rekursive Lösung aus zwei voneinander abgegrenzten Teilen:

BEREIT FÜR DIE ZERTIFIZIERUNG Erkennen Sie die passenden Methoden für die Behandlung von Wiederholungen?

1.3

Basisfall: Dies ist der Teil, der die Beendigungsbedingung angibt und die Methode nicht erneut aufruft. Der Basisfall bei der faktoriellen Methode ist n == 0. Ist kein Basisfall im rekursiven Algorithmus enthalten, erstellen Sie eine Endlosschleife. Eine Endlosschleife führt dazu, dass der Computer nicht mehr über ausreichend Speicher verfügt und eine System.StackOverflowException-Ausnahme auslöst.

Rekursiver Fall: Dies ist der Teil, der den Algorithmus zum Basisfall hin verschiebt. Der rekursive Fall bei der faktoriellen Methode ist der else-Teil, durch den Sie die Methode erneut aufrufen, der Wert sich aber weniger zum Basisfall hinbewegt.

Erläuterungen zur Ausnahmebehandlung

24

|

Lektion 1

Eine Ausnahme ist eine Fehlerbedingung, die bei der Ausführung eines C#-Programms entsteht. Wenn dies geschieht, wird von der Laufzeit ein Objekt erstellt, das den Fehler darstellt und auslöst. Wenn Sie die Ausnahme nicht mittels eines geeigneten Ausnahmebehandlungscode abfangen, wird die Ausführung des Programms beendet.

Wenn Sie beispielsweise versuchen, eine ganze Zahl durch null zu teilen, wird eine DivideByZeroException-Ausnahme ausgelöst. Im .NET Framework wird eine Ausnahme durch die Verwendung eines Objekts der System.Exception-Klasse oder einer davon abgeleiteten Klasse dargestellt. Es gibt vordefinierte Ausnahmeklassen, die häufig vorkommende Fehlersituationen darstellen. Dazu zählt die bereits erwähnte DivideByZeroException. Wenn Sie eine Anwendung entwerfen, die die anwendungsspezifischen Ausnahmen auslöst, sollten Sie eine Ausnahmeklasse erstellen, die sich von der System.Exception-Klasse ableitet.

Behandeln von Ausnahmen

Platzieren Sie den Code, der die Ausnahmen auslöst, zum Behandeln von Ausnahmen in einem try-Block, und platzieren Sie den Code, der die Ausnahmen behandelt, in einem catch-Block.

Die folgende Übung veranschaulicht die Verwendung eines try-catch-Blocks zur Ausnahmebehandlung. Bei der Übung wird die File.OpenText-Methode zum Öffnen einer Festplattendatei verwendet. Im Normalfall lässt sich diese Anweisung gut ausführen. Fehlt allerdings die Datei, oder liegt keine Berechtigung zum Lesen der Datei vor, wird eine Ausnahme ausgelöst.

zum Lesen der Datei vor, wird eine Ausnahme ausgelöst. BEHANDELN VON AUSNAHMEN VORBEREITUNG. Führen Sie zum

BEHANDELN VON AUSNAHMEN

VORBEREITUNG. Führen Sie zum Behandeln von Ausnahmen die folgenden Schritte durch:

1. Fügen Sie ein neues Konsolenanwendungsprojekt namens „HandlingExceptions“ zur Projektmappe „Lektion01“ hinzu.

2. Fügen Sie den folgenden Code zur Main-Methode der Program.cs-Klasse hinzu:

ExceptionTest();

3. Fügen Sie die folgende Methode zur Program.cs-Klasse hinzu:

private static void ExceptionTest()

{

 

StreamReader sr = Null; try

{

sr = File.OpenText(@”c:\data.txt”); Console.WriteLine(sr.ReadToEnd());

}

catch (FileNotFoundException fnfe)

{

Console.WriteLine(fnfe.Nachricht);

}

catch(Exception ex)

{

Console.WriteLine(ex.Nachricht);

}

}

Einführung in das Programmieren | 25

HINWEIS *

Die StreamReader- Klasse ist Teil des System.IO-Namespace. Wenn Sie diesen Code ausführen, müssen Sie eine using-Direktive für den System. IO-Namespace hinzufügen.

4. Erstellen Sie eine Textdatei ("Daten.txt") mit dem Editor oder Visual Studio auf Laufwerk C. Die Datei kann auch an einem anderen Speicherort erstellt werden. In die- sem Fall müssen Sie daran denken, den Speicherort der Datei im Programm zu ändern. Geben Sie Text in die Datei ein.

5. Wählen Sie Debuggen > Starten ohne Debuggen, oder drücken Sie STRG+F5.

6. Der Inhalt der Textdatei wird in einem Befehlsfenster angezeigt.

7. Drücken Sie eine beliebige Taste, um das Befehlsfenster zu schließen.

8. Löschen Sie die Datei „Daten.txt“, und führen Sie das Programm erneut aus. Dieses Mal erhalten Sie eine FileNotFoundException-Ausnahme, und im Ausgabefenster wird eine entsprechende Meldung angezeigt.

PAUSE. Lassen Sie das Projekt zur Verwendung in der nächsten Übung geöffnet.

HINWEIS * In der ExceptionTest-Methode darf die Reihenfolge der beiden catch-Blöcke nicht verändert werden. Die

HINWEIS *

HINWEIS * In der ExceptionTest-Methode darf die Reihenfolge der beiden catch-Blöcke nicht verändert werden. Die
HINWEIS * In der ExceptionTest-Methode darf die Reihenfolge der beiden catch-Blöcke nicht verändert werden. Die
HINWEIS * In der ExceptionTest-Methode darf die Reihenfolge der beiden catch-Blöcke nicht verändert werden. Die
HINWEIS * In der ExceptionTest-Methode darf die Reihenfolge der beiden catch-Blöcke nicht verändert werden. Die

In der ExceptionTest-Methode darf die Reihenfolge der beiden catch-Blöcke nicht verändert werden. Die spezifischeren Ausnahmen müssen vor den generischen Ausnahmen aufgeführt werden, da sonst Kompilierungsfehler auftreten.

spezifischeren Ausnahmen müssen vor den generischen Ausnahmen aufgeführt werden, da sonst Kompilierungsfehler auftreten.
spezifischeren Ausnahmen müssen vor den generischen Ausnahmen aufgeführt werden, da sonst Kompilierungsfehler auftreten.

HINWEIS *

Ein try-Block muss über mindestens einen catch-Block oder einen ihm zugeordneten finally-Block verfügen.

Um eine Ausnahme zu behandeln, schließen Sie die Anweisungen, die die Ausnahme auslösen könnten, in einen try-Block ein. Anschließend können Sie catch-Blöcke zur Behandlung einer oder mehrerer Ausnahmen hinzufügen. In diesem Beispiel behandeln wir nicht nur die spezifischere FileNotFoundException-Ausnahme, sondern wir verwenden auch den catch-Block mit allgemeineren Ausnahmen, um alle anderen Ausnahmen abzufangen. Der Ausnahmename für einen catch-Block muss in Klammern eingeschlossen werden. Die Anweisungen, die ausgeführt werden, wenn eine Ausnahme abgefangen wird, müssen in geschweiften Klammern eingeschlossen werden.

Die Codeausführung stoppt, wenn eine Ausnahme eintritt. Die Laufzeit sucht nach einer catch-Anweisung, die mit dem Typ der Ausnahme übereinstimmt. Wenn der erste catch-Block die ausgelöste Ausnahme nicht abfängt, verschiebt sich das Steuerelement in den nächsten catch-Block usw. Wenn die Ausnahme in der Methode nicht behandelt wird, überprüft die Laufzeit die catch-Anweisung im aufrufenden Code und setzt die Verarbeitung der restlichen Aufrufliste fort.

Verwenden von try-catch-finally

Der finally-Block wird in Verbindung mit dem try-Block verwendet. Der final- ly-Block wird immer ausgeführt, ungeachtet der Auslösung einer Ausnahme. Der finally-Block wird oft zum Schreiben von Bereinigungscode verwendet.

Wenn eine Ausnahme auftritt, bedeutet das oft, dass einige Zeilen des Codes nach der Ausnahme nicht ausgeführt wurden. Dies kann einen modifizierten Code oder ein instabiles Programm zur Folge haben. Um solche Situationen zu vermeiden, können Sie mit der finally-Anweisung gewährleisten, dass ein bestimmter Bereinigungscode immer ausgeführt wird. Dazu zählt u. a. das Schließen von Verbindungen, das Freigeben von Ressourcen oder das Festlegen von Variablen auf deren erwartete Werte. Betrachten wir nun einen finally-Block in der folgenden Übung.

wir nun einen finally-Block in der folgenden Übung. VERWENDEN VON TRY-CATCH-FINALLY VORBEREITUNG. Führen Sie

VERWENDEN VON TRY-CATCH-FINALLY

VORBEREITUNG. Führen Sie die folgenden Schritte aus, um die try-catch-finally-Anweisung zu verwenden:

1. Fügen Sie ein neues Konsolenanwendungsprojekt namens „trycatchfinally“ Projektmappe „Lektion01“ hinzu.

2. Fügen Sie den folgenden Code zur Main-Methode der Pro