Tutorial – Principais funções Prisma

Unidade II – Biblioteca padrão

prisma_library

Introdução

 

Prisma, assim como outras linguagens, possui funções predefinidas, e que ficam organizadas em conjuntos chamados de biblioteca. Bibliotecas, também chamadas libs, podem ser internas ou externas.

As internas são as embutidas no interpretador Prisma, e por isso não precisam ser importadas com o comando ‘inclua’.

Todas as outras bibliotecas externas que precisam ser incluídas não são predefinidas, portanto é necessário carregá-las na execução do programa prisma.

Bibliotecas são importantes pois potencializam o poder da linguagem, é com suas funções que é possível escrever programas mais complexos.

Aqui serão tratadas o conjunto de biblioteca padrão, isto é, somente as internas, são elas:

base, string, mat, sis, es, tabela

A biblioteca “win” com funções da api do Windows fica em um tutorial separado, clique aqui para acessar.


Cap. 1 – Funções da biblioteca base

 

São as funções simples tais como a imprima( ) ; tipo ( ) entre outras. Elas não seguem o modelo das demais que usam o nome da biblioteca e o ponto separando o método.

Veja as funções e seus exemplos de uso:

 imprima ( … )

Exibe na tela preta do cmd no Windows ou terminal no Linux  texto ou números. Podemos passar vários argumentos de uma só vez separados por vírgulas;

  ex.:

Note que com a barra invertida ‘\’ é possível passar o código e a saída será o caractere correspondente ao código numérico

Note também que \n  faz a impressão ir para linha seguinte.

 

leia ( )

Uma versão simples do es.leia( ) (que trataremos adiante), a função leia aguarda o usuário digitar algo e retorna o que foi digitado, podendo ser armazenado em uma variável do seguinte modo:

             tipo ( valor )

Esta função retorna uma string descrevendo o tipo de valor. Muito útil para sabermos qual tipo de variável é um dado. Valor pode ser uma variável ou diretamente um valor. Exemplos de uso:

 


Aproveitando aqui veja algumas variáveis predefinidas importantes:

 

 * _versao – variável que guarda a versão de prisma, tente executar: imprima( _versao );

 * prismadir – variável que guarda o diretório do executável prisma: imprima ( prismadir );

OBS – prismadir não funciona no Linux se o interpretador estiver no diretório bin.

 * args –  é uma tabela dos argumentos externos passados como parâmetros em linha de comando:


Voltando para as funções da biblioteca base

  poe ( string )

   Vêm do verbo pôr (poe, inglês = put ), coloca na tela preta o resultado, é o mesmo que a função imprima, mas com limitações, não aceita por exemplo mais de um argumento, é bom para strings apenas. Ex.:

       executestring( string )

Executa um trecho de comando em uma string em tempo de execução, retorna zero caso tenha sucesso ou 1 caso falhe.

Muito útil quando você quer que seu programa leia e interprete comandos. Exemplo:

Dica: cuidado com as aspas, se a string a ser executada possui apas internamente você tem algumas opções:

1 – Usar aspas simples internamente, e duplas externamente ou o inverso, como no exemplo acima;

2 – Usar o mesmo tipo de aspas. Mas as internas devem ser antecedidas por barra oblíqua: \” ou \’ ex.:

 

Ou

3 – Usar duplos colchetes:

Como o argumento é uma única string podemos omitir o parênteses da função como fazemos desde o início com a função inclua. Ficando assim:  executestring “seu_comando_aqui” .


      executearquivo ( “caminho_do_arquivo.prisma” )

   Semelhante ao comando executestring, mas ao invés de executar uma string, executa um programa prisma, que pode estar compilado ou não.

 Muito útil quando seu programa tem vários subprogramas separados, sendo chamados pelo programa principal.

Esta função, executearquivo, em caso de haver erro no programa executado, simplesmente trava a execução do programa principal, fechando-o e imprimindo mensagem de erro na tela cmd (no Linux terminal).

Se o programa prisma a ser executado estiver na mesma pasta que o programa principal, não é necessário usar o caminho completo, caso contrário sim.

           ex.:

obs   Obs. Lembre-se que o nome do arquivo a ser executado deve ser escrito com a extensão.

                      Lembre-se de que no Windows as barras devem ser duplas, ex:

Ou use duplos colchetes:

Já no Línux não é necessário, pois as barras de endereço são assim:  /

   carregue ( string )

                 Semelhante a função executestring com a diferença de que esta carrega a string e retorna uma função dela para uma variável. Ex:

      Se houver erros o primeiro retorno é nulo e o segundo é uma string descrevendo o erro.

Ex.:

 

 carreguearquivo ( “programa.prisma” )

         Similar à função carregue, no entanto, esta carrega um arquivo fonte prisma ou programa compilado prisma em uma função que ao ser executada executa o programa carregado. Exemplo:

 Esta função, ao contrário da executearquivo, dá a possibilidade de fazer um tratamento de erro:

  convnumero( string )

  Converte uma string para número. Exemplo:

     convstring ( numero )

Faz o contrário da função anterior, converte um número para string.

    tente ( comando , ‘mensagem erro’);

Esta função verifica um valor e retorna um mensagem de erro caso esse valor seja falso ou nulo, ou o próprio valor caso ele seja válido.

 Sua sintaxe é :    x  = tente (    valor , String_erro );

Esta função é ótima para testar abertura de arquivos. Veja seu uso:

Outro exemplo de uso com a função que abre arquivo em Prisma:

 cod ( ‘Car’ )

Esta função converte um caractere para sua representação em bytes (número), há uma certa correspondência ao número de cada tecla do teclado.

Exemplo:

No exemplo, podemos observar que esta função converte a letra ‘A’ para o número 65.

E todos os caracteres de “tangerina” na variável a.

Obs.: O nome da função ‘cod’ faz referência a código (‘codifique’);

car ( cod )

Esta função converte de codigo para caractere, ou seja, o parâmetro é um número que será convertido para caractere.

Ex.:

compile( função )

Esta função converte uma função prisma em byte-code em tempo de execução retornando em forma de string codificada, é possível gravar em arquivo o resultado e chamá-lo posteriormente com os comandos inclua, carreguearquivo ou executearquivo.

ex.:

Não precisa necessariamente declarar a função antes, pode passar a função sem nomeá-la, isto é chamado de função anônima:

ex.2:

No próximo exemplo vou demonstrar como gravar em um arquivo e depois executar o arquivo:

ex.3:

Você pode usar em combinação com a função carreguearquivo e compilar um arquivo, veja:


 pchame ( funcao, argumentos )

 

Chama (executa) uma função em modo protegido, isto é, se a função contiver erros a mesma não interfere na execução do programa principal. Ela retorna dois valores, o primeiro é um boolean (falso ou verdadeiro)  e o segundo é a mensagem de erro caso tenha.

Caso haja um erro a função não é executada e o primeiro retorno é um falso seguido pela mensagem de erro se não tiver erro a função é executada, o primeiro retorno é verdadeiro e o segundo é o valor de retorno da função se houver, veja:

O primeiro parâmetro é a função a ser chamada e do segundo em diante são seus argumentos se tiver.


xpchame(  funcao , funcao_erro , argumentos … )

 

Muito semelhante a de cima, mas com uma função de erro customizada, veja:

