\section{Part 1: Substitution Cipher}

\subsection{Analyse}

Als Programmiersprache wurde Go\footnote{\href{https://go.dev/}{https://go.dev/}} ausgewählt. Das Analysetool soll jeden Buchstaben eines Textes auf Häufigkeit untersuchen.

Im Prgram wird mit einem Strukt Array gearbeitet. Darin wird der Buchstabe swowohl groß, als auch klein als String abgespeichert. Außerdem wird die dazugehörige Anzahl mit der Häufigkeit abgespeichert. Dadurch kann nach dem Durchlauf der Datensatz einfach sortiert werden.

Das Alphabet wird im “Unicode Code Point” genutzt damit es einfach verglichen werden kann. Zum Start des Programmes wird das Alphabet in dem ``letters''-Array initialisiert (Abb. \ref{fig:Initialisierung mit Unicode}).

\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.6\textwidth]{part1/initAlphabet}
        \caption{Initialisierung mit Unicode}
        \label{fig:Initialisierung mit Unicode}
    \end{center}
\end{figure}

Danach wird die angegebene Datei gelesen und als String geparsed. Der String wird anschließend mit der ``strings.Count''-Funktion gelesen und die gelesene Anzahl im Struct gespeichert.

Wenn alle Buchstaben gelesen wurden, kann die totale Anzahl an Buchstaben genommen werden um die Häufigkeit zu berechnen.

Bevor die sortierte Ausgabe erfolgt werden die Daten mit einem Plotter in einer ``barChart.png'' datei gezeichnet (Abb. \ref{fig:Visualisierung von plaintext.txt}).

\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.6\textwidth]{part1/barChart01}
        \caption{Visualisierung von plaintext.txt}
        \label{fig:Visualisierung von plaintext.txt}
    \end{center}
\end{figure}

Zuletzt wird das soriterte Ergebnis ausgegeben (Abb. \ref{fig:Ergebnis von plaintext.txt}).

\begin{figure}[H]
    \begin{center}
        \includegraphics[width=0.8\textwidth]{part1/result01}
        \caption{Ergebnis von plaintext.txt}
        \label{fig:Ergebnis von plaintext.txt}
    \end{center}
\end{figure}