Programación General > ADA

 Mayusculas Y Minusculas

(1/1)

Ander:
Hola, solo queria saber si hay alguna manera de comparar las mayusculas y las minusculas. Es decir, que ander=Ander sea True. Y si esto no es posible como se convierte una mayuscula en minuscula?

Un saludo!

gandalfelgris:
La unica forma que se me ocurre para lo que comentas es una comparación directa, teniendo en cuenta que cuando realizas una comparación directa entre caracteres se comparan los caracteres ascii, con lo cual lo que deberiamos averiguar es que caracter ascii se corresponde con la A y cual con la a para poderlos comparar. El caracter A es el ascii 65 y el caracter ascii a es el 97.

Espero haberte servido de ayuda.

A ver si te responde alguien más con otras ideas.

Suerte

Ander:
Pero de esa manera tendria que comparar todas las letras del abecedario, no? para eso podria hacer un subprograma que fuera:
if X='A' then
return 'a';
elsif X='B' then
return 'b';
etc.

Y esto es un rollo.
Seguro que hay algo mas simple, he oido hablar de conversiones pero no se como se hacen. ;)

Itimag:
Yo haría un array('a'..'z') de tipo character --> type alfabeto is array(1..26) of character; .
A partir de aquí, declaramos dos variables de este tipo: uno para las mayúsculas y otro para las minúsculas.

Es decir:
Mayusculas: alfabeto:=('a','b','c','d','e',...,'z');
Minusculas: alfabeto:=('A','B','C','D','E',...,'Z');

Ahora hacemos la  función que nos compara los carácteres:

--- Código: Text --- funcion igual(A,B: in character) return boolean is     type alfabeto is array(1..26) of character;     mayusculas: alfabeto:=("abcdefghijklmnopqrstuvwxyz"); -- Es mas rápido escribirlo así.     minusculas: alfabeto:=("ABCDEFGHIJKLMNOPQRSTUVWXYZ");      I:integer:=1;     num_letra1,num_letra2:integer; begin  while I<26 loop      if A=mayusculas(I) or A=minusculas(I) then           num_letra1:=I;      end if;      if B=mayusculas(I) or A=minusculas(I) then         num_letra2:=I;      end if;      I:=I+1;   end while;   if num_letra1 = num_letra_2 then       return true;   else        return false;   end if;end igual;  
Creo que así funcionaria. No lo he probado. Es una función que pasados el carácter de la palabra 1 y el caracter de la palabra 2, te los compara y si son iguales te devuelve true, considerando como iguales A y a

De esta forma, si quieres comparar palabras, hacemos otra función que te devuelva si son iguales:


--- Código: Text --- obtener_caracteres_palabras; -- Ej: caracter1:=caracter(I) en el caso de que lo tengamos en un array.Mientras no palabra1_acabada y no palabra2_acabada y igual(caracter1,caracter2) entonces  obtener_caracteres&#59;fin mientras;si palabra1_acabada=palabra2_acabada y ultimos_caracteres_palabras_iguales entonces   devolver true;sino   devolver false;fin si;  

Navegación

[0] Índice de Mensajes

Ir a la versión completa