{"id":245,"date":"2015-01-01T13:07:10","date_gmt":"2015-01-01T13:07:10","guid":{"rendered":"http:\/\/linguagemprisma.net\/?p=245"},"modified":"2015-01-01T13:07:10","modified_gmt":"2015-01-01T13:07:10","slug":"algumas-funcoes-e-variaveis-reservadas-uteis","status":"publish","type":"post","link":"https:\/\/linguagemprisma.br4.biz\/blog\/modo_texto\/algumas-funcoes-e-variaveis-reservadas-uteis\/","title":{"rendered":"Algumas fun\u00e7\u00f5es e vari\u00e1veis reservadas \u00fateis"},"content":{"rendered":"<p>Ao tratar de qualquer linguagem percebemos que elas tem fun\u00e7\u00f5es pr\u00f3prias chamadas de<\/p>\n<p>biblioteca base, fun\u00e7\u00f5es das bibliotecas padr\u00e3o e de bibliotecas externas.<\/p>\n<p>Em Prisma n\u00e3o \u00e9 diferente, ao criarmos um simples programa j\u00e1 utilizamos fun\u00e7\u00f5es pr\u00e9-carregadas como<\/p>\n<p><strong>o imprima( ) e o leia ( ).<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>Utilizamos tamb\u00e9m fun\u00e7\u00f5es de libs nativas como <strong>sis.execute ( ) e\u00a0 string.troque ( )<\/strong><\/p>\n<p>e libs externas como o <strong>igbr ou igsqlite3. A<\/strong>s libs externas precisam do comando<strong> inclua<\/strong> para serem usadas.<\/p>\n<p>As fun\u00e7\u00f5es bases s\u00e3o simples: <strong>imprima ( ), leia ( ), tipo ( ) etc.<\/strong><\/p>\n<p>As fun\u00e7\u00f5es de libs nativas ou externas iniciam por um nome seguida de ponto<\/p>\n<p>e o m\u00e9todo:<strong> sis.execute ( ); win.Msg ( ) ; ig.janela ( );<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"text-decoration: underline;\">\u00a0<strong> TRATAREMOS AQUI DE ALGUMAS FUN\u00c7\u00d5ES BASE:<\/strong><\/span><\/p>\n<p style=\"text-align: justify;\">\u00a0\u00a0\u00a0 * <strong>imprima ( &#8230; );<\/strong> &#8211; exibe na tela preta do cmd\u00a0 texto ou n\u00fameros. Podemos passar v\u00e1rios argumentos de<\/p>\n<p style=\"text-align: justify;\">uma s\u00f3 vez separados por v\u00edrgulas;<\/p>\n<p style=\"text-align: justify;\">\u00a0\u00a0\u00a0<strong> * leia ( )<\/strong>; &#8211;\u00a0 uma vers\u00e3o simples do es.leia( ) (que trataremos adiante), a fun\u00e7\u00e3o leia aguarda o usu\u00e1rio<\/p>\n<p style=\"text-align: justify;\">digitar algo e retorna o que foi digitado, podendo ser armazenado em uma vari\u00e1vel do seguinte modo:<\/p>\n<pre class=\"lang:prisma decode:true\">poe \"Digite algo: \";\n\nalgo = leia ( );\n\npoe ( algo ); \/\/sa\u00edda ser\u00e1 aquilo que o usu\u00e1rio digitar;\n\n<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">\u00a0\u00a0\u00a0\u00a0\u00a0<strong> * tipo ( valor )\u00a0 &#8211;<\/strong> esta fun\u00e7\u00e3o retorna uma string descrevendo o tipo de valor;<\/p>\n<p style=\"text-align: justify;\"><em>valor<\/em> pode ser uma vari\u00e1vel ou diretamente um valor. Exempo de uso:<\/p>\n<pre class=\"lang:prisma decode:true\">  x = tipo ( y );\n\n    se x == \"numero\" entao imprima(\"variavel do tipo numero\") ;\n\n   senaose x == \"string\" entao imprima(\"variavel do tipo string\");\n\n   senao\n\n                    imprima ( \"a variavel nao e do tipo numero nem string\");\n\n                    imprima (\"o tipo e =\" , x );\n\n   fim<\/pre>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #008000;\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><strong>\u00a0* _versao &#8211;<\/strong> vari\u00e1vel que guarda a vers\u00e3o de prisma, tente executar:<strong> imprima( _versao );<\/strong><\/p>\n<p style=\"text-align: justify;\"><strong>\u00a0* prismadir<\/strong> &#8211; vari\u00e1vel que guarda o diret\u00f3rio do execut\u00e1vel prisma:<strong> imprima ( prismadir );<\/strong><\/p>\n<p style=\"text-align: justify;\"><strong>\u00a0* args &#8211;<\/strong> j\u00e1 falamos sobre esta vari\u00e1vel, \u00e9 uma<em><strong> tabela<\/strong><\/em> dos argumentos externos passados como<\/p>\n<p style=\"text-align: justify;\">par\u00e2metros em linha de comando:<\/p>\n<pre class=\"lang:prisma decode:true\">imprima (  args [ 0 ] ); \/\/ imprime o nome do programa prisma sendo executado.\n\nimprima ( args [-1] ); \/\/imprime o nome do interpretador, que pode ser o prisma.exe ou o<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #0000ff;\">igprisma.exe;<\/span><\/p>\n<p style=\"text-align: justify;\"><strong>\u00a0* poe ( string );<\/strong><span style=\"color: #000000;\"> v\u00eam do verbo p\u00f4r (ingl\u00eas = puts ), coloca na tela preta o resultado, \u00e9 o mesmo<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000;\">que a fun\u00e7\u00e3o imprima, mas com limita\u00e7\u00f5es, n\u00e3o aceita por exemplo mais de um argumento,<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000;\">\u00e9 bom para strings apenas.<\/span><\/p>\n<p style=\"text-align: justify;\"><strong>\u00a0* executestring( string );<\/strong><span style=\"color: #000000;\">\u00a0 executa uma string como se fosse parte do programa e retorna o<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000;\">valor 0 (zero) para sucesso e 1 para erro.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000;\">exemplo:<\/span><\/p>\n<pre class=\"lang:prisma decode:true\">  x = executestring ( \"imprima ( 'Ola Mundo' ) ; \" ); \/\/imprima na tela Ola Mundo\n\n   se x == 0 entao\n\n            imprima 'string executada com sucesso'\n\n   senaose x == 1 entao\n\n           imprima 'a string nao foi executada por algum erro'; \n\n   fim<\/pre>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><em><strong>Dica: cuidado com as aspas, se a string a ser executada possui apas internamente voc\u00ea tem<\/strong><\/em><\/p>\n<p style=\"text-align: justify;\"><em><strong>algumas op\u00e7\u00f5es:<\/strong><\/em><\/p>\n<p style=\"text-align: justify;\"><strong><em><span style=\"color: #0000ff;\">1 &#8211; usar aspas simples internamente, e duplas externamente ou o inverso, como no exemplo acima;<\/span><\/em><\/strong><\/p>\n<p style=\"text-align: justify;\"><strong><em><span style=\"color: #0000ff;\">2 &#8211; usar o mesmo tipo de aspas. Mas as internas devem ser antecedidas por barra obl\u00edqua:<span style=\"color: #000000;\"> &#8220;<\/span> ou<span style=\"color: #000000;\"> &#8216; <\/span>ex.:<\/span><\/em><\/strong><\/p>\n<pre class=\"lang:prisma decode:true \">executestring ( 'imprima('ola mundo') ' );<\/pre>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #008000;\"><strong><em>\u00a0<\/em><\/strong><\/span><\/p>\n<p style=\"text-align: justify;\"><strong><em><span style=\"color: #0000ff;\">ou<\/span><\/em><\/strong><\/p>\n<p style=\"text-align: justify;\"><strong><em><span style=\"color: #0000ff;\">3 &#8211; usar duplos colchetes:<\/span><\/em><\/strong><\/p>\n<pre class=\"lang:prisma decode:true \"> executestring( [[ imprima (\"ola mundo\" ) ]] );<\/pre>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">Como o argumento \u00e9 uma \u00fanica string podemos omitir o par\u00eanteses da fun\u00e7\u00e3o como fazemos<\/p>\n<p style=\"text-align: justify;\">desde o in\u00edcio com a fun\u00e7\u00e3o<em><strong> inclua<\/strong>. <\/em>Ficando assim:\u00a0 <strong>executestring &#8220;seu_comando_aqui&#8221; ;<\/strong><\/p>\n<p style=\"text-align: justify;\">\u00a0\u00a0\u00a0\u00a0 *<strong> executearquivo ( caminho_do_arquivo.prisma ); &#8211; <\/strong>semelhante ao comando anterior, mas<\/p>\n<p style=\"text-align: justify;\">ao inv\u00e9s de executar uma string, executa um programa prisma, que pode estar compilado ou n\u00e3o.<\/p>\n<p style=\"text-align: justify;\">muito \u00fatil quando seu programa tem v\u00e1rios subprogramas separados e por algum motivo n\u00e3o<\/p>\n<p style=\"text-align: justify;\">quer utilizar a fun\u00e7\u00e3o<strong> inclua ( )<\/strong>. Esta fun\u00e7\u00e3o, <em>executearquivo<\/em>, n\u00e3o retorna 0 ou 1, simplesmente<\/p>\n<p style=\"text-align: justify;\">trava a execu\u00e7\u00e3o do programa principal fechando-o e imprimindo mensagem de erro na tela cmd.<\/p>\n<p style=\"text-align: justify;\">Se o programa prisma a ser executado estiver na mesma pasta que o programa principal,<\/p>\n<p style=\"text-align: justify;\">n\u00e3o \u00e9 necess\u00e1rio usar o caminho completo, caso contr\u00e1rio sim.<\/p>\n<p style=\"text-align: justify;\">\u00a0\u00a0\u00a0 * <strong>carregue ( string )<\/strong> &#8211;\u00a0 Semelhante a fun\u00e7\u00e3o<strong><em> executestring<\/em><\/strong> com a diferen\u00e7a de que esta carrega<\/p>\n<p style=\"text-align: justify;\">a string e retorna uma fun\u00e7\u00e3o dela para a vari\u00e1ve.<strong> Ex:<\/strong><\/p>\n<p style=\"text-align: justify;\">\u00a0\u00a0<strong> imprima_ola = carregue ( &#8220;imprima &#8216;ola mundo&#8217; &#8221; );<\/strong> <span style=\"color: #0000ff;\">\/\/primeiro carrega a string em uma fun\u00e7\u00e3o<\/span><\/p>\n<p style=\"text-align: justify;\">\u00a0\u00a0<span style=\"color: #008000;\"> imprima_ola() ; <span style=\"color: #0000ff;\">\/\/executa a string carregada nesta funcao;<\/span><\/span><\/p>\n<p style=\"text-align: justify;\">Se houver erros, simplesmente nenhum valor \u00e9 retornado e o valor da fun\u00e7\u00e3o ser\u00e1 nulo;<\/p>\n<p style=\"text-align: justify;\">\u00a0\u00a0\u00a0<strong> * carreguearquivo ( programa.prisma ) &#8211;<\/strong> similar a fun\u00e7\u00e3o carregue, no entanto, esta carrega<\/p>\n<p style=\"text-align: justify;\">um arquivo fonte prisma ou programa compilado prisma em uma fun\u00e7\u00e3o que ao ser executada executa o<\/p>\n<p style=\"text-align: justify;\">programa carregado. Exemplo:<\/p>\n<pre class=\"lang:prisma decode:true  \">execute_arquivo = carreguearquivo ( 'ola.prisma' );\n\nexecute_arquivo ( ) ; \/\/executa o programa carregado.<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">esta fun\u00e7\u00e3o, ao contr\u00e1rio da executearquivo, d\u00e1 a possibilidade de fazer um tratamento de erro:<\/p>\n<pre class=\"lang:prisma decode:true\">execute_arquivo = carreguearquivo ( 'ola.prisma' );\n\nse execute_arquivo entao\n\n        execute_arquivo ( ) ;\n\nsenao\n\n       imprima ( \"erro no arquivo\");\n\nfim \/\/executa o programa carregado.<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">\u00a0\u00a0 <strong>* convnumero( string );\u00a0<\/strong> &#8212; converte uma string para numero. Exemplo:<\/p>\n<pre class=\"lang:prisma decode:true \">  x = \"12\"; \/\/ x = x + x ; errado!\n\n     x = convnumero( x ); \/\/correto!\n\n    x = x + x; \/\/depois de convertermos para n\u00famero<\/pre>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">\u00a0\u00a0\u00a0 <strong>* convstring ( numero ); &#8212; faz o contr\u00e1rio da fun\u00e7\u00e3o anterior, converte um n\u00famero para string.<\/strong><\/p>\n<pre class=\"lang:prisma decode:true \">  x = \"1 + 1 = \" .. 2 ; \/\/ao concatenar a convers\u00e3o \u00e9 autom\u00e1tica,\n\n\/\/mas \u00e9 recomend\u00e1vel que se converta antes:\n\n   x = \"1 + 1 = \" .. convstring ( 2 );<\/pre>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">\u00a0\u00a0\u00a0 <strong>* tente &#8211;<\/strong> esta fun\u00e7\u00e3o verifica um valor e retorna um mensagem de erro caso esse valor seja falso<\/p>\n<p style=\"text-align: justify;\">ou nulo, ou o pr\u00f3prio valor caso ele seja v\u00e1lido;<\/p>\n<p style=\"text-align: justify;\">\u00a0\u00a0 sua sintaxe \u00e9 :<strong>\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\"> x\u00a0 = tente (\u00a0\u00a0\u00a0 valor , String_erro );<\/span><\/strong><\/p>\n<p style=\"text-align: justify;\">Esta fun\u00e7\u00e3o \u00e9 \u00f3tima para testar abertura de arquivos. Veja seu uso:<\/p>\n<pre class=\"lang:prisma decode:true\">x = tente ( falso , \"erro - valor invalido\" ); \/**retorna o valor se for v\u00e1lido ou a mensagem de erro se valor\n\nfor inv\u00e1lido, isto \u00e9, se for falso ou nulo\n**<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">outro exemplo de uso com a fun\u00e7\u00e3o que abre arquivo em Prisma:<\/p>\n<pre class=\"lang:prisma decode:true \">x = tente (  es.abra ( \"teste.txt\" , \"escrita\" )  ,  \"erro - arquivo nao pode ser aberto\" );\n\n\/** se a fun\u00e7\u00e3o conseguir abrir o arquivo retorna o arquivo para x sen\u00e3o fecha o programa e retorna\n\na mensagem de erro, que \u00e9 a string definida no segundo par\u00e2metro\n\n**\n\nse x entao \/\/ se x tiver algum valor v\u00e1lido entao\n\n      x:escreva (\"uma linha escrita no arquivo\"); \/\/escreve no arquivo aberto\n\n      x:feche ( ); \/\/ depois \u00e9 necess\u00e1rio fechar o arquivo aberto.\n\nfim<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<em> Bom, pessoal, mais adiante explanarei as bibliotecas,<\/em><\/p>\n<p style=\"text-align: justify;\"><em>mas por hoje \u00e9 s\u00f3, bons estudos, at\u00e9 mais. <span style=\"color: #ff0000;\"><strong><br \/>\n<\/strong><\/span><\/em><\/p>\n<p style=\"text-align: justify;\"><em>Att. Adalberto<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ao tratar de qualquer linguagem percebemos que elas tem fun\u00e7\u00f5es pr\u00f3prias chamadas de biblioteca base, fun\u00e7\u00f5es das bibliotecas padr\u00e3o e de bibliotecas externas. Em Prisma n\u00e3o \u00e9 diferente, ao criarmos um simples programa j\u00e1 utilizamos fun\u00e7\u00f5es pr\u00e9-carregadas como o imprima( ) e o leia ( ). &nbsp; Utilizamos tamb\u00e9m fun\u00e7\u00f5es de libs nativas como sis.execute&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,7],"tags":[],"class_list":["post-245","post","type-post","status-publish","format-standard","hentry","category-modo_texto","category-prisma"],"_links":{"self":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/comments?post=245"}],"version-history":[{"count":0,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/245\/revisions"}],"wp:attachment":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/media?parent=245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/categories?post=245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/tags?post=245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}