Sie sind auf Seite 1von 50

Prof. Dr.

Sönke Cordts

Programming Basics
Praktische Einführung - First Program

c
1. Einführung & Motivation
2. Praktische Einführung - First Program
3. Datentypen & Operatoren
4. Fallunterscheidungen, Schleifen & Ausnahmebehandlung
5. Objektorientierung - Methoden & Eigenschaften

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program
• Welche Programmiersprache verwenden wir?
• Wie sieht ein einfacher Programmquellcode in C# aus?
• Wie kompiliert man C#-Quellcode?
• Was versteht man unter einer „Integrated Development
Environment“ (IDE)?
• Wie bindet man Bibliotheken ein?

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program
Welche Programmiersprache verwenden wir?

Programmiersprache C# („See Sharp“)

Eigenschaften objekt-, komponentenorientiert, typsicher, aber auch


funktional, imperativ (prozedural, modular)
Standard ECMA-334 und ISO/IEC 23270
Compiler Windows (Microsoft), Linux (Mono), macOS (Mono, Microsoft)
Bestandteil vom .NET Framework (NetFx),
u.a. bestehend aus Runtime Environment, Bibliotheken,
Dienstprogrammen

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program

Sourcecode

kompiliert

Zwischencode

wird ausgeführt
durch

Runtime Environment

ausführen

AMD Intel
Motorola
angelehnt an: https://mva.microsoft.com/de-de/training-courses/einstieg-in-c-fr-programmierer-8826

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program
C# .NET und
Sourcecode externe
.cs-Datei Bibliotheken
kompiliert

Intermediate Language (IL)


.dll-, .exe-Datei
wird ausgeführt
durch

Common Language Just-In-Time-


Runtime (CLR) Compiler (JIT)

ausführen

AMD Intel
Motorola
angelehnt an: https://mva.microsoft.com/de-de/training-courses/einstieg-in-c-fr-programmierer-8826

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program
C# .NET und C++
Sourcecode externe Sourcecode Bibliotheken
.cs-Datei Bibliotheken .cpp-Datei
kompiliert kompiliert

Intermediate Language (IL) Maschinencode


Maschinencode
.dll-, .exe-Datei Maschinencode
.dll-, .exe-Datei
.dll-,
.dll-,.exe-Datei
.exe-Datei
wird ausgeführt
durch ausführen

Common Language Just-In-Time-


Runtime (CLR) Compiler (JIT)

ausführen

AMD Intel AMD Intel


Motorola Motorola
angelehnt an: https://mva.microsoft.com/de-de/training-courses/einstieg-in-c-fr-programmierer-8826

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program
C# VB F# u.a.
.NET
Sourcecode
Bibliotheken
.cs-Datei
kompiliert

Intermediate Language (IL)


.dll-, .exe-Datei
wird ausgeführt
durch

Common Language Just-In-Time-


Runtime (CLR) Compiler (JIT)

ausführen

AMD Intel
Motorola
angelehnt an: https://mva.microsoft.com/de-de/training-courses/einstieg-in-c-fr-programmierer-8826

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program
Wie sieht ein einfacher Programmquellcode in C# aus?

Namensraum

Methode
Klasse

Methoden-
aufruf

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program
Wie sieht ein einfacher Programmquellcode in C# aus?

Assembly

Namespaces

Klassen
Methoden und Daten

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program
Wie sieht ein einfacher Programmquellcode in C# aus?

Startpunkt einer ausführbaren Datei (.exe)


static void Main(string[] args)
static void Main()
static int Main(string[] args)
static int Main()

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program
Wie werden Anweisungen abgeschlossen und zusammengefasst?

Anweisung durch
Semikolon

Code-Blöcke
durch { und }

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program
Wie wird Quellcode kommentiert?
1) einzeiliger Kommentare
z.B.
Console.WriteLine(benutzerName); // Benutzername ausgeben
2) begrenzter Kommentar
z.B.
/* Hier wird der
Benutzername ausgegeben */
Console.WriteLine(benutzerName);

Richtlinie: So viel wie notwendig, der Quellcode sollte sich möglichst selbst
kommentieren
Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing
2. Praktische Einführung - First Program
Wie müssen eigene Bezeichner aufgebaut sein?

Bezeichner (Identifiers) dienen zum Benennen von Objekten im Quellcode (z.B.


Methoden, Namensräume)
Regeln
• müssen mit einem Buchstaben oder Unterstrich beginnen, Ziffern sind erlaubt
• Groß-/Kleinschreibung wird unterschieden (zahl versus ZAHL)
• reservierte Schlüsselwörter dürfen nicht verwendet werden (ggf. mit
vorangestelltem @-Zeichen)
z.B. benutzerName, FirstProgram, ConsoleOutput, WriteLineInverted, address,
page
Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing
2. Praktische Einführung - First Program
Was ist ein Bug (Syntax – Semantik)?

