Uebungsaufgaben_ITFA_2_SS_2025/Exercises/E42_Interfaces/Exercise_2.cs
s.schueler.doz 19d199a2ad Initial
2025-02-10 17:06:29 +01:00

48 lines
1.4 KiB
C#

namespace Exercises_C_Sharp.E42_Interfaces
{
//Sie sollen für einen Sondmixer die Klassen Drums, Guitar und Keyboard erstellen. Alle drei sollen von ISound ableiten. Um die Applikation zu testen, geben Sie bei der implementierten Methoden ein zufälliges Byte-Array zurück. Erstellen Sie dann die drei Objekte der jeweiligen Klassen und übergeben diese der Methode MergeSound().
class Exercise_2
{
public static void Start()
{
//Code START
//Code ENDE
}
public static void MergeSound(List<ISound> sounds)
{
List<byte> byteList = new();
foreach(var element in sounds)
{
byte[] bytes = element.MakeSound();
for(int i = 0; i < bytes.Length; i++)
{
if(byteList.Count <= i)
byteList.Add(bytes[i]);
else
byteList[i] = (byte)(byteList[i] | bytes[i]);
}
}
foreach(var element in byteList)
{
// 0 0 0 0 0 0 0 0
// 1 1 1 1 1 1 1 1
int frequency = element | 0b00001111;
int duration = element | 0b11110000;
Console.Beep(frequency, duration);
Task.Delay(500);
}
}
}
interface ISound{
byte[] MakeSound();
}
//Code START
//Code ENDE
}