selecione(  [‘#’ ou inteiro]  ,  args …  )

 

Essa função realiza uma seleção entre vários argumentos passados como parâmetro, ou se usar o ‘#’ retorna o número de argumentos.

sintaxe:    selecione (   tipo , args ); //onde tipo pode ser ‘#’ ou um número inteiro.

ex.:

No exemplo acima retorna o número de argumentos variados, pois usamos o tipo ‘#’ como primeiro parâmetro para selecione;

Podemos usar um número inteiro e definir o retorno a partir dessa posição para frente dos argumentos passados:

Saída será:   voce escolher a partir do argumento       3           56     78   90

Perceba que ao usar o 3 como primeiro parâmetro da função selecione, ela retorna os elementos a partir do terceiro, se usássemos o 4 seria a partir do quarto, se 5 a partir do quinto, se 2 a partir do segundo e assim por diante.


Cap. 2 – Funções da biblioteca string

 

Muito importante para o processamento de strings como procurar, recortar, substituir trecho de string por outra, etc.

string.cod / string.byte

A mesma função com nomes diferentes, use a forma que preferir.

    Relembre a função cod, é exatamente a mesma função empacotada na biblioteca string. Ela converte um caractere para sua representação em bytes, veja:

Aceita dois parâmetros, o primeiro é o caractere ou string, o segundo é o número que indica na sequência qual caractere da string a ser convertido. Quando o segundo parâmetro é omitido, o primeiro caractere da string é o padrão.


string.car

 

          exatamente a mesma função car vista na biblioteca base, use qual preferir

Converte o código numérico (ASCII) em caractere;

Aceita número variado de parâmetros separados por vírgula e retorna a string formada por eles, ou caractere se for único.

sintaxe:   <span style="font-size: small;">s = string.car (n1, n2, n3, ...)</span>


Descrição:

Recebe 0 ou mais números e converte todos em caracteres correspondentes. É o oposto da função string.byte / string.cod

string.compile

Exatamente a mesma função que vimos na base: compile, use o modo que preferir.

Converte uma função em binário (byte-codes);

Sintaxe:    <span style="font-size: small;">s = string.compile ( f )</span>


Descrição:

Converte uma função f em sua representação binária, que pode ser posteriormente processada com a função carregue( ).

Como a função compile foi bem tratada na biblioteca base, aqui só vou demonstrar um simples exemplo.

Ex.:

string.procure

Procura uma ‘string’ chave em uma string maior retornado sua posição:

sintaxe:    string.procure( “string maior” , “chave” , número_inicio );

 string maior é a string onde queremos procurar a string chave;

chave é a string a ser encontrada na maior;

número_inicio é a posição inicial para começar a procurar na string maior, se omitido, seu valor padrão é 1;

Ex.:

Há dois retornos, o primeiro é a posição inicial da string localizada, o segundo é a posição final, portanto precisamos usar duas variáveis para receber os valores.

Como dito antes o terceiro parâmetro, índice de posição inicial de busca, é opcional, e por padrão é 1, isto é a busca inicia pelo primeiro caractere da string.

Mas, as vezes você pode querer procurar por mais resultados da mesma chave de busca, e para isso o terceiro parâmetro é indispensável. A estratégia é guardar a posição do primeiro resultado de busca e por meio de um laço de repetição reiniciar a busca do ponto posterior ao último resultado, veja:

É possível usar patterns de busca ( caracteres especiais de busca).

Localizando uma string entre aspas, parenteses e chaves:

string.formate

Esta função serve para formatar strings por meio de caracteres de formatação, muito semelhante ao sprintf do C.

   Sintaxe:  retorno = string.formate( “String_formatacao” , args , … );

Exemplo básico:

Perceba que a saída é a primeira string mas no lugar do %s é posto o segundo argumento “Mundo”.

O %s é um exemplo de caractere de formatação para strings.

Número variado de argumentos

Note que poderá ser muito mais do que dois argumentos de formatação.

obs  Obs.: para cada argumento de formatação deve haver um caractere de formatação respectivo(na mesma sequência).

Outros caracteres de formatação e exemplos:


  •  

Veja os exemplos de uso a seguir:

string.troque

Sintaxe:  retorno1 , retorno2 = string.troque( “stringOriginal” , “string_pesquisada” , “troca” [ , numero_trocas])

Um recurso muito útil quando você quer trocar uma string por outra dentro de uma maior. Um quarto parâmetro opcional limita a quantidade de substituições. Veja que retorno 1 é a string original já trocada, e retorno2 é o numero de trocas feitas.

Ex.:

Observe que a função procura a string ‘Mundo’ dentro da primeira string, caso a localize, a substituição é feita por “Prisma”.

Outros exemplos:

Podemos usar caracteres especias para troca:

entendendo Você pode estar um pouco confuso sobre os ‘patterns’ (caracteres especiais para troca),

lembre-se de que o segundo argumento é para pesquisa e o terceiro para troca:

“(an)” = onde encontrar ‘an’ na string original ocorrerá a troca;

‘%1-‘ =  %1 simboliza o argumento de pesquisa, o primeiro entre parênteses seguido pelo – ; logo a troca será an-

‘a(n)’ = todo ‘an’ para pesquisa sendo o ‘n’ capturado para usar como %1 na troca;

‘a(%1)’ = a troca será por a + ‘n’ simbolizado por %1

‘(a)(n)’ = an para pesquisa, na troca o a será = %1 e o n = %2

Trocando toda palavra válida por ela mesma entre sinais:  (ex.:  ola por <ola> ou “ola”)

string.capte

 sintaxe: iterador = string.capte( string , ‘chave’ )

Esta função retorna um iterador de busca por chave. O iterador procurará através da string passada buscas por resultados da chave passada. Observe que é passado um iterador que pode ser usado com a função ‘para’, ex. :

o pattern (a chave) %a+ representa qualquer sequência de letra válida exceto números e sinais;

Tente modificar o programa acima substituindo “%a+”  por  “%d+”   ou “%w+” e veja os resultados.

string.tamanho

Retorna o tamanho de uma string, sintaxe: retorno(número) = string.tamanho( ‘string’).

Ex.:

string.maiuscula

Retorna uma string que está em minúscula no formato maiúscula.

Sintaxe:    retorno(STRING) = string.maiuscula(‘string’)

Ex.:

Obs.: caso já tenha alguma letra em maiúscula, nada é feito.

string.minuscula

Retorna uma string que está em maiúscula para minúscula.

Ex.:

Obs.: caso já tenha alguma letra em minúscula, nada é feito.

string.nconcat

Retorna uma string concatenada n vezes. Sintaxe:    retorno = string.nconcat( “string” , numero_concat ).

Ex.:

              string.inverta

Retorna uma string com ordem das letras invertidas. Sintaxe:   retorno = string.inverta(“string”);

Ex.:

string.sub

 (ou se preferir: string.corte)

Retorna uma substring de uma maior.  Sintaxe:   retorno = string.sub( “string_origial” , inicio , fim );

Onde inicio e fim são números, sendo 1 o início da string.

Números negativos representam do fim para o início, -1 é o último caractere.

Ex.:

Caso o segundo argumento seja omitido, então o valor padrão é o último caractere da string.


 

Cap. 3 funções do sistema operacional

 

Esta biblioteca permite a comunicação com algumas funções do sistema operacional, tais como data, horário, execute, etc.

Resultado de imagem para operating system images

Todos os métodos ficam guardados na tabela ‘sis’:

sis.relogio()

Retorna o tempo da CPU desde o início da execução de Prisma, em segundos.

sis.data()

Retorna informações sobre data e horários. Sintaxe: sis.data(formatacao/opções);

ex.:   imprimindo a data sem formatação, o resultado depende do sistema operacional:

exemplo formatado: ( %d = dia, %m = mês, %Y = ano)

Retornando uma tabela (‘*t’)

No exemplo logo acima, o argumento “*t” força o retorno de uma tabela.

Qualquer nome que escolher como retorno conterá os campos:

sis.diftempo()

Retorna a diferença de tempo entre t2 e t1

ex.:

sis.execute()

Execute um comando de terminal do sistema operacional, semelhante ao system() do C:

É possível chamar programas externos:

retorna verdadeiro exit 0  em caso de sucesso ou nulo exit: cod_erro em caso de falha

sis.saia()

Fecha a execução do programa e devolve um número de retorno para o sistema operacional:

sis.obtvarambiente()

Retorna o valor de uma variável de ambiente se ela estiver definida:

sis.remova()

Remove um arquivo, retorna verdadeiro caso tenha sucesso ou nulo msg_erro em caso de falha:

Cuidado, o arquivo é apagado definitivamente, não vai para a lixeira.

sis.renomeie()

Renomeia um arquivo, retorna verdadeiro ou falso + msg_erro;

sis.nometmp( );

Sintaxe:      nome = sis.nometmp();

Retorna um nome aleatório para ser usado como arquivo temporário. O retorno depende do sistema:

Saída no Linux Ubuntu 14.04 = /tmp/prisma_yShId3

Windows Xp =   \s1fo.

Você pode acrescentar extensões se quiser usando o operador de concatenar strings o “..”:

saída provável:   linux =     /tmp/prisma_yShId3.ext

no Windows =   \s1fo..ext   //no windows basta usar ‘ext’ ao invés de ‘.ext’ para não duplicar o ponto

OBS.: Note que esse comando apenas gera uma string não um arquivo, você teria que usar a função es.abra e passar o nome temporário gerado para ela.

sis.deflocal(  local [, tipo ] )

Define o idioma (local) atual do programa.

sintaxe:    sis.deflocal(  local [, tipo ] )

Em que local é o idioma a ser aplicado, a string idioma depende do sistema operacional;

Se o primeiro e segundo parâmetros forem omitidos, então o retorno é o idioma já definido:

//saída no Windows XP    =  Portuguese_Brazil.1252

Se quiséssemos definir o idioma seria :

no Win :

Note que se o segundo parâmetro for evitado a definição do idioma é geral, mas podemos escolher o que mudar, por exemplo, se quiséssemos mudar somente os caracteres:

Eis abaixo as opções disponíveis.

OBS.: eu deixei em inglês mesmo para não haver confusão, visto que é fácil. No entanto, caso não se acostume copie o código abaixo em seu programa e use as variáveis personalizadas a seu gosto:

use assim:

sis.durma(  milissegundos )

(Disponível em prisma a partir de prisma-1.0.91x – data 01-06-2015 )

Pausa a execução do programa por um tempo determinado em milissegundos

ex.:

Cap. 4 funções de entrada e saída padrão ‘es’

 

Hopstarter-Sleek-Xp-Basic-Filesicos2Hopstarter-Sleek-Xp-Basic-Filesicos

Essa biblioteca providencia funções para abrir e manipular arquivos, escrever, ler;

es.escreva(‘strings’ , … );

Esta função escreve na tela preta do terminal no Linux ou cmd no Windows. Semelhante ao comando imprima() com a diferença de que este não pula linhas. Ex:

Saída = Ola Mundo Em Prisma

Se tivéssemos usado o imprima, sairia assim:

Ola Mundo

Em Prisma 

Obs.: es.escreva aceita vários argumentos, ex.:

es.leia ( );

é o mesmo que leia()

Esta função é usada para ler dados digitados pelo usuário, ou os dados de um arquivo;

O segundo uso veremos adiante, agora veja como ler do teclado:

LENDO E ESCREVENDO EM ARQUIVOS

 


Primeiro modo:

 es.saida( )

Abre um arquivo de saida padrão para escrita, ex.:

//vá até a pasta disco C:\ e abra o arquivo criado ‘nomearquivo.txt’ em um editor de sua preferência e veja as linhas gravadas.

es.entrada( )

Esta função abre um arquivo de entrada padrão para leitura:

es.linhas( )

Essa função retorna um iterador para usar com o comando ‘para’, percorrendo todas as linhas de um arquivo:

ex.:

No exemplo acima, será impressa cada linha do arquivo. Se preferir pode armazenar em uma variável string ou tabela.:

es.feche( )

Fecha um arquivo padrão aberto:


LENDO E ESCREVENDO EM ARQUIVOS

 

Segundo modo:

 

es.abra( )

 

Sintaxe:  objeto_arquivo =  es.abra( ‘nomearquivo’ , ‘modo’) ;

em que nome arquivo é o caminho absoluto ou o relativo do arquivo, e modo pode ser:

‘leitura’   —   para ler um arquivo

‘escrita’ — para escrever no arquivo, apagando o conteúdo original

‘leiturabin’ — leitura binária

‘escritabin’  — escrita binária, apaga o conteúdo original

‘adicao’  —   escreve no final do arquivo, não apaga o conteúdo original

ex.:

Escrevendo

Note que neste caso criamos uma variável que herda os métodos escreva e feche;

OBS.: não esqueça de usar os dois pontos para acessar os métodos do objeto aberto.

Lendo

Adicionando

Semelhante ao modo ‘escrita’ com a diferença que esse adiciona no fim do arquivo a gravação, e não apaga o conteúdo original.

 


 

Cap. 5 funções da biblioteca mat – trigonometria e aritmética

 

 

trigonometria

Suas funções ficam na tabela ‘mat’

Muito importante para realizar operações trigonométricas e aritméticas, como obter o arco tangente, o co-seno, exponenciação, absoluto, módulo(resto), raiz quadrada etc.

Vamos começar então!

 mat.absoluto(  n );

Retorna o valor absoluto de n. Veja:

Não quero aprofundar em matemática, portanto somente farei a descrição da sintaxe e retorno das funções, ok!

mat.arcocosseno( n )

Retorna o arco cosseno de n (em radianos);

ex.:

mat.arcoseno( n )

Retorna o arco seno de n (em radianos);

Ex.:

mat.arcotangente( n )

Retorna o arco tangente de n (em radianos);

mat.arcotangente2( n1 , n2 )

Retorna o arco tangente de n1/n2 (em radianos), no entanto, utiliza o sinal dos dois parâmetros para achar o quadrante do resultado. (Também trata corretamente o caso de x ser zero.)

mat.arredonde ( n )

Retorna o n caso seja inteiro, ou arredonda para mais caso seja fracionário. Veja:

mat.cosseno ( n )

Retorna o cosseno de n ( n deve estar em radianos).

mat.cossenoh ( n )

Retorna o cosseno hiperbólico de n.

mat.emGrau ( r )

Converte r que está em radianos para graus.

mat.exp ( n )

Retorna o número de euler elevado a n (e^n). Euler e um número irracional, aproximadamente é 2,718281828459045, ou, às vezes apenas 2,718281828459).
O número de Euler é comum ser chamado de e.

mat.corte ( n )

Arredonta por baixo, se 2.5, por exemplo, será 2, ou quando o número for inteiro retorna o próprio número.

mat.cmodulo ( n1 , n2 )

Retorna o resto da divisão de n1 por n2 que arredonda o quociente em direção a zero.

mat.frexp ( n )

Retorna me tais que n = m2^ee é um inteiro e o valor absoluto de m está no intervalo [0.5, 1) (ou zero quando x é zero).

mat.infinito

Na verdade não é uma função é um dado que representa o valor de HUGE_VAL, um valor maior ou igual a qualquer outro valor numérico.

mat.ldexp( m , e )

Retorna m2^e (m vezes 2 evevado a e. e deve ser um inteiro).

O inverso de mat.frexp(n).

mat.log( n )

Retorna o logaritmo natural de n. Isto é, retorna a potência em que o número de Euler (2,718281828459045) precisa estar elevado para que resulte no seu logaritmo.

mat.log10( n )

Retorna o logaritmo base-10 de n. Ou seja, retorna o valor que dez precisa ser elevado para dar n.

mat.maximo( … )

Retorna o valor máximo entre os seus argumentos.

mat.minimo( … )

Retorna o valor mínimo entre os seus argumentos.

mat.separe( n )

O retorno é duplo, considerando n um número fracionário (1.5 por exemplo), serão retornadas a parte integral de n (1) e a parte fracionária de n (0.5).

mat.pi

Não é função, representa o valor de pi:

mat.elevado( n1 , n2 )

Retorna n1^n2 (n1 elevado a n2 ). Esta operação é possível com o sinal de ^ assim como se pode somar n1+n2 direto em prisma, pode-se usar n1^n2 diretamente.

rad = mat.emRadianos( graus )

Converte de graus para radianos:

mat.randonico( inicial ,  final )

Retorna um inteiro pseudo-aleatório no intervalo inicial e final.

Se omitido os parâmetros inicial e final, o retorno é um aleatório entre 0 e 1;

Se passarmos apenas um argumento, o retorno será um aleatório entre 1 até o argumento passado.

mat.xrandonico( n )

Define um número gerador pseudo-randônico. Gerador igual produz sequências iguais:

Um ótimo recurso para criar um gerador é a função sis.tempo():

mat.seno( n )

Retorna o seno de n ( n  deve estar em radianos).

mat.senoh( n )

Retorna o seno hiperbólico de n.

mat.raizquad ( n )

Retorna a raiz quadrada de n.

A mesma operação pode ser feita com o ^(1/2)

Raiz cúbica:

Raiz quártica, e assim  por diante:

mat.raiz ( n , z )

Retorna a raiz de índice ‘z’ de n:

mat.tangente ( n )

Retorna a tangente de n  ( n deve estar em radianos).

mat.tangenteh ( n )

Retorna a tangente hiperbólica de n.


Cap. 6 Funções da biblioteca tabela

 

Tabela é um poderoso recurso de manipulação e descrição de dados em Prisma. Com ela é possível fazer uma simples matriz como em C, ou até mesmo algo mais complexo e de forma simples como um registro.

Tabelas em Prisma não precisam ser declaradas com tamanho fixo, são dinâmicas e flexíveis sempre aceitando mais um elemento. Ex:

 

A biblioteca tabela oferece facilidades para manipular esse tipo de dado. Seus métodos estão contidos no nome “tabela.”

tabela.concat( tabela [,sep [ , inicial [ , final ]]] )

Concatena ( une ) os elementos da tabela.

Omitindo os demais parâmetros:

Usando os demais parâmetros:

 

tabela.ordene( tabela );

Coloca os índices em ordem crescente:

A ordenação da tabela pode ser customizada por uma função como segundo parâmetro, esta função deve retornar um valor boolean ( verdadeiro ou falso ). O retorno padrão é a<b, veja:

ou defina  a>b para ordenar em decrescente:

tabela.insira (tabela , [pos,] valor );

Insere um valor em uma tabela. Se uma posição for dada,  o valor é inserido no lugar do valor atual que sobe uma posição no índice:

Se a posição não for especificada, o novo valor é inserido no fim da tabela

Quando um novo valor é inserido em uma tabela, ela atualiza o tamanho e a sequência dos elementos:

tabela.remova(tabela [, pos])

Remove um elemento da tabela na posição definida e retorna o elemento removido.  Se a posição não for definida o padrão é o último elemento:

tabela.maxn( tabela );

Retorna o número de elementos da tabela:

ou use #t

tabela.empacote( … );

Transforma o número variável de argumentos ‘…’ em tabela, passando o retorno a uma variável.

tabela.desempacote( tabela );

O inverso da função anterior, transforma uma tabela em argumentos variados

 

 

FIM

 

Bom, espero que tenha sido útil. Qualquer dúvida poste nos comentários, ou no fórum.

Valeu, até logo.

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *