Tabellen in C# darstellen?
Hi! Ich muss für die Schule ein Programm mit zwei "for- Schleifen" schreiben, welches die ASCII Tabelle ausgibt.
Die Bedingung: Es muss eben eine Tabelle sein. Unser Lehrer gab uns den Tipp, mit 'Zeile' und 'Spalte'.
Wie würde so eine Tabellen- Darstellung in C# aussehen?(Bitte wirklich nur eine Tabelle mit zwei for- Schleifen, den Rest möchte ich selbst machen).
Als Beispiel wie meins bis jetzt aussieht:
for (int Zeile = 0; Zeile < 8; Zeile++)
{ Console.Write("\n"); for (int Spalte = 0; Spalte < 64; Spalte++)
{
Console.Write(" " + Convert.ToChar(Zeile + 64)); Zeile++;
} }

3 Antworten
Na wenn du schon in Spalten und Zeilen denken willst, machst du das in etwa so.
for (int zeile = 1; zeile <= anzahlzeilen; zeile++){
for (int spalte= 1; spalte<= anzahlspalten; spalte++){
}
}
for (int row = 0; row < 16; row++)
{
for (int column = 0; column < 16; column++)
{
FillTable(row*0x10 + column, row, column);
}
}
Wozu benötigst du dafür 2 Schleifen? Eine reicht völlig aus. Den Umbruch übernimmst du, indem du abfragst, ob die der Rest aus der Division mit Zähler (+1, wenn der Zähler bei 0 beginnt) und Spaltenanzahl 0 ergibt.
Nutze für Zeilenumbrüche übrigens die bereits integrierte Methode WriteLine und bei der Ausgabe einen String-Formatter oder noch besser String-Interpolation:
string pre = column < 10 ? "00" : column < 100 ? "0" : string.Empty; Console.Write($"| {pre}{column} {Convert.ToChar(column + 64)} ");
In diesem Fall würde die Tabelle einen vertikalen linken Rand pro Spalte bekommen. In der String-Variable pre würde ich pro Iteration die Anzahl an Nullen vor der Dezimalzahl berechnen, damit sich die Tabellenspalten nicht verschieben.
Achso. Na dann halte dich an die anderen hier gegebenen Antworten und stell dem Lehrer außerdem die Variante mit nur einer Schleife vor, falls er sie noch nicht kennt.
Zwei Schleifen waren die Bedingung vom Lehrer, mit einer habe ich es im Unterricht auch geschafft. Sah halt anders aus, als er es sein sollte.