Ejercicio 10
Decir si todas las palabras de un archivo son tienen caracteres alfanumericos.
Primero hice un procedimiento para que me dijera si los caracteres de la palabra eran alfanumericos
PROCEDURE Solo_Alfanumericos (
Palabra : IN Tipo_Texto;
Lo_Es : OUT Boolean ) IS
I : Integer := 1;
BEGIN
Lo_Es := True;
WHILE I <= Col_Texto.Longitud(Palabra) AND Lo_Es LOOP
IF Col_Texto.Esimo(I,Palabra) IN 'a'..'z' OR Col_Texto.Esimo(I,Palabra) IN 'A'..'Z'OR Col_Texto.Esimo(I,Palabra) IN '0'..'9' THEN
Lo_Es:=True;
ELSE
Lo_Es:=False;
END IF;
I:=I+1;
END LOOP;
END Solo_Alfanumericos;
hay que utilizar col_texto.longitud esimo etc... por que no detecta el tipo_texto como coleccion y poniendoselo lo detecta
Si el caracter esta entre 'a'..'z' o 'A'..'Z' o del 0 al 9 nos da un true y sigue estando en el bucle si no, nos da un false y sale del bucle
PROCEDURE Comprobar_Si_Solo_Alfanumericos (
Nombre : IN String;
Comprobar : OUT Boolean ) IS
File : File_Type;
Palabra : Tipo_Texto;
Lo_Es : Boolean;
BEGIN
Comprobar:= True;
Open (File, In_File, Nombre);
WHILE NOT End_Of_File (File) AND Comprobar LOOP
Buscar_Texto (File, ' ');
Leer_Texto (File, Palabra, ' ');
Solo_Alfanumericos(Palabra,Lo_Es);
IF Lo_Es THEN
Comprobar:=True;
ELSE
Comprobar:=False;
END IF;
END LOOP;
Close (File);
END Comprobar_Si_Solo_Alfanumericos;
Esta funcion no tiene nada que no se halla explicado anteriormente :/.
La 9 y 8 son identicas, son parecidas a la anterior solo que se pone solo de 'a'..'z' o de 'A'..'Z' en cada una
PROCEDURE Solo_Mayusculas (
Palabra : IN Tipo_Texto;
Lo_Es : OUT Boolean ) IS
I : Integer := 1;
BEGIN
Lo_Es := True;
WHILE I <= Col_Texto.Longitud(Palabra) AND Lo_Es LOOP
IF Col_Texto.Esimo(I,Palabra) IN 'A'..'Z' THEN
Lo_Es:=True;
ELSE
Lo_Es:=False;
END IF;
I:=I+1;
END LOOP;
END Solo_mayusculas;
PROCEDURE Comprobar_Si_Solo_mayusculas (
Nombre : IN String;
Comprobar : OUT Boolean ) IS
File : File_Type;
Palabra : Tipo_Texto;
Lo_Es : Boolean;
BEGIN
Comprobar:= True;
Open (File, In_File, Nombre);
WHILE NOT End_Of_File (File) AND Comprobar LOOP
Buscar_Texto (File, ' ');
Leer_Texto (File, Palabra, ' ');
Solo_mayusculas(Palabra,Lo_Es);
IF Lo_Es THEN
Comprobar:=True;
ELSE
Comprobar:=False;
END IF;
END LOOP;
Close (File);
END Comprobar_Si_Solo_Mayusculas;
Habia una funcion que habia que decir si habia una ñ, pero no recuerdo como se llamaba
PROCEDURE Letra_Ñ (
Palabra : IN Tipo_Texto;
Lo_Es : OUT Boolean ) IS
I : Integer := 1;
BEGIN
Lo_Es := True;
WHILE I <= Col_Texto.Longitud(Palabra) AND not Lo_Es LOOP
IF Col_Texto.Esimo(I,Palabra) /= 'ñ' or Col_Texto.Esimo(I,Palabra) /= 'Ñ' THEN
Lo_Es:=false;
ELSE
Lo_Es:=False;
END IF;
I:=I+1;
END LOOP;
END Letra_Ñ;
PROCEDURE Hay_alguna_ñ (
Nombre : IN String;
Comprobar : OUT Boolean ) IS
File : File_Type;
Palabra : Tipo_Texto;
Lo_Es : Boolean;
BEGIN
Comprobar:= True;
Open (File, In_File, Nombre);
WHILE NOT End_Of_File (File) AND Comprobar LOOP
Buscar_Texto (File, ' ');
Leer_Texto (File, Palabra, ' ');
Letra_Ñ(Palabra,Lo_Es);
IF Lo_Es THEN
Comprobar:=True;
ELSE
Comprobar:=False;
END IF;
END LOOP;
Close (File);
END Hay_alguna_ñ;
Los ejercicios de la prueba de prog del viernes
Publicado por nero en 11:15
Suscribirse a:
Enviar comentarios (Atom)
Diseño e iconos por N.Design Studio | A Blogger por Blog and Web
0 comentarios:
Publicar un comentario