Ir al contenido

Arreglos

SL tiene tipos compuestos para trabajar con colecciones indexadas.

  • vector para una dimension.
  • matriz para dos dimensiones.
  • dim para asignar memoria cuando el arreglo es abierto.
const
MAX_ALUMNOS = 3
var
notas : vector [MAX_ALUMNOS] numerico
k : numerico
inicio
notas = {7, 8, 9}
desde k = 1 hasta MAX_ALUMNOS {
imprimir(notas[k]) // 7, luego 8, luego 9
}
fin

El ejemplo rust/examples/cap_5_1.sle usa un vector para leer notas, calcular un promedio y luego contar cuantas estan por debajo.

const
MAX_ALUMNOS = 3
var
notas : vector [MAX_ALUMNOS] numerico = {4, 6, 8}
suma_notas = 0
prom = 0
cnb = 0
k = 0
inicio
desde k = 1 hasta MAX_ALUMNOS {
suma_notas = suma_notas + notas[k]
}
prom = suma_notas / MAX_ALUMNOS
desde k = 1 hasta MAX_ALUMNOS {
si (notas[k] < prom) {
cnb = cnb + 1
}
}
imprimir(prom) // 6
imprimir(cnb) // 1
fin

La forma declarativa es directa:

var
tablero : matriz [3, 3] numerico
inicio
tablero[2][3] = 9
imprimir(tablero[2][3]) // 9
fin

dim() sirve para arreglos abiertos, cuando el tamano real se decide durante la ejecucion.

var
datos : vector [*] numerico
n : numerico
inicio
n = 3
dim(datos, n)
datos[1] = 10
datos[2] = 20
datos[3] = 30
imprimir(datos) // 10 20 30
fin