Commit 8b61e678 authored by Uwe Wienkop's avatar Uwe Wienkop

2019-12-10 Di Textdateien, Jagged Arrays, Schiffeversenken

parent f0518b61
......@@ -25,27 +25,49 @@ namespace _07Palindrom
// Stufe 2: Toleranz gegenüber Groß-/Kleinschreibung; Bsp Anna
// Stufe 3: Leer- & Sonderzeichen/Satzzeichen werden überlesen
// Bsp.: Regal mit Sirup pur ist im Lager!
static bool IsLetter(char c)
{
c = ToUpper(c);
return c >= 'A' && c <= 'Z';
}
static bool IstPalindrom(string s)
{
//int i = 0, j = s.Length - 1;
//while (i<j)
//{
Console.WriteLine($"Zeichenkette: {s}");
int i = -1, j = s.Length;
char a, b;
// i++;
// j--;
//}
while (i < j)
{
do
{
i++;
a = ToUpper(s[i]);
} while (a < 'A' || a > 'Z');
do
{
b = ToUpper(s[--j]);
} while (b < 'A' || b > 'Z');
// j wird erst vermindert, dann als Index verwendet
if (a != b)
return false;
}
return true;
//for (int i = 0, j = s.Length - 1; i < j; i++, j--)
//{
// îf (ToUpper( s[i]) != s[j])
// return false;
//}
return true;
//return true;
}
static void Main(string[] args)
{
string s = "ANNA"; // "BURGGRUB";
Console.WriteLine($"{s} ist Palindrom: {IstPalindrom(s)}");
string s = "Regal mit Sirup pur ist im Lager!"; // "BURGGRUB";
Console.WriteLine(IstPalindrom("OTTO"));
Console.WriteLine(IstPalindrom("Anna"));
Console.WriteLine(IstPalindrom("Regal mit Sirup pur ist im Lager!"));
Console.WriteLine(IstPalindrom("Nie Knabe, nie, grub Nero neben Orenburg eine Bank ein"));
}
}
}
......@@ -5,7 +5,13 @@ namespace _09Handy
class Handy
{
string telnr;
// Jedes Handy hat seine eigene Nummer
string eigentümer;
// Jedes Handy hat seine eigene Nummer und Eigentümer
static int anzDerHandys = 0;
// Die Klasse weiß, wieviele Handys schon angelegt wurden
#region Properties & Sonstiges
public int Nummer { get; set; }
private int nummer2;
......@@ -14,13 +20,14 @@ namespace _09Handy
get { return nummer2; }
}
static int anzDerHandys = 0;
static Handy[] handyFeld = new Handy[1000];
// Die Klasse weiß, wieviele Handys bereits erzeugt wurden
public Handy(string TelNummer)
#endregion
public Handy(string TelNummer, string Eigentümer)
{
telnr = TelNummer;
eigentümer = Eigentümer;
handyFeld[anzDerHandys] = this;
anzDerHandys++;
}
......@@ -29,8 +36,8 @@ namespace _09Handy
{
static void Main(string[] args)
{
Handy h1 = new Handy("4711");
Handy h2 = new Handy("0815");
Handy h1 = new Handy("4711", "Anton");
Handy h2 = new Handy("0815", "Berta");
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>_10DoJo_Schiffeversenken</RootNamespace>
</PropertyGroup>
</Project>
using System;
namespace _10DoJo_Schiffeversenken
{
class Program
{
// 1. 8x8 2D-Feld anlegen mit Schiffen (1=Schiff, 0=Wasser)
// 2. Funktion FeldAusgeben (0 und 1 => Leerzeichen, 10=>Wasser (.), 11 =>Treffer (T)
// 3. Eingabe der Koordinate; a3 => feld[0,2]
// 4. Test: Wert >= 10 --> Hatten wir schon mal
// == 0 --> Wasser, Zelle = 10;
// == 1 --> Treffer, Zelle = 11;
// 5. Erweiterung: Am Anfang: Anzahl der Einser (Schiffszellen) zählen
// und bei den Treffern ebenfalls mitzählen; Ende, wenn keine
// Schiffe mehr übrig sind.
static void FeldAusgeben(int[,] f)
{
for (int z = 0; z < f.GetLength(0); z++)
{
Console.Write($"{(char)('a' + z)}: ");
for (int s = 0; s < f.GetLength(1); s++)
{
if (f[z, s] == 0 || f[z, s] == 1)
{
//Console.Write($"| {f[z, s]} ");
Console.Write($"| ");
}
else if (f[z, s] == 10)
{
Console.Write("| . ");
}
else
{
Console.Write("| T ");
}
}
Console.WriteLine("|");
}
// 0 oder 1 --> Leerzeichen
// 10 ---> Wasser (.)
// 11 --> Treffer (T)
}
static void Main(string[] args)
{
int[,] feld = {{0,0,0,1,1,0,0,0 },
{0,1,0,0,0,0,1,0 },
{0,1,0,0,0,0,1,0 },
{0,1,0,1,1,0,1,0 },
{0,0,0,0,0,0,0,0 },
{0,1,1,1,1,0,1,0 },
{0,0,0,0,0,0,1,0 },
{0,1,1,1,0,0,1,0 } };
do
{
FeldAusgeben(feld);
Console.Write("Wohin: ");
string eingabe = Console.ReadLine();
int z = eingabe[0] - 'a';
int s = eingabe[1] - '1';
if (feld[z, s] >= 10)
{
Console.Write("Dieses Feld wurde schonmal abgefragt!");
}
else if (feld[z, s] == 0)
{
feld[z, s] = 10;
Console.WriteLine("Wasser");
}
else
{
feld[z, s] = 11;
Console.WriteLine("Treffer");
}
// Eingabe, z.B. a3 (1. Zeile, Spalte 3)
// Test ob Wert >=10 --> Wiederholung
// Wert 0: Wasser = 10
// Wert 1: Treffer = 11
} while (true);
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>_10Enums2</RootNamespace>
</PropertyGroup>
</Project>
using System;
namespace _10Enums2
{
class MeineAmpel
{
public enum Ampelfarben { rot = 1000, gelb, grün }
Ampelfarben ampel;
public MeineAmpel(Ampelfarben farbe)
{
ampel = farbe;
}
}
class Program
{
static void Main(string[] args)
{
MeineAmpel.Ampelfarben ampel = MeineAmpel.Ampelfarben.gelb;
ampel = (MeineAmpel.Ampelfarben) 1000;
Console.WriteLine(ampel);
MeineAmpel a1 = new MeineAmpel(MeineAmpel.Ampelfarben.rot);
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>_10JaggedArrays</RootNamespace>
</PropertyGroup>
</Project>
using System;
namespace _10JaggedArrays
{
class Program
{
static void FeldRechteckigAusgeben(int[,] f)
{
for (int z = 0; z < f.GetLength(0); z++)
{
for (int s = 0; s < f.GetLength(1); s++)
{
Console.Write($"{ f[z, s],5}");
}
Console.WriteLine();
}
}
static void JaggedArrayAusgeben(int[][] f)
{
for (int i = 0; i < f.Length; i++)
{
if (f[i]== null)
Console.WriteLine("null");
else
{
for (int j = 0; j < f[i].Length; j++)
{
Console.Write($"{f[i][j],5}");
}
Console.WriteLine();
}
}
}
static void JaggedArrayAusgeben2(int[][] f)
{
foreach (int[] zeile in f)
{
if (zeile == null)
Console.WriteLine("null");
else
{
foreach (int x in zeile)
{
Console.Write($"{x,5}");
}
Console.WriteLine();
}
}
}
static void Main(string[] args)
{
int[,] f1 = new int[3, 4];
FeldRechteckigAusgeben(f1);
int[][] f2 = new int[10][];
f2[1] = new int[6];
f2[3] = new int[4];
f2[7] = new int[] { 1, 3, 5, 7, 9, 11, 13 };
Console.WriteLine("--------------");
JaggedArrayAusgeben(f2);
Console.WriteLine("--------------");
JaggedArrayAusgeben2(f2);
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>_10KlassenKonstruktoren</RootNamespace>
</PropertyGroup>
</Project>
using System;
namespace _10KlassenKonstruktoren
{
class Person
{
string name, vorname;
public Person(string Name) { name = Name; }
public Person(string Name, string Vorname = "") : this(Name)
{ vorname = Vorname; }
}
class Program
{
static void Main(string[] args)
{
Person p1 = new Person("Müller","Anton");
Person p2 = new Person("Meier");
Person p3 = new Person();
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>_10TextdateienIntro</RootNamespace>
</PropertyGroup>
</Project>
using System;
using System.IO;
namespace _10TextdateienIntro
{
class Program
{
static void Main(string[] args)
{
StreamReader sr = new StreamReader(@"..\..\..\datei.txt");
double sum = 0.0;
sr.ReadToEnd();
while (!sr.EndOfStream) // Solange das Dateiende noch nicht erreicht ist, tue ...
{
string eingabe = sr.ReadLine();
string[] daten = eingabe.Split(' ');
int anz = Convert.ToInt32(daten[1]);
double preis = Convert.ToDouble(daten[2]);
Console.WriteLine($"{daten[0],12} {daten[2],10} x {daten[1],8} --> {anz*preis,10:f2}");
sum += anz * preis;
}
sr.Close();
Console.WriteLine($"Gesamtbetrag: {sum}");
}
}
}
Brötchen 10 0,25
Landbrot 5 6,00
Langbrot 1 4,50
Rundbrot 2 3,00
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>_10TextdateienSchreiben</RootNamespace>
</PropertyGroup>
</Project>
using System;
using System.IO;
namespace _10TextdateienSchreiben
{
class Program
{
static void Main(string[] args)
{
StreamWriter wr = new StreamWriter(@"..\..\..\ausgabe.txt");
for (int i = 0; i < 10000; i++)
{
wr.Write($"{i,6}");
if (i%10 == 9)
wr.WriteLine();
}
//wr.Close();
}
}
}
This diff is collapsed.
......@@ -77,7 +77,19 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "09Handy", "09Handy\09Handy.
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "09CodeDojo Klasse", "09CodeDojo Klasse\09CodeDojo Klasse.csproj", "{54E2F1F8-FDFA-47A9-BFD6-005DF4ED58D6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "09Enums", "09Enums\09Enums.csproj", "{4F3913B1-9129-4FE7-ADEC-780BEA0C2029}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "09Enums", "09Enums\09Enums.csproj", "{4F3913B1-9129-4FE7-ADEC-780BEA0C2029}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10TextdateienIntro", "10TextdateienIntro\10TextdateienIntro.csproj", "{CB49EC82-D8D0-4101-A380-32C3218D0452}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10TextdateienSchreiben", "10TextdateienSchreiben\10TextdateienSchreiben.csproj", "{DDAF851D-9F0C-455F-AD56-3FD1AF1317EE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10KlassenKonstruktoren", "10KlassenKonstruktoren\10KlassenKonstruktoren.csproj", "{FB7C63DA-613E-4AB3-92AE-A27872A7A1B5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10Enums2", "10Enums2\10Enums2.csproj", "{2FE716E2-A6C1-4FAD-8152-0D50C300385C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10JaggedArrays", "10JaggedArrays\10JaggedArrays.csproj", "{81155482-7880-4ED0-974C-BA3A4DFEB469}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "10DoJo Schiffeversenken", "10DoJo Schiffeversenken\10DoJo Schiffeversenken.csproj", "{9E3D4CE1-A0A3-47C4-9897-474CC07AA245}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
......@@ -237,6 +249,30 @@ Global
{4F3913B1-9129-4FE7-ADEC-780BEA0C2029}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4F3913B1-9129-4FE7-ADEC-780BEA0C2029}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4F3913B1-9129-4FE7-ADEC-780BEA0C2029}.Release|Any CPU.Build.0 = Release|Any CPU
{CB49EC82-D8D0-4101-A380-32C3218D0452}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CB49EC82-D8D0-4101-A380-32C3218D0452}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CB49EC82-D8D0-4101-A380-32C3218D0452}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CB49EC82-D8D0-4101-A380-32C3218D0452}.Release|Any CPU.Build.0 = Release|Any CPU
{DDAF851D-9F0C-455F-AD56-3FD1AF1317EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DDAF851D-9F0C-455F-AD56-3FD1AF1317EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DDAF851D-9F0C-455F-AD56-3FD1AF1317EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DDAF851D-9F0C-455F-AD56-3FD1AF1317EE}.Release|Any CPU.Build.0 = Release|Any CPU
{FB7C63DA-613E-4AB3-92AE-A27872A7A1B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FB7C63DA-613E-4AB3-92AE-A27872A7A1B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FB7C63DA-613E-4AB3-92AE-A27872A7A1B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FB7C63DA-613E-4AB3-92AE-A27872A7A1B5}.Release|Any CPU.Build.0 = Release|Any CPU
{2FE716E2-A6C1-4FAD-8152-0D50C300385C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2FE716E2-A6C1-4FAD-8152-0D50C300385C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2FE716E2-A6C1-4FAD-8152-0D50C300385C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2FE716E2-A6C1-4FAD-8152-0D50C300385C}.Release|Any CPU.Build.0 = Release|Any CPU
{81155482-7880-4ED0-974C-BA3A4DFEB469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{81155482-7880-4ED0-974C-BA3A4DFEB469}.Debug|Any CPU.Build.0 = Debug|Any CPU
{81155482-7880-4ED0-974C-BA3A4DFEB469}.Release|Any CPU.ActiveCfg = Release|Any CPU
{81155482-7880-4ED0-974C-BA3A4DFEB469}.Release|Any CPU.Build.0 = Release|Any CPU
{9E3D4CE1-A0A3-47C4-9897-474CC07AA245}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9E3D4CE1-A0A3-47C4-9897-474CC07AA245}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9E3D4CE1-A0A3-47C4-9897-474CC07AA245}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9E3D4CE1-A0A3-47C4-9897-474CC07AA245}.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