Para quem programa em outras linguagens, a coisa mais importante para lembrar é que para atribuir um valor a uma variável deve-se utilizar a combinação de sinais “:=” ou a tecla (sentido oposto)
Exemplo:
valor := 6;
ou
6 valor

Comandos de Entrada

INPUT

O comando INPUT permite a criação de diversas formas de entrada de dados: campos numéricos, caixas de seleção e caixas de checagem. A possibilidade de personalização do comandos é grande podendo chegar ao nível de limitar o tipo de dado de entrada e a posição da entrada na tela.

INPUT simples

Para a entrada de um valor numéricos o comando INPUT é apresentado a rotina a seguir:
EXPORT Entrada01()
BEGIN
    LOCAL x;
    INPUT(x);
    MSGBOX(x);
END;
E o resultado:

INPUT com vários argumentos

O comando INPUT pode ter outros argumentos, conforme pode ser observado na forma de sua sintaxe:
INPUT(var,["title"],["label"],["help"], [reset_value], [initial_value])
Onde:
  • var: é o nome da variável que será armazenado o valor digitado
  • title: Define o título do campo de entrada
  • label: Esse rótulo será apresentado ao lado do campo de entrada da variável
  • help: é a mensagem que aparece na parte inferior da tela e serve para indicar ao usuário algum recado.
  • reset_value: valor que será atribuído ao resetar o input
  • initial_value: valor inicial que aparecerá no campo de entrada.
Veja um exemplo:
EXPORT Entrada01()
BEGIN
    LOCAL x;
    INPUT(x, "Entrada de valores","Valor de x","Esse valor será apresentado na tela", 2, 1);
    MSGBOX(x);
END;
E a tela resultante:

INPUT com várias variáveis

Podemos incluir a entrada de mais campos no mesmo INPUT, para isso as variáveis devem ser passadas dentro de chaves (“{}”). Note a diferença no comando INPUT:
EXPORT Entrada01()
BEGIN
    LOCAL x, y;
    INPUT({x, y});
    MSGBOX("Valor de x: " + x + ", valor de y:" + y);
END;
Observe que no comando MSGBOX, foi adicionado campos a mais, isso foi feito para que os dois valores sejam impressos na mesma linha. O comando MSGBOX será detalhado posteriormente.
A tela resultante:



Essa forma de entrada pode ser alterada para incluir mais campos (ainda não descobri qual o limite).

INPUT com várias variáveis e argumentos

Da mesma forma que se pode personalizar o comando INPUT, podemos fazer nesse caso, veja a sintaxe:
INPUT({vars},[“title”],[{“labels”}], [{“help”}], [{reset_values}], [{initial_values}])
Com exceção do campo Title, todos os outros campos devem ter a quantidade de valores dentro da chave referente ao número de variáveis.
EXPORT Entrada01()
BEGIN
    LOCAL x, y;
    INPUT({x, y}, "Entrada de valores", {"Valor de x", "Valor de y"} , {"Help do X","Help do Y"} , {2,3}, {4, 5});
    MSGBOX("Valor de x: " + x + ", valor de y:" + y);
END;
E a tela resultante:

Os argumento do Help serão apresentados conforme o foco da caixa, quando se clicar na caixa do Y, é que será apresentado o Help correspondente.

Configurando o tipo de dados da caixa de entrada

Para o tipo de entrada visto, podemos forçar o usuário a digitar um ou mais tipos de entrada de dados. A sintaxe do comando ficaria assim:
INPUT({var,[ types allowed]});
Onde types allowed: pode ser 1 ou mais números que especificam os tipos de dados aceitos.

Alguns tipos:

Valor Significado
-1 Todos os tipos
0 Números reais
1 Inteiros
2 String
3 Números complexos
4 Matrizes
6 Listas
8 Funções
9 Números com unidades
14 Objetos Cas
Veja um exemplo:
EXPORT Entrada01()
BEGIN
    LOCAL x;
    INPUT({{x, [0, 1]}});
    MSGBOX(x);
END;
Nesse código, foi configurado para que fosse permitido apenas valores reais (0) e inteiros(1).

Veja o que acontece quando se digita uma lista:


