{"id":166,"date":"2018-09-08T10:42:29","date_gmt":"2018-09-08T13:42:29","guid":{"rendered":"http:\/\/lucianodev.com.br\/blog\/?p=166"},"modified":"2018-09-08T10:42:29","modified_gmt":"2018-09-08T13:42:29","slug":"programando-algoritmos-portugues-estruturado-tipos-de-dados-e-variaveis","status":"publish","type":"post","link":"https:\/\/lucianodev.com.br\/blog\/programando-algoritmos-portugues-estruturado-tipos-de-dados-e-variaveis\/","title":{"rendered":"Programando: Algoritmos (Portugu\u00eas Estruturado) \u2013 Tipos de Dados e Vari\u00e1veis"},"content":{"rendered":"<p><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script><br \/>\n<ins class=\"adsbygoogle\" style=\"display: block; text-align: center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-4648498281437791\" data-ad-slot=\"5451138398\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<p>Fala ai pessoal, dando continuidade ao POST <a href=\"https:\/\/lucianodev.com.br\/blog\/programando-algoritmos-portugues-estruturado-primeiro-programa\/\"><strong>Programando: Algoritmos (Portugu\u00eas Estruturado) &#8211; Primeiro Programa<\/strong><\/a> vamos aprender agora como trabalhar com vari\u00e1veis e tipos de dados atrav\u00e9s do algoritmo por meio da ferramenta VisualG.<\/p>\n<h2><strong>Vari\u00e1veis e Tipos de Dados<\/strong><\/h2>\n<p>Precisamos saber de imediato que tudo o que um programa gerencia\u00a0(como dados, informa\u00e7\u00f5es e instru\u00e7\u00f5es) fica armazenado na mem\u00f3ria do computador durante a sua execu\u00e7\u00e3o. Chamamos na programa\u00e7\u00e3o de <strong>Vari\u00e1vel <\/strong>todo e qualquer espa\u00e7o de mem\u00f3ria que uma aplica\u00e7\u00e3o reserva para guardar e gerenciar dados. Uma vari\u00e1vel \u00e9 identificada e rotulada com um nome , onde esse nome na pr\u00e1tica representa um espa\u00e7o de mem\u00f3ria que ser\u00e1 ocupado\u00a0 e nesse espa\u00e7o reservado pela vari\u00e1vel ser\u00e3o guardados informa\u00e7\u00f5es que &#8220;comportem&#8221; <strong>Tipos de Dados<\/strong> especificados durante a sua declara\u00e7\u00e3o. No VisualG (assim tamb\u00e9m como em qualquer outra linguagem) existem 4 tipos b\u00e1sicos de dados a serem utilizados para armazenar informa\u00e7\u00f5es em formatos espec\u00edficos, s\u00e3o eles:<\/p>\n<p><strong>Inteiro:<\/strong> Esse tipo de dados permite que seja armazenado somente dados do tipo num\u00e9rico inteiro (positivos e negativos). Exemplo: 1, 20, -35, 12499 e etc.<\/p>\n<p><strong>Real:<\/strong> Esse tipo de dados permite que seja armazenado somente dados do tipo num\u00e9rico inteiro e fracion\u00e1rios (positivos e negativos). Exemplo: 10, 0.00321, -1.900121 e etc.<\/p>\n<p><strong>String (ou texto):<\/strong> Esse tipo de dados permite armazenar dados do tipo texto (caracteres), podendo ser utilizado n\u00fameros, letras e s\u00edmbolos. Exemplo: \u201cLuciano\u201d, \u201cRua Ribeiro\u201d, \u201cSou Programador\u201d, \u201c12.201\u201d, \u201c#FicaDica\u201d, \u201c@apostilaandroid\u201d e etc.<\/p>\n<p><strong>L\u00f3gico (ou booleano):<\/strong> Esse tipo de dados armazena somente dois \u00fanicos valores, verdadeiro (true) ou falso (false).<\/p>\n<p><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script><br \/>\n<ins class=\"adsbygoogle\" style=\"display: block; text-align: center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-4648498281437791\" data-ad-slot=\"5451138398\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<p>&nbsp;<\/p>\n<h2><strong>Utilizando vari\u00e1veis no VisualG<br \/>\n<\/strong><\/h2>\n<p>Em programa\u00e7\u00e3o toda vari\u00e1vel, antes de ser utilizada, precisa ser declarada dentro do programa, atrav\u00e9s do conjunto de instru\u00e7\u00f5es destinadas para esse fim. Veremos como fazer isso no VisualG. Sintaxe:<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">var\r\n &lt;vari\u00e1vel1&gt; : &lt;tipo&gt;\r\n &lt;vari\u00e1vel2&gt; : &lt;tipo&gt;\r\n  :\r\n &lt;vari\u00e1veln&gt; : &lt;tipo&gt;\r\n<\/pre>\n<p><strong>Exemplo:<\/strong><\/p>\n<pre class=\"lang:default highlight:0 decode:true \">var\r\n nome : caractere\r\n idade : inteiro\r\n tem_habilitacao : l\u00f3gico<\/pre>\n<p><strong><em>Descrevendo as declara\u00e7\u00f5es acima:<\/em><\/strong><\/p>\n<p>Observe que na primeira linha que declarei uma vari\u00e1vel (ou seja, reservei um espa\u00e7o de mem\u00f3ria no meu computador) chamada \u201cnome\u201d, que ir\u00e1 guardar tudo o que \u00e9 conte\u00fado do tipo \u201ctexto\u201d. Obviamente, quando declaramos uma vari\u00e1vel chamada \u201cnome\u201d, devemos ent\u00e3o armazenar, logicamente, nomes de pessoas.<\/p>\n<p>Na segunda linha do c\u00f3digo declarei uma vari\u00e1vel chamada \u201cidade\u201d que ir\u00e1 armazenar valores do tipo \u201cinteiro\u201d.<\/p>\n<p>Na terceira linha do c\u00f3digo declarei uma vari\u00e1vel chamada \u201ctem_habilitacao\u201d que ir\u00e1 armazenar valores do tipo \u201cl\u00f3gico\u201d (ou booleano).<\/p>\n<p><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script><br \/>\n<ins class=\"adsbygoogle\" style=\"display: block; text-align: center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-4648498281437791\" data-ad-slot=\"5451138398\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<p>&nbsp;<\/p>\n<h2>Regras para declara\u00e7\u00e3o de vari\u00e1veis<\/h2>\n<ol>\n<li>Toda vari\u00e1vel, quando declarada em um programa, n\u00e3o pode come\u00e7ar em hip\u00f3tese alguma com n\u00famero em seu nome (Ex: <span style=\"color: #ff0000;\"><strong><em>1nota<\/em><\/strong><\/span>, <span style=\"color: #ff0000;\"><strong><em>13salario<\/em><\/strong><\/span>, <span style=\"color: #ff0000;\"><strong><em>4media<\/em> <\/strong><\/span>e etc.):<\/li>\n<li>Toda vari\u00e1vel declarada n\u00e3o pode ter \u201cespa\u00e7o\u201d no nome (Ex: <em><strong><span style=\"color: #ff0000;\">nome do aluno <\/span><\/strong><\/em><span style=\"color: #000000;\">e<\/span> <span style=\"color: #ff0000;\"><strong><em>media final<\/em><\/strong><\/span> est\u00e3o declaradas de FORMA ERRADA). Utilize o &#8220;underline&#8221; (_) para substituir o espa\u00e7o (Ex: <span style=\"color: #008000;\"><em><strong>media_aluno<\/strong><\/em><\/span>, <span style=\"color: #008000;\"><strong><em>segunda_nota<\/em><\/strong><\/span> est\u00e3o declarados corretamente).<\/li>\n<li>Toda vari\u00e1vel declarada n\u00e3o pode ter o mesmo nome de uma palavra reservada ou comando da linguagem de programa\u00e7\u00e3o (Ex: &#8220;escreva&#8221; j\u00e1 \u00e9 um comando da linguagem e n\u00e3o pode ser usado como vari\u00e1vel).<\/li>\n<li>Toda vari\u00e1vel declarada n\u00e3o pode ter acento, caracteres especiais e s\u00edmbolos (Ex: fone#, formata\u00e7\u00e3o, media$ e etc).<\/li>\n<\/ol>\n<h2>Como aguardar as informa\u00e7\u00f5es na vari\u00e1vel?<\/h2>\n<p>Para guardar informa\u00e7\u00f5es dentro de uma vari\u00e1vel existem duas formas que ser\u00e3o mostradas a seguir:<\/p>\n<h3>1) O comando de leitura via teclado &#8220;leia&#8221;<\/h3>\n<p>Aprendemos que o escreva mostra na tela dados que ser\u00e3o impressos na tela (como uma mensagem por exemplo), por\u00e9m, caso desejamos entrar com informa\u00e7\u00f5es via teclado existe o comando &#8220;leia&#8221; , que possui essa finalidade. Vejamos a sua sintaxe:<\/p>\n<pre class=\"lang:default highlight:0 decode:true \">Sintaxe:\r\n leia(&lt;vari\u00e1vel&gt;)<\/pre>\n<p>Vejamos uma demonstra\u00e7\u00e3o abaixo:<\/p>\n<pre class=\"lang:default decode:true \">algoritmo \"Ler nome\"\r\nvar\r\n nome: caractere\r\ninicio\r\n escreva(\"Digite o seu nome : \")\r\n leia (nome)\r\n escreva (\"Seu nome \u00e9 \", nome)\r\nfimalgoritmo<\/pre>\n<p>Ao executarmos o nosso programa, teremos o seguinte resultado:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-175 size-full aligncenter\" src=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/09\/post_variaveis_img_1.jpg\" alt=\"\" width=\"552\" height=\"359\" srcset=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/09\/post_variaveis_img_1.jpg 552w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/09\/post_variaveis_img_1-300x195.jpg 300w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/09\/post_variaveis_img_1-110x72.jpg 110w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/09\/post_variaveis_img_1-420x273.jpg 420w\" sizes=\"auto, (max-width: 552px) 100vw, 552px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Se observarmos o programa em execu\u00e7\u00e3o acima, \u00e9 mostrado a frase \u201cDigite o seu nome: \u201d, com um cursor piscando ao lado da mensagem. Nesse momento o programa aguarda que voc\u00ea digite alguma coisa, neste caso, um nome. Experimente digitar um nome e em seguida pressione ENTER. Vejamos o resultado na figura seguinte:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-176 size-full\" src=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/09\/post_variaveis_img_2.jpg\" alt=\"\" width=\"552\" height=\"359\" srcset=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/09\/post_variaveis_img_2.jpg 552w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/09\/post_variaveis_img_2-300x195.jpg 300w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/09\/post_variaveis_img_2-110x72.jpg 110w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/09\/post_variaveis_img_2-420x273.jpg 420w\" sizes=\"auto, (max-width: 552px) 100vw, 552px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3>2) O comando de atribui\u00e7\u00e3o<\/h3>\n<p>O comando de atribui\u00e7\u00e3o serve para atribuirmos um valor diretamente \u00e0 uma vari\u00e1vel, sem necessidade de fazer leitura de dados via teclado e etc. Veja a sintaxe b\u00e1sica do comando de atribui\u00e7\u00e3o:<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">Sintaxe:\r\n &lt;vari\u00e1vel&gt; &lt;- &lt;valor&gt;<\/pre>\n<p>Exemplo:<\/p>\n<pre class=\"lang:default decode:true \">\/\/Atribuindo a vari\u00e1vel nome o valor \"Alberto\"\r\nnome &lt;- \"Alberto\"<\/pre>\n<p>No comando acima dizemos que a vari\u00e1vel \u201cnome\u201d recebe um conte\u00fado (no formato texto), cujo valor \u00e9 \u201cAlberto\u201d (o s\u00edmbolo da atribui\u00e7\u00e3o &lt;- nada mais \u00e9 do que o sinal de menor \u201c&lt;\u201d seguido do s\u00edmbolo h\u00edfen \u201c-\u201c).<\/p>\n<p>Vejamos um programa de demonstra\u00e7\u00e3o abaixo no VisualG:<\/p>\n<pre class=\"lang:default highlight:0 decode:true \">algoritmo \"Comando de atribui\u00e7\u00e3o\"\r\nvar\r\n nome : caractere\r\n idade : inteiro\r\ninicio\r\n nome &lt;- \"Luciano\"\r\n idade &lt;- 29\r\n escreval(\"Nome : \", nome)\r\n escreval(\"Idade : \", idade)\r\nfimalgoritmo<\/pre>\n<p>Executando o nosso programa, teremos o seguinte resultado abaixo:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-178\" src=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/09\/post_variaveis_img_3.jpg\" alt=\"\" width=\"552\" height=\"359\" srcset=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/09\/post_variaveis_img_3.jpg 552w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/09\/post_variaveis_img_3-300x195.jpg 300w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/09\/post_variaveis_img_3-110x72.jpg 110w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/09\/post_variaveis_img_3-420x273.jpg 420w\" sizes=\"auto, (max-width: 552px) 100vw, 552px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Bom pessoal, por hoje \u00e9 s\u00f3. No pr\u00f3ximo POST estaremos aprendendo a utilizar estruturas condicionais com o intuito de realizar &#8220;Tomada de Decis\u00f5es&#8221; durante a execu\u00e7\u00e3o de um programa (permitindo a execu\u00e7\u00e3o de um bloco de comandos ou n\u00e3o, mediante a uma avalia\u00e7\u00e3o condicional).<\/p>\n<p>Um forte abra\u00e7o para todos&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fala ai pessoal, dando continuidade ao POST Programando: Algoritmos (Portugu\u00eas Estruturado) &#8211; Primeiro Programa vamos aprender agora como trabalhar com vari\u00e1veis e tipos de dados atrav\u00e9s do algoritmo por meio&hellip;<\/p>\n","protected":false},"author":1,"featured_media":173,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,3,8],"tags":[],"class_list":["post-166","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-algoritmo","category-programacao","category-visualg"],"_links":{"self":[{"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/posts\/166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/comments?post=166"}],"version-history":[{"count":8,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/posts\/166\/revisions"}],"predecessor-version":[{"id":179,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/posts\/166\/revisions\/179"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/media\/173"}],"wp:attachment":[{"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/media?parent=166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/categories?post=166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/tags?post=166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}