Bug - Programmierfehler
Bild: https://www.history.navy.mil/our-collections/photography/numerical-list-of-images/nhhc-series/nh-series/NH-96000/NH-96566-KN.html
Ladybug Oxygen website http://www.kde.org/ (GNU LGPLv3 http://www.gnu.org/copyleft/lesser.html)

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

1) Ein C++-Compiler erzeugt normalerweise Zwischencode

a) wahr
b) falsch

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

2) Ein JIT-Compiler erzeugt Maschinencode

a) wahr
b) falsch

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

3) Den Zwischencode, den der C#-Compiler erzeugt, nennt man…

a) Virtual Code
b) Bytecode
c) Intermediate Language

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

4) C#-Code wird strukturiert in…

a) Klassen
b) Methoden
c) Methodenparametern

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

5) In C# geschriebene und kompilierte Programme laufen auf den


Betriebssystemen

a) Windows
b) macOS
c) Linux

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

6) Maschinensprache kann nicht direkt vom Prozessor „verstanden“ werden

a) wahr
b) falsch

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

7) Einen logischen Programmierfehler in einem Quellcode nennt man

a) Error
b) Bug
c) Moth

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

8) Welche der folgenden Bezeichner sind zulässig…

a) 2_Hunde
b) Write_Line
c) _write_line
d) SchreibeBuch2
e) zulässig

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Fragen & Antworten

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Aufgaben

1) Schreiben Sie den C#-Quellcode aus Folie 10 in einen Texteditor und


speichern Sie diese als Datei. Verwenden Sie den C#-Compiler zum Erzeugen
einer ausführbaren Datei.

2) Über ReadLine erhalten Sie einen eingegebenen Text zurück. Ergänzen Sie Ihr
Programm aus Aufgabe 1) und fragen Sie nach dem Namen des Benutzers.
Lesen Sie dann den Namen wie folgt ein
var benutzerName = System.Console.ReadLine();
und geben diesen aus
System.Console.WriteLine(benutzerName);

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program
Was versteht man unter einer „Integrated Development Environment“ (IDE)?

Sammlung von Software-Tools (Sourcecode-Editor, Übersetzer, Debug, Build


u.a.) zur integrierten Entwicklung von Software

Beispiele
Visual Studio for Windows/Mac, Visual Studio Code (C# u.a.)
Eclipse, BlueJ (Java u.a.)
Xcode (Objective-C, Swift u.a.)

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program
Was versteht man unter einer „Integrated Development Environment“ (IDE)?

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program
Was versteht man unter einer „Integrated Development Environment“ (IDE)?

Anlegen eines Visual Studio-Projektes

DEMO

Glyph: https://www.adianteapps.com

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

1) Eine integrierte Entwicklungsumgebung enthält folgende Bestandteile, um


Software in einer einzigen Anwendung zu erstellen

a) Code-Editor
b) Debugger
c) Build-Tools
d) Code-Vervollständigung
e) Projektmappenverwaltung

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

2) Bei der Code-Vervollständigung übernimmt man den ausgewählten Eintrag


über die Eingabetaste

a) Einfg
b) Return
c) Tab

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

3) Die Projektmappe dient zum Bearbeiten mehrerer

a) Quellcodedateien
b) Projekte
c) Ausführbarer Programme

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

4) Um Ihr Programm an einen Freund weiterzugeben, damit er dieses nutzen


kann, müssen Sie ihm folgende Dateien übergeben

a) .cs
b) .exe
c) .json
d) .dll
e) .csproj

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

5) Sie haben einen logischen Fehler in Ihrem C#-Quellcode, den Sie einfach
nicht finden. Damit Ihr Kollege Ihren selbstgeschriebenen C#-Quellcode
debuggen kann, benötigt er Dateien mit folgender Dateiendung

a) .exe
b) .cs
c) .csproj
d) .sln

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

6) Wozu dient der Ordner „Abhängigkeiten“ in einem Projekt?

a) zum Überprüfen von Verweisen von Methoden


b) zum Einbinden externer Bibliotheken
c) zur Überprüfung des Quellcodes

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

7) Die Ausführungsgeschwindigkeit eines Programms, das im Debug-Modus


erstellt wurde, ist normalweise…

a) schneller
b) langsamer

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Aufgaben

3) Installieren Sie Visual Studio Community auf Ihrem Computer.

4) Legen Sie in Visual Studio ein neues Projekt an (Vorlage: „Konsolen-App


(.NET Framework)“).
Ändern Sie die Datei Program.cs wie auf Folie 25 und erstellen Sie das
Programm über den Menüpunkt „Erstellen  Projektmappe erstellen
Strg+Umschalt+B“.
Starten Sie Ihr Programm über den Menüpunkt „Debuggen  Starten
ohne Debugging Strg+F5“.

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program
Was versteht man unter einer „Integrated Development Environment“ (IDE)?

Debuggen eines Programms

DEMO

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

1) Den integrierten Debugger in Visual Studio startet man über die Tasten

a) Strg+F5
b) F10
c) F11
d) F5
e) Umschalt+F5

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

2) Den Inhalt einer Variablen erhält man über…

a) die Tasten „Umschalt+F9“


b) Cursor über Variable positionieren und kurz warten
c) Eingabe „? benutzerName“ im Direktfenster
d) das „Überwachen“-Fenster

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

3) Debuggen dient zum Finden von syntaktischen Fehlern

a) wahr
b) falsch

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Aufgaben

5) Ändern Sie den Quellcode aus Aufgabe 4) wie in Folie 35.


Starten Sie den Debugger über den Menüpunkt „Debuggen  Einzelschritt
F11“ und führen Sie jede einzelne Anweisung über die F11-Taste aus, bis das
Programm beendet ist.
Setzen Sie einen Breakpoint in Zeile 6 (var benutzerName…) und starten Sie
den Debugger über den Menüpunkt „Debuggen  Debugging starten F5“.
Überwachen Sie die Variable benutzerName, indem Sie diese im Fenster
„Überwachen 1“ anlegen. Setzen Sie das Programm über die F11-Taste
schrittweise fort und beobachten Sie den Inhalt der Variablen.
6) Sehen Sie sich im Debug-Modus folgende Menüpunkte des Kontextmenüs
an: Schnellüberwachung, Ausführen bis Cursor, Nächste Anweisung festlegen

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program
Wie bindet man Bibliotheken ein?

Bibliotheken
= kompilierte Klassen werden als Assemblies bereitgestellt:
Ausführbare Dateien (.exe) oder Bibliotheken (.dll)

System C:\Windows\Microsoft.NET\assembly\GAC_MSIL
Externe/eigene als .dll, .exe oder in der Projektmappe bereitgestellt
(über Verweise hinzufügen)

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program
Wie bindet man Bibliotheken ein?

DEMO

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program
Wie bindet man Bibliotheken ein?

Ordnung durch Hierarchisierung in Assemblies durch Namespaces


(Namensräume)
Methode
Beispiele
System.IO.File.ReadAllText("demo.txt");
MeineBibliothek.ConsoleOutput.WriteLineInverted("Welt!");

Namensraum Klasse

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


2. Praktische Einführung - First Program
Wie bindet man Bibliotheken ein?

using-Direktive
= Einbinden von Namensräume (Namensraum der Klasse muss nicht explizit
angegeben werden)

Beispiel
using System.IO;

File.ReadAllText("demo.txt");

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

1) Namensräume …

a) dienen zum Strukturieren des Quellcode


b) müssen immer mit angegeben werden
c) können über das Schlüsselwort using eingebunden werden

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

2) Um externe Bibliotheken einzubinden benötigt man den dazugehörigen


Quellcode

a) wahr
b) falsch

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Quiz

3) Wozu dienen Bibliotheken

a) Wiederverwendbarkeit
b) Kompatibilität zwischen Betriebsystemen
c) um den Quellcode weiterzugeben

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Fragen & Antworten

Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing


Aufgaben
7) Legen Sie ein neues Konsolenprojekt an und binden Sie die Bibliothek
LearnProgrammingLibrary.dll hinzu. Ergänzen Sie den Quellcode aus Folie 40 und
testen Sie das Programm.
8) Legen Sie ein neues Konsolenprojekt. Fügen Sie der Projektmappe ein neues
Projekt „MeineBibliothek“ mit der Vorlage „Klassenbibliothek (.NET
Framework)“ hinzu. In der Klassenbibliothek soll eine Klasse ConsoleOutput mit
der Methode WriteLineInverted existieren:
static public void WriteLineInverted(string text)
{
System.Console.BackgroundColor = System.ConsoleColor.White;
System.Console.ForegroundColor = System.ConsoleColor.Gray;
System.Console.WriteLine(text);
}
Verwenden Sie die selbstgeschriebene Methode in der Main-Methode und
setzen Sie Namensräume ein.
Prof. Dr. Sönke Cordts | Anwendungsentwicklung & Mobile Computing

Das könnte Ihnen auch gefallen