Demonstrate how to define a type that behaves like an integer but has a lowest valid value of 1 and a highest valid value of 10. Include all bounds checking you need to write, or explain how the compiler or interpreter creates those bounds checks for you.

If OpenConsole()
  Structure Persona
    nombre.s{15}
    apellido.s{30} 
    edad.w 
    List amigos$()
  EndStructure
 
  Dim MyFriends.Persona(100)
 
  ; Aquí la posición '1' del array MyFriends()
  ; contendrá una persona y su propia información 
  MyFriends(1)\nombre = "Carlos"
  MyFriends(1)\apellido = "Gzlez." 
  MyFriends(1)\edad = 47
 
  individuo.Persona
  individuo\nombre = "Juan"
  individuo\apellido = "Hdez."
  individuo\edad   = 49
 
  ; Ahora, agrega algunos amigos
  AddElement(individuo\amigos$())
  individuo\amigos$() = "Lucia"
 
  AddElement(individuo\amigos$())
  individuo\amigos$() = "Isabel"
 
  ForEach individuo\amigos$()
    Debug individuo\amigos$()
  Next
 
  ;Estructura extendida 
  Structure Domicilio Extends Persona
    calle.s 
    numero.b
  EndStructure
 
  MyFriends.Domicilio\calle = "Grillo"
  MyFriends.Domicilio\numero = 20
 
 
  PrintN(individuo\nombre + "  " + individuo\apellido + "  " + Str(individuo\edad) + "  " +  Str(MyFriends.Domicilio\numero))
  PrintN(MyFriends(1)\nombre + "  " + MyFriends(1)\apellido + "  " + Str(MyFriends(1)\edad))
 
 
  If TypeOf(Persona\edad) = #PB_Word
    Debug "Edad ess un 'Word'"
  EndIf
 
  superficie.f
  If TypeOf(superficie) = #PB_Float
    Debug "superficie es un 'Float'"
  EndIf
 
  Print(#CRLF$ + #CRLF$ + "--- terminado, pulsa RETURN---"): Input()
  CloseConsole()
EndIf