Autor Tema: Visual Basic Arrays unidimensionales  (Leído 5240 veces)

DoPeY-BBS

  • Sin experiencia
  • *
  • Mensajes: 43
    • Ver Perfil
Visual Basic Arrays unidimensionales
« en: 10 de Julio 2012, 23:50 »
Saludos

Al ejecutar el código (Ctrl+F5), sobre el formulario te aparecerá el mensaje "El número de coches en la hora cero fue 14". Modifica el programa introduciendo, debajo de Option Explicit, una línea con Option Base 1. Prueba a ejecutarlo y te aparecerá un mensaje del tipo: "Error en tiempo de ejecución. El subíndice está fuera del intervalo". Efectivamente, al poner Option Base 1 los valores que puedes usar en el código como localizador de una variable del array serán los comprendidos entre 1 y 24. Al estar usando la variable Numerodecoches(0), Visual Basic detecta la incoherencia y genera un error.

Código: [Seleccionar]
  Option Explicit
  Dim Numerodecoches(24) As Integer
 
  Private Sub Form_Load()
  Show
  Numerodecoches(0) = 14
  Print
  Print "El número de coches en la hora cero fue "; Numerodecoches(0)
  End Sub

Si yo coloco este otro código y le coloco 16 a la variable  Numerodecoches(16) = 14, esta no da error sin embargo si coloco 25, si ¿porque pasa este comportamiento?

Código: [Seleccionar]
Option Explicit
  Option Base 1
  Dim Numerodecoches(24) As Integer
 
  Private Sub Form_Load()
  Show
  Numerodecoches(16) = 14
  Print
  Print "El número de coches en la hora cero fue "; Numerodecoches(16)
  End Sub

Codifica tu vida

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Re:Visual Basic Arrays unidimensionales
« Respuesta #1 en: 11 de Julio 2012, 10:57 »
Hola dopey, cuando usas un array que has declarado como

Dim Numerodecoches(24) As Integer

no puedes usar un índice para la variable que a tí se te ocurra, sino solo dentro del rango que has declarado. Por ejemplo, para la declaración anterior puedes usar Numerodecoches(1), Numerodecoches(2), Numerodecoches(3), ... Numerodecoches(24)

pero si intentas usar Numerodecoches(25) te dará un error porque tú has dicho que los índices solo van a llegar hasta 24, entonces no puedes usar un índice 25 porque el ordenador no entiende qué significado tendría eso.

El ordenador cuenta desde cero (ó desde 1 si has puesto Option Base 1).

Por ejemplo si declaras

Option Base 1
Dim Numerodecoches(4) As Integer

Solo podrás usar Numerodecoches(1), Numerodecoches(2), Numerodecoches(3) y Numerodecoches(4) porque al declarar la variable has dicho que los índices van a estar entre 1 y 4. Si trataras de usar otro índice te dará un error.   

DoPeY-BBS

  • Sin experiencia
  • *
  • Mensajes: 43
    • Ver Perfil
Re:Visual Basic Arrays unidimensionales
« Respuesta #2 en: 11 de Julio 2012, 20:24 »
Gracias por el dato
Codifica tu vida

petizalinda

  • Sin experiencia
  • *
  • Mensajes: 40
  • Qué sabrá el chancho de aviones
    • Ver Perfil
Re:Visual Basic Arrays unidimensionales
« Respuesta #3 en: 12 de Julio 2012, 11:25 »
Fíjate que el array lo que representa son los coches que han pasado cada hora del día y el día tiene 24 horas. Entonces coches(25) no tendría sentido porque significaría los coches que han pasado en la hora 25 y esto no tiene sentido  ;)

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".