Commit 501bebd2 authored by Uwe Wienkop's avatar Uwe Wienkop

25.11. Di

parent 5b242bb8
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>_08BigNumberIntro</RootNamespace>
</PropertyGroup>
</Project>
using System;
namespace _08BigNumberIntro
{
class BigNumber
{
string zahl;
public BigNumber(string Zahl="0")
{
zahl = Zahl;
}
}
class Program
{
static void Main(string[] args)
{
BigNumber b1 = new BigNumber("12345678901234567890");
BigNumber b2 = new BigNumber();
}
}
}
......@@ -27,8 +27,8 @@ namespace _08Dojo_Bruch
}
public static Bruch Mult(Bruch b1, Bruch b2)
{
//zaehler = zaehler * b2.zaehler;
//nenner = nenner * b2.nenner;
//zaehler = b1.zaehler * b2.zaehler;
//nenner = b1.nenner * b2.nenner;
return new Bruch(b1.zaehler * b2.zaehler, b1.nenner * b2.nenner);
}
public static Bruch operator*(Bruch b1, Bruch b2)
......@@ -38,6 +38,11 @@ namespace _08Dojo_Bruch
return new Bruch(b1.zaehler * b2.zaehler, b1.nenner * b2.nenner);
}
public override string ToString()
{
return $"Mein Bruch: {zaehler} / {nenner}";
}
public Bruch Kuerzen()
{
int tmp;
......@@ -61,6 +66,7 @@ namespace _08Dojo_Bruch
{
Bruch b1 = new Bruch(1, 2);
Bruch b2 = new Bruch(1, 3);
Console.WriteLine(b1);
Bruch b3 = b1.Mult(b2); // Aufruf als Methode
b3 = Bruch.Mult(b1, b2); // Aufruf als Funktion
......
......@@ -4,12 +4,18 @@ namespace _08KlassenIntro
{
class Person
{
// Datenfelder/Member pro Objekt (OHNE Angabe von static)
private string name;
private string vorname;
private int alter;
private string telNr;
private int steuerIdentNummer;
//private DateTime gebDatum;
// static Member/static Datenfelder (MIT Angabe von static)
// Kommen nur einmal pro Klasse vor
private static int naechsteIdentnummer = 1;
// Konstruktor Person
public Person(string Name, string Vorname, int Alter, string TelNr="")
{
......@@ -18,14 +24,43 @@ namespace _08KlassenIntro
if (Alter < 0)
throw new ArgumentOutOfRangeException("Das Alter muss >= 0 sein");
telNr = TelNr;
steuerIdentNummer = naechsteIdentnummer;
naechsteIdentnummer++;
}
//public void SetzeIdentnummer(int nummer)
//{
// if (nummer < naechsteIdentnummer)
// throw new ArgumentException("Falsche neue Identnummer");
// naechsteIdentnummer = nummer;
//}
public static void SetzeIdentnummer(int nummer)
{
if (nummer < naechsteIdentnummer)
throw new ArgumentException("Falsche neue Identnummer");
naechsteIdentnummer = nummer;
}
//public static void Ausgabe(Person p)
//{
// Console.WriteLine($"Name: {p.name}, Vorname: {p.vorname}");
//}
// static oder nichts (d.h. nicht-static)
// static: FUNKTION (z.B. Sqrt(25) --> 5) mit ihren Parametern
// nicht-static: METHODE (z.B. void Ausgabe() ), erhält zusätzlich
// zu ihren Parametern noch einen - impliziten - Zeiger
// auf das Objekt
// Rückgabetyp der Funktion (z.B. int, double, void,
// aber auch der Klassenname ist zulässig)
// ----- Funktions-/Methodenname
// Parameter jeweils mit Datentyp
public void Ausgabe()
{
Console.WriteLine($"Name: {name}, Vorname: {vorname}");
Console.WriteLine($"Name: {this.name}, Vorname: {this.vorname}");
}
public static void Ausgabe(Person p)
{
Console.WriteLine($"Name: {p.name}, Vorname: {p.vorname}");
}
}
// Bis hierher PROGRAMMIERER 1
......@@ -43,12 +78,18 @@ namespace _08KlassenIntro
static void Main(string[] args)
{
Person anton = new Person("Müller","Anton", -10);
// anton.SetzeIdentnummer(1000000); -- geht nicht, da anton noch nicht existiert
Person.SetzeIdentnummer(1000000);
Person anton = new Person("Müller","Anton", 23);
anton.SetzeIdentnummer(1000000);
//anton.Name = "Müller";
//anton.Vorname = "Anton";
//Console.WriteLine($"Name: {anton.Name}, Vorname: {anton.Vorname}");
// Person.Ausgabe(anton); -- Aufruf als Funktion
anton.Ausgabe(); // Aufruf als Methode
Person.Ausgabe(anton);
// Aufruf als Funktion: Klassenname.Funktionsname()
anton.Ausgabe();
// Aufruf als Methode: Objektvar.Methodenname()
//Person[] persFeld = new Person[5];
......
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>_08TextdateienIntro</RootNamespace>
</PropertyGroup>
</Project>
Hallo Welt
Ein schönen guten Morgen
Ende der Datei
using System;
using System.IO;
namespace _08TextdateienIntro
{
class Program
{
static void Main(string[] args)
{
//StreamReader sr = new StreamReader(@"..\..\..\MeineEingaben.txt");
StreamReader sr = new StreamReader(@"C:\Users\TH-Nürnberg\Desktop\HalloWelt.txt");
while (sr.Peek() >= 0)
{
string s = sr.ReadLine();
Console.WriteLine($">>>> {s}.");
}
sr.Close();
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>_08ThrowIntro</RootNamespace>
</PropertyGroup>
</Project>
using System;
namespace _08ThrowIntro
{
class Program
{
static double Div(int x, int y)
{
if (y == 0)
throw new ArgumentException("y muss != 0 sein!");
double z = (double)x / (double)y;
Console.WriteLine($"Div.Ergebnis: {z}");
return z;
}
static void Main(string[] args)
{
bool keinFehler = false;
do
{
try
{
int z = Convert.ToInt32(Console.ReadLine());
double z1 = Div(3, 2);
double z2 = Div(3, z);
double z3 = Div(2, z);
keinFehler = true;
}
catch (ArgumentException a)
{
Console.WriteLine($"Bei der Division dürfen keine 0-Werte verwendet werden: Fehlertext: {a.Message}");
}
catch (Exception)
{
Console.WriteLine("Sonstiger Fehler");
}
} while (keinFehler == false);
}
}
}
......@@ -63,9 +63,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "07StringAppend", "07StringA
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "07WasIstEinString", "07WasIstEinString\07WasIstEinString.csproj", "{A782D3F9-6321-477E-BA5F-C8FF7CBDCCED}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "08KlassenIntro", "08KlassenIntro\08KlassenIntro.csproj", "{5E96DA25-9D08-4D19-BF23-F97DA4DFE440}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "08KlassenIntro", "08KlassenIntro\08KlassenIntro.csproj", "{5E96DA25-9D08-4D19-BF23-F97DA4DFE440}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "08Dojo Bruch", "08Dojo Bruch\08Dojo Bruch.csproj", "{6CE62457-0A0A-4068-9A8D-A4C876FD2CCD}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "08Dojo Bruch", "08Dojo Bruch\08Dojo Bruch.csproj", "{6CE62457-0A0A-4068-9A8D-A4C876FD2CCD}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "08BigNumberIntro", "08BigNumberIntro\08BigNumberIntro.csproj", "{D4E14C2B-119D-48BE-9B20-41F395B5FBD0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "08TextdateienIntro", "08TextdateienIntro\08TextdateienIntro.csproj", "{8CAAD61A-E9DD-4748-90B6-B00FA053FA7B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "08ThrowIntro", "08ThrowIntro\08ThrowIntro.csproj", "{952FDB85-9BE4-42CC-841B-91036E380484}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
......@@ -201,6 +207,18 @@ Global
{6CE62457-0A0A-4068-9A8D-A4C876FD2CCD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6CE62457-0A0A-4068-9A8D-A4C876FD2CCD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6CE62457-0A0A-4068-9A8D-A4C876FD2CCD}.Release|Any CPU.Build.0 = Release|Any CPU
{D4E14C2B-119D-48BE-9B20-41F395B5FBD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D4E14C2B-119D-48BE-9B20-41F395B5FBD0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D4E14C2B-119D-48BE-9B20-41F395B5FBD0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D4E14C2B-119D-48BE-9B20-41F395B5FBD0}.Release|Any CPU.Build.0 = Release|Any CPU
{8CAAD61A-E9DD-4748-90B6-B00FA053FA7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8CAAD61A-E9DD-4748-90B6-B00FA053FA7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8CAAD61A-E9DD-4748-90B6-B00FA053FA7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8CAAD61A-E9DD-4748-90B6-B00FA053FA7B}.Release|Any CPU.Build.0 = Release|Any CPU
{952FDB85-9BE4-42CC-841B-91036E380484}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{952FDB85-9BE4-42CC-841B-91036E380484}.Debug|Any CPU.Build.0 = Debug|Any CPU
{952FDB85-9BE4-42CC-841B-91036E380484}.Release|Any CPU.ActiveCfg = Release|Any CPU
{952FDB85-9BE4-42CC-841B-91036E380484}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment