Informática
Programación.

Tu Instituto Online
   


 
Nivel Básico Gambas: Uso de vectores o arrays
Duración aproximada: 2 sesiones
   
Objetivos Objetivos
  • Aprender a utilizar un tipo de variable muy usada y muy potente, los vectores o también llamados arrays unidimensionales.
   
Fuentes de información Fuentes de información
  • http://www.gambas-es.org
  • Libro “GAMBAS, programación visual con Software Libre”, de la editorial EDIT LIN EDITORIAL S.L., cuyos autores son Daniel Campos Fernández y José Luis Redrejo.
  • Libro “Fundamentos de programación”, de la editorial Univ. Politécnica de Valencia, cuyos autores son Mª Alpuente Fresnedo y otros.
   
Contenidos
Contenidos
 

1. Variables con dimensiones

En la resolución de determinados problemas mediante la programación, surge la necesidad de contar con la posibilidad de almacenar distintos datos en una misma variable. La solución más simple para este problema son las Matrices o Arrays.

Las matrices pueden contener cualquier tipo de datos, pero con la condición de que todos los elementos de la matriz sean del mismo tipo. Por otro lado, no hay más límite en la dimensión de la matriz que la memoria del ordenador y la capacidad del programador de operar con matrices de grandes dimensiones.

La sintaxis para trabajar con matrices es la misma que para las variables, añadiendo entre corchetes las dimensiones de la matriz. Algunos ejemplos:

DIM aNotas [2 , 3] AS Single
DIM aEdades [40] AS Integer

Para acceder al valor de cada una de las celdas de la matriz, hay que referirse siempre a su índice. En una matriz de dos dimensiones lo podemos identificar fácilmente por filas y columnas. Si quisieramos acceder al primer valor de aEdades, deberíamos escribir aEdades[0].

En esta unidad nos centraremos en las matrices unidimensionales, también conocidas como vectores o arrays, dejando para otra unidad el tratamiento de las matrices.

 

 

 
Ojo

Hay que tener en cuenta que el índice comienza a contar en el 0, no en el 1. Es decir,

DIM aListado[3] AS Integer

en la matriz aListado[3] existirán los valores correspondientes a aListado[0],aListado[1] y aListado[2]. Si se intenta acceder a aListado[3] dará un error Out of Bounds, fuera del límite.

 

 

 

 

  
Ejercicios
Ejercicio
 

Vamos a crear un programa para calcular variables de estadística descriptiva. El programa leerá los datos del usuario y después calculará la media aritmética de los números introducidos.

  • Abrimos Gambas.
  • Hacemos clic en la opción Nuevo proyecto.
  • Marcamos la opción Aplicación de consola y hacemos clic en el botón Siguiente.

Aplicación de consola

  • Seleccionamos el directorio donde se guardarán todos los ficheros necesarios para el proyecto. El sitio ideal sería dentro de nuestra carpeta Documentos. Creamos un directorio llamado BASIC y dentro de él otro directorio llamado 4AVANZADO en el que se creará un directorio para cada uno de los proyectos que vamos a hacer. Así crearemos el directorio 4AVANZADO y tendremos Documentos/BASIC/4AVANZADO. Tras esto hacemos clic en el botón Siguiente.

Creación del directorio para nuestro proyecto

  • Le damos el nombre "04VectoresConsola" y el título "Proyecto de datos estadísticos". Después hacemos clic en OK.
  • Confirmación de datosEn última instancia, se muestra la pantalla que confirma la creación del proyecto. Una vez confirmados estos datos, ya no podremos efectuar cambios en nuestro proyecto, como es el nombre, directorio, etc. Hacemos clic en el botón OK.

Vamos a crear un nuevo módulo para nuestro programa.

  • Hacemos clic con el botón derecho del ratón sobre el árbol de carpetas. Aparecerá un menú contextual. Elegimos la opción Nuevo→Módulo.
  • Surgirá una ventana en la que escribimos el nombre del Módulo: “varEstadísticas”. Pulsamos el botón OK.
  • Hacemos clic con el botón derecho del ratón sobre el nuevo módulo y marcamos la opción Clase de inicio.
  • Escribimos el siguiente código:

Código fuente

Como podemos observar en el código fuente, para trabajar con vectores es imprescindible el uso de instrucciones de repetición, en este caso se ha usado FOR, pero se podía usar cualquiera de ellas.

Otra cosa que tenemos que tener en cuenta es que el primer elemento del vector ocupa siempre la posición 0 y que el último elemento ocupará la posición N-1, siendo N el número de elementos del vector definido al declarar la variable.

  • Ejecutamos el programa. Si introducimos como números el 2,3,4,5 y 6 el resultado será el siguiente:

Ejecución

  • El programa lee 5 números por teclado y después calcula la media aritmética.
  • Guarda los cambios. Vas a seguir trabajando en el proyecto y sólo al final tendrás que subirlo a la plataforma (de todas maneras, si no te ha dado tiempo a acabar la práctica completa, puedes subirla y después recuperarla otro día, en ese caso tendrías que subir toda la carpeta del proyecto comprimida)

 

 

  
  
Ejercicios
Ejercicio
 

Ahora ha llegado la hora de que pongas algo de tu parte. Deberás modificar el programa para que:

  • Se obtenga el valor máximo y mínimo del vector.
  • Al finalizar los cálculos se muestren todos los elementos del vector, pero mostrando en primer lugar el último introducido.
  • Guarda los cambios en tu proyecto.
  • Sube a la plataforma el fichero llamado varEstadísticas.module que podrás encontrar dentro de la carpeta del proyecto 04VectoresConsola.

 

  
  
Ejercicios
Ejercicio
 

Para practicar con vectores desde la parte gráfica utilizaremos un control que debes conocer de otras bloques del curso, el ListBox ListBox.

Vas a convertir el programa de consola que acabas de elaborar a un programa gráfico. La aplicación va a permitir añadir y eliminar elementos del vector a través de un objeto ListBox.

  • Hacemos clic en la opción Nuevo proyecto.
  • Marcamos la opción Aplicación gráfica QT.
  • Seleccionamos el directorio donde se guardarán todos los ficheros necesarios para el proyecto. El sitio ideal sería dentro de nuestra carpeta Documentos/BASIC/4AVANZADO/. Tras esto hacemos clic en el botón Siguiente.
  • Le damos el nombre "04VectoresGrafico" y el título "Proyecto gráfico de datos estadísticos" al proyecto. Después hacemos clic en OK.
  • En última instancia, se muestra la pantalla que confirma la creación del proyecto. Una vez confirmados estos datos, ya no podremos efectuar cambios en nuestro proyecto, como es el nombre, directorio, etc. Hacemos clic en el botón OK.
  • Hacemos clic con el botón derecho del ratón sobre el árbol de carpetas y creamos un nuevo formulario. Dejamos el nombre sin cambiar.
  • Hacemos clic con el botón derecho del ratón sobre el nuevo formulario y marcamos la opción Clase de inicio.

Ahora vamos al nuevo formulario y empezamos a colocar elementos en él:Interfaz de la aplicación

  1. Dibujamos 1 caja de texto. Cambiamos las propiedades:
    • Name. Llamamos a la caja “tbLista”.
    • Text. Borramos el texto de la propiedad en la caja.
  2. Añadimos 1 etiqueta y la situamos en la parte superior de la caja de texto. Cambiamos las propiedades:
    • Text. Ponemos el texto “Nuevo elemento”.
  3. Dibujamos 1 lista de tipo ListBox. Cambiamos la propiedad:
    • Name. Llamamos a la caja “lbLista”.
  4. Añadimos 1 etiqueta y la situamos en la parte superior de la lista. Cambiamos la propiedad:
    • Text. Ponemos el texto “Elementos en la lista”.
  5. Dibujamos 2 botones de tipo Button. Cambiamos las propiedades:
    • Name. Ponemos los nombres “btnInsertar” y “btnBorrarSel”.
    • Text. Escribimos “Añadir a lista” y “Borrar seleccionado”, según corresponda.
  6. Dibujamos un botón de tipo Button. Cambiamos las propiedades:
    • Name. Ponemos el nombre “btnCalcular”.
    • Text. Escribimos “Calcular”.
  7. Dibujamos un botón de tipo Button. Cambiamos las propiedades:
    • Name. Ponemos el nombre “btnSalir”.
    • Text. Escribimos “Salir”.
  8. Dibujamos 1 caja de texto. Cambiamos las propiedades:
    • Name. Llamamos a la caja “tbMinimo”.
    • Text. Borramos el texto de la propiedad en la caja.
  9. Añadimos 1 etiqueta y la situamos en la parte superior de la caja de texto. Cambiamos las propiedades:
    • Name. Llamamos a la caja “lblMinimo”.
    • Text. Ponemos el texto “Mínimo”.
  10. Dibujamos 1 caja de texto. Cambiamos las propiedades:
    • Name. Llamamos a la caja “tbMaximo”.
    • Text. Borramos el texto de la propiedad en la caja.
  11. Añadimos 1 etiqueta y la situamos en la parte superior de la caja de texto. Cambiamos las propiedades:
    • Name. Llamamos a la caja “lblMaximo”.
    • Text. Ponemos el texto “Máximo”.
  12. Dibujamos 1 caja de texto. Cambiamos las propiedades:
    • Name. Llamamos a la caja “tbMedia”.
    • Text. Borramos el texto de la propiedad en la caja.
  13. Añadimos 1 etiqueta y la situamos en la parte superior de la caja de texto. Cambiamos las propiedades:
    • Name. Llamamos a la caja “lblMedia”.
    • Text. Ponemos el texto “Media”.

Ahora debes migrar el código del ejercicio anterior para que obtenga los valores del ListBox y haga los cálculos adecuados y los muestre en las cajas de texto que hemos situado en el formulario.

Sugerencias:

  • Utiliza un vector de 5 elementos, como en el caso anterior, si se intentan añadir más elementos a la lista debes dar un mensaje de aviso y no dejar. Puedes usar lbLista.Count para saber cuántos elementos hay en la lista antes de añadir más.
  • Para cargar el vector que definas, por ejemplo aListado, deberás recorrer el ListBox lbLista, puedes usar este código al principio del evento Click del botón Calcular:

Código fuente

  • Una vez con el vector relleno sólo tienes que aplicar lo mismo que en el programa de consola.

 

  • Ejecuta el programa y comprueba que todo va bien.
  • Para presentar este ejercicio deberás comprimir la carpeta Documentos/BASIC/4AVANZADO/04VectoresGrafico/ en un archivo zip con el nombre 04VectoresGrafico.zip.
  • Sube a la plataforma el archivo comprimido 04VectoresGrafico.zip en el que debe aparecer todo el contenido de la carpeta Documentos/BASIC/4AVANZADO/04VectoresGrafico/
   
Fuentes de información Sugerencias

Sería interesante que te guardaras en una memoria USB todo el contenido de la carpeta BASIC de tus documentos, para evitar que cualquier problema con el ordenador te haga perder tus ejercicios.

 
   
Creditos Créditos
Licencia de Creative Commons

Este documento es de dominio público bajo licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
TuInstitutoOnline.com M.Donoso, G.García, P.Gargallo, A.Martínez. v. 2.0.2.1.0

No se permite un uso comercial de la obra original ni de las posibles obras derivadas, la distribución de las cuales se debe hacer con una licencia igual a la que regula la obra original.

Los reconocimientos se realizan en el apartado Fuentes de información.

Los iconos empleados están protegidos por la licencia LGPL y se han obtenido de:
https://commons.wikimedia.org/wiki/Crystal_Clear
https://www.openclipart.org


Licencia de Creative Commons

Todas las capturas de pantalla tienen copyright y pertenecen a TuInsitutoOnline.com.

TuInstitutoOnline.com permite su uso siempre y cuando se muestren desde el dominio www.tuinstituoonline.com y NO PERMITE enlazar a ellas desde otros lugares.

Además, la estructura diseñada para mostrar el contenido de las unidades es propiedad de TuInstitutoOnline.com.

TuInstitutoOnline.com M.Donoso, G.García, P.Gargallo, A.Martínez. Versión 2021.