[ Foro de Pascal ]

set

12-Feb-2014 20:30
Invitado (eduardo95)
1 Respuestas

buenas para todos

buenas tardes profesor y compañeros del foro
queria preguntarles como puedo definir una constante de tipo set que me permita almacenar el conjunto de valores: '01' '02' '03' ...'09'
yo intento hacer:


const  DIGITOSCEROANTES:  set of string =['01'..'09];


o


DIGITOSCEROANTES:  set of string =['01','02','03'...'09'];


me da el error 29:
                             ordinal type expected

si lo hago como type


type
         digcerosantes=set of   '01'..'09' ;


me da error 27:
                           invalid subrange base type

y necesito hacerlo como si el numero 01 ,...09  fueran de momento cadena, osea
'01',...'09'
pero no se como  hacerlo me podrian ayudar por favor, gracias.


12-Feb-2014 23:11
Nacho Cabanes (+84)

Claro, no se puede hacer eso.

Un rango de valores debe tener un predecesor y un sucesor claro para cada valor (deben ser "datos ordinales", es decir, con una relación de orden entre ello). Por eso, como el 4 sigue al 3, tiene sentido hacer cosas como [3..7]. Incluso los caracteres tienen un sucesor claro, y se pueden hacer cosas como ['x'..'z']. Pero un string no tiene un sucesor claro, no es un tipo ordinal y no lo podrás usar en un subrango.

Si miras el apartado 9.3 del curso, que habla sobre "sets":
http://www.aprendeaprogramar.com/mod/resource/view.php?id=137
podrás leer "Un conjunto está formado por una serie de elementos de un tipo base, que debe ser un ordinal de no más de 256 valores posibles, como un "char", un "byte" o un enumerado."






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)