REDIM
Sintaxe:
REDIM (name, size)
Redimensiona a matriz name ou vetor especificados de acordo com o tamanho size . Para uma matriz, o tamanho é uma lista de dois números inteiros (n1,n2). Para um vetor, o tamanho é uma lista que contém um número inteiro (n). Os valores existentes na matriz são conservados. Os valores de preenchimento serão 0.
Exemplo de redimensionamento de Matriz
LOCAL printMatriz(matriz)
BEGIN
LOCAL out, i, j;
LOCAL dimensao = SIZE(matriz);
FOR i FROM 1 TO dimensao(1) DO
out := "";
FOR j FROM 1 TO dimensao(2) DO
out := out + matriz(i,j) + " " ;
END;
PRINT(out);
END;
END;
EXPORT Matriz()
BEGIN
PRINT();
LOCAL matriz := [[1,2, 3], [4, 5, 6], [7, 8, 9]];
PRINT("Antes de redimensionar");
printMatriz(matriz);
REDIM(matriz, {2, 3});
PRINT("Reduzindo o tamanho da matriz");
printMatriz(matriz);
REDIM(matriz, {3, 4});
PRINT("Aumentando o tamanho da matriz");
printMatriz(matriz);
END;
O resultado:
REPLACE
Sintaxe:
REPLACE(name, start, object)
Substitui parte de uma matriz ou vetor guardados em name com um object a partir da posição start. Início para uma matriz é uma lista que contém dois números. Para um vetor, é um único número. REPLACE também funciona com listas, gráficos e strings.
Exemplo de uso do REPLACE
Veja que no caso do REPLACE, a matriz que foi passada como parâmentro não é alterada, uma nova matriz com as mudanças é gerada.
LOCAL printMatriz(matriz)
BEGIN
LOCAL out, i, j;
LOCAL dimensao = SIZE(matriz);
FOR i FROM 1 TO dimensao(1) DO
out := "";
FOR j FROM 1 TO dimensao(2) DO
out := out + matriz(i,j) + " " ;
END;
PRINT(out);
END;
END;
EXPORT Matriz()
BEGIN
PRINT();
LOCAL matriz := [[1,2, 3], [4, 5, 6], [7, 8, 9]];
PRINT("Antes de substituir");
printMatriz(matriz);
LOCAL resultado := REPLACE(matriz, {2, 1}, [1, 1, 1]);
PRINT("Substituindo uma linha toda");
printMatriz(resultado);
LOCAL resultado := REPLACE(matriz, {3, 1}, [3, 3]);
PRINT("Substituindo dois elementos");
printMatriz(resultado);
END;
O resultado:
SUB
Sintaxe:
SUB(name, start, end)
Extrai um sub-objeto – parte de uma lista, de uma matriz ou de um gráfico – e guarda-o em name. start e end são, cada um, especificados através de uma lista com dois números para uma matriz, um número para um vetor ou lista ou um par ordenado (X,Y) para gráficos: SUB(M1{1,2},{2,2})