• Domingo 22 de Diciembre de 2024, 07:49

Autor Tema:  Ordenamiento De Una Cadena  (Leído 4011 veces)

loca

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Ordenamiento De Una Cadena
« en: Domingo 9 de Mayo de 2004, 05:59 »
0
:D
Que tal:

El problema es el ingreso de una cadena desde el teclado, la cual debe devolverse en orden alfabetico
esto es lo que tengo de coigo si tienen alguna sugerencia es bien recibida

PAGE 60,130
TITLE ORDENAR
COMMENT *PROGRAMA QUE ORDENA LAFBETICAMENTE UNA CADENA*

PILA SEGMENT PARA STACK 'STACK'
DB 64 DUP(0)
PILA ENDS

DATOS SEGMENT PARA PUBLIC 'DATA'
   LABEL0 DB 0AH,0DH, 'PROGRAMA QUE ORDENA UNA CADENA ALFABETICAMENTE$'
   LABEL1 DB 0AH,0DH, 'INGRESE UNA CADENA DE CARACTERES:$'
   LABEL2 DB 0AH,0DH, 'LA CADENA ORDENADA ES:$'
   LABEL3 DB 0AH,0DH, '    $'
   CADENA DB 16 DUP (' ')
   TAM DW 30
DATOS ENDS

CODSEG SEGMENT PARA PUBLIC 'CODE'
   ASSUME CS:CODSEG, DS:DATOS, SS:PILA

LEER PROC NEAR
LEER ENDP
      

MAIN PROC FAR
  INI:PUSH DS
    SUB AX,AX
   PUSH AX
   MOV AX,DATOS
   MOV DS,AX
CUATRO:   MOV AH,09
   MOV DX,OFFSET LABEL0
   INT 21H
   MOV AH,09
   MOV DX,OFFSET LABEL3
   INT 21H
   MOV AH,09
   MOV DX,OFFSET LABEL1
   INT 21H
   MOV AH,0AH
   MOV DX,OFFSET TAM   
   INT 21H
   CMP TAM,0DH
   JE CUATRO
   LEA SI,CADENA   
   MOV BL,CADENA
   MOV CX,TAM
OTRO:   LODSB
   TEST AL,BL
   JZ PRIMERO
   NEG AL
primero:mov ah,02
   mov dl,al
   int 21h
   MOV AH,09
   MOV DX,OFFSET LABEL2
   INT 21H
   MOV AH,09
   MOV DX,OFFSET CADENA
   INT 21H
   
;METODO
RET
MAIN ENDP
CODSEG ENDS
END INI

karen81

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: Ordenamiento De Una Cadena
« Respuesta #1 en: Lunes 10 de Mayo de 2004, 02:33 »
0
Hola , seria bueno que explicaras como lo has pensado hacer ya que el programa que colocas no tiene comentarios y no es tan facil de entender  :alien: .
supongo que al ingresar por ejemplo: abzde quieres que te salga abdez , cierto?
yo hice uno asi hace algun tiempo con la limitante que solo se podian ingresar letras minusculas, como los datos son ingresados por el teclado se guardan en ascii o sea los numeros 61 a 7a (a a la z) entonces el programa lo unico que debe de hacer es ordenar los numeros de menor a mayor, ese algoritmo lo debo de tener por ahi guardado, lo buscare, por lo pronto esa es la idea.
No dejas muy claro cual es tu duda, si no era esa me avisas.
 :comp:
No basta tener buen ingenio; lo principal es aplicarlo bien.

loca

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Ordenamiento De Una Cadena
« Respuesta #2 en: Lunes 10 de Mayo de 2004, 17:59 »
0
Gracia.

Si la idea es imgresar una cadena y ordenarla alfabeticamente, pero no debe de haber diferenc ia entre mayusuclas y minusculas .

bye

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: Ordenamiento De Una Cadena
« Respuesta #3 en: Lunes 10 de Mayo de 2004, 18:21 »
0
entoces podrias hacer el ordenamiento con mas controles
'A' = 65 ----'Z' = 90
'a' = 97 ----'z' = 122
primero te fijas si es mayuscula o mi nuscula para como proceder. por decir:
.        1  a) si es mayscula le restare 64
             B) si es minuscula le resto 96  
.        2  consulto si es mayuscula o minuscula el num con el que lo comparo
              a) si es mayscula le restare 64
             B) si es minuscula le resto 96  
.         3 comparo cual es menor y hago el ordemaniento, en el momneto de la macenarlo primero debo saber si era mayuscula o minuscula para almacenarlo adecuadamente.