Schleifen

chocobo

Mitglied
Hallo Programmierfreunde, als absoluter Neuerling versuche ich mich in der Java Welt zurecht zu finden. Da ich nicht weiter weiß befrage ich hier die Profis.

Ich suche hier keine fertigen Lösungen, sondern lediglich Bearbeitungshinweise bzw. Erläuterungen. Denn ich will ja was lernen.

Also ich habe zwei Klassen, die sehen so aus:

public class DualZahl {

private byte[] dZahl8 = new byte[8];

public void DualZahl() {
for (int i = 0; i < dZahl8.length; i++)
dZahl8 = 0;
}

public void setZahl(byte[] zahl1) {

for (int i = 0; i < zahl1.length; i++) {

dZahl8 = zahl1;
}
}

public void add(byte[] zahl2) {

for (int i = 0; i < dZahl8.length; i++) {
dZahl8 += zahl2;
System.out.print(dZahl8);
}

}

public byte[] getZahl() {

return dZahl8;
}
}
----------------------------------------------------------------------------------------------------//2. Klasse:


public class DualzahlenArithmetik {

public DualzahlenArithmetik() {
// TODO Auto-generated constructor stub
}

public static void main(String[] args) {
byte[] zahl1 = { 0, 0, 0, 1, 1, 1, 1, 1};
byte[] zahl2 = { 0, 1, 0, 1, 1, 1, 0, 1};
byte[] zahl3 = new byte[8];
DualZahl dZahl1 = new DualZahl();
dZahl1.setZahl(zahl1);
dZahl1.add(zahl2);
zahl3 = dZahl1.getZahl();
System.out.print("Ergebnis: ");
for (int i = 0; i < zahl3.length; i++)
System.out.print(zahl3);


}
}
----------------------------------------------------------------------------------------------------
P.S: mit Sicherheit werden Dualzahlen so nicht miteinander addiert. Ich versuche gerade erst mal zu verstehen was ich da bis hierhin programmiert habe.

Meine Frage:

Warum bekomme ich in der Addition: dZahl8 += zahl2;
01022212 als Ergebnis und nicht 00122212?

Vielen Dank für eure Antworten.

Beste Grüße

Tobias
 

chocobo

Mitglied
Ich hatte die Dualzahl falsch eingetippt und war dadurch verwirrt. Vielen Dank.

Ich lasse diesen Thread weiter offen, falls ich später noch weitere Fragen hätte.
 

Javinner

Top Contributor
Bitte den Code in Code-Tabs setzen [code=Java]Dein Code[/code]
Ich versuche gerade erst mal zu verstehen was ich da bis hierhin programmiert habe
Ich würde mich eher darauf konzentrieren, was man habe am Anfang programmieren wollen.
Java:
public class DualZahl {

     private byte[] dZahl8 = new byte[8];

     /** Hier wird im Konstruktor mittels einer for-Schleife soviel mal Array stellen hat, dem Array als
           Ganzes eine Zahl Null zuzuweisen
           Das kann nicht funktionieren */
     public void DualZahl() {
         for (int i = 0; i < dZahl8.length; i++)
        dZahl8 = 0;
     }

    /** Hier wird mittels for-Schleife versucht, soviel mal Array zahl1 stellen hat, einem Array Names dZahl8
          wiederum als Ganzes ein Array zahl1 als Ganzes zuzuweisen
         Das kann nicht gehen */
     public void setZahl(byte[] zahl1) {
         for (int i = 0; i < zahl1.length; i++) {
        dZahl8 = zahl1;
        }
     }

    /** Das Selbe in Grün mit einer System-Ausgabe */
     public void add(byte[] zahl2) {
        for (int i = 0; i < dZahl8.length; i++) {
        dZahl8 += zahl2;
        System.out.print(dZahl8);
        }
    }

   public byte[] getZahl() {
       return dZahl8;
   }
}

Java ist auch eine Insel : Arrays
Besser jedoch, von Anfang an!

Zum Thema als Pseudo-Code:
Java:
public void setzeEineBananenKiste(Bananenkiste kiste)
{
     meine.bananenkiste = kiste;
}

public boolean hatEineSolcheBanane(Banane banane)
{
    for(Banane b : bananenkiste)
    {
         if(b == banane)
        {
             return true;
        }
    }
    return false;
}
 

MoxxiManagarm

Top Contributor
Ist das byte-Array eigentlich vorgegeben oder kann es auch ein boolean-Array sein? Persönlich würde ich bei der Implementierung ja zu Letzterem tendieren
 

chocobo

Mitglied
huch. Ihr seid ja schnell. Ich bin da noch weiter am ausprobieren. Die beiden Arrays sind in der einen Klasse vorgegeben, ja.

Als Übungsaufgabe habe ich folgendes:
Es soll eine Klasse entwickelt werden, die eine Dualzahl mit 8 Bit verwaltet und Methoden für Rechenoperationen
mit 8-stelligen Dualzahlen bereitstellt. Die Klasse soll wie folgt aussehen (UML-Notation):
Die Klasse enthält das geschützte Attribut dZahl8 vom Array-Typ byte[8]. Sie stellt folgende Methoden bereit:

DualZahl( ): Leerkonstruktor, füllt dZahl8 mit Nullen.

add (zahl: byte[8]): bitweise Addition einer als Parameter übergebenen Dualzahl auf dZahl8.
setZahl(zahl: byte[8]): Setzen (Überschreiben) von dZahl8 mit der übergebenen Dualzahl.

byte[8] getZahl(): Auslesen und Rückgabe von dZahl8 als byte[8].
Die Klasse DualZahl wird durch folgendes Programm benutzt. Stellen Sie sicher,
dass das Programm nach Einbinden Ihrer Klasse syntaktisch und logisch stimmig ist.
DualZahl
- dZahl8: byte[8]
+ DualZahl( )
+ add (zahl: byte[8]): void
+ setZahl(zahl: byte[8]): void
+ getZahl(): byte[8]
---------------------------------------------------------------------------------------------------------------
P.S.: bitte den Code nicht weiter großartig beachten. Bin noch dabei mich da reinzufinden. Vielen Dank
 

chocobo

Mitglied
Sodele....Auf die Gefahr hin, dass mich die eingefleischte Java-Gemeinde hier im Forum mich vom Hof jagen möchte. :)

Der Code ist sicherlich nicht die beste Lösung aber ich denke, dass er funktioniert.

Der ist zwar ziemlich umständlich geschrieben, aber vielleicht gibt es hier einen Fehler den ich völlig übersehen habe. Habe verschiedene Dualzahlen durchgejagt, die einzige Exception wirft er nur aus, wenn alle Stellen dZahl8[0] bis dZahl8[7] eine 1 haben.

Vielen Dank. Beste Grüße
Java:
public class DualZahl {

   private byte[] dZahl8 = new byte[8];

   public void DualZahl() {
       for (int i = 0; i < dZahl8.length; i++)
           dZahl8[i] = 0;
   }

   public void setZahl(byte[] zahl1) {

       for (int i = 0; i < zahl1.length; i++) {

           dZahl8[i] = zahl1[i];

           // System.out.print(dZahl8[i]); 00010101
       }
   }

