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
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.
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 |
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.
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"