Entwickler-Ecke
C# - Die Sprache - Ich brauche Hilfe bei einer Aufgabe
conan2012 - Sa 06.11.10 17:51
Titel: Ich brauche Hilfe bei einer Aufgabe
Hallo!
Hab leider ein kleines Problem was ich mit meinem bisherigen Kenntnisstand noch nicht lösen kann. Hab ne Aufgabe die ich nicht wirklich verstehe und bis nächste Woche würde mein Prof. die Aufgabe schon gelöst haben wollen. Muss eingestehen das ich die Vorlesungen etwas abgelenkt war so das mein Wissen über C# mehr als lückenhaft ist. Wenn ihr mir helfen könntet wäre das echt nett. Bin jetzt dabei die Lücken zu füllen und das geht denke ich ganz gut anhand von Beispielen. Wenn sich einer meiner erbarmen könnte und auch noch so nett wäre das mit reichlich Kommentaren zu versehen würde mir C# vielleicht nicht mehr wie ein Buch mit sieben Siegeln vorkommen. Über Büchertipps wäre ich auch Dankbar. Es sollte aber ein Buch sein was sich vielleicht mehr an Anfänger richtet und nicht umfangreiches Vorwissen erwartet. Also hier ist die Aufgabe die ich lösen soll:
Objekte einer Klasse Zahl repräsentieren ganze Zahlen. Die Klasse Zahl besitzt ein einziges Datenmenber wert für den eigentlichen Zahlenwert. Vervollständigen Sie die Klassendefinition um die erforderlichen Member zur Realisierung der main-Methode. Sub subtrahiert dabei den zweiten Zahlenwert vom ersten.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| class Zahl { private int wert; }
class Program { static void Main(string[]args) { Zahl z1 = new Zahl(17); Zahl z2 = new Zahl(22); Console.WriteLine(“{0}“,Zahl.Sub(z1,z2)); z1.Print(); z2.Print(); } } |
Moderiert von
Kha: C#-Tags hinzugefügt
Christian S. - Sa 06.11.10 21:56
Hallo,
bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den
Richtlinien [
http://www.entwickler-ecke.de/richtlinien.html]:
1.2 Beiträge: |
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...] |
Einfach oben bei Deinem ersten Beitrag auf

oder

klicken und den Titel ändern. Danke Dir!
Viele Grüße,
Christian
conan2012 - So 12.12.10 22:41
Ich komme bei der Aufgabe nicht weiter. Kann mir einer Sagen warum er mir anstatt “-5“, “Aufgabe1.Zahl“ ausgibt??? Ich möchte die -5 zur Ausgabe haben.
Danke!
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40:
| using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace Aufgabe1 { class Zahl { private int wert;
public Zahl(int a)
{ wert = a; }
public static Zahl Sub(Zahl z1, Zahl z2) { Zahl neu = new Zahl(z1.wert - z2.wert); return neu;
}
public void print() { Console.WriteLine("{0}", wert); }
}
class Program { static void Main(string[] args) { Zahl z1 = new Zahl(17); Zahl z2 = new Zahl(22); Console.WriteLine("{0}", Zahl.Sub(z1, z2)); z1.print(); z2.print(); } } } |
Yogu - So 12.12.10 22:49
conan2012 hat folgendes geschrieben : |
Kann mir einer Sagen warum er mir anstatt “-5“, “Aufgabe1.Zahl“ ausgibt???
C#-Quelltext 35: 36: 37:
| /* ... */ Console.WriteLine("{0}", Zahl.Sub(z1, z2)); z1.print(); z2.print(); | |
Du versendest einmal direkt
Console.WriteLine und dann die Methode
print. Letzteres sollte die Zahlen korrekt ausgeben, oder?
print übergibt nämlich die Integer-Werte als Parameter, was zur richtigen Ausgabe führt.
Das Problem bei der ersten Anweisung ist, dass du die Instanzen der Klasse
Zahl an
Console.WriteLine übergibst. Sie müssen für die Ausgabe in einen String konvertiert werden und da du nicht definiert hast, wie Instanzen vom Typ
Zahl in Strings umgewandelt werden, wird einfach der Klassenname genommen.
Was du brauchst ist eine
ToString-Methode, die die Konvertierung durchführt:
C#-Quelltext
1: 2: 3:
| public override string ToString() { return wert.ToString(); } |
conan2012 - So 12.12.10 23:10
Zitat: |
Du versendest einmal direkt Console.WriteLine und dann die Methode print. Letzteres sollte die Zahlen korrekt ausgeben, oder? |
Ja wenn ich in der Main-Methode ein zusätzliches Print einfüge für die Subtraktion gibt er mir den richtigen Wert aus. Nur besagt die Aufgabenstellung das die Main-Methode unverändert bleiben soll. Wo genau muss ich denn Konvertieren?
conan2012 - So 12.12.10 23:17
Es funktioniert jetzt :D
Danke!!!!
conan2012 - Do 16.12.10 01:14
Moin! Ich hab da noch ein Problem :( Hab in den letzten Tagen echt viel probiert und weiß nicht mehr weiter. Als erstes hab ich hier folgende Aufgabenstellung:
Zitat: |
Menge ist eine Klasse mit einem Array zur Aufnahme von Zahl- und Bruch-Objekten. Anzahl gibt dabei die aktuelle Zahl der aufgenommenen Objekte an. Definieren Sie für diese Klasse einen Konstruktor, dessen Parameter die Größe des werte Arrays festlegt. Definieren Sie den überladenen Operator zur Aufnahme von Objekten in die Menge sowie eine Methode Print zur Ausgabe der Objekte. Print verwendet die Print-Methode der Zahl- bzw. Bruch-Klassen. Was muss in diesen beiden Klassen geändert werden?
class Menge
{
private Zahl[]werte;
int anzahl;
//hier die Member
}
class Program
{
static void Main(string[]args)
{
Menge menge = new Menge(10);
menge += new Zahl(15);
menge += new Bruch(1,2);
menge += new Zahl (27);
menge.Print(); // Ausgabe: 15 ½ 27
}
} |
Das hab ich mit ein paar Kommilitonen ausgearbeitet:
Zitat: |
class Menge
{
private Zahl[] werte;
int anzahl;
private Bruch[] brueche;
public Menge(int anz)
{
anzahl = anz;
}
public void Print()
{
for (int i = 0; i < anzahl; i++)
{
Console.WriteLine("{0}", werte[i].wert);
Console.WriteLine("{0}/{1}", brueche[i].wert, brueche[i].Nenner);
}
}
}
class Program
{
static void Main(string[] args)
{
Menge menge = new Menge(10);
menge += new Zahl(15);
menge += new Bruch(1, 2);
menge += new Zahl(27);
menge.Print(); // Ausgabe: 15 ½ 27
}
} |
wir kommen nicht wirklich weiter. Bin für hilfe Dankbar!
Christian S. - Do 16.12.10 01:18
Hallo!
Bitte erstelle für eine neue Frage auch einen neuen Thread. Und dieses Mal wirklich mit besserem Titel :mahn: ;-)
Grüße
Christian
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!