Commit bee2b19e authored by Uwe Wienkop's avatar Uwe Wienkop

Di, 5.11.19

parent d5d33693
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>_05CodeDojo</RootNamespace>
</PropertyGroup>
</Project>
using System;
namespace _05CodeDojo
{
class Program
{
// Funktion Max, die das Maximum zweier übergebener int-Zahlen zurückliefert
static int Max(int a, int b)
{
//if (a > b)
// return a;
//else
// return b;
return a > b ? a : b;
}
// Funktion Swap, welche die Werte zweier übergebener int-Variablen vertauscht
static void Swap(ref int a, ref int b) { }
// Funktion Max1, die das Maximum der Werte eines Feldes bestimmt und zurückliefert
static int Max1(int[] f) { }
// Funktion Max2, die das Maximum eines int-Feldes bestimmt und
// das Maximum und die Stelle zurückliefert, wo das Maximum auftrat
static void Max2(int[] f, out int max, out int maxInd) { }
static int Max2(int[] f, out int maxInd) { }
// Funktion Union, erhält zwei Felder und liefert ein Feld zurück, welches
// die Werte beider Felder enthält
static void Union(int[] f1, int[] f2, out int[] ergFeld) { }
static int[] Union(int[] f1, int[] f2) { }
// Funktion Even, erhält ein Feld und löscht aus dem Feld alle ungeraden Zahlen
static int[] Even(int[] f) { }
static void Even(ref int[] f)
{
int anz = 0;
foreach (int item in f)
{
if (item % 2 == 0)
anz++;
}
int[] fNeu = new int[anz];
// ...
}
static void Main(string[] args)
{
int[] f = { 1, 2, 3 };
int[] erg;
Union(f, f, out erg);
Even(ref erg);
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>_05FunktionenIntro2</RootNamespace>
</PropertyGroup>
</Project>
using System;
namespace _05FunktionenIntro2
{
class Program
{
#region By-Value-Parameterübergabe
static int Mult2_ByValue(int x)
{
x = x * 2;
return x;
}
static int Add1_ByValue(int x)
{
x = x + 1;
return x;
}
static int Fakultaet(int n)
{
if (n == 1)
return 1;
else
return n * Fakultaet(n -1);
}
#endregion
#region By-Reference-Parameterübergabe
static void StundenUndMinuten(int dauer,
out int stunden, out int minuten)
// out-Parametervariablen:
// -- müssen vor Funktionsaufruf nicht initialisiert sein
// -- müssen aber in der Funktion eine Wertzuweisung erhalten
{
stunden = dauer / 60;
minuten = dauer % 60;
}
static void Add1(ref int x)
{
// ref-Parametervariablen:
// -- müssen vor Funktionsaufruf intialisiert sein
// -- können in der Funktion einen anderen Wert erhalten
// -- Dies wird jedoch nicht überprüft
x = x + 1;
}
#endregion
static void Main(string[] args)
{
#region Aufruf durch Call-by-value
int x = 10;
//Console.WriteLine(Add1_ByValue(x));
//Console.WriteLine(Add1_ByValue(x*2));
//Console.WriteLine(Add1_ByValue(Add1_ByValue(x)));
//Console.WriteLine(Add1_ByValue(100));
//Console.WriteLine(x);
//Console.WriteLine(Fakultaet(3));
#endregion
int std, min;
StundenUndMinuten(90, out std, out min);
Console.WriteLine($"Stunden: {std}, Minuten: {min}");
int z = 10;
Add1(ref z);
Console.WriteLine($"Der Wert von z: {z}");
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>_05FunktionenIntro3</RootNamespace>
</PropertyGroup>
</Project>
using System;
namespace _05FunktionenIntro3
{
class Program
{
/// <summary>
/// Erhöht den Wert der übergebenen Variablen um 1
/// </summary>
/// <param name="x">int-Variable</param>
static void Add1(ref int x)
{
x = x + 1;
// Nimm' den Wert an der Speicherstelle 100.000
// Addiere 1 hinzu
// Speichere den Wert an der Speicherstelle 100.000
}
static void Add1Feld(ref int[] f)
{
f = new int[5];
for (int i = 0; i < f.Length; i++)
{
f[i]++;
}
}
//static double MySinus(double x) { }
//static void Kart2Polar(double x, double y, out double w, out double radius)
static void Main(string[] args)
{
int z = 1; // Annahme: z liegt an Adresse 100.000
for (int i = 0; i < 5; i++)
{
Add1(ref z);
Console.WriteLine($"z in der Schleife: {z}");
}
Console.WriteLine($"z final: {z}");
int[] feld;
feld = new int[10]; // Alle Feldelemente sind 0
// Feldvariable = REFERENZ!!!
Add1Feld(feld);
for (int i = 0; i < feld.Length; i++)
{
Console.WriteLine($"feld[{i}] = {feld[i]}");
}
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>_05FunktionenIntro4</RootNamespace>
</PropertyGroup>
</Project>
using System;
namespace _05FunktionenIntro4
{
class Program
{
static void Add1(int [] f)
{
f = new int[8];
for (int i = 0; i < f.Length; i++)
{
f[i]++;
}
}
static void Main(string[] args)
{
int[] feld;
feld = new int[10];
Add1(feld);
for (int i = 0; i < feld.Length; i++)
{
Console.WriteLine($"{i}: {feld[i]}");
}
int[] feld2 = { 1, 2, 2, 3, 3, 3, 4, 5 };
Console.WriteLine("--------------------");
EliminiereDoppelte(ref feld2);
for (int i = 0; i < feld2.Length; i++)
{
Console.WriteLine($"{i}: {feld2[i]}");
}
}
static void EliminiereDoppelte(ref int[] f)
{
f = new int[] { 1, 2, 3, 4, 5 };
}
}
}
......@@ -31,11 +31,19 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "03Hints", "03Hints\03Hints.
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "03IfTeil2", "03IfTeil2\03IfTeil2.csproj", "{BA2427B4-9085-4B58-B43C-FF1265423B02}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "04IntroFelder", "04IntroFelder\04IntroFelder.csproj", "{CE6C57A2-0013-4C67-BCC7-94F6B1A954C3}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "04IntroFelder", "04IntroFelder\04IntroFelder.csproj", "{CE6C57A2-0013-4C67-BCC7-94F6B1A954C3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "04CodeDojo", "04CodeDojo\04CodeDojo.csproj", "{86AD309D-5901-40A8-9BE5-F82D15C6A058}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "04CodeDojo", "04CodeDojo\04CodeDojo.csproj", "{86AD309D-5901-40A8-9BE5-F82D15C6A058}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "04IntroFunktionen", "04IntroFunktionen\04IntroFunktionen.csproj", "{2B0FE9CF-B200-4455-99F5-EC5FF85A2892}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "04IntroFunktionen", "04IntroFunktionen\04IntroFunktionen.csproj", "{2B0FE9CF-B200-4455-99F5-EC5FF85A2892}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "05FunktionenIntro2", "05FunktionenIntro2\05FunktionenIntro2.csproj", "{8C668599-061E-46B4-A41C-93A28F1947CF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "05FunktionenIntro3", "05FunktionenIntro3\05FunktionenIntro3.csproj", "{A42E02B8-A877-4DE0-B37E-0C1173FA26F1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "05FunktionenIntro4", "05FunktionenIntro4\05FunktionenIntro4.csproj", "{A6379B1C-2DAD-4E95-87AC-B88169F5F37F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "05CodeDojo", "05CodeDojo\05CodeDojo.csproj", "{885A2A0A-CEAC-4140-9F18-FF4FCF1DCF77}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
......@@ -111,6 +119,22 @@ Global
{2B0FE9CF-B200-4455-99F5-EC5FF85A2892}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2B0FE9CF-B200-4455-99F5-EC5FF85A2892}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2B0FE9CF-B200-4455-99F5-EC5FF85A2892}.Release|Any CPU.Build.0 = Release|Any CPU
{8C668599-061E-46B4-A41C-93A28F1947CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8C668599-061E-46B4-A41C-93A28F1947CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8C668599-061E-46B4-A41C-93A28F1947CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8C668599-061E-46B4-A41C-93A28F1947CF}.Release|Any CPU.Build.0 = Release|Any CPU
{A42E02B8-A877-4DE0-B37E-0C1173FA26F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A42E02B8-A877-4DE0-B37E-0C1173FA26F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A42E02B8-A877-4DE0-B37E-0C1173FA26F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A42E02B8-A877-4DE0-B37E-0C1173FA26F1}.Release|Any CPU.Build.0 = Release|Any CPU
{A6379B1C-2DAD-4E95-87AC-B88169F5F37F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A6379B1C-2DAD-4E95-87AC-B88169F5F37F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A6379B1C-2DAD-4E95-87AC-B88169F5F37F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A6379B1C-2DAD-4E95-87AC-B88169F5F37F}.Release|Any CPU.Build.0 = Release|Any CPU
{885A2A0A-CEAC-4140-9F18-FF4FCF1DCF77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{885A2A0A-CEAC-4140-9F18-FF4FCF1DCF77}.Debug|Any CPU.Build.0 = Debug|Any CPU
{885A2A0A-CEAC-4140-9F18-FF4FCF1DCF77}.Release|Any CPU.ActiveCfg = Release|Any CPU
{885A2A0A-CEAC-4140-9F18-FF4FCF1DCF77}.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