Hallo,
ich bin noch Studentin und arbeite gerade an einer Aufgabe die mich zum verzweifeln bringt. Ich hoffe ich bin hier im richtigen Forum.
Die Lösung habe ich bereits jedoch verstehe ich sie nicht ganz:
Die Aufgabe ist:
Schreiben Sie eine Methode:
Die Methode soll eine Textdatei mit dem Namen dName erzeugen. Die Detei soll ein quadratisches Muster mit so vielen Zeichen enthalten, wie die breite angibt. Das Muster besteht Streifen von + und Unterstrichen, wie in Abbildung 1 (Die erläutere ich gleich) für die Breite 10 gezeigt. Zwischen zwei Pluszeichen sind dabei immer 4 Unterstriche. Fangen Sie dabei alle Exceptions des Typ IOException ab und geben Sie im Fehlerfall die Ursache des Fehlers auf dem Bildschirm auf.
Abbildung 1 ist:
++
+____+
++
++
++
++
+____+
++
++
Nun lautet die Lösung:
public static void Schreibe(string dateiname, int breite
StreamWriter wr = null;
try {
wr = new StreamWriter(dateiname);
for(int zl=0; zl< breite, ++zl) {
for (int sp=0; sp<breite; ++sp) {
int dist = breite - zl;
wr.Write (zl-sp) % 5 == 0 ? '+' : '_'); // HIER IST MEIN PROBLEM.. Wie komm ich auf dieses wr.Write
}
wr.WriteLine();
}}
Den rest schreib ich jetzt mal nicht mehr ab.. ist unnötig
ABER WIE KOMM ICH DARAUF KANN MIR JEMAND HELFEN ICH MUSS MEINE KINDER FÜTTERN
Bitte Beitrag nicht löschen bitte bitte bitte ich tippe das alles mit tränen in den augen
Geht doch! Da fehlt nur eine Klammer und statt einem Komma braucht man ein Semikolon.
try
{
using (wr = new StreamWriter(dateiname))
for (int zl = 0; zl < breite; ++zl)
{
for (int sp = 0; sp < breite; ++sp)
{
int dist = breite - zl;
//if ((zl - sp) % 5 == 0)
//{
// wr.Write('+');
//}
//else
//{
// wr.Write('_');
//}
wr.Write((zl - sp) % 5 == 0 ? '+' : '_');
}
wr.WriteLine();
}
}
Hallo
Erst einmal ein Hinweis. Für Code bitte die entsprechenden Code-Tags verwenden. Ist besser lesbar.
Und dann hast du das Problem, was viele haben. Code kopiert und nicht verstanden.
Schau dir mal den Modulo-Operator an.
Arithmetische Operatoren (C#-Referenz)
C# Modulo Examples
und dann noch den bedingte Operator ?:
Operator „?“ (C#-Referenz)
Vielen Vielen Dank! Ich habe es nun verstanden..🙂)
Bitte Beitrag nicht löschen
Nebenbei: den Original-Beitrag auch nicht selbst editieren (vor allem nicht am Code), da das Startproblem (inkl. erfolgter Antworten) so nicht mehr nachvollzogen werden könnte. Und längerfristig -v.a. bei komplexeren Software-Produkten- könnte der Einsatz eines Versionsverwaltungssystems (Git(hub),...) erwägenswert sein.
Goalkicker.com // DNC Magazine for .NET Developers // .NET Blogs zum Folgen
Software is like cathedrals: first we build them, then we pray 😉
Bitte Beitrag nicht löschen
Wenn man sich an die Regeln hält, die in [Hinweis] Wie poste ich richtig? beschrieben sind, und damit diese Community hier respektiert, dann passiert das auch nicht und man bekommt auch eher Hilfe.
Wäre schön, wenn Du das eingehalten hättest, sodass wir nicht Deinen Beitrag hätten editieren müssen (Titel, Code-Tags...).
Nach 10 Minuten der Antwort hast geschrieben, dass Du es verstanden hättest.
Angesichts des Zeitraums und der dahinterstehenden Lesemenge ist die Aussage vermutlich unwahr 🙂
Daher: lesen, lesen, lesen - nicht 10 Mal um Bitte schreien 😉
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code