Erweiterte Grundlagen - Variablentypen
In Grundlagen Teil 1 und Teil 2 wurden bereits die zwei Variablentypen int und string behandelt.
Int, welcher dem Speichern von Ganzzahlen und string, welcher dem Speichern von Texten (strings) dient.
In diesem Abschnitt werden wir uns nun mit weiteren Variblentypen befassen.
float und double
Bei float und double handelt es sich um Datentypen (Variablentypen), zum Speichern von Dezimalzahlen.
Etwas mathematischer ausgedrückt, handelt es sich dabei um Datentypen, welche dem Speicher von
Gleitkommazahlen dienen. Wem es näher interessieren sollte worum es sich bei Gleitkommazahlen handelt,
möchte ich an den entsprechenden Wikipedia Artikel verweisen.
Diese beiden Datentypen unterscheiden sich in der Kapazität und Genaugikeit.
Wertebereich und Genauigkeit
Datentyp | Gültiger Wertebereich | Genauigkeit |
---|---|---|
float | 1.5*10^-45 bis 3.4*10^38 | 7 stellig |
double | 5*10^-324 bis 1.7*10^308 | 15 bis 16 stellig |
Die Verwendung dieser Variablentypen (Datentypen) ist identisch dem einer int Variable.
Allerdings gilt es darauf zu achten, dass der Indikator für den Nachkommaanteil im Quellcode nicht ein Beistrich,
sondern ein Punkt ist. Im Programmablauf selbst, sind auch Eingaben mit Beistrich erlaubt.
Die Deklaration (Definieren einer Variable) samt Initialsierung würde folgendermaßen aussehen.
double pi2 = 3.1415926535;
Bei diesem Programmcodeauszug wurd eine float Variable mit dem Namen pi1 deklariert und mit PI
bis auf die 10. Nachkommastelle initialisiert.
Identisch dem einer float Variable, wurde eine double Variable mit dem namen pi2 deklariert und ebenfalls
mit PI bis auf die 10. Nachkommastelle initialisiert.
Übungsbeispiel float / double
Es ist offensichtlich, dass es sich mit float und double identisch arbeitet.
Für dieses Übungsbeispiel verwenden wir double, da es für die meisten Anforderungen ausreichend ist.
Es gilt eine Rechner zu programmieren, welcher eine Division durchführt. Jedoch soll die Berechnung in einer
anderen Klasse stattfinden. (Division durch 0 kann für das Beispiel ignoriert werden)
Angabe
- einlesen zweier double - Werte von der Konsole Convert.ToFloat(string)
- erstellen der Klasse Rechner
- definieren der Methode Division mit zwei double Variablen als Übergabeparameter und double als Rückgabewert (public Method)
- in der Methode Division sollen zwei double - Werte dividiert und das Ergebnis zurückgeben werden
- in Main eine Instanz der Klasse Rechner mit dem Namen meinRechner erstellen und danach aufrufen der Methode Division mit den zwei Parametern
- ausgeben des Rückgabewertes in der Konsole
Für die Lösung hier klicken. Bei Fragen und Problemen, bitte das Forum benutzen.
Lösung 1:using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Projekt1
{
class Program
{
static void Main(string[] args)
{
double dividend = Convert.ToDouble(Console.ReadLine());
double divisor = Convert.ToDouble(Console.ReadLine());
Rechner meinRechner = new Rechner();
double ergebnis = meinRechner.Division(dividend,divisor);
Console.WriteLine(ergebnis);
Console.ReadLine();
}
}
class Rechner
{
public double Division(double dividend, double divisor)
{
return dividend/divisor;
}
}
}
Ganzzahl Datentypen mit und ohne Vorzeichen
Folgende Datentypen unterscheiden sich bei der Verwendung nicht von der einer int Variable, der Unterschied liegt im gültigen Wertebereich.
Gültige Wertebereiche mit Vorzeichen
Datentyp | Gültiger Wertebereich |
---|---|
sbyte | -128 bis 127 |
short | -32.768 bis 32.767 |
int | -2.147.483.648 bis 2.147.483.647 |
long | –9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807 |
Gültige Wertebereiche ohne Vorzeichen
Datentyp | Gültiger Wertebereich |
---|---|
byte | 0 bis 255 |
ushort | 0 bis 65.535 |
uint | 0 bis 4.294.967.295 |
ulong | 0 bis 18.446.744.073.709.551.615 |
Meist reicht es eine normale int Variable zu verwenden.
In Fällen, bei dennen eine höherer Wertebereich benötigt wird, wird meist long eingesetzt.
Deswegen wird in der Zukunft der Focus auf diese zwei Datentypen liegen.
char und string
Der Datentyp string wurde bereits im ersten Kapitel des Tutorials behandelt. Allerdings ist eine Ergänzung zum Vergleichen von strings notwendig.
In ungünstigen Situationen kann es dazu führen, dass strings welche mit == verglichen werden ein falsches Ergebnis liefern.
Aus diesem Grund empfiehlt es sich anstatt von == beim Vergleichen von strings, string.Equals(string) zu verwenden.
String steht bei diesem Methodenaufruf für eine string Variable oder sonst etwas, dass einen string repräsentiert wie z.B.: "Text".
Ein Programmauszug würde folgendermaßen aussehen:
string zeichen12 ="Testtext";
if(zeichen1.Equals(zeichen2))
{
Code;
}
Neu hingegehen ist der Datentyp char, dieser dient dem Speichern eines Zeichens (Zeichenliterals).
Die Verwendung ist ähnlich von string, jedoch erfolgt die Zuweisung eines Wertes nicht wie der einer string Variable.
Bei char wird das Zeichen zwischen '' und nicht zwischen "" geschrieben.
Es sei nochmal erwähnt, dass char nur ein Zeichen abspeichern kann und nicht mehrere.
Mit einem char Array würden sich Wörter abspeichern lassen, indem jedes Feld ein Zeichen enthält.
In älteren Programmiersprachen gab es den Datentyp string noch nicht, was es deutlich umständlicher macht mit Texten zu arbeiten.
Ein Programmauszug würde folgendermaßen aussehen:
bool
Der Datentyp bool ist recht simpel und kennt nur zwei Zuständie true und false.
Wenn wir zurück denken an das Kapitel über die if - Abfragen, hatten wir true und false bereits behandelt.
Dieser Datentyp dient dem Abspeichern von Zuständen.
Zum Beispiel könnte eine bool Variable auf true gesetzt werden, wenn eine Fehler auftritt welcher später
behandelt werden soll. Dieses Vorgehen ist allerdings nur für kleinere Programme zu empfehlen.
Abschließend folgt noch ein Programmauszug: