L1: TraceTable - JirkaDellOro/Softwaredesign GitHub Wiki

TraceTable fortführen

Vervollständigen Sie die im Seminar begonnene TraceTable für diese Funktion:

            int DecimalToHexal(int dec)
            {
                int result = 0;
                int factor = 1;
                while (dec != 0)
                {
                    int digit = dec % 6;
                    dec /= 6;
                    result += factor * digit;
                    factor *= 10;
                }
                return result;
            }

Beantworten Sie die Frage, was der Sinn dieser Funktion sein könnte und schreiben Sie einige Beispiele Rückgabewerte bei verschiedenen Parameterwerte.

Reverse Engineering

Finden Sie mit Hilfe von TraceTables heraus, wie die Funktion ConvertNumberFromSystemToSystem arbeitet, beschreiben Sie deren Aufgabe und nennen Sie Beispiele der Zuordnung von Ein- und Ausgabe.

            int ConvertNumberFromSystemToSystem(int number, int fromSystem, int toSystem)
            {
                int result = 0;
                result = OtherToDecimal(number, fromSystem);
                result = DecimalToOther(result, toSystem);
                return result;
            }

            int DecimalToOther(int dec, int system)
            {
                int result = 0;
                int factor = 1;
                while (dec != 0)
                {
                    int digit = dec % system;
                    dec /= system;
                    result += factor * digit;
                    factor *= 10;
                }
                return result;
            }

            int OtherToDecimal(int other, int system)
            {
                int result = 0;
                int factor = 1;
                while (other != 0)
                {
                    int digit = other % 10;
                    other /= 10;
                    result += factor * digit;
                    factor *= system;
                }
                return result;
            }

Implementieren Sie diese Funktionalitäten in ein lauffähiges Programm. Ein Nutzer soll eine sinnvolle Eingabe machen können und ein entsprechend erwartetes Ergebnis in der Konsole erhalten.

Optimierung

Wie könnte man den Code vereinfachen bzw. optimieren?