Hallo,
ich möchte ein Anagramm schreiben ,dass mit ein wort merehre wörter generieren.
Z.B. das wort MEHL,mit die Buschstaben dieser wort andere wörter erzeurgen.
Wär sehr nett wenn mir da jemand helfen kann!
Danke für dein Anwort,
die Wörter müssen generiert werden .
Hallo,
ich habe versucht ein Programm zu schreiben dass alle Anagramm eines wortes ausgibt.Hier ist das code,kann mir jemand weiterhelfen,da mein code ein paar davon generiert.
dosseg
.model small
.stack 100h
.data
msg db "EIS",0
string1 db "Es gibt f?r das Wort ",0
string2 db "m”glichen Anagramme.",0
string3 db "Die L„nge des Wortes betr„gt:",0
l„nge dw ?
zeichen dw ?
n dw ?
include macros.mac
jumps
perm macro
schleife:
mov al, msg[si]
mov Zeichen, ax
writeS Zeichen
boucle:
cmp di, si
je weiter
mov al, msg[di]
mov Zeichen, ax
writeS Zeichen
inc di
cmp di, l„nge
jb boucle
weiter:
inc di
cmp di, l„nge
jb boucle
nl
xor di, di
inc si
cmp si, l„nge
jb schleife
endm
.code
laenge_bestimmen proc ;Anweisung f?r Unterprogramm
xor si,si ;si-Register l”schen
loopo:
mov al, msg[si] ;Zeichen, wo si zeigt nach al laden
inc si ;si erh”hen
cmp al,0h ;vergleiche Zeichen in al mit Null-Byte, d.h Ende des String
jne loopo ;springe, wenn ungleich nach loop0
mov l„nge,si ;wenn gleich, lade si nach l„nge
dec l„nge ;l„nge erniedrigen um den Null-Byte nicht mitzuz„hlen
writeS string3
writez l„nge ;Ausgabe der L„nge der Zeichenkette
ret
laenge_bestimmen endp ;Ende des Untgerprogramms
start:
mov ax,@data
mov ds,ax
call laenge_bestimmen ;ERGEBNIS Stringl„nge
nl
;****************************************************************************
;Hier wird die Anzahl der m”glichen Anagrammen berechnet
;****************************************************************************
mov ax, l„nge ;ax mit l„nge des String laden
mov n, ax ;Variable n mit ax laden
sub ax, 1 ;ax um 1 erniedrigen
mov cx, ax ;Anzahl der Durchl„ufe fur loop-Befehl
mov ax, n ;n nach ax
fac: sub n, 1 ;n = n-1
mul n ;ax=ax*n
loop fac ;wiederhole fac bis cx=0
writeS string1
writeS msg
writeZ ax
writeS string2
nl
;****************************************************************************
;Ausgabe der Anagramme (die haben nicht unbedingt ein Sinn)
;****************************************************************************
xor bx, bx
mov di, l„nge
sub di, 2
mov si, di
perm
;****************************************************************************
pende: mov ax,4c00h ;Anweisung zur Terminierung des Programms
int 21h
end start
ich möchte ein Anagramm schreiben ,dass mit ein wort merehre wörter generieren.
Z.B. das wort MEHL,mit die Buschstaben dieser wort andere wörter erzeurgen.
Wär sehr nett wenn mir da jemand helfen kann!
Danke für dein Anwort,
die Wörter müssen generiert werden .
Hallo,
ich habe versucht ein Programm zu schreiben dass alle Anagramm eines wortes ausgibt.Hier ist das code,kann mir jemand weiterhelfen,da mein code ein paar davon generiert.
dosseg
.model small
.stack 100h
.data
msg db "EIS",0
string1 db "Es gibt f?r das Wort ",0
string2 db "m”glichen Anagramme.",0
string3 db "Die L„nge des Wortes betr„gt:",0
l„nge dw ?
zeichen dw ?
n dw ?
include macros.mac
jumps
perm macro
schleife:
mov al, msg[si]
mov Zeichen, ax
writeS Zeichen
boucle:
cmp di, si
je weiter
mov al, msg[di]
mov Zeichen, ax
writeS Zeichen
inc di
cmp di, l„nge
jb boucle
weiter:
inc di
cmp di, l„nge
jb boucle
nl
xor di, di
inc si
cmp si, l„nge
jb schleife
endm
.code
laenge_bestimmen proc ;Anweisung f?r Unterprogramm
xor si,si ;si-Register l”schen
loopo:
mov al, msg[si] ;Zeichen, wo si zeigt nach al laden
inc si ;si erh”hen
cmp al,0h ;vergleiche Zeichen in al mit Null-Byte, d.h Ende des String
jne loopo ;springe, wenn ungleich nach loop0
mov l„nge,si ;wenn gleich, lade si nach l„nge
dec l„nge ;l„nge erniedrigen um den Null-Byte nicht mitzuz„hlen
writeS string3
writez l„nge ;Ausgabe der L„nge der Zeichenkette
ret
laenge_bestimmen endp ;Ende des Untgerprogramms
start:
mov ax,@data
mov ds,ax
call laenge_bestimmen ;ERGEBNIS Stringl„nge
nl
;****************************************************************************
;Hier wird die Anzahl der m”glichen Anagrammen berechnet
;****************************************************************************
mov ax, l„nge ;ax mit l„nge des String laden
mov n, ax ;Variable n mit ax laden
sub ax, 1 ;ax um 1 erniedrigen
mov cx, ax ;Anzahl der Durchl„ufe fur loop-Befehl
mov ax, n ;n nach ax
fac: sub n, 1 ;n = n-1
mul n ;ax=ax*n
loop fac ;wiederhole fac bis cx=0
writeS string1
writeS msg
writeZ ax
writeS string2
nl
;****************************************************************************
;Ausgabe der Anagramme (die haben nicht unbedingt ein Sinn)
;****************************************************************************
xor bx, bx
mov di, l„nge
sub di, 2
mov si, di
perm
;****************************************************************************
pende: mov ax,4c00h ;Anweisung zur Terminierung des Programms
int 21h
end start
Zuletzt bearbeitet: