Zum neuen Informatik-Forum >>
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Neuling in Java
Gehe zu Seite 1, 2  Weiter
 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Informatikerboard.de Foren-Übersicht -> Java/JSP
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Gast
Gast





BeitragVerfasst am: 30. März 2005 19:16    Titel: Neuling in Java Antworten mit Zitat

Hallo Leute,

habe ein ziemlich großes Problem und weiß echt nicht mehr weiter. Schreibe in einer Woche meine erste Informatik-Klausur und ich bin gerade am bearbeiten von alten Klausuraufgaben. In der Aufgabe in der ich nicht weiterkomme geht es um folgendes:
Programmieren Sie zu dem Methoden-Kopf
boolean stringVergleich(char[] array1, char[] array2, int zahl)
einen Methoden-Rumpf, so dass stringVergleich genau dann den Wert true liefert, wenn zahl aufeinander folgende Elemente von array1 gleich zahl aufeinander folgenden Elementen von array2 sind. Dabei können die gleichen Elemente in array1 und array2 an verschiedenen Stellen stehen, d.h. ab verschiedenen Indizes beginnen.
Beispiel:
{'F', 'i', 'n', 'g', 'e', 'r'} {'W', 'e', 'i', 'n', 'g', 'l', 'a', 's'} zahl = 3
Die Wert der Methode ist true weil 'i', 'n', 'g' übereinstimmen
Kann mir jemand helfen der der programmierung dieser Methode?
Ist wirklich dringend. Vielen Dank für eure Unterstützung.

Bye traurig
Nach oben
Tobias



Anmeldungsdatum: 15.02.2005
Beiträge: 149

BeitragVerfasst am: 30. März 2005 21:52    Titel: Antworten mit Zitat

Versuchs mal mit der Holzhammer-Methode. Also alles durchprobieren.

Gegeben sind zwei Eingaben



und



Jetzt wird eine Größe n gegeben. Dazu suchst du einen Index

, so dass dazu ein Index existiert mit:



Jetzt versuch mal über alle i, j mit entsprechenden Schleifen zu prüfen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kurellajunior
Administrator


Anmeldungsdatum: 14.02.2005
Beiträge: 214
Wohnort: Berlin-Pankow

BeitragVerfasst am: 01. Apr 2005 11:45    Titel: Antworten mit Zitat

Nicht vergessen, dass Arrays mit dem Index 0 beginnen.
Effizienter wird es wahrscheinlich bei großen strings, wenn Du dir die String.compare methode zu nutze machst, die kann nämlich u.a. auch regex Augenzwinkern

dann brauchst du nur noch eine Schleife, die aus dem ersten array alle mögliche Teilstrings der Länge zahl herausholt und per JavaFunktionalität den zweiten String überprüft. Dazu musst Du das zweite Array in einen String umwandeln.

Jan

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
mr. black



Anmeldungsdatum: 20.02.2005
Beiträge: 39
Wohnort: Krumbach

BeitragVerfasst am: 02. Apr 2005 20:57    Titel: Antworten mit Zitat

regex ist warscheinl. am sinnvollsten.

Aber warum char[] ? Warum nicht String?
oder wennst des ned möchtest StringBuffer.

_________________
Zeit ist, was man auf einer Uhr abliest. A.E.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
jovi



Anmeldungsdatum: 04.04.2005
Beiträge: 4
Wohnort: München

BeitragVerfasst am: 04. Apr 2005 13:31    Titel: Antworten mit Zitat

Also in einer Informatikklausur sollte man versuchen, so eine Aufgabe rekursiv zu lösen, da das oft (logisch und bzgl. Aufwand) einfacher ist
und vielleicht auch so erwatet wird.
Ungefähr so: Fallunterscheidung - wenn die jeweils ersten Zeichen der Strings gleich sind, dann ... ; falls nicht dann ... ;
wobei bei den rekursiven Aufrufen die Gesamtlänge
der beiden Strings natürlich immer streng kleiner werden sollte.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Tobias



Anmeldungsdatum: 15.02.2005
Beiträge: 149

BeitragVerfasst am: 05. Apr 2005 01:12    Titel: Antworten mit Zitat

mach mal vor!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jovi



Anmeldungsdatum: 04.04.2005
Beiträge: 4
Wohnort: München

BeitragVerfasst am: 05. Apr 2005 14:24    Titel: Antworten mit Zitat

Äh - es ist mindestens schon 10 Jahre her, als ich sowas gemacht habe.
Ok, ich mache ein wenig weiter; Also:
0) wenn Länge(array1) < zahl OR Länge(array2) < zahl dann return(false)
1) wenn die jeweils ersten Zeichen der Strings gleich sind, dann
falls <zahl> == 1 dann return(true)
sonst return(stringVergleich(REST(array1), REST(array2), zahl-1))
2) wenn die jeweils ersten Zeichen der Strings ungleich sind, dann
return(stringVergleich(REST(array1), array2, zahl) OR stringVergleich(array1, REST(array2), zahl))

ich hoffe das stimmt so. grübelnd
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kurellajunior
Administrator


Anmeldungsdatum: 14.02.2005
Beiträge: 214
Wohnort: Berlin-Pankow

BeitragVerfasst am: 05. Apr 2005 15:06    Titel: Antworten mit Zitat

Prinzip stimmt, aber...

Bei zwei Strings der Länge 400 bekommst Du einen ganz schönen Stack zusammen, mmh *denk*

im Schlimmsten Fall länge1 + Länge2 - zahl. Spätestens beim Vergleich von zwei Texten (Länge 2000) knallt Dir der Stack um die Ohren...

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Gast






BeitragVerfasst am: 05. Apr 2005 15:44    Titel: Antworten mit Zitat

Na das ist doch der Vorteil von Klausuraufgaben - es muss nur theoretisch stimmen, ob es auch auf einem echten Rechner in vernünftiger Zeit klappt ist unwichtig.
Wobei ich diese Lösung sogar als effizient einschätzen würde (aber da kann man sich bei Rekursionen leicht vertun). Wie war das nochmal, werden Rekursionen nicht schon vom Compiler aufgelöst ..., achso ist ja ein Java-Board - weiss auch nicht. Prost
Nach oben
jovi



Anmeldungsdatum: 04.04.2005
Beiträge: 4
Wohnort: München

BeitragVerfasst am: 05. Apr 2005 15:49    Titel: Antworten mit Zitat

Sorry, der vorige Beitrag war natürlich nicht von Gast sondern von mir. Ansage
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Informatikerboard.de Foren-Übersicht -> Java/JSP Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum nicht herunterladen