NPortugol

Linguagem de Script para .NET/Mono.

View the Project on GitHub ricardoborges/NPortugol

Regras de Sintaxe.

Funções.

O mesmo script pode conter a declaração de uma ou mais funções. O script pode ser executado através da função 'principal' que não precisa retorno de valor, ou uma função especificada, neste caso obrigando retorno de valor.



função principal()
    
    variável valor
    
    valor = fatorial(10)
fim

função fatorial(x) 

        se x == 0 retorne 1 fim 

        retorne fatorial(x - 1) * x 
fim 


Variáveis.

A declaração de variáveis pode ser feita em qualquer lugar dentro da função. Sempre terá escopo local e o tipo será determinado em tempo de execução.


variável nome, idade, flag, aniversario, valor

nome = "Brasil"     // cadeira de caracteres

idade = 500         // Número

flag = falso        // Booleano

aniversario = data("01/01/2014") // Data

valor = 100.50      // Decimal


Bloco de repetição PARA-ATÉ

Este bloco de repetição permite definir a ordem incremental da variável utilizada. Por padrão, será crescente ou pode ser modificada através da palavra reservada DECRESCENTE após o valor limite.


variável i

para i = 0 até 10
   imprima(i)
fim

para i = 10 até 0 decrescente
   imprima(i)
fim

Bloco de repetição REPITA-ATÉ

O bloco REPITA testa a validade de uma expressão lógica no comando final ATÉ.


variável i

repita
    
    imprima(i)
    
    i = i + 1
    
até i <= 10

Bloco de repetição ENQUANTO

A estrutura ENQUANTO primeiramente testa a validade de uma expressão lógica para execução das sentenças declaradas.


variável i

enquanto i <= 10
    
    imprima(i)
    
    i = i + 1
    
fim

Bloco de condição SE-SENÃO

A condição SE pode ser declarada com ou sem o caminho alternativo SENÃO.


se x == 0

   retorne falso
fim


se y != 0

   retorne falso
senão

   retorne verdadeiro
fim

Bloco de Seleção

A estrutura selecione permite escolher um caminho alternativo do fluxo de execução testando caso a caso o valor da variável apontada no comando 'selecione'.



selecione x

   caso 1: nome = "Segunda" fim

   caso 2: nome = "Terça" fim

   caso 3: 
   
       nome = "Quarta" 
   fim

fim


Vetores

Uma variável do tipo vetor é declarada normalmente como as demais. Porém, a inicialização dispõe de alguns recursos para tornar mais ágil a definição de elementos. Estes recursos permitem inicializar uma sequência numérica ou um conjunto de elementos.


variável conj, seq, indice

conj = { 10; 5; 4; 2 } // Inicializa conjunto de elementos.

seq = [ 0 .. 100 ] // Inicializa uma sequencia numérica.

indice[0] = 10; // Cria elemento a elemento.
indice[1] = 20;
indice[2] = 30;

Expressões Aritméticas

As expressões aritméticas podem incluir as operações básicas soma +, multiplicação *, divisão /, subtração -, potência ^, resto da divisão %, parenteses, variáveis, valores literais e chamadas de função.


variável a, b, total


soma = a + b

multiplicacao = a * b

divisao = a / b

potencia = a ^ b

restoDaDivisao = a % b

expressao = (a + b) * (b / fat(a))


Expressões Lógicas

Expressões lógicas são compostas pelos operadores lógicos menor <, menor ou igual <=, maior >, maior ou igual >=, igualdade ==, diferença !=, e, ou.



se x < 10 

se testa(a) ou testa(b)


keyboard-centric bug tracker continuous integration server