• Miércoles 20 de Noviembre de 2024, 14:20

Autor Tema:  funcionamiento logico del algoritmo mayuscula a minisculas?  (Leído 3961 veces)

gerarca

  • Visitante
funcionamiento logico del algoritmo mayuscula a minisculas?
« en: Miércoles 30 de Marzo de 2011, 03:55 »
0
saludos!! quisiera saber el funcionamiento logico de este algoritmo que me convierte las letras de mayúsculas a minusculas:

letra=letra+('a'-'A');

que es lo que hace logicamente? si pueden ayudarme le agradezco de verdad!!

ehecatl

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: funcionamiento logico del algoritmo mayuscula a minisculas?
« Respuesta #1 en: Miércoles 30 de Marzo de 2011, 04:43 »
0
En su momento, tuve una necesidad similar, la solucion que yo implemente, sin meterme con funciones de manejo de caracteres fue:

1.- capturar la letra y almacenarla en un entero

2.- dado que cada letra tiene su equivalente en codigo ASCII, mire la "distancia" entre las mayusculas y las minusculas, asi, una "A" tiene su equivalente en ASCII 65 y una "a" tiene su equivalente 97 es decir, 32 unidades. De este modo, cuando guardo la "A" en un entero, realmente estoy guardando el valor 65.

3.- Para la conversion, simplemente sumo 32 al entero donde guarde la mayuscula y listo, tengo mi letra en minuscula

Podrias refinar lo anterior filtrando que el caracter que leas sea realmente mayuscula, las mayusculas en ASCII estan entre el 65 y el 90

Espero te sirva de algo esto que implemente, un poco a fuerza bruta pero la condicion que yo tuve era cero funciones de manejo de caracteres.

Ehecatl

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: funcionamiento logico del algoritmo mayuscula a minisculas?
« Respuesta #2 en: Miércoles 30 de Marzo de 2011, 10:12 »
0
@ehecatl: si te fijas no pregunta cómo lo has hecho tú, sino cómo funciona la sentencia que él ha puesto.

Código: C
  1. letra[i]=letra[i]+('a'-'A');
  2.  
Lo que hace es calcular la "distancia" ASCII entre mayúsculas y minúsculas: 'a' = 97 y 'A' = 65, por tanto 97 - 65 = 32 (o 20 hexadecimal). Por tanto si le sumo a una letra mayúscula 32 obtengo la letra mayúscula correspondiente.

Saludos

gerarca

  • Visitante
Re: funcionamiento logico del algoritmo mayuscula a minisculas?
« Respuesta #3 en: Miércoles 30 de Marzo de 2011, 22:13 »
0
gracias de verdad!! ya entendi el funcionamiento logico.

y tengo otra pregunta, que es lo mismo es una funcion que trae la libreria "ctype.h" es esta tolower(letra), esta dentro de un ciclo y pues le paso como parametro un arreglo cargado de letras mayusculas, esta funcion me permite convertir las letras en minusculas. entonces mi pregunta es que en su funcionamiento logico trabaja tambien con los codigos de caracteres ASCII ??

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: funcionamiento logico del algoritmo mayuscula a minisculas?
« Respuesta #4 en: Jueves 31 de Marzo de 2011, 00:00 »
0
Cita de: "gerarca"
entonces mi pregunta es que en su funcionamiento logico trabaja tambien con los codigos de caracteres ASCII ??
Bueno, sí, en realidad ten en cuenta que el ordenador sólo trabaja con números. No conoce nada más. El código ASCII es una representación de la información para que nosotros los tristes humanos ignorantes del poder binario podamos entender los datos. Es decir, el ordenador no sabe si trabaja con letras, gráficos, ventanas, iconos... y ni le importa. Son todo números. No es más que una gigantesca calculadora super rápida. Dicho esto y yendo a tu pregunta, los caracteres son siempre números (ya sea código ASCII, Unicode o pascualito) al igual que el resto. Y la función tolower() viniendo de C seguramente trabaje en código ASCII, aunque hoy en día casi todos los lenguajes incorporan herramientas para Unicode, que es un estándar de codificación más equitativo (trae caracteres para más lenguajes).

Saludos

gerarca

  • Visitante
Re: funcionamiento logico del algoritmo mayuscula a minisculas?
« Respuesta #5 en: Jueves 31 de Marzo de 2011, 02:17 »
0
ya iba ignorado esa parte, bueno nuevamente gracias por  tu ayuda!