Feststellen ob Zeichenvorkommen übereinstimmen

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
22 Beiträge • Seite 1 von 2 (current) Nächste
22 Beiträge Seite 1 von 2 (current) Nächste

Feststellen ob Zeichenvorkommen übereinstimmen

Beitrag von Nion (ForumUser / 17 / 20 / 1 ) »
Moin,

ich bin komplette Anfängerin (habe vor 1 Woche mit ABAP angefangen) und hoffe, ihr könnt mir helfen, ich stehe etwas auf dem Schlauch.
Als Übung soll ich ein Programm schreiben, das überprüft, ob es sich bei zwei Worten um Anagramme handelt.
Ich hab das im Prinzip auch hinbekommen, aber:
Er kontrolliert nur auf Länge und ob beide Wörter die gleichen Buchstaben enthalten (hab ich mit CO bzw CN gemacht), aber nicht, ob beide Wörter alle Buchstaben gleich oft enthalten.
Also gibt er zwar aus
"Helm" und "Lehm" = Anagramm
aber auch
"Aal" und "All" = Anagramm.

Wie kann ich überprüfen, ob die Buchstaben in beiden Wörtern gleich oft vorkommen?

Vielen Dank schon mal,
Nion
Man muss nicht alles wissen. Man muss nur wissen, wo es steht oder wen man fragen kann.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Feststellen ob Zeichenvorkommen übereinstimmen

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
Die Funktion count zählt die Buchstaben in einer Zeichenkette. Aber Vorsicht: Klein- und Großschreibung wird unterschieden.

Code: Alles auswählen.

data counter type i. 
counter = count( val = 'Lallen' sub = 'l' ).
liefert für counter den Wert 2.

Vielleicht hilft das weiter.

Re: Feststellen ob Zeichenvorkommen übereinstimmen

Beitrag von rob_abc (Specialist / 107 / 27 / 44 ) »
Wenn du solche Codingübungen machst, dann melde mich mal auf exercism an. Dort gibt es unter anderem auch eine Aufgabe zu Anagrammen. https://exercism.org/tracks/abap/exercises/anagram

Folgende Benutzer bedankten sich beim Autor rob_abc für den Beitrag (Insgesamt 2):
NionLeMinion


Re: Feststellen ob Zeichenvorkommen übereinstimmen

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
Kleiner Tipp:

Code: Alles auswählen.

A  A
A  L
L  L

Code: Alles auswählen.

E  E
H  H
L  L
M  M

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
fr-g


Re: Feststellen ob Zeichenvorkommen übereinstimmen

Beitrag von Nion (ForumUser / 17 / 20 / 1 ) »
Sorry, hab mich oben evtl etwas missverständlich ausgedrückt.
Es geht nicht um diese bestimmten Worte sondern um frei wählbare Worte.
Ich bin bis jetzt so vorgegangen (sicherlich nicht die eleganteste Variante, aber für mich zumindest nachvollziehbar ^_^ ):

PARAMETERS:

Wort1 TYPE text,
Wort2 TYPE text.

lv_laenge1 = strlen( wort1 ).
lv_laenge2 = strlen( wort2 ).
IF
wort1 IS NOT INITIAL AND wort2 IS NOT INITIAL.
IF
wort1 CO wort2 AND lv_laenge1 = lv_laenge2 AND wort2 CO wort1.
WRITE:/ 'Ein Anagramm.'.
ELSEIF
lv_laenge1 >< lv_laenge2.
WRITE:/ 'Keine Übereinstimmung'.
ELSEIF
wort1 CN wort2 OR wort2 CN wort1.
WRITE:/ 'Keine Übereinstimmung'.
ENDIF.
ENDIF.

Und irgendwo hier müsste es ja möglich sein, festzustellen, ob Wort1 ebenso viele zB Ks oder Os oder Ls enthält wie Wort2. Oder muss ich das dann komplett anders aufbauen?
Man muss nicht alles wissen. Man muss nur wissen, wo es steht oder wen man fragen kann.

Re: Feststellen ob Zeichenvorkommen übereinstimmen

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
ewx hat geschrieben:
15.02.2023 13:29
Kleiner Tipp:

Code: Alles auswählen.

A  A
A  L
L  L

Code: Alles auswählen.

E  E
H  H
L  L
M  M
Auch eine schöne Variante die Aufgabe zu lösen. Top.

Re: Feststellen ob Zeichenvorkommen übereinstimmen

Beitrag von Nion (ForumUser / 17 / 20 / 1 ) »
ewx hat geschrieben:
15.02.2023 13:29
Kleiner Tipp:

Code: Alles auswählen.

A  A
A  L
L  L

Code: Alles auswählen.

