www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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
Dt. Schulen im Ausland: Mathe-Seiten:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
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.vorhilfe.de