Ou uma string:


Agora modificamos o programa para aceitar Listas ou String:
EXPORT Entrada01()
BEGIN
    LOCAL x;
    INPUT({{x, [2, 6]}});
    MSGBOX(x);
END;
O qual passa a aceitar String e listas:


INPUT de caixa de seleção.

Para a entrada de uma lista de seleção, partimos do comando INPUT em sua forma simples:
INPUT({{var, {choice0, choice1, choice2...}}})
Um exemplo:
EXPORT Entrada01()
BEGIN
    LOCAL op;
    INPUT ({{op, {"Opção 1", "Opção 2", "Opção 3"}}});
    MSGBOX("Opção escolhida: " + op);
END;
Permitindo a escolha entre as 3 opções:

O resultado apresentado pelo comando MSGBOX será o número referente a posição escolhida, começando a lista com o valor 1.

INPUT de caixa de seleção com argumentos

Podemos configurar os argumentos da caixa de seleção também, a sintaxe é semelhante ao já visto, porém muda apenas o formato da variável:
INPUT({{var,{choice0,choice1,choice2...}}},["title"],["label"],["help"],[reset_value],[initial_value])
E um exemplo:
EXPORT Entrada01()
BEGIN
    LOCAL op;
    INPUT ({{op, {"Opção 1", "Opção 2", "Opção 3"}}}, "Caixa de opção","Escolha:", "Selecione a opção", 1, 2);
    MSGBOX("Opção escolhida: " + op);
END;
Irá apresentar a seguinte tela:

Perceba que o valor correspondente ao initial_value será a opção padrão ao aparecer a caixa de seleção, no nosso caso, o valor 2 implicará na 2ª opção.

INPUT com várias caixas de seleção

Assim como fizermos com as caixas de entrada, também podemos ter várias opções de entrada, o maior cuidado deve ser ao se encadear as chaves:
EXPORT Entrada01()
BEGIN
    LOCAL op1, op2;
    INPUT ({ {op1, {"Banana", "Maça", "Laranja"}}, {op2, {"Arroz", "Feijão", "Macarrão"}} });
    MSGBOX("Opção 1: " + op1+", opção 2: " + op2);
END;
E o resultado:


INPUT com várias caixas de seleção e argumentos

Nesse exemplo, será apresentado a criação de um input com múltiplos campos e com as configurações de campos:
EXPORT Entrada01()
BEGIN
    LOCAL op1, op2;

    INPUT ({{op1, {"Banana", "Maça", "Laranja"}}, {op2, {"Arroz", "Feijão", "Macarrão"}} }, "Alimentação", {"Fruta:", "Alimento:"}, {"Selecione a fruta", "Selecione o alimento"}, {1, 1}, {2, 3});

    MSGBOX("Opção 1: " + op1+", opção 2: " + op2);
END;
E a tela resultante:


INPUT com caixa de verificação

O comando para caixas de verificação e parecido com o de caixas de seleção, onde n é o grupo de caixas de verificação:
INPUT({{var, n}});
Um exemplo:
EXPORT Entrada01()
BEGIN
    LOCAL check;
    INPUT({{check, 1}});
    MSGBOX("Caixa de verificação: " + check);
END;
E a tela correspondente:

Conforme a caixa for marcada será apresentada a seguinte saída: 0 para caixa desmarcada e 1 para caixa marcada.

INPUT com múltiplas caixas de seleção

Veja o exemplo:
EXPORT Entrada01()
BEGIN
    LOCAL check1, check2, check3;
    INPUT({{check1, 1},{check2, 1},{check3, 1}});
    MSGBOX("Caixas de verificação, 01:[" + check1 + "], 02:[" + check2 + "], 03:[" + check3 + "]");
END;
E o resultado:


INPUT com caixa de verificação e com argumentos

Igualmente como esse exemplo, podemos definir alguns parâmetros para a caixa de seleção, a sintaxe segue o exemplo dado anteriormente:
INPUT({{var,n}},["title"],["label"],["help"],[reset_value],[initial_value])
Como exemplo:
EXPORT Entrada01()
BEGIN
    LOCAL check1, check2, check3;
    INPUT({{check1, 1},{check2, 1},{check3, 1}}, "Opções do programa", {"Listar?", "Identar?", "Formatar?"},{"Deseja Listar os elementos?", "Deseja identar os elementos?", "Deseja formartar os elementos?"},{0, 0, 0}, {1, 0, 1});
    MSGBOX("Caixas de verificação, 01:[" + check1 + "], 02:[" + check2 + "], 03:[" + check3 + "]");
END;
Veja o uso da lista de elementos {1, 0, 1} no final do comando INPUT, ele é utilizado para setar as caixas de seleção (o valor 1 representa a caixa como marcada).

INPUT com diversos tipos de entrada

Um exemplo mesclando os diversos tipos de entrada:
EXPORT Entrada01()
BEGIN
    LOCAL numero1, numero2, opcao, check1, check2;
    INPUT({numero1, {check1, 1},numero2, {opcao, {1,2,3}},{check2, 1}});
    MSGBOX("Valores:, numero:[" + numero1 + "], numero2:[" + numero2 + "], check1:[" + check1 + "], check2:[" + check2 + "], opcao:[" + opcao + "]");
END;
E a tela resultante:


E um exemplo mais completo, com vários argumentos setados:
EXPORT Entrada01()
BEGIN
    LOCAL numero1, numero2, opcao, check1, check2;

	INPUT({numero1, {check1, 1},numero2, {opcao, {1,2,3}},{check2, 1}}, "Configurações", {"Valor de N1:", "Caixa 1:", "Valor de N2:", "Opções: ",  "Caixa 2:"}, {"Valor do número 1", "Caixa de seleção 1", "Valor do número 2", "Lista de opções","Caixa de seleção 2"}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0} );

    MSGBOX("Valores:, numero:[" + numero1 + "], numero2:[" + numero2 + "], check1:[" + check1 + "], check2:[" + check2 + "], opcao:[" + opcao + "]");

END;
E a tela correspondente:



Configurando a posição da caixa de entrada

O comando INPUT permite ainda que seja especificado a posição em que aparecerá a caixa de entrada:
INPUT({{var, [{type}], {position_x, length, line}});
Onde
  • Type: é o formato de entrada que se deseja
  • Position_x: posição em relação ao eixo x da tela
  • Length: largura da caixa de entrada ou da caixa de seleção
  • Line: linha em que aparecerá a caixa.
Veja um exemplo:
EXPORT Entrada01()
BEGIN
    LOCAL x;
    INPUT({{x, {1,2,3}, {60, 20, 1}}});
    MSGBOX(x);
END;
O resultado:


Outro exemplo com mais opções :
EXPORT Entrada01()
BEGIN
    LOCAL x, y, z;
    INPUT({{x, {1,2,3}, {20, 20, 0}}, {y, [-1], {20, 20, 1} }, {z, 1, {20, 20, 2}} });
END;
Que resulta na tela:


Outro exemplo:
EXPORT Entrada01()
BEGIN
    LOCAL x, y, z;
    INPUT({{x, [2,3], {20, 20, 0}}, {y, [2,3], {60, 20, 0}}, {z, 1, {20, 20, 1}} });
END;



E um exemplo com mais parâmetros:
EXPORT Entrada01()
BEGIN
    LOCAL x, y, z;
    INPUT({{x, [2,3], {35, 15, 0}}, {y, [2,3], {75, 15, 0} }, {z, 1, {35, 20, 1}} }, "Configurações", {"Limite Inferior:", "Superior:", "Na sequência?"}, {"Digite o limite inferior", "Digite o limite superior", "Se for marcado, os números serão gerados em sequência"});
END;
A janela resultante:


Atividade

Construa as seguintes janelas de entrada em HP PPL:

  • Janela com 1 caixa de entrada para valores Reais e um menu de seleção com valores entre 3 e 7.
  • Uma janela com 2 entradas de valores e um menu de seleção com as opções: "$, @, &", no título: "Calculadora estranha":
  • Janela com 3 caixas de entrada, uma caixa de seleção com as opções: "Somatório, Produtório" e uma caixa de checagem "Mostrar Resultado", título "Cálculo a ser feito"