sub simb;
sub nome;
sub ope;
sub mem;
sub finaly;
sub mot;
sub volt1;
sub volt;
sub volt2;
sub volt3;
sub volt4;
sub simb{
printf(">>> ");
$tok2 = <stdin>;
$tok = '^(\-\>)$';
if($tok2 =~ m/$tok/){
nome;
}else{printf("O Simbolo ->[SETA] Inicializa a Variavel\n\n");
volt1;
}
}
sub nome{
printf(">>> ");
$num = <stdin>;
$num2 = '^([a-z]{1,100}|[a-z]{1,100}\d{1,100})$';
if($num =~ m/$num2/){
ope;
}else{printf("Nomes de Variaveis sao com letras Minusculas,\nou com letras Minusculas e com digitos Numericos no final do nome da variavel. \nDigite Novamente o Nome ,e continue a operacao\n->\n");
volt2;
}
}
sub ope{
printf(">>> ");
$op = <stdin>;
$op2 = '^(\=)$';
if($op =~ m/$op2/){
mem;
}else{printf("O Sr. esqueceu do operador de atribuicao [=]\n\n");
volt;
}
}
sub mem{
printf(">>> ");
$memory = <stdin>;
$memory2 = '^(\d{1,100}|\w{1,100})$';
if($memory =~ m/$memory2/){
finaly;
}else{printf("Os Valores de Variaveis poderao ser valores inteiros e caracters normais,\nNao especiais.\n");
volt4;
}
}
sub finaly{
printf(">>> ");
$ss = <stdin>;
$ss2 = '^(\;)$';
if($ss =~ m/$ss2/){
$memory;#var criada
}else{printf("O Sr. esqueceu do ponto e virgula [;]\n\n");
volt3;
}
}
sub exib{
printf(">>> ");
$pr = <stdin>;
$pr2 = '^(\*)$';
if($pr=~m/$pr2/){
$pa = $memory;
printf("\n\n---->");
printf($pa);
}else{
printf("Informe o Simbolo de asterisco [*] para Exibir o valor da variavel\n\n");
printf("::\t");
mot;
}
}
sub mot{exib;}
sub volt{ope;}
sub volt1{simb;}
sub volt2{nome;}
sub volt3{finaly;}
sub volt4{mem;}
printf("\t\t_______________________________________\n");
printf("\t\tRotina de Inicializacao de uma Variavel\n");
printf("\t\t_______________________________________\n\n\n");
printf("--Basta Digitar a [->] (SETA);\n--nome_da_variavel; \n--[=] (IGUAL);\n--numero_decimal OU carateres simples; \n--[;](PONTO E VIRGULA). \n\n");
printf("***OBS::Digite ENTER depois de cada comando para prosseguir.\n");
printf("________________________________________________________________\n\n");
simb;
exib;
system("pause");