Numeralia in C♯
Einführende Beispiele
Im Ausdruckrahmen ist auch eine Folge von Ziffern erlaubt, die eine Zahl angeben kann.
Das folgende Programm gibt beispielsweise eine Darstellung der Zahl 32767 aus.
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( 32767 ); }}global::System.Console.Out
32767
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( 0 ); }}global::System.Console.Out
0
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( 012 ); }}global::System.Console.Out
12
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( 12 ); }}global::System.Console.Out
12
Die Ausgabe des folgenden Programms läßt sich nicht von der Ausgabe des vorigen Programms unterscheiden.
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( "12" ); }}global::System.Console.Out
12
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( "012" ); }}global::System.Console.Out
012
Numeralia
Ein Numerale (also ein Zahlwort, Plural: „Numeralia“) ist eine Schreibweise einer bestimmten Zahl (vor allem im Quelltext). Eine Zahl ist der Wert eines Numerales, so wie eine Zeichenfolge der Wert eines Zeichenfolgenliterals ist.
- Numerale
32767
- Zahl
32767
Morphologie
Eine Ziffer ist eines der zehn Schriftzeichen »0«, »1«, »2«, »3«, »4«, »5«, »6«, »7«, »8«, und »9«.
Ein Numerale ist eine Folge von Ziffern.
- morphologisches Diagramm
Ziffer
.-.
|-|---.--->( 0 )---.--->|-|
| '-' ^
| .-. |
'--->( 1 )---'
| '-' ^
| .-. |
'--->( 2 )---'
| '-' ^
| .-. |
'--->( 3 )---'
| '-' ^
| .-. |
'--->( 4 )---'
| '-' ^
| .-. |
'--->( 5 )---'
| '-' ^
| .-. |
'--->( 6 )---'
| '-' ^
| .-. |
'--->( 7 )---'
| '-' ^
| .-. |
'--->( 8 )---'
| '-' ^
| .-. |
'--->( 9 )---'
'-'Numerale
.--------.
|-|--->| Ziffer |--->.-----------------.--->|-|
'--------' ^ .--------. |
'---| Ziffer |<---'
'--------'
Semantik
Wert
Den Wert eines Numerales erhält man, indem man den auch aus dem Alltag für Numeralia geläufigen Wert abliest. Beispielsweise steht das Numerale »10« für die Zahl Zehn.
Ein Numerale ist nicht die Zahl selber, sondern eine Schreibweise für eine Zahl. Ein Zahl kann nicht direkt in ein Programm hineingeschrieben werden. In ein Programm kann nur ein Text geschrieben werden. Daher wird in ein Programm an Stelle einer Zahl ein Text, der die Zahl darstellt, hineingeschrieben; und solch einen Text nennt man ein „Numerale“.
Eine abkürzende Sprechweise
In diesem Kurs schreiben wir oft etwas wie „der Wert »65«“ und meinen damit den Wert, der ausführlich und korrekt als „der Wert des Ausdrucks »65«“ bezeichnet werden müßte.
Innere Literale
Innere Ausdrücke erlauben es, Zeichenfolgen und Numeralia zu kombinieren.
In einem Zeichenfolgenliteral, dem ein Dollarzeichen »$« direkt vorangestellt wurde, kann ein anderes Literal in geschweiften Klammern vorkommen. Die gesamte Klammer wird dann durch eines Zeichenfolgendarstellung des Wertes des inneren Literals ersetzt.
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( $"a = {1}, b = {"2"}." ); }}- Protokoll
a = 1, b = 2.
Wenn eine geschweifte Klammer auf »{« in der Zeichenfolge solche eines Zeichenfolgenliterals vorkommen soll, muß sie im Quelltext des Zeichenfolgenliterals als »{{« geschrieben werden.
Wenn eine geschweifte Klammer zu »}« in der Zeichenfolge solche eines Zeichenfolgenliterals vorkommen soll, muß sie im Quelltext des Zeichenfolgenliterals als »}}« geschrieben werden.
Wir verzichten hier auf die genaue Beschreibung aller Details der Morphologie solch eines $-Literals, da die hier gemachten Angaben für viele Anwendungen schon ausreichen.
Übungsfragen
? Ausgabe vorhersagen
Was gibt das folgende Programm aus?
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( 7 ); }}
? Gleichheit von Werten
Ist der Wert des Numerales »022« gleich dem Wert des Numerales »22«?
? Gleichheit von Numeralia
Ist das Numerale »022« gleich dem Numerale »22«?
? Programm lesen
Warum gibt das folgende Programm keine Darstellung des Wertes »0« aus?
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( O ); }}
? Programm lesen
Warum gibt das folgende Programm keine Darstellung des Wertes »1« aus?
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( l ); }}