   public void add(byte[] zahl2) {

       for (int i = 0; i < dZahl8.length; i++) {
           dZahl8[i] += zahl2[i]; // + Zahl2 10111000
           // System.out.print(dZahl8[i]); // neue dzahl8 00010101 = 10121101
           // + 10111000
           if (zahl2[i] == 1 && dZahl8[i] == 2) {

               dZahl8[i] = 0;
               dZahl8[i - 1] += 1;

           }
       }

       for (int i = 0; i < dZahl8.length; i++) {

           // System.out.print(dZahl8[i]); // neue dzahl8= 10201101

           if (zahl2[i] == 1 && dZahl8[i] == 2) {

               dZahl8[i] = 0;
               dZahl8[i - 1] += 1;

               // System.out.print(dZahl8[i]); // neue dzahl8= 11001101
           }
       }

       for (int i = 0; i < dZahl8.length; i++) {

           // System.out.print(dZahl8[i]); // neue dzahl8= 10201101

           if (zahl2[i] == 1 && dZahl8[i] == 2) {

               dZahl8[i] = 0;
               dZahl8[i - 1] += 1;

               // System.out.print(dZahl8[i]); // falls Übertrag auf dZahl8[0] erfolgt.
           }
       }
   }

   public byte[] getZahl() {

       return dZahl8;
   }
}
 

chocobo

Mitglied
Hier ist vollständigkeitshalber die andere Klasse. Cheers

Java:
public class DualzahlenArithmetik {

   public DualzahlenArithmetik() {
       // TODO Auto-generated constructor stub
   }

   public static void main(String[] args) {
       byte[] zahl1 = {0,0,0,0,1,1,0,0};
       byte[] zahl2 = {0,0,0,0,1,1,0,1};
       byte[] zahl3 = new byte[8];
       DualZahl dZahl1 = new DualZahl();
       dZahl1.setZahl(zahl1);
       dZahl1.add(zahl2);
       zahl3 = dZahl1.getZahl();
       System.out.print("Ergebnis: ");
       for (int i = 0; i < zahl3.length; i++)
       System.out.print(zahl3[i]);
      

}
}
 
Zuletzt bearbeitet:

mihe7

Top Contributor
@chocobo dZahl8 == 2 würde ich Dir als Fehler anrechnen. In der Aufgabe steht, dass das Arrays Bits verwalten soll. Ein Bit hat zwei verschiedene Zustände, Dein Array hätte dagegen drei: 0, 1, 2

Abgesehen davon machst Du Dir die Sache unnötig schwer. Schau Dir mal die Wertetabelle für die Addition zweier Bits an:
Code:
Bit Summand 1: 0 1 0 1         
Bit Summand 2: 0 0 1 1
----------------------
Ergebnis:      0 1 1 0
Übertrag:      0 0 0 1

Jetzt überlegst Du Dir einfach noch, was mit dem Übertrag passieren muss...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T schleifen Java Basics - Anfänger-Themen 3
Kingdako Wie löse ich eine Mathematische Formel mit Arrays und Schleifen? Java Basics - Anfänger-Themen 32
S Erste Schritte While Schleifen Java Basics - Anfänger-Themen 11
M geschachtelte for-Schleifen - Einmaleins ausgeben Java Basics - Anfänger-Themen 3
Mikejr Schleifen Java Basics - Anfänger-Themen 4
java-starter Erste Schritte Mit While Schleifen Programme schreiben Java Basics - Anfänger-Themen 4
K geschachtelte "for-Schleifen" Java Basics - Anfänger-Themen 3
Alen123 Potenzen in Schleifen Java Basics - Anfänger-Themen 26
Alen123 String wiederholen mit Schleifen Java Basics - Anfänger-Themen 1
A Schleifen und Boolsche Ausdrücke Java Basics - Anfänger-Themen 42
W Schleifen Java Basics - Anfänger-Themen 36
S Interaktive Abfrage, Hilfe mit Schleifen! Java Basics - Anfänger-Themen 6
Mojtaba1986 Hausaufgabe (Schleifen) Java Basics - Anfänger-Themen 33
A Schleifen Verzweigungen Java Basics - Anfänger-Themen 18
C Sind die while-Schleifen richtig in for-Schleifen ersetzt worden? Java Basics - Anfänger-Themen 8
D Schleifen Problem Java Basics - Anfänger-Themen 2
H Muster mit verschachtelten Schleifen kreieren. Java Basics - Anfänger-Themen 2
A Schleifen in Java Java Basics - Anfänger-Themen 4
A Schleifen, Hilfe! Java Basics - Anfänger-Themen 6
C Schleifen Durchlauf Java Basics - Anfänger-Themen 7
M While-Schleifen-Fehler Java Basics - Anfänger-Themen 4
J Schleifen Wiederholendes Zeichenmuster Java Basics - Anfänger-Themen 4
K For-Schleifen Ablauf Java Basics - Anfänger-Themen 5
L Anzahl der Aufrufe von Schleifen bestimmen Java Basics - Anfänger-Themen 1
S Hilfe bei Java Aufgabe (Schleifen) Java Basics - Anfänger-Themen 25
B Verschachtelte For Schleifen Java Basics - Anfänger-Themen 8
G Input/Output Schleifen Durchlauf Java Basics - Anfänger-Themen 5
A Erste Schritte Schleifen Java Basics - Anfänger-Themen 5
J Muster und Schleifen Java Basics - Anfänger-Themen 33
H ERGÄNZUNGSFRAGE: Klammersetzung bei if-else Anweisungen und Schleifen Java Basics - Anfänger-Themen 2
scratchy1 Argumente mit verschiedenen Schleifen ausgeben Java Basics - Anfänger-Themen 3
E geschachtelte for-schleifen Java Basics - Anfänger-Themen 6
L Übungsaufgabe zu Schleifen Java Basics - Anfänger-Themen 7
W Erste Schritte Rechnen mit Schleifen? Denkanstoß gesucht Java Basics - Anfänger-Themen 15
A Erste Schritte for-Schleifen vereinfachen Java Basics - Anfänger-Themen 5
S Immer das selbe mit den Schleifen Java Basics - Anfänger-Themen 24
kokojamboo92 Schleifen und Arrays Java Basics - Anfänger-Themen 7
N Problem mit Schleifen Java Basics - Anfänger-Themen 20
O Array, geschachtelte For-Schleifen Java Basics - Anfänger-Themen 34
S While-Schleifen Ausgabe als String? Java Basics - Anfänger-Themen 1
R Threads Pause zwischen zwei Schleifen Java Basics - Anfänger-Themen 1
D verschachtelte Schleifen Java Basics - Anfänger-Themen 6
H Schleifen (anfänger) Java Basics - Anfänger-Themen 13
C Variablen in Schleifen außerhalb verwenden Java Basics - Anfänger-Themen 2
L Schachbrettnummerierung mit Schleifen.. Java Basics - Anfänger-Themen 3
H Schleifen Java Basics - Anfänger-Themen 8
L Zahlentripel und for-Schleifen Java Basics - Anfänger-Themen 2
T Spezielle Aufgabe zu Schleifen Java Basics - Anfänger-Themen 3
T Erste Schritte Schleifen-Stop Java Basics - Anfänger-Themen 14
kilopack15 Rekursion und Schleifen Java Basics - Anfänger-Themen 27
I Mehre While-Schleifen hintereinander Java Basics - Anfänger-Themen 13
P Terminieren diese Schleifen Java Basics - Anfänger-Themen 6
L Was heißt terminieren bei Schleifen? Java Basics - Anfänger-Themen 3
I Brauche Hilfe bei Schleifen Java Basics - Anfänger-Themen 18
C Erste Schritte While-Schleifen-Problem Java Basics - Anfänger-Themen 3
W Schleifen bei Greenfoot Java Basics - Anfänger-Themen 4
B Operatoren Stopp von Schleifen Java Basics - Anfänger-Themen 9
K Loop ohne Schleifen Java Basics - Anfänger-Themen 2
V Rechenzeichen bei Termen - Darstellung bei Schleifen Java Basics - Anfänger-Themen 7
E Muster auf der Konsole ausgeben lassen (Schleifen) Java Basics - Anfänger-Themen 7
C Erste Schritte Probleme bei Aufgaben zu Schleifen Java Basics - Anfänger-Themen 11
F OOP Schleifen und Probleme mit Setter und Getter Java Basics - Anfänger-Themen 1
L Blöcke bei verschachtelten Schleifen Java Basics - Anfänger-Themen 3
L Kurze Frage zu verschachtelten Schleifen Java Basics - Anfänger-Themen 3
E Erste Schritte Sternchenpyramide mit For-Schleifen erstellen Java Basics - Anfänger-Themen 9
H Best Practice Wie mit break verschachtelte Schleifen komplett verlassen? Java Basics - Anfänger-Themen 2
arti28 Erste Schritte For-Schleifen und While-Schleifen, String als Muster ausgeben. Java Basics - Anfänger-Themen 3
T [Schleifen] Schleifenproblem Java Basics - Anfänger-Themen 4
F Verschachtelte Schleifen Java Basics - Anfänger-Themen 4
J Hilfe verschachtelte Schleifen Java Basics - Anfänger-Themen 5
O Geschachtelte For-Schleifen Java Basics - Anfänger-Themen 1
D Zeichnen, Schleifen Java Basics - Anfänger-Themen 7
S Zeichnen , Schleifen Java Basics - Anfänger-Themen 4
L Schleifen und Array, nur letzte Eingabe wird ausgegeben Java Basics - Anfänger-Themen 3
Z Frage zu for-Schleifen Java Basics - Anfänger-Themen 5
M Wie kann ich eine Ausgabe vervielfachen? (Schleifen) Java Basics - Anfänger-Themen 4
Z Schleifen Beispiel: Fakultät Java Basics - Anfänger-Themen 26
T Erneute Frage zu Schleifen Java Basics - Anfänger-Themen 4
V Schleifen die nicht voneinander abhängen! (für CAN-BUS) Java Basics - Anfänger-Themen 10
T Anfängerfrage zu Schleifen und Arrays Java Basics - Anfänger-Themen 5
S for-Schleifen Problem Java Basics - Anfänger-Themen 4
W Methoden While Schleifen Ergebnis im String speichern Java Basics - Anfänger-Themen 5
F Erste Schritte Hilfe bei Übung zu String equals() und Schleifen Java Basics - Anfänger-Themen 8
J Anzahl von for-Schleifen in Abhängigkeit von Zahleneingabe erzeugen Java Basics - Anfänger-Themen 1
X Methoden Logik-Problem mit Schleifen. Java Basics - Anfänger-Themen 7
J MouseListener für Schleifen-Objekte Java Basics - Anfänger-Themen 13
W Aufgabe mit Schleifen Java Basics - Anfänger-Themen 8
M Sektkelch mit Schleifen Java Basics - Anfänger-Themen 9
F Methoden JTable + 2 For-Schleifen Java Basics - Anfänger-Themen 4
I Listen, for - Schleifen Java Basics - Anfänger-Themen 8
N Schleifen Problem Java Basics - Anfänger-Themen 3
L Histogram mittels Schleifen und Arrays Java Basics - Anfänger-Themen 9
A Ausgabe von Schleifen nebeneinander? Java Basics - Anfänger-Themen 3
T durchlaufene while-Schleifen zählen Java Basics - Anfänger-Themen 3
L schleifen fehler Java Basics - Anfänger-Themen 12
X Array Ausgabe bei Verwendung von 2 Schleifen erklären Java Basics - Anfänger-Themen 8
K Schleifen und Exceptions Java Basics - Anfänger-Themen 8
J Schachbrett mit Hilfe von while-Schleifen Java Basics - Anfänger-Themen 10
F Nach Beendigung aller Schleifen von vorn anfangen, Java Basics - Anfänger-Themen 5
R Anzahl der ineinander verschachtelten for-Schleifen von Variable abhängig machen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben