Area anlegen

Status
Nicht offen für weitere Antworten.

FH-Student

Mitglied
Die Klasse heißt Dezimalzahl.

Also folgende Methode möchte ich anlegen:

Einen Konstruktur Dezimalzahl(String), durch den ein Dezimalzahl-Objekt für eine als
String übergebene Ziffernfolge erzeugt wird. Gehen Sie davon aus, dass die übergebene
Zeichenkette nur aus den Zeichen 0 bis 9 besteht und keine führende 0 enthält (Ausnahme:
die Zeichenkette für die Zahl 0). Andere Fälle müssen Sie nicht berücksichtigen.


wär um hilfe sehr dankbar 🙂
 
es gibt da zum Beispiel Integer.parseInt(String) oder gar Long.parseLong(String),
um geeignete Strings in int oder longs umzuwandeln?,

-------------

falls das schon die ganze Kunst wäre und man eher manuell tätig werden soll:
Länge des Strings bestimmen und dann je nach Zeichen mit einem Faktor multiplizieren

Beispiel:
String "351"

char '3' in Zahl 3 umwandeln und mit 100 mal nehmen
+
char '5' in Zahl 5 umwandeln und mit 10 mal nehmen
+
char '1' in Zahl 1 umwandeln und mit 1 mal nehmen
=
300
+
50
+
1
=
351

-----------

ist eine Dezimalzahl nicht eine Kommazahl? 😉

----------

was hat das ganze mit 'Area anlegen' zu tun?
 
..Einen Konstruktur Dezimalzahl(String), durch den ein Dezimalzahl-Objekt für eine als
String übergebene Ziffernfolge erzeugt wird...

public class Dezimalzahl {

private int dezimalzahl[];

/** Creates a new instance of Dezimalzahl. */
public Dezimalzahl(String t) {



}

}


wie sag ich ihm das jetzt mit dem übergegeben string? oder is der konstrultor so fertig?
 
Öh.. der Kopf des Konstruktors ist so fertig, ja...

Aber warum soll die Variable "dezimalzahl" ein int sein?
Wär für ne Dezimalzahl nicht double / float angebracht...?
Sonst hätte dein Dozent die Klasse sicher "Ganzzahl" genannt 😉

EDIT: Und was das Ganze mit "Area" zu tun hat, frag ich mich auch?
 
von sich aus pssiert da gar nix, nicht mal der String wird irgendwo gespeichert,
du musst schon wissen was du haben willst,

ein String ist ein String, Dezimal ist irgendeine Klasse, eine automatische Umwandlung
fallt da schwer, das weiß kein Computer, das weiß nicht mal ein Mensch, ich jedenfalls nicht 😉

du hast da ein int[] drin, hat das irgendwas zu bedeuten?
willst du den String vielleicht in ein int-Wert oder gar mehrere umwandeln?
 
Der Methodenrumpf des Konstruktors ist leer, daher kann das so ja noch nicht ganz richtig sein. Dein Konstruktor hat ja einen Parameter vom Typ String und Du hast eine Klassenvariable vom Typ int (die eckigen Klammern ergeben keinen Sinn, lösch die mal). Nun musst Du halt noch im Kunstruktor der Klassenvariable einen Wert zuweisen. Wie das geht (von String zu int), hat ja oben schon wer geschrieben.
 
also die aufgabe lautet:

Aufgabe 7 (30 Punkte)
In dieser Aufgabe geht es darum, die Anwendung von Kontrollstrukturen und Arrays (Feldern) zu
üben.
Wie Sie wissen, haben die ganzzahligen, elementaren Datentypen in Java einen begrenzten
Wertebereich. In dieser Aufgabe soll eine Klasse Dezimalzahl realisiert werden, deren Objekte
ganze Zahlen mit „annähernd unbegrenzter“ Stellenanzahl darstellen können. Die Klasse soll sich
intern auf ein int-Array abstützen, in dem die Dezimalziffern der Zahlen verwaltet werden.

Implementieren Sie in der Klasse Dezimalzahl folgende Methoden:

• Einen Konstruktur Dezimalzahl(String), durch den ein Dezimalzahl-Objekt für eine als
String übergebene Ziffernfolge erzeugt wird. Gehen Sie davon aus, dass die übergebene
Zeichenkette nur aus den Zeichen 0 bis 9 besteht und keine führende 0 enthält (Ausnahme:
die Zeichenkette für die Zahl 0). Andere Fälle müssen Sie nicht berücksichtigen.

• Eine Instanzmethode Dezimalzahl addiere(Dezimalzahl). Die Methode soll diese Zahl
und die übergebene Zahl addieren und die Summe als neue Dezimalzahl zurückgeben. Die
beiden anderen Dezimalzahlen sollen unverändert bleiben.

• Eine Instanzmethode String gibAlsString(), die die Darstellung dieser Dezimalzahl als
Zeichenkette liefert. Die Zeichenkette soll keine führenden Nullen besitzen (außer für die
Zahl 0).


hab ich vl was falsch verstanden?
 
FH-Student hat gesagt.:
/** Creates a new instance of Dezimalzahl. */
public Dezimalzahl(String t) {



}
Ja, das ist nun der Konstruktor. Der Parameter kommt in der Variablen t. Der Konstruktor tut aber noch garnichts. Du mußt nun den String t in einzelne Ziffern zerlegen und diese dann in dem Array ablegen. Nicht vergessen, vorher ein Array entsprechender Größe zu erzeugen.

Gruß
Mag1c
 
mit Fragen wie
FH-Student hat gesagt.:
hab ich vl was falsch verstanden?
oder
FH-Student hat gesagt.:
ist der konstruktor so fertig?
kommst du auf die Dauer nicht weiter,
da du ja noch ÜBERHAUPT nix dazu programmiert hast (bis auf leeren Konstruktor),
also versuch erstmal irgendwas, von selber kann der Computer die Aufgabe nicht lösen,

das ist so als wenn du von Berlin nach Hamburg fahren sollst,
dich in ein Auto setzt und fragst 'bin ich schon da?'

---------
die Angabe der Aufgabenstellung macht schon Sinn, danke,
jetzt weiß man warum du ein int[] int der Klasse stehen hast, und warum du das ganze 'Area anlegen' genannt hast,

------------

dennoch fehlt nach die vor die Programmierung der Aufgabe,
es geht konkret darum, einen String, der vielleicht hunderte bis tausende Ziffern enthält, in ein int[]-Array umzuwandeln,

da musst du die überlegen ob nur eine Ziffer oder mehrere in jeden int-Feld des Array kommen (je eine Ziffer wäre deutlich leichter!),
dann wie du einzelnen Teilzahlen aus den String rauskriegst und in int-Werte umwandelst und in die richtige Stelle im Array einfügst,
dabei auch überlegen: welche ist die richtige Stelle für jede Teilzahl?,


insgesamt also eine knifflige Aufgabe wenn auch mit einfachen Mitteln zu lösen,
du brauchst dafür wahrscheinlich for-Schleifen, subString- oder charAt-Operation von String,
und Integer.parseInt oder eine andere Umformoperation um Strings/chars in Zahlen/ Ziffern umzuwandeln

wie gesagt hast du da bisher noch gar nix zu programmiert und brauchst am Ende sicherlich mindestenst 20 Zeilen voller Code,
also -> anfangen,
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben