Pascal/Turbo Pascal - Carnet de Identidad, sexo?, edad? Ayuda Por Favor

 
Vista:

Carnet de Identidad, sexo?, edad? Ayuda Por Favor

Publicado por FOREVER-INLOVE (1 intervención) el 03/04/2005 01:25:28
Hola amigos, un saludo y gracias por leer mi pregunta.

Estudio en universidad y debo entregar para el martes un programa que entre otras cosas haga lo siguiente.[ Esta es la parte que me interesa pues no se hacerla ]

Pida el # de Carnet de Identidad cuando lo guarde hacer lo siguiente.

Chequear si es menor o mayor que 11 caracteres, si ocurre alguna de las 2 volver a pedirlo, después comprobar si el sujeto es masculino o femenino a través de el penúlitimo digito del carnet por ejemplo.

12121212121

Este sería masculino

12121212111

Este fememenino ya que si el penultimo es par es masculino de lo contrario si es impar es femenino, estamos aqui en Cuba no se como funcionara en otros países.

Pues bien después que extraigo ese caracter lo almaceno y lo valido[ lo cuál no se hacer ] para sdaber si es femenina o masculino.

Y lo otro es saber a través del # de Carnet de Identidad la edad, pues bueno esto me es muy importante, pero es asi, no lo se hacer si alguno de ustedes me pudiera ayudar se lo agradecería un mundo de veras.

Un saludo desde Cuba, FOREVER-INLOVE
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Carnet de Identidad, sexo?, edad? Ayuda Por Fav

Publicado por Roberto Garcia (41 intervenciones) el 03/04/2005 07:26:34
Para saber el tamaño de una cadena en Turbo Pascal existe la funcion length, que te devuelve el numero de caracteres.

por ejemplo
length('Roberto'); devuelve un 7 o
s:='Hola';
length(s); devuelve 4

entonces para saber si es igual a 11 lo pones en un If

if length(carnet)=11 then {es valido, else no es valido}

y recuerda que las cadenas funcionan como un arreglo de caracteres, entonces para obtener el penultimo haces lo siguiente

penultimo:=carnet [ length ( carnet ) - 1 ];

esto es el tamaño de la cadena menos uno. Para validarlo conviertes la cadena penultimo en numero, con el procedimiento Val, que es muy largo para explicarlo aqui, pero en la ayuda biene basta informacion.

Ahora, pascal tiene algunas funciones interesantes para el manejo de cadenas, una es Copy, que devuelce una subcadena de una cadena,

Copy ( cadena , Index , Count ) ;

ejemplo

s:='Roberto';
aux:=copy (s, 2, 2); aux vale 'ob', es decir, copy, copia tantos caracteres como Count, a partir de Index de Cadena, esto te puede servir para sacar la edad, el distrito, etc, etc,

si deseas mas informacion escribeme a mi correo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar