www.matheraum.de
Das Matheforum.
Das Matheforum des MatheRaum.

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenJavaVergleich von Arrays
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Philosophie • Religion • Kunst • Musik • Sport • Pädagogik
Forum "Java" - Vergleich von Arrays
Vergleich von Arrays < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Java"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Vergleich von Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 22:44 Mi 23.11.2011
Autor: mikexx

Aufgabe
Hallo, liebes Forum!

Ih muss eine Java Methode schreiben, die zwei char-Array vergleicht und die soll "true" zurückgeben, wenn die beiden miteinander verglichenen Arrays die gleichen Elemente in der gleichen Reihenfolge haben.

Ich nenne diese Methode mal

public boolean vergleicheArrays(char[]x,char[]y)


Meine Idee ist:

public boolean vergleicheArrays(char[]x,char[]y){

boolean sindGleich=false;

for(int i=0; i<x.length;i++){
   if(x[i]==y[i]){
      sindGleich=true;}
   else break;
  }

  return sindGleich;
}



Was meint ihr?

Was macht man aber, wenn zwei Mengen vergleichen möchte, die die leere Menge sind? Dann würde hier glaube ich "false" rauskommen, obwohl der Vergleich "true" liefern muss.

        
Bezug
Vergleich von Arrays: Antwort
Status: (Antwort) fertig Status 
Datum: 22:54 Mi 23.11.2011
Autor: MathePower

Hallo mikexx,

> Hallo, liebes Forum!
>  
> Ih muss eine Java Methode schreiben, die zwei char-Array
> vergleicht und die soll "true" zurückgeben, wenn die
> beiden miteinander verglichenen Arrays die gleichen
> Elemente in der gleichen Reihenfolge haben.
>  
> Ich nenne diese Methode mal
>
> public boolean vergleicheArrays(char[]x,char[]y)
>  Meine Idee ist:
>  
> public boolean vergleicheArrays(char[]x,char[]y){
>  
> boolean sindGleich=false;
>  
> for(int i=0; i<x.length;i++){
>     if(x==y){
>        sindGleich=true;}
>     else break;
>    }
>   
> return sindGleich;
> }
>
>
>
> Was meint ihr?
>


Hier musst Du doch erst alle
Elemente der Arrays miteinander vergleichen.
Beenden kannst Du diese Methode, wenn
zwei Elemente der Arrays verschieden sind.


> Was macht man aber, wenn zwei Mengen vergleichen möchte,
> die die leere Menge sind? Dann würde hier glaube ich
> "false" rauskommen, obwohl der Vergleich "true" liefern
> muss.


Den Fall musst Du vor Beginn der Schleife abfangen.


Gruss
MathePower

Bezug
                
Bezug
Vergleich von Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 22:57 Mi 23.11.2011
Autor: mikexx

Ich weiß aber nicht, wie ich das machen kann.

Erstmal alle Elemente miteinander vergleichen...

Wie macht man das??


Bezug
                        
Bezug
Vergleich von Arrays: Antwort
Status: (Antwort) fertig Status 
Datum: 23:03 Mi 23.11.2011
Autor: MathePower

Hallo mikexx,

> Ich weiß aber nicht, wie ich das machen kann.
>  
> Erstmal alle Elemente miteinander vergleichen...
>  
> Wie macht man das??
>  


Da musst Du nur beim Vergleich innerhalb der Schleife etwas ändern.


Gruss
MathePower

Bezug
                                
Bezug
Vergleich von Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 23:11 Mi 23.11.2011
Autor: mikexx

Meinst du:
(Nehme mal die Originalbezeichnungen jetzt:)

public boolean equals(char[]x,char[]y){

boolean equal=false;
boolean equal1;

if(x.length=0 && y.length=0){equal=true;}

for(int i=0;i<x.length;i++){
  equal1=(x[i]==y[i]);
    if(equal1=true){equal=true;}
    else break;


}

return equal;

}


??

Bezug
                                        
Bezug
Vergleich von Arrays: Antwort
Status: (Antwort) fertig Status 
Datum: 23:24 Mi 23.11.2011
Autor: Schadowmaster

moin,

Du hast hier noch einen entscheidenden Denkfehler drinn.

Nimm dir mal die beiden Arrays:
x = [1,1,2,3,4,5]
y = [1,2,3,4,5,6]

die sind offensichtlich nicht gleich.
Dein Programm macht jetzt folgendes:
Es guckt sich die erste Stelle an, sieht die sind gleich, und setzt dann deine Variable auf true.
Dann guckt es sich die beiden zweiten Stellen an, sieht dort, dass sie verschieden sind, und bricht ab.
Es wird also true zurückgegeben...
Überleg dir nochmal wie du das beheben kannst bzw. wie du dein Programm abändern musst damit es tatsächlich das macht was du willst.

Davon abgesehen fand ich deine Version im ersten Post übersichtlicher als die jetzige, selbst wenn sie den selben logischen Fehler enthielt, aber das musst du wissen welche du haben möchtest.

lg

Schadow

Bezug
                                                
Bezug
Vergleich von Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 23:27 Mi 23.11.2011
Autor: mikexx

Ich glaube, ich weiß, was Du meinst.

Ich muss das

equal=false;

als Allererstes in den Rumpf der For-Schleife schreiben.





Bezug
                                                        
Bezug
Vergleich von Arrays: Antwort
Status: (Antwort) fertig Status 
Datum: 23:30 Mi 23.11.2011
Autor: Schadowmaster

Jo, das dürfte klappen.



Bezug
                                                                
Bezug
Vergleich von Arrays: Dankesehr!
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 23:35 Mi 23.11.2011
Autor: mikexx



Dann werde ich das morgen Früh mal kompilieren lassen und ausführen und mal sehen, ob es hinhaut.

Wenn ich das theoretisch durchgehe, kommt es jedenfalls hin.



Bezug
                                                                
Bezug
Vergleich von Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 09:56 Do 24.11.2011
Autor: mikexx

Müsste ich nicht noch den Fall abfangen, daß ein Array die leere Menge ist und das andere nicht?

Also quasi:

if((x.length=0 && y.length !=0) || (x.length !=0 && y.length=0)){
  equal=false;}

vor das, was ich hatte schreiben?

Bezug
                                                                        
Bezug
Vergleich von Arrays: Antwort
Status: (Antwort) fertig Status 
Datum: 10:30 Do 24.11.2011
Autor: Event_Horizon

Hallo!

jein.

Ich würde noch vor der FOR-Schleife den Wert equal=true setzen. Erst in der FOR-Schleife wird er ggf. auf FALSE gesetzt.

Wenn ein String die Länge 0 hat, wird die FOR-Schleife nicht ein einziges mal durchlaufen, weil die Abbruchbediungng sofort erfüllt ist. es gilt dann immernoch equal==true, und das wird zurück gegeben.

Aber du denkst dennoch in die richtige Richtung. Du solltest am Anfang noch prüfen, ob einer der Strings die Länge 0 hat, sondern generell, ob sie überhaupt gleich lang sind. Tust du das nicht, dann knallts (falls y kürzer als x ist).


Bezug
                                                                                
Bezug
Vergleich von Arrays: Frage (reagiert)
Status: (Frage) reagiert/warte auf Reaktion Status 
Datum: 10:37 Do 24.11.2011
Autor: mikexx

Wenn ich dann leere Menge mit leerer Menge vergleiche:

Würde dann nicht aber false ausgegeben nach dem, was Du vorschlägst?

Und wenn eines der Arrays leer ist, das andere aber nicht?


Hab wohl noch nicht ganz verstanden, wie Du das meinst.

Bezug
                                                                                        
Bezug
Vergleich von Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 10:48 Do 24.11.2011
Autor: mikexx

Meine "neue" Idee wäre dann:

public boolean equals (char[] a, char[] b){

boolean equal=false;
boolean equall;

if(a.length==0 && b.length==0){
    equal=true;}

if(a.length==b.length){
    for(int i=0; i<a.length; i++){
       equal=false;
       equall=(a[i]==b[i]);
         if(equall=true){
              equal=true;}
           else break;
      }
    }
   return equal;
}


Bezug
                                                                                                
Bezug
Vergleich von Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 11:26 Do 24.11.2011
Autor: mikexx

Ich habe verschiedene Beispiele durchgetestet.

Bei einem Beispiel bin ich stutzig geworden:

Ich habe {g,f,c,d} mit {a,c,d,f} verglichen und da kommt komischerweise heraus: "true"---

Wo liegt der Fehler in meinem Code, sodaß dies herauskommt?

Bezug
                                                                                                        
Bezug
Vergleich von Arrays: Antwort
Status: (Antwort) fertig Status 
Datum: 14:07 Do 24.11.2011
Autor: MathePower

Hallo mikexx,

> Ich habe verschiedene Beispiele durchgetestet.
>  
> Bei einem Beispiel bin ich stutzig geworden:
>  
> Ich habe {g,f,c,d} mit {a,c,d,f} verglichen und da kommt
> komischerweise heraus: "true"---
>  
> Wo liegt der Fehler in meinem Code, sodaß dies
> herauskommt?


Der Fehler liegt darin, dass die Schleife bei unterschiedlichen
Array-Elementen, die Felde komplett durchläuft.
Es sollte doch so sein, daß die Schleife bei einem
fehlgeschlagenen Vergleich (false) sofort abgebrochen wird.


Gruss
MathePower

Bezug
                                                                                                                
Bezug
Vergleich von Arrays: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 14:21 Do 24.11.2011
Autor: mikexx

Wo muss ich dazu etwas im Code ändern?

Ich sehe das nicht, auch, wenn ich schon stundenlang teste.

Bezug
                                                                                                                        
Bezug
Vergleich von Arrays: Antwort
Status: (Antwort) fertig Status 
Datum: 14:35 Do 24.11.2011
Autor: MathePower

Hallo mikexx,

> Wo muss ich dazu etwas im Code ändern?
>  
> Ich sehe das nicht, auch, wenn ich schon stundenlang teste.


Die if-Abfrage sollte ungefähr so aussehen:

1:
2: if(a.length==b.length){ 
3:      equal=true;
4:      for(int i=0; i<a.length; i++){ 
5:         equal=(a[i]==b[i]);
6:          if (!equal) break;             
7:        } 
8:      } 



Gruss
MathePower

Bezug
                                                                                                                                
Bezug
Vergleich von Arrays: 1000 Dank!
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 14:48 Do 24.11.2011
Autor: mikexx

Ah!! Ein Licht geht mir auf.

Vielen, vielen lieben Dank, es funktioniert nun ENDLICH!

Ganz liebe Grüße!!




Bezug
        
Bezug
Vergleich von Arrays: Ego-Aktion
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 00:39 Fr 25.11.2011
Autor: Loddar

Na toll, der nächste mit so'ner Ego-Aktion. [motz]



Bezug
                
Bezug
Vergleich von Arrays: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 08:48 Fr 25.11.2011
Autor: mikexx

Sorry, aber es geht lediglich darum, daß der Tutor davor gewarnt hat, daß sowas als "Klauen aus dem Internet" missverstanden werden könnte, wenn man Codes über google findet, die man dann abgibt.


Man hat sie sich zwar selbst erarbeitet, aber das weiß der Tutor ja nicht.


Ich werde zukünftig dann immer andere Bezeichnungen als die in der Aufgabenstellung wählen, damit sowas nicht nochmal passiert.

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Java"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheforum.net
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]