E  E
H  H
L  L
M  M
Das sieht wunderschön aus :) bekomme ich das mit SORT hin?
Hab gegooglet, aber da finde ich das nur für ganze Worte (zB für Namen) oder Zahlen erklärt, nicht für einzelne Zeichen in einem Wort.
Man muss nicht alles wissen. Man muss nur wissen, wo es steht oder wen man fragen kann.

Re: Feststellen ob Zeichenvorkommen übereinstimmen

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
Ich weiß nicht genau, aber ich ich habe Ewx so verstanden, dass 2 Tabellen aufzubauen und zu sorrtieren sind.

Deine Frage wie viele 'K' oder 'O' ein Wort enthält, liefert die Funktion count, die ich zu Beginn eingebracht habe. Die Groß-/Kleinschreibung kann man mit dem Parameter case einstellen.

Code: Alles auswählen.

data counter type i. 
counter = count( val = 'Lallen' sub = 'l'  case = abap_false ).
In diesem Beispiel liefert counter den Wert 3.

Und vielleicht, so als weiterer Tip, solltest du dich mal mit dem Stichwort offset beschäftigen

Folgende Benutzer bedankten sich beim Autor PeterPaletti für den Beitrag:
Nion


Re: Feststellen ob Zeichenvorkommen übereinstimmen

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
PeterPaletti hat geschrieben:
16.02.2023 15:49
Ich weiß nicht genau, aber ich ich habe Ewx so verstanden, dass 2 Tabellen aufzubauen und zu sortieren sind.
Genau so war das gemeint! 😎

Tipp: SHIFT + offset + APPEND
oder: DO + offset + APPEND

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
Nion


Re: Feststellen ob Zeichenvorkommen übereinstimmen

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
ewx hat geschrieben:
16.02.2023 16:12
[...]
Tipp: SHIFT + offset + APPEND
oder: DO + offset + APPEND
Oder aber oder: DO + offset + count( ) - Ganz ohne Tabellen und SORT. Geht auch.

Folgende Benutzer bedankten sich beim Autor PeterPaletti für den Beitrag:
Nion


Re: Feststellen ob Zeichenvorkommen übereinstimmen

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
aber auch dann musst das Ergebnis von count irgendwie speichern.

Re: Feststellen ob Zeichenvorkommen übereinstimmen

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
ewx hat geschrieben:
16.02.2023 17:51
aber auch dann musst das Ergebnis von count irgendwie speichern.
Nicht zwingend. Ich kann auch in der Schleife 2 Count-Funktionen in einer IF-Abfrage miteinander vergleichen.
Speichern muss ich nur das Ergebnis der IF-Abfrage, dafür reicht ein XFeld.

Re: Feststellen ob Zeichenvorkommen übereinstimmen

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
Aber du kannst mit count doch nur jeweils *ein* Zeichen prüfen. Aber okay: sobald die Anzahl der vorkommenden Zeichen nicht übereinstimmt, ist es kein Anagramm mehr.

Re: Feststellen ob Zeichenvorkommen übereinstimmen

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
ewx hat geschrieben:
16.02.2023 19:29
[...] Aber okay: sobald die Anzahl der vorkommenden Zeichen nicht übereinstimmt, ist es kein Anagramm mehr.
Jupp.

Re: Feststellen ob Zeichenvorkommen übereinstimmen

Beitrag von black_adept (Top Expert / 4099 / 128 / 941 ) »
ewx hat geschrieben:
16.02.2023 17:51
aber auch dann musst das Ergebnis von count irgendwie speichern.
Warum? Wenn du mit APPEND arbeitest ist doch das "COUNT" implizit durch die Anzahl der Zeilen mit dem gleichen Zeichen gegeben.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Vergleichbare Themen

3
Antw.
1194
Views
Enticklungsklasse feststellen
von pohlmann-schwarza » 01.07.2008 10:21 • Verfasst in ABAP® für Anfänger
4
Antw.
2709
Views
Aurufer im RPCALC feststellen
von Guestrb » 03.01.2006 10:32 • Verfasst in Human Resources
4
Antw.
2391
Views
RFC-/Webservice-Aufrufe feststellen
von Roddy » 05.09.2012 08:49 • Verfasst in ABAP® Core
4
Antw.
6805
Views
Feststellen, ob Verzeichnis existiert
von ralf.wenzel » 22.08.2007 18:41 • Verfasst in ABAP® Core
1
Antw.
1245
Views
Feststellen ob BTC Mappe schon erzeugt wurde
von scott111 » 11.05.2006 16:07 • Verfasst in ABAP® Core

Über diesen Beitrag



Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Regex in where
vor einer Stunde von tar 8 / 177
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1488

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Regex in where
vor einer Stunde von tar 8 / 177
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1488

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9822