0% fanden dieses Dokument nützlich (0 Abstimmungen)
6 Ansichten2 Seiten

Beispiel Code

Hochgeladen von

Jonas Widmann
Copyright
© All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als DOCX, PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
6 Ansichten2 Seiten

Beispiel Code

Hochgeladen von

Jonas Widmann
Copyright
© All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als DOCX, PDF, TXT herunterladen oder online auf Scribd lesen

using System;

namespace TestingCode
{
class Program
{
private static int stunden = 0;
private static int minuten = 0;
static void Main(string[] args)
{
GetInput(); //Erhalte eine Angabe
Dauerschleife();
}
private static void GetInput()
{
String input = "";
while(![Link](":")) //Solange input kein Doppelpunkt enthält Uhrzeit
abfragen
{
[Link]("Bitte geben Sie eine Uhrzeit an (hh:mm):");
//Informative Ausgabe, was als Eingabe erwünscht ist
input = [Link](); //Eingegebene Zeile lesen
}
//Split teilt an der in der Klammer angegebenen Zeichenkete und gibt ein
Ergebniss-Array ohne dieses Zeichen zurück:
//z.B. "16:46".split(":"); ergibt:
//String[] ergebnis = {"16", "45"};
stunden = Convert.ToInt32([Link](":")[0]); //Index 0 des Split-Arrays zu
Zahl konvertieren
minuten = Convert.ToInt32([Link](":")[1]); //Index 1 des Split-Arrays zu
Zahl konvertieren
}

private static void Dauerschleife()


{
//Fehlt: warte eine Minute und erhöhe Minute danach um 1

if(minuten == 60)
{
minuten = 0;
stunden++;
}
if(stunden == 24)
{
stunden = 0;
}
Boolean[] aktiveEinerMin = ErhalteAktivePins((int)(minuten % 10), 4); //Rest
der Teilung durch 10 (= 1er Stellen)
Boolean[] aktiveZehnerMin = ErhalteAktivePins((int)(minuten / 10), 3);
//Ganzzahl der Teilung durch 10 (= 10er Stellen)
Boolean[] aktiveEinerStd = ErhalteAktivePins((int)(stunden % 10), 4); //Rest
der Teilung durch 10 (= 1er Stellen)
Boolean[] aktiveZehnerStd = ErhalteAktivePins((int)(stunden / 10), 2);
//Ganzzahl der Teilung durch 10 (= 10er Stellen)

//Hier Ausgabe der erhaltenen An-Aus Arrays, Sonst hier Display aktualisieren:
PrintArray(aktiveEinerMin, "aktive Einer-Minuten");
PrintArray(aktiveZehnerMin, "aktive Zehner-Minuten");
PrintArray(aktiveEinerStd, "aktive Einer-Stunden");
PrintArray(aktiveZehnerStd, "aktive Zehner-Stunden");
}

private static Boolean[] ErhalteAktivePins(int pruefzahl, int anzahlPins)


{
//Erstellt einen Array für die Lampen mit An(true) und Aus(false)

Boolean[] aktivePins = new Boolean[anzahlPins]; //Erstellen eines Arrays in


Länge der Anzahl der Pins
if(pruefzahl >= 8 && anzahlPins >= 4) //Ist die Prüfzahl >=8 (letzer Bit) und
Array Mindestens 4 Stellen groß?
{
aktivePins[3] = true; //4. Lampe auf An setzen
pruefzahl -= 8; //abziehen des Wertes der 4. Bit-Stelle
}
if (pruefzahl >= 4 && anzahlPins >= 3) // Ist die Prüfzahl >= 4(vorletzer Bit)
und Array Mindestens 3 Stellen groß?
{
aktivePins[2] = true; //3. Lampe auf An setzen
pruefzahl -= 4; //abziehen des Wertes der 3. Bit-Stelle
}
if (pruefzahl >= 2 && anzahlPins >= 2) //2. Bit
{
aktivePins[1] = true; //2. Lampe auf An setzen
pruefzahl -= 2; //abziehen des Wertes der 2. Bit-Stelle
}
if (pruefzahl >= 1 && anzahlPins >= 1) //1. Bit
{
aktivePins[0] = true; //1. Lampe auf An setzen
pruefzahl -= 1; //abziehen des Wertes der 1. Bit-Stelle
}

if(pruefzahl != 0) //Validieren des Ergebnisses und bei Fehlschlag Fehler


werfen
{
throw new InvalidOperationException("Die Prüfzahl ist nicht 0 und konnte
somit nicht korrekt zerteilt werden");
}
return aktivePins; //erstellten An-Aus Array zurückgeben
}
private static void PrintArray(Boolean[] array, String beschreibung) //Methode
zur Ausgabe von Arrays in der Konsole
{
[Link](beschreibung + " = {");
foreach (Boolean b in array)
{
[Link](b + ", ");
}
[Link]("};");
}
}
}

Das könnte Ihnen auch gefallen