Autor |
Mensaje |
lolita90
Nivel 3
Edad: 34
Registrado: 12 Ago 2009
Mensajes: 50
|
|
Holaa!
Estoy haciendo el tp para el curso de cataldi
Necesito validar un ingreso de provincias..
Lo que quiero es que solo se puedan escribir letras y un guion.. como puedo hacer?
Graciass
|
|
|
|
|
|
|
|
|
Izanagi
Nivel 7
Edad: 36
Registrado: 21 Ago 2008
Mensajes: 402
Ubicación: Belgrano
Carrera: No especificada
|
|
procesa caracter a caracter y valida que este en el rango de la 'a' a 'z' o que sea un '-' con las funcion readkey() hasta que aprete enter.
Saludos.
|
|
|
|
_________________
[Campaña]Revivamos el Chat Fiuba
|
|
|
|
|
Flaaanders
Nivel 9
Edad: 35
Registrado: 07 Sep 2008
Mensajes: 1102
Ubicación: Capital Federal - Almagro Papá!!!
Carrera: Electricista y Industrial
|
|
Eso no hay que hacerlo. Solo tenes que validar numeros.
Por lo menos yo no lo hice.....
Espero no estar equivocado.
|
|
|
|
_________________ Responsabilidades:
Las miserias del mundo están ahí, y sólo hay dos modos de reaccionar ante ellas: o entender que uno no tiene la culpa y por lo tanto encogerse de hombros y decir que no está en sus manos remediarlo -y esto es cierto-, o bien asumir que, aun cuando no está en nuestras manos resolverlo, hay que comportarnos como si así fuera.
José Saramago 1922-2010.
|
|
|
|
|
Sid Bernard
Nivel 9
Edad: 35
Registrado: 20 Jul 2008
Mensajes: 1287
Ubicación: Al lado del Sub Esp. $ = <(TT,0,2+3i)(3,18,4)(0,0,e)>
Carrera: Electrónica y Informática
|
|
Hola como estas, bueno si queres validar las letras y un guion ya sea el "-" o el "_", una opcion que podes hacer es la que dijo izanagi...
Otra que te recomiendo es utilizar lo que comunmente se llama Conjuntos.
Un Conjunto ya sea en Pascal o en otro lenguaje, es la misma nocion matemática que se tiene para los conjuntos, en los cuales contiene cierto tipo de elementos.
para declarar un conjunto en Pascal lo que se tiene que hacer es lo siguiente:
en la seccion Type del compilador se realiza la siguiente linea.
Código:
|
TYPE
nombredelconjunto = set of tipodevariable
|
donde set of son palabras reservadas de Pascal para la creacion del conjunto.
Un ejemplo aplicado para lo que necesitas, es hacer un conjunto de Chars, para eso a nuestro conjunto llamemoslo, por ejemplo tconjunto, entonces hacemos lo siguiente.
Código:
|
TYPE
tconjunto = set of char;
|
ahora creado nuestro conjunto del tipo char, ahora podemos crear una variable del tipo tconjunto, entonces podemos realizar lo siguiente:
Código:
|
VAR
validaciones : tconjunto;
|
ahora teniendo la variable validaciones que es del tipo tconjunto, podemos inicializarla en el programa principal de PASCAL, de la siguiente manera:
Código:
|
BEGIN
validacion := [elem1,elem2,elem3,...,elemN]; {generico}
validacion := [elem1..elemk,elemk+1,...,elemN]; {otro ejemplo generico}
END.
|
aplicando esto al ejemplo:
Código:
|
BEGIN
validacion := ['a'..'z','A'..'Z','-'];
--------------------------------------------
--------------------------------------------
--------------------------------------------
|
donde 'a'..'z' son todos los chars que van de la "a" a la "z" y representan a las minusculas, idem para las mayusculas y despues valido el guion medio "-",
y para validar si el ingreso por teclado pertenece a ese conjunto, podemos hacer lo siguiente, declarando una variable del tipo char.
Código:
|
VAR
validaciones : tconjunto;
letra : char;
|
ahora para validar que letra, este en el conjunto se utiliza una palabra reservada de PASCAL que es in, que devuelve TRUE en caso de que letra pertenezca al conjunto y FALSE para todo lo contrario, entonces aplicando podemos hacer en el cuerpo principal del programa:
Código:
|
if (letra in validacion) then {estamos preguntando si es TRUE}
BEGIN
sentencia1
.
.
.
sentenciaN
END
else
BEGIN
sentencia1
.
.
.
sentenciaN
END;
|
en fin, espero que te haya servido un poco...
nose si en computacion se ve conjuntos, pero es una herramienta muy interesante
Saludos! y suerte con el TP
Edit: corrijo y agrego un "then" a la sentencia if
|
|
|
|
_________________
SOY ACERISTA Y QUE!!!!!
Última edición por Sid Bernard el Dom Dic 06, 2009 12:17 pm, editado 2 veces
|
|
|
|
|
Flaaanders
Nivel 9
Edad: 35
Registrado: 07 Sep 2008
Mensajes: 1102
Ubicación: Capital Federal - Almagro Papá!!!
Carrera: Electricista y Industrial
|
|
Sid Bernard escribió:
|
Hola como estas, bueno si queres validar las letras y un guion ya sea el "-" o el "_", una opcion que podes hacer es la que dijo izanagi...
Otra que te recomiendo es utilizar lo que comunmente se llama Conjuntos.
Un Conjunto ya sea en Pascal o en otro lenguaje, es la misma nocion matemática que se tiene para los conjuntos, en los cuales contiene cierto tipo de elementos.
para declarar un conjunto en Pascal lo que se tiene que hacer es lo siguiente:
en la seccion Type del compilador se realiza la siguiente linea.
Código:
|
TYPE
nombredelconjunto = set of tipodevariable
|
donde set of son palabras reservadas de Pascal para la creacion del conjunto.
Un ejemplo aplicado para lo que necesitas, es hacer un conjunto de Chars, para eso a nuestro conjunto llamemoslo, por ejemplo tconjunto, entonces hacemos lo siguiente.
Código:
|
TYPE
tconjunto = set of char;
|
ahora creado nuestro conjunto del tipo char, ahora podemos crear una variable del tipo tconjunto, entonces podemos realizar lo siguiente:
Código:
|
VAR
validaciones : tconjunto;
|
ahora teniendo la variable validaciones que es del tipo tconjunto, podemos inicializarla en el programa principal de PASCAL, de la siguiente manera:
Código:
|
BEGIN
validacion := [elem1,elem2,elem3,...,elemN]; {generico}
validacion := [elem1..elemk,elemk+1,...,elemN]; {otro ejemplo generico}
END.
|
aplicando esto al ejemplo:
Código:
|
BEGIN
validacion := ['a'..'z','A'..'Z','-'];
--------------------------------------------
--------------------------------------------
--------------------------------------------
|
donde 'a'..'z' son todos los chars que van de la "a" a la "z" y representan a las minusculas, idem para las mayusculas y despues valido el guion medio "-",
y para validar si el ingreso por teclado pertenece a ese conjunto, podemos hacer lo siguiente, declarando una variable del tipo char.
Código:
|
VAR
validaciones : tconjunto;
letra : char;
|
ahora para validar que letra, este en el conjunto se utiliza una palabra reservada de PASCAL que es in, que devuelve TRUE en caso de que letra pertenezca al conjunto y FALSE para todo lo contrario, entonces aplicando podemos hacer en el cuerpo principal del programa:
Código:
|
if (letra in validacion) {estamos preguntando si es TRUE}
BEGIN
sentencia1
.
.
.
sentenciaN
END
else
BEGIN
sentencia1
.
.
.
sentenciaN
END;
|
en fin, espero que te haya servido un poco...
nose si en computacion se ve conjuntos, pero es una herramienta muy interesante
Saludos! y suerte con el TP
|
Y ponele que ahora yo quiero mostrar o tomar un elemento del conjunto Validacion de tu ejemplo. Como hago???
|
|
|
|
_________________ Responsabilidades:
Las miserias del mundo están ahí, y sólo hay dos modos de reaccionar ante ellas: o entender que uno no tiene la culpa y por lo tanto encogerse de hombros y decir que no está en sus manos remediarlo -y esto es cierto-, o bien asumir que, aun cuando no está en nuestras manos resolverlo, hay que comportarnos como si así fuera.
José Saramago 1922-2010.
|
|
|
|
|
Sid Bernard
Nivel 9
Edad: 35
Registrado: 20 Jul 2008
Mensajes: 1287
Ubicación: Al lado del Sub Esp. $ = <(TT,0,2+3i)(3,18,4)(0,0,e)>
Carrera: Electrónica y Informática
|
|
vos no podes tomar los elementos del conjunto, lo que podes hacer es sumarlos, interseccionarlos y unirlos.
Si queres "sacar" algun elemento de tu conjunto lo unico que resta es buscar si algun elemento pertenece al conjunto (declarando una variable del mismo tipo) y dsp de ahi obtenes un elemento de ese conjuno, ejemplo
Código:
|
if (letra in validacion) then {estamos preguntando si es TRUE}
writeln(letra);
|
y ahi imprimo el elemento letra, que pertenece al conjunto.
Nose si esa es mas o menos tu duda
|
|
|
|
_________________
SOY ACERISTA Y QUE!!!!!
|
|
|
|
|
Izanagi
Nivel 7
Edad: 36
Registrado: 21 Ago 2008
Mensajes: 402
Ubicación: Belgrano
Carrera: No especificada
|
|
Cita:
|
Y ponele que ahora yo quiero mostrar o tomar un elemento del conjunto Validacion de tu ejemplo. Como hago???
|
Aparentemente, no se puede hacer.
Hace un tiempo investige sobre eso y habia encontrado nada para poder hacerlo.
|
|
|
|
_________________
[Campaña]Revivamos el Chat Fiuba
|
|
|
|
|
Flaaanders
Nivel 9
Edad: 35
Registrado: 07 Sep 2008
Mensajes: 1102
Ubicación: Capital Federal - Almagro Papá!!!
Carrera: Electricista y Industrial
|
|
Yo queria hacer un conjunto de nombres para que despues (con un random de por medio) me muestre un nombre cualquiera del conjunto.
Pero como le paso a Izanagi, ya me acabo de frustrar....
|
|
|
|
_________________ Responsabilidades:
Las miserias del mundo están ahí, y sólo hay dos modos de reaccionar ante ellas: o entender que uno no tiene la culpa y por lo tanto encogerse de hombros y decir que no está en sus manos remediarlo -y esto es cierto-, o bien asumir que, aun cuando no está en nuestras manos resolverlo, hay que comportarnos como si así fuera.
José Saramago 1922-2010.
|
|
|
|
|
Sid Bernard
Nivel 9
Edad: 35
Registrado: 20 Jul 2008
Mensajes: 1287
Ubicación: Al lado del Sub Esp. $ = <(TT,0,2+3i)(3,18,4)(0,0,e)>
Carrera: Electrónica y Informática
|
|
Flaaanders escribió:
|
Yo queria hacer un conjunto de nombres para que despues (con un random de por medio) me muestre un nombre cualquiera del conjunto.
Pero como le paso a Izanagi, ya me acabo de frustrar....
|
podes hacer un vector de strings y en cada posicion guardar un nombre y luego con un random a un int o (byte) para que te tire un numero aleatorio y entre en la posicion del vector y de ahi te escupa una prov. aleatoria...
si bien esto es algo muy rebuscado y no esta del tooooodo bien, es una opcion.
|
|
|
|
_________________
SOY ACERISTA Y QUE!!!!!
|
|
|
|
|
Flaaanders
Nivel 9
Edad: 35
Registrado: 07 Sep 2008
Mensajes: 1102
Ubicación: Capital Federal - Almagro Papá!!!
Carrera: Electricista y Industrial
|
|
Sid Bernard escribió:
|
Flaaanders escribió:
|
Yo queria hacer un conjunto de nombres para que despues (con un random de por medio) me muestre un nombre cualquiera del conjunto.
Pero como le paso a Izanagi, ya me acabo de frustrar....
|
podes hacer un vector de strings y en cada posicion guardar un nombre y luego con un random a un int o (byte) para que te tire un numero aleatorio y entre en la posicion del vector y de ahi te escupa una prov. aleatoria...
si bien esto es algo muy rebuscado y no esta del tooooodo bien, es una opcion.
|
Como es muuy rebuscado y no esta del tooodo bien, seguramente lo use.
Gracias Sid!
|
|
|
|
_________________ Responsabilidades:
Las miserias del mundo están ahí, y sólo hay dos modos de reaccionar ante ellas: o entender que uno no tiene la culpa y por lo tanto encogerse de hombros y decir que no está en sus manos remediarlo -y esto es cierto-, o bien asumir que, aun cuando no está en nuestras manos resolverlo, hay que comportarnos como si así fuera.
José Saramago 1922-2010.
|
|
|
|
|
Sid Bernard
Nivel 9
Edad: 35
Registrado: 20 Jul 2008
Mensajes: 1287
Ubicación: Al lado del Sub Esp. $ = <(TT,0,2+3i)(3,18,4)(0,0,e)>
Carrera: Electrónica y Informática
|
|
jajaja de nada!!!
pero tene en cuenta que el random te puede tirar cualquier numero y pueda sobrepasar las posiciones del vector
OJO CON ESO
por eso decia q era muy rebuscado y no esta del todo bien (para mi gusto)
Suerte!!!
|
|
|
|
_________________
SOY ACERISTA Y QUE!!!!!
|
|
|
|
|
Flaaanders
Nivel 9
Edad: 35
Registrado: 07 Sep 2008
Mensajes: 1102
Ubicación: Capital Federal - Almagro Papá!!!
Carrera: Electricista y Industrial
|
|
Pensaba usar un Random(X) que te tira numeron enteros de 0 a X, las veces que lo necesite!
Solo espero que funcione.
|
|
|
|
_________________ Responsabilidades:
Las miserias del mundo están ahí, y sólo hay dos modos de reaccionar ante ellas: o entender que uno no tiene la culpa y por lo tanto encogerse de hombros y decir que no está en sus manos remediarlo -y esto es cierto-, o bien asumir que, aun cuando no está en nuestras manos resolverlo, hay que comportarnos como si así fuera.
José Saramago 1922-2010.
|
|
|
|
|
Izanagi
Nivel 7
Edad: 36
Registrado: 21 Ago 2008
Mensajes: 402
Ubicación: Belgrano
Carrera: No especificada
|
|
No se porque tanto escandalo jovenes, pascal desgraciadamente no tiene manejo de resource.
Cita:
|
Pensaba usar un Random(X) que te tira numeron enteros de 0 a X, las veces que lo necesite!
Solo espero que funcione.
|
Mientras que mantengas controlado el random no hay motivo por el que no ande. (Usa constantes tanto en el rango del vector como en el calculo del random para poder hacer futuras modificaciones)
|
|
|
|
_________________
[Campaña]Revivamos el Chat Fiuba
|
|
|
|
|
Sid Bernard
Nivel 9
Edad: 35
Registrado: 20 Jul 2008
Mensajes: 1287
Ubicación: Al lado del Sub Esp. $ = <(TT,0,2+3i)(3,18,4)(0,0,e)>
Carrera: Electrónica y Informática
|
|
por eso mismo decia Izanagi, mientras tenga cuidado de que el random no le escupa algun valor fuera del rango del vector, que lo utilice con toda tranquilidad
no dije que no lo use xq si o si le va a tirar cualquier fruta (bue si eso pasaria si no lo mantiene controlado), y bue...
|
|
|
|
_________________
SOY ACERISTA Y QUE!!!!!
|
|
|
|
|
Flaaanders
Nivel 9
Edad: 35
Registrado: 07 Sep 2008
Mensajes: 1102
Ubicación: Capital Federal - Almagro Papá!!!
Carrera: Electricista y Industrial
|
|
Izanagi escribió:
|
No se porque tanto escandalo jovenes, pascal desgraciadamente no tiene manejo de resource.
Cita:
|
Pensaba usar un Random(X) que te tira numeron enteros de 0 a X, las veces que lo necesite!
Solo espero que funcione.
|
Mientras que mantengas controlado el random no hay motivo por el que no ande. (Usa constantes tanto en el rango del vector como en el calculo del random para poder hacer futuras modificaciones)
|
O sea que no haga, por ejemplo
CASE OF (RANDOM(X))
1:
...
X:
END; ???? Eso lo descarte desde un principio.
Ahora estoy queriendo hacer (porque el pascal no me deja) una parte en la que tengo que pazar una tabla de datos a un archivo CSV. El tema es que en TYPE pogo: TEXTO: FILE OF TEXT; y me dice: "Error 24: File components may not be files or objects" (Componentes de archivos no deben ser archivos u objetos). Que puedo estar haciendo mal???
|
|
|
|
_________________ Responsabilidades:
Las miserias del mundo están ahí, y sólo hay dos modos de reaccionar ante ellas: o entender que uno no tiene la culpa y por lo tanto encogerse de hombros y decir que no está en sus manos remediarlo -y esto es cierto-, o bien asumir que, aun cuando no está en nuestras manos resolverlo, hay que comportarnos como si así fuera.
José Saramago 1922-2010.
|
|
|
|
|
|
Ir a página 1, 2, 3 Siguiente
|
Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro No podés responder a temas en este foro No podés editar tus mensajes en este foro No podés borrar tus mensajes en este foro No podés votar en encuestas en este foro No Podéspostear archivos en este foro No Podés bajar archivos de este foro
|
Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker365 Attacks blocked.
|