Skip to content
Snippets Groups Projects
Commit 5d577841 authored by Jens Albrecht's avatar Jens Albrecht
Browse files

.

parent f8a0d248
No related branches found
No related tags found
No related merge requests found
namespace Uebung;
class BalkenDiagramm
{
// Zeichnet ein BalkenDiagramm mit den Werten des Feldes f
static void ZeichneBalkenDiagramm(int[] feld)
{
for (int i = 0; i < feld.Length; i++)
{
Console.Write("{0,2} ", feld[i]);
for (int j = 0; j < feld[i]; j++)
Console.Write('\u2584'); // Zeichen "Halbblock unten"
Console.WriteLine();
}
}
static void Main(string[] args)
{
Console.OutputEncoding = System.Text.Encoding.UTF8;
int[] f = { 10, 20, 15, 18, 2, 6 };
ZeichneBalkenDiagramm(f);
Console.WriteLine("\n\n\n");
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
namespace Uebung;
class Program
{
// Ausgabe Feld f
static void Ausgabe(int[] f)
{
Console.Write("f = [");
for (int i = 0; i < f.Length; i++)
Console.Write((i != 0 ? ", " : "") + f[i]); // Trick für das Komma erspart ein "if"
Console.WriteLine("]\n");
}
// Statistik, berechnet summe, durchschnitt, min, max
static void FeldStatistik(int[] f, out int summe, out double durchschnitt, out int min, out int max)
{
summe = 0;
min = f[0];
max = f[0];
for (int i = 0; i < f.Length; i++)
{
summe += f[i];
if (f[i] < min)
min = f[i];
if (f[i] > max)
max = f[i];
}
// Type-Cast zur Vermeidung von Integer-Division
durchschnitt = (double)summe / f.Length;
}
static void Main()
{
int[] f = { 5, 8, 6, 4, 3, 5, 9, 2, 6, 9 };
Ausgabe(f);
FeldStatistik(f, out int summe, out double durchschnitt, out int min, out int max);
Console.WriteLine("Summe: " + summe);
Console.WriteLine("Durchschnitt: " + durchschnitt);
Console.WriteLine("Maximum: " + max);
Console.WriteLine("Minimum: " + min);
// Zahl einlesen
Console.Write("Zahl eingeben: ");
int zahl = Convert.ToInt32(Console.ReadLine());
Console.Write("Größer sind: ");
for (int i = 0; i < f.Length; i++)
{
if (f[i] > zahl)
Console.Write(f[i] + " ");
}
Console.WriteLine("\n");
// C#-Standard-Funktionalität mit Linq
Console.WriteLine($"Summe durch Linq: {f.Sum()}");
Console.WriteLine();
Console.WriteLine("Maximum durch Linq: " + f.Max());
Console.WriteLine("Minimum durch Linq: " + f.Min());
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
namespace Uebung;
class Program
{
// Zum Vergleich nochmal iterativ
static int QuerSumme(int zahl)
{
int q = 0;
while (zahl > 0)
{
q += zahl % 10;
zahl /= 10;
}
return q;
}
// Jetzt rekursiv. Elegant, oder?
static int QuerSummeRek(int zahl)
{
if (zahl < 10)
return zahl;
else
return zahl % 10 + QuerSummeRek(zahl / 10);
}
static void Main(string[] args)
{
Console.Write("Zahl eingeben: ");
int zahl = Convert.ToInt32(Console.ReadLine());
Console.WriteLine($"QuerSumme({zahl}) = {QuerSumme(zahl)}");
Console.WriteLine($"QuerSummeRek({zahl}) = {QuerSummeRek(zahl)}");
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
namespace Uebung;
class Program
{
// Dreht den Feld-Inhalt um
static void Reverse(int[] a)
{
for (int i = 0; i < a.Length / 2; i++)
{
int temp = a[i];
a[i] = a[a.Length - 1 - i]; // oder a[^(1+i)]
a[a.Length - 1 - i] = temp;
}
}
static void Main()
{
int[] f = { 6, 7, 4, 3, 2, 5, 9 };
Reverse(f);
// jetzt sollte f = { 9, 5, 2, 3, 4, 7, 6 } sein
for (int i = 0; i < f.Length; i++)
Console.Write(f[i] + " ");
Console.WriteLine();
// Original-Reihenfolge mit Standard-Funktion wieder herstellen
Array.Reverse(f);
for (int i = 0; i < f.Length; i++)
Console.Write(f[i] + " ");
Console.WriteLine();
}
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
namespace Uebung;
class Program
{
// Selection Sort
static void Sort(int[] f)
{
for (int i = 0; i < f.Length; i++)
{
// Suche Index der nächstkleinsten Zahl
int minIdx = i;
for (int j = i + 1; j < f.Length; j++)
{
if (f[j] < f[minIdx])
minIdx = j;
}
// tausche Feldwert mit nächstkleinster Zahl
int tmp = f[i];
f[i] = f[minIdx];
f[minIdx] = tmp;
}
}
// Hauptprogramm
static void Main()
{
int[] a = { 5, 8, 3, 2, 9, 8 };
Sort(a);
for (int i = 0; i < a.Length; i++)
Console.Write(a[i] + " ");
Console.WriteLine();
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.9.34616.47
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FeldUebung", "FeldUebung\FeldUebung.csproj", "{859CF903-14E3-479E-844D-E9EBBFADCA71}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Reverse", "Reverse\Reverse.csproj", "{E122E1CB-44BC-4E4B-AA9E-1DC9CAD50E9F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BalkenDiagramm", "BalkenDiagramm\BalkenDiagramm.csproj", "{BC9C48C1-69EA-43D9-BAB0-C528DDC06484}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SelectionSort", "SelectionSort\SelectionSort.csproj", "{0A0E6444-24E7-4AB1-84F8-F8D539009DE1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuersummeRekursiv", "QuersummeRekursiv\QuersummeRekursiv.csproj", "{70BC7F95-242F-4839-8D1D-7BE15FC787D5}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{859CF903-14E3-479E-844D-E9EBBFADCA71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{859CF903-14E3-479E-844D-E9EBBFADCA71}.Debug|Any CPU.Build.0 = Debug|Any CPU
{859CF903-14E3-479E-844D-E9EBBFADCA71}.Release|Any CPU.ActiveCfg = Release|Any CPU
{859CF903-14E3-479E-844D-E9EBBFADCA71}.Release|Any CPU.Build.0 = Release|Any CPU
{E122E1CB-44BC-4E4B-AA9E-1DC9CAD50E9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E122E1CB-44BC-4E4B-AA9E-1DC9CAD50E9F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E122E1CB-44BC-4E4B-AA9E-1DC9CAD50E9F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E122E1CB-44BC-4E4B-AA9E-1DC9CAD50E9F}.Release|Any CPU.Build.0 = Release|Any CPU
{BC9C48C1-69EA-43D9-BAB0-C528DDC06484}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BC9C48C1-69EA-43D9-BAB0-C528DDC06484}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BC9C48C1-69EA-43D9-BAB0-C528DDC06484}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BC9C48C1-69EA-43D9-BAB0-C528DDC06484}.Release|Any CPU.Build.0 = Release|Any CPU
{0A0E6444-24E7-4AB1-84F8-F8D539009DE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0A0E6444-24E7-4AB1-84F8-F8D539009DE1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0A0E6444-24E7-4AB1-84F8-F8D539009DE1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0A0E6444-24E7-4AB1-84F8-F8D539009DE1}.Release|Any CPU.Build.0 = Release|Any CPU
{70BC7F95-242F-4839-8D1D-7BE15FC787D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{70BC7F95-242F-4839-8D1D-7BE15FC787D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{70BC7F95-242F-4839-8D1D-7BE15FC787D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{70BC7F95-242F-4839-8D1D-7BE15FC787D5}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {234FECDE-169F-4E44-B22F-4EA84C8F2E7D}
EndGlobalSection
EndGlobal
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment