c# - einführung in die programmiersprache „variablen und ... · pdf filec# -...
TRANSCRIPT
Leibniz Universität IT Services | Anja Aue
C# - Einführung in die Programmiersprache
„Variablen und Konstanten“
C# - Einführung | 26.06.12 Seite 2
Kommentare ...
beschreiben die Aufgabe und deren Lösung.
erleichtern das Verstehen eines Programms. werden vom Compiler überlesen. müssen bei Codeänderungen oder Programm-Erweiterungen
angepasst werden. beschreiben warum das Problem so gelöst wurde und nicht wie
es gelöst wurde.
C# - Einführung | 26.06.12 Seite 3
… in C#
Einzeilige Kommentare beginnen mit //.
Mehrzeilige Kommentare beginnen mit /* und enden mit */. Mehrzeilige Kommentare können auch einzeilig sein.
Eine Verschachtelung ist nicht möglich.
// Dies ist ein Kommentar
/* Dies ist ein Kommentar über mehrere Zeilen */
C# - Einführung | 26.06.12 Seite 4
Positionierung von Kommentaren
Kommentare können an beliebiger Stelle positioniert werden.
Kommentare am Anfang eines Programm erläutern die Entwicklungsgeschichte sowie den Inhalt der Quellcode-Datei.
Kommentare oberhalb einer Methode erläutern die Funktionsweise der Methode.
Kommentare oberhalb oder links von einer Anweisungen erläutern den nachfolgenden Code-Abschnitt.
C# - Einführung | 26.06.12 Seite 5
Daten ...
bestehen aus Zahlen und Zeichen.
können von der Konsole eingelesen werden. können in einer Datei, Datenbank etc. gespeichert werden. werden durch Variablen und Konstanten in einem Programm
dargestellt.
C# - Einführung | 26.06.12 Seite 6
Variablen ...
stellen im Programm veränderbare Werte dar.
sind Platzhalter für einen Wert von einem bestimmten Typ. definieren einen Speicherort in einer bestimmten Größe. Die
Größe wird durch die Art des Typs vorgegeben. sind Speicherorte, an denen Werte entsprechend ihres Typs
abgelegt werden.
C# - Einführung | 26.06.12 Seite 7
Arbeiten mit Variablen
static void Main(string[] args){ int ganzzahl; double dezimalzahl; string text; bool schalter;
ganzzahl = 5; dezimalzahl = 4.5; text = "Dies ist ein Text"; schalter = true; }
C# - Einführung | 26.06.12 Seite 8
Variablen definieren
[Datentyp] [Name]; Jede Variable muss vor der Nutzung definiert werden.
Aufgrund der besseren Lesbarkeit werden Variablen am Anfang eines Blockes definiert.
Der Name der Variablen ist frei wählbar. Der Datentyp legt die Nutzung / das Format der Variablen fest.
static void Main(string[] args){ int ganzzahl; double dezimalzahl; string text; bool schalter;
C# - Einführung | 26.06.12 Seite 9
Datentypen ...
sind Baupläne für die Werte einer Variablen.
geben über das Format des gespeicherten Wertes Auskunft. legen Regeln für die Interpretation und Verwendung eines
Wertes fest. legen den Speicherbedarf für eine Variable fest.
C# - Einführung | 26.06.12 Seite 10
Boolsche Datentypen ...
bool [Name]; haben nur die Werte true oder false. arbeiten ähnlich wie ein Lichtschalter.
C# - Einführung | 26.06.12 Seite 11
Ganzzahlige Datentypen ...
Beispiel: int [Name]; können nur Ganzzahlen speichern. haben in Abhängigkeit des gewählten Typs unterschiedliche
Wertebereiche. können in Abhängigkeit des Typs positive sowohl als auch
negative Zahlen speichern. als Literal: 123, 345, -50, als Hexadezimalzahl: Zum Beispiel die Zahl 16 wird als 0x10
dargestellt.
C# - Einführung | 26.06.12 Seite 12
Möglichkeiten
Datentyp Speicherbedarf (in Bytes)
Wertebereich
sbyte 1 -128 bis 127
byte 1 0 bis 255
short 2 -32.768 bis 32.767
ushort 2 0 bis 65.535
int 4 -2.147.483.648 bis 2.147.483.647
uint 4 0 bis 4.294.967.295
long 8 -9.223.372.036.854.775.808 bis9.223.372.036.854.775.807
ulong 8 0 bis 18.446.744.073.709.551.615
C# - Einführung | 26.06.12 Seite 13
Datentypen für Dezimalzahlen ...
Beispiel: float [Name]; unterscheiden sich in der Größe des Wertebereichs. sind Nährungswerte. sind bis zu einer bestimmten Anzahl von Nachkommastellen
genau. haben als Dezimaltrennzeichen einen Punkt. als Literale: 1.324, 1.365F (float), 15.45m (decimal).
C# - Einführung | 26.06.12 Seite 14
Möglichkeiten
Datentyp Speicherbedarf (in Bytes)
Genauigkeit Wertebereich
float 4 7 Stellen 1.5 x 10-45 bis 3.4 x 1038
double 8 15-16 Stellen 5.0 x 10-324 bis 1.7 x 10308
decimal 16 28-29 Dezimalstellen
1.0 x 10-28 bis 7.9 x 1028
C# - Einführung | 26.06.12 Seite 15
Ein Zeichen
char [Name]; Ein Zeichen der 16-Bit-Unicode-Tabelle: 'a'. Oder: Escape-Sequenzen: '\n' (newline) Ein Zeichen wird durch Apostrophs begrenzt.
C# - Einführung | 26.06.12 Seite 16
Zeichenketten (String) ...
string [Name]; bestehen aus Buchstaben, Ziffern, Satzzeichen oder Escape-
Sequenzen. werden durch die Anführungszeichen begrenzt.
C# - Einführung | 26.06.12 Seite 17
Escape-Sequenzen
Zeichen Erläuterung\' Apostroph
\" Anführungszeichen
\\ Backslash (umgekehrter Schrägstrich)
\0 Null
\a Alarm
\b Backspace
\f Form feed
\n New line
\r Carriage return
\t Horizontaler Tabulator
\v Vertikaler Tabulator
C# - Einführung | 26.06.12 Seite 18
Escape-Sequenzen ...
sind Steuerzeichen für die Ausgabe oder den Druck wie zum Beispiel das Zeilenende-Zeichen.
maskieren Zeichen, die im Code eine Bedeutung haben. Zum Beispiel Apostrophs werden als Begrenzung für char-Variablen genutzt. Apostrophs können aber auch in einem Text vorkommen.
können als einzelnes Zeichen oder in Strings genutzt werden. beginnen immer mit einem Backslash \.
C# - Einführung | 26.06.12 Seite 19
Bezeichner ...
sind vom Entwickler vergebene Namen für Elemente in einem C#-Programm.
beginnen mit einem Buchstaben oder dem Unterstrich. enthalten die Zahlen 0 bis 9, die Buchstaben a … z / A … Z
und den Unterstrich. enthalten keine Leerzeichen zur Trennung von Wörtern in
einem Variablennamen. beachten die Groß- und Kleinschreibung.
entsprechen nicht den Schlüsselwörtern von C#.
C# - Einführung | 26.06.12 Seite 20
Zusammengesetzte Variablennamen
intvariableradius. Jedes Wort beginnt mit einem Kleinbuchstaben.
IntVariableRadius wird als Pascal-Schreibweise bezeichnet. Jedes Wort beginnt mit einem Großbuchstaben. Diese Schreibweise sollte für Methodennamen genutzt werden.
intVariableRadius wird als Kamel-Schreibweise bezeichnet. Das erste Wort beginnt mit einem Kleinbuchstaben, alle anderen Wörter mit einem Großbuchstaben. Diese Methode sollte für Variablen genutzt werden.
C# - Einführung | 26.06.12 Seite 21
Geeignete Variablennamen ...
sollten über die Art und Nutzung des Wertes Auskunft geben. Beispiel: Für die Berechnung eines Kreisradius wird eine Variable mit dem Namen radius erzeugt.
spiegeln den Sachverhalt, den die Variable repräsentiert vollständig und genau wieder. Auf diese Weise ergeben sich oft bereits gute Namen.
sind einfach zu lesen, da sie keine geheimnisvollen Abkürzungen enthalten und eindeutig sind.
sind an die reale Welt angelehnt. Ein Temperaturwert wird auch in einem C#-Programm als Temperaturwert bezeichnet und nicht mit dem Buchstaben „t“.
C# - Einführung | 26.06.12 Seite 22
Ungeeignete Variablennamen ...
sind x2, a22 oder ähnlich kryptische Bezeichner.
stellen keinerlei Beziehung zum Inhalt der Variablen her. beschreiben exakt eine Eigenschaft. Zum Beispiel: Es werden
Daten für eine Rechnung im März eingelesen. Die Daten werden in einer Variablen „rechnungMaerz“ gespeichert. Besser: Die Variable wird nur als „rechnung“ bezeichnet.
nutzen Verben als Bezeichnung. Verben sollten nur für Prozedur-Namen genutzt werden. Prozeduren beschreiben eine Aktion.
bestehen nur aus einen Zeichen. Ausnahme: Zähler oder Indizes.
C# - Einführung | 26.06.12 Seite 23
Beispiele
Aufgabe
Bestellnummer
Rechnungsdatum
Kundenname
Farbe eines Autos
Farbe Eines Autos
Geeignete Variablennamen:
Ungeeignete Variablennamen:
bestellNr, bnrbestellnummer bstnrbestellung_Nr bnrechnungDatum rgDbonDatum rechnung
RechnungMaerzkunde bezeichnungkundeName kndNameKunde namefarbeAuto faAufarbe_Auto AutoGelb
au_fa
C# - Einführung | 26.06.12 Seite 24
Zuweisung eines Wertes an die Variable
Mit Hilfe des Gleichheitszeichens wird der Variablen ein Wert zugewiesen.
Der Wert entspricht dem Datentyp der Variablen.
Falls der Wert zu groß für den angegebenen Wertebereich ist, wird eine Fehlermeldung ausgegeben.
static void Main(string[] args){ ganzzahl = 5; dezimalzahl = 4.5; text = "Dies ist ein Text"; schalter = true; }
C# - Einführung | 26.06.12 Seite 25
Fließkommazahl als konstanter Wert
static void Main(string[] args){ double dezimalzahl; float zahl;
dezimalzahl = 4.5; dezimalzahl = 9.46E15; // Expontialdarstellung; zahl = 4.5; // Fehler: Double-Wert zahl = 4.5f; }
C# - Einführung | 26.06.12 Seite 26
Strings als konstanten Wert
static void Main(string[] args){ string text; char zeichen;
text = "Dies ist ein Text"; text = " Zeile 1 \n Zeile 2"; text = @" Zeile 1 \n Zeile 2"; text = @" Zeile 1 Zeile 2";
zeichen = 'A'; }
C# - Einführung | 26.06.12 Seite 27
Verbatim-Zeichenketten ...
beginnen immer mit dem @.
werden exakt so wie im Programm geschrieben gespeichert und / oder ausgegeben.
werden häufig für Pfadangaben genutzt.
C# - Einführung | 26.06.12 Seite 28
Konstanten in C#
static void Main(string[] args){ const float PI = 3.14159; const int FAKTOR = 10; const string AUSGABE = "Ausgabe: "
}
Jede Konstante wird gleichzeitig definiert und mit einem Wert belegt.
Der Wert der Konstanten darf nicht verändert werden.
Der Bezeichner einer Konstanten sollte mit einem Großbuchstaben beginnen.
C# - Einführung | 26.06.12 Seite 29
Anweisungen ...
werden aus Ausdrücken gebildet. Ausdrücke bestehen aus Operanden (zahl, 5, etc.) und Operatoren (+, -, etc.)
enden in einem C#-Programm mit einem Semikolon. werden meist sequentiell ausgeführt. Das heißt, die
Anweisungen werden Zeile für Zeile ausgeführt. symbolisieren einen bestimmten Arbeitsschritt. sind die kleinste Einheit eines C#-Programms.
C# - Einführung | 26.06.12 Seite 30
Arithmetische Operatoren
Operator Rechenart Beispiel
* Multiplikation ergebnis = 3 * 2
/ Division ergebnis = 3 / 2 float ergebnis 1int ergebnis 1
ergebnis = 3.0 / 2 float ergebnis 1.5int ergebnis 1
% Modula(Division mit Rest; Ganzzahlen)
rest = 3 % 2rest = 1
+ Addition ergebnis = 3 + 2
- Subtraktion ergebnis = 3 - 2
C# - Einführung | 26.06.12 Seite 31
Division durch Null ...
wird als Fehler bei Ganzzahlen gemeldet.
wird nicht als Fehler bei Dezimalzahlen angezeigt. Dezimalzahlen sind Nährungswerte!
C# - Einführung | 26.06.12 Seite 32
Zusammengesetzte Operatoren
Operator Rechenart Erläuterung
*= Multiplikation ergebnis *= 2ergebnis = ergebnis * 2
/= Division ergebnis /= 2 ergebnis = ergebnis / 2
%= Modula rest %= 2rest = rest % 2
+= Addition ergebnis += 2ergebnis = ergebnis + 2
-= Subtraktion ergebnis -= 2ergebnis = ergebnis - 2
C# - Einführung | 26.06.12 Seite 33
Inkrement- und Dekrement-Operator
Operator Rechenart variable = 10 variable = 10
++ Inkrement ergebnis = variable++ergebnis = 10variable = 11
ergebnis = ++variableergebnis = 11variable = 11
-- Dekrement ergebnis = variable--ergebnis = 10variable = 9
ergebnis = variable--ergebnis = 9variable = 9
Der Inkrement-Operator wird aus zwei Pluszeichen gebildet. Der Dekrement-Operator wird aus zwei Minuszeichen gebildet. Diese Operatoren werden häufig in Schleifen genutzt.
C# - Einführung | 26.06.12 Seite 34
Strings verknüpfen
Mit Hilfe des Pluszeichen können Variablen, Konstanten und Literale verknüpft werden.
Zahlen werden automatisch in ein String konvertiert.
C# - Einführung | 26.06.12 Seite 35
Beispiel
static void Main(string[] args){ int zahl; int variable;
variable = 10; zahl = variable++;
variable = 10; zahl = ++variable; }
C# - Einführung | 26.06.12 Seite 36
Hinweise
Punktrechnung geht vor Strichrechnung.
Klammern erhöhen die Lesbarkeit. Operatoren in Ausdrücken werden standardmäßig in der unten
stehenden Reihenfolge ausgewertet: Dekrement- und Inkrement-Operator. Negatives Vorzeichen. Multiplikation, Division, Modula. Addition, Subtraktion.
C# - Einführung | 26.06.12 Seite 37
Konvertierung von Daten
Implizit. Daten werden automatisch vom Programm konvertiert. Ein kleinerer Datentyp kann ohne Probleme in einen größeren Datentyp konvertiert werden.
Explizit. Der Datentyp, in dem die Daten konvertiert werden, wird vom Entwickler angegeben.
C# - Einführung | 26.06.12 Seite 38
Implizite Konvertierung
static void Main(string[] args){ int intZahl; float fltZahl; double dblZahl;
intZahl = 5; fltZahl = intZahl; dblZahl = fltZahl;}
C# - Einführung | 26.06.12 Seite 39
Explizite Konvertierung
static void Main(string[] args){ int intZahl; byte bytZahl; float fltZahl; double dblZahl;
fltZahl = (float)dblZahl;
intZahl = 123456789; bytZahl = (byte)intZahl; // Ergebnis unbekannt
fltZahl = 4.5f intZahl = (int)fltZahl; // Löschen der Nachkommastellen}
C# - Einführung | 26.06.12 Seite 40
Konvertierung von Ausdrücken
double dblZahl;
dblZahl = 7 / 3; dblZahl = (double) 7 / 3;DblZahl = 7.0 / 3;
Eine Berechnung, in der nur ganzzahlige Variablen verwendet werden, liefert immer ein ganzzahliges Ergebnis.
Falls das Ergebnis als Dezimalzahl benötigt wird, muss ein Operand implizit umgewandelt werden.
Bei Literalen muss ein „.0“ gesetzt.
C# - Einführung | 26.06.12 Seite 41
Konvertierung von String-Variablen in …
Jeder Standard-Datentyp ist in C# als Klasse implementiert und besitzt die Methode .TryParse() sowie .Parse() zur Konvertierung von Stringdaten.
Methoden und Objekte werden durch ein Punkt verbunden. In den runden Klammern werden der Methode Argumente zur
Weiterverarbeitung übergeben. Die Argumente werden durch Kommata getrennt.
Beide Methode geben den konvertierten Wert zurück.
Double.TryParse(strBreite, out breite);int intZahl = Int32.Parse(strZahl);
C# - Einführung | 26.06.12 Seite 42
Parameter und Rückgabewert von TryParse()
Parameter: Welcher Wert soll konvertiert werden?
In welche Variable soll der Wert gespeichert werden? Durch das Schlüsselwort out muss die Variable in der Methode initialisiert werden. Die Variable ist vom Datentyp des angegebenen Objekts.
Die Methode gibt einen boolschen Wert in Abhängigkeit des Erfolges (true) / Misserfolgs (false) zurück.
Double.TryParse(strBreite, out breite);int intZahl = Int32.Parse(strZahl);
C# - Einführung | 26.06.12 Seite 43
Parameter und Rückgabewert von Parse()
Als Parameter wird der zu konvertierende Wert übergeben. Mit Hilfe des Gleichheitszeichen wird der konvertierte Wert in
einer Variablen gespeichert. Die Variable und das angegebene Objekt haben denselben Datentyp.
Falls eine Konvertierung nicht möglich ist oder ein Fehler auftritt, wird eine Exception (Ausnahme) geworfen.
Double.TryParse(strBreite, out breite);int intZahl = Int32.Parse(strZahl);
C# - Einführung | 26.06.12 Seite 44
Andere Möglichkeiten
Das Objekt Convert hat für jeden Standarddatentyp eine Methode zur Konvertierung.
In diesem Beispiel wird die Eingabe an der Konsole in ein Char-Wert umgewandelt.
Das Ergebnis der Konvertierung kann in einer Variablen gleichen Typs gespeichert werden.
Falls die Konvertierung nicht möglich ist, wird eine Fehlermeldung ausgeworfen.
eingabe = Convert.ToChar(Console.ReadLine());eingabe = Convert.ToInt32(Console.ReadLine());
C# - Einführung | 26.06.12 Seite 45
Daten in einen String konvertieren
Jeder Standard-Datentyp ist in C# als Klasse implementiert und besitzt die Methode .ToString() zur Konvertierung der Daten in einen String.
Die Methode wird mit der Variablen durch ein Punkt verbunden.
ergebnis